add list events
This commit is contained in:
@@ -20,7 +20,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/spf13/cobra"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/api/core/v1"
|
||||
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
||||
"k8s.io/apimachinery/pkg/util/uuid"
|
||||
"k8s.io/client-go/tools/leaderelection"
|
||||
|
||||
1
go.mod
1
go.mod
@@ -427,6 +427,7 @@ replace (
|
||||
openpitrix.io/iam => openpitrix.io/iam v0.1.0
|
||||
openpitrix.io/logger => openpitrix.io/logger v0.1.0
|
||||
openpitrix.io/openpitrix => github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348
|
||||
openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21
|
||||
rsc.io/goversion => rsc.io/goversion v1.0.0
|
||||
sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.4.0
|
||||
sigs.k8s.io/controller-tools => sigs.k8s.io/controller-tools v0.2.4
|
||||
|
||||
4
go.sum
4
go.sum
@@ -366,8 +366,6 @@ github.com/pelletier/go-buffruneio v0.2.0 h1:U4t4R6YkofJ5xHm3dJzuRpPZ0mr5MMCoAWo
|
||||
github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo=
|
||||
github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
|
||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||
github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348 h1:xZAxtVEzs5646suGdnLdZ9mkX+ZOLlpH4hjI0Fx94JY=
|
||||
github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348/go.mod h1:sLaDrxic8mrYWWJop4GkBSRwQ0AqVIy7TZzbCOynr8o=
|
||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||
github.com/peterh/liner v0.0.0-20170211195444-bf27d3ba8e1d/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
|
||||
github.com/phayes/freeport v0.0.0-20171002181615-b8543db493a5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
|
||||
@@ -598,6 +596,8 @@ openpitrix.io/iam v0.1.0/go.mod h1:EcZE8CPBg+1fEKCDEhpsIZ8isWWO7javpu84mSqoVn4=
|
||||
openpitrix.io/libqueue v0.4.1/go.mod h1:qUuS2viIR86Fm1rLfLRFMMAyltUeGxNt8zoCNkmf/Gk=
|
||||
openpitrix.io/logger v0.1.0/go.mod h1:SV8Btt2cTSmeL9H/1XCkYmQ+WQ2upVY4e0wlr07RP28=
|
||||
openpitrix.io/notification v0.2.2/go.mod h1:2YRxpnrFk2Z3fXpRXWzbDY9j6Sztrd860Vm8qh5hZzY=
|
||||
openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21 h1:MUCblqyJK8dX7WYUAiyN7vzpchn+6GYS7pSYVbJHmJ4=
|
||||
openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21/go.mod h1:sLaDrxic8mrYWWJop4GkBSRwQ0AqVIy7TZzbCOynr8o=
|
||||
rsc.io/goversion v1.0.0/go.mod h1:Eih9y/uIBS3ulggl7KNJ09xGSLcuNaLgmvvqa07sgfo=
|
||||
rsc.io/letsencrypt v0.0.1/go.mod h1:buyQKZ6IXrRnB7TdkHP0RyEybLx18HHyOSoTyoOLqNY=
|
||||
sigs.k8s.io/controller-runtime v0.4.0 h1:wATM6/m+3w8lj8FXNaO6Fs/rq/vqoOjO1Q116Z9NPsg=
|
||||
|
||||
@@ -34,6 +34,7 @@ const (
|
||||
|
||||
WorkspaceLabelKey = "kubesphere.io/workspace"
|
||||
NamespaceLabelKey = "kubesphere.io/namespace"
|
||||
RuntimeLabelKey = "openpitrix.io/namespace"
|
||||
DisplayNameAnnotationKey = "kubesphere.io/alias-name"
|
||||
DescriptionAnnotationKey = "kubesphere.io/description"
|
||||
CreatorAnnotationKey = "kubesphere.io/creator"
|
||||
|
||||
@@ -46,7 +46,7 @@ func newOpenpitrixHandler(factory informers.InformerFactory, opClient op.Client)
|
||||
|
||||
func (h *openpitrixHandler) ListApplications(request *restful.Request, response *restful.Response) {
|
||||
limit, offset := params.ParsePaging(request)
|
||||
runtimeId := request.PathParameter("cluster")
|
||||
runtimeId := request.PathParameter("runtime")
|
||||
namespace := request.PathParameter("namespace")
|
||||
orderBy := params.GetStringValueWithDefault(request, params.OrderByParam, openpitrix.CreateTime)
|
||||
reverse := params.GetBoolValueWithDefault(request, params.ReverseParam, false)
|
||||
@@ -72,9 +72,9 @@ func (h *openpitrixHandler) ListApplications(request *restful.Request, response
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) DescribeApplication(req *restful.Request, resp *restful.Response) {
|
||||
clusterId := req.PathParameter("application")
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
namespace := req.PathParameter("namespace")
|
||||
runtimeId := req.PathParameter("cluster")
|
||||
clusterId := req.PathParameter("application")
|
||||
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId)
|
||||
|
||||
@@ -84,29 +84,12 @@ func (h *openpitrixHandler) DescribeApplication(req *restful.Request, resp *rest
|
||||
return
|
||||
}
|
||||
|
||||
//ns, err := h.informers.Core().V1().Namespaces().Lister().Get(namespace)
|
||||
//
|
||||
//if err != nil {
|
||||
// klog.Errorln(err)
|
||||
// api.HandleInternalError(resp, nil, err)
|
||||
// return
|
||||
//}
|
||||
//
|
||||
//runtimeId := ns.Annotations[constants.OpenPitrixRuntimeAnnotationKey]
|
||||
//
|
||||
//if runtimeId != app.Cluster.RuntimeId {
|
||||
// err = fmt.Errorf("rumtime not match %s,%s", app.Cluster.RuntimeId, runtimeId)
|
||||
// klog.V(4).Infoln(err)
|
||||
// api.HandleForbidden(resp, nil, err)
|
||||
// return
|
||||
//}
|
||||
|
||||
resp.WriteEntity(app)
|
||||
return
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restful.Response) {
|
||||
runtimeId := req.PathParameter("cluster")
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
namespace := req.PathParameter("namespace")
|
||||
var createClusterRequest openpitrix.CreateClusterRequest
|
||||
err := req.ReadEntity(&createClusterRequest)
|
||||
@@ -131,7 +114,7 @@ func (h *openpitrixHandler) CreateApplication(req *restful.Request, resp *restfu
|
||||
|
||||
func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restful.Response) {
|
||||
var modifyClusterAttributesRequest openpitrix.ModifyClusterAttributesRequest
|
||||
runtimeId := req.PathParameter("cluster")
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
clusterId := req.PathParameter("application")
|
||||
namespace := req.PathParameter("namespace")
|
||||
err := req.ReadEntity(&modifyClusterAttributesRequest)
|
||||
@@ -168,7 +151,7 @@ func (h *openpitrixHandler) ModifyApplication(req *restful.Request, resp *restfu
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restful.Response) {
|
||||
runtimeId := req.PathParameter("cluster")
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
clusterId := req.PathParameter("application")
|
||||
namespace := req.PathParameter("namespace")
|
||||
app, err := h.openpitrix.DescribeApplication(namespace, clusterId, runtimeId)
|
||||
@@ -198,7 +181,7 @@ func (h *openpitrixHandler) DeleteApplication(req *restful.Request, resp *restfu
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) UpgradeApplication(req *restful.Request, resp *restful.Response) {
|
||||
runtimeId := req.PathParameter("cluster")
|
||||
runtimeId := req.PathParameter("runtime")
|
||||
namespace := req.PathParameter("namespace")
|
||||
clusterId := req.PathParameter("application")
|
||||
var upgradeClusterRequest openpitrix.UpgradeClusterRequest
|
||||
@@ -850,6 +833,7 @@ func (h *openpitrixHandler) DescribeRepo(req *restful.Request, resp *restful.Res
|
||||
|
||||
resp.WriteEntity(result)
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) ListRepos(req *restful.Request, resp *restful.Response) {
|
||||
limit, offset := params.ParsePaging(req)
|
||||
orderBy := params.GetStringValueWithDefault(req, params.OrderByParam, openpitrix.CreateTime)
|
||||
@@ -873,6 +857,29 @@ func (h *openpitrixHandler) ListRepos(req *restful.Request, resp *restful.Respon
|
||||
resp.WriteEntity(result)
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) ListEvents(req *restful.Request, resp *restful.Response) {
|
||||
limit, offset := params.ParsePaging(req)
|
||||
orderBy := params.GetStringValueWithDefault(req, params.OrderByParam, openpitrix.CreateTime)
|
||||
reverse := params.GetBoolValueWithDefault(req, params.ReverseParam, false)
|
||||
conditions, err := params.ParseConditions(req)
|
||||
|
||||
if err != nil {
|
||||
klog.V(4).Infoln(err)
|
||||
api.HandleBadRequest(resp, nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
result, err := h.openpitrix.ListEvents(conditions, orderBy, reverse, limit, offset)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln(err)
|
||||
handleOpenpitrixError(resp, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp.WriteEntity(result)
|
||||
}
|
||||
|
||||
func (h *openpitrixHandler) ListRepoEvents(req *restful.Request, resp *restful.Response) {
|
||||
repoId := req.PathParameter("repo")
|
||||
limit, offset := params.ParsePaging(req)
|
||||
|
||||
@@ -43,7 +43,7 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op
|
||||
webservice := runtime.NewWebService(GroupVersion)
|
||||
handler := newOpenpitrixHandler(factory, op)
|
||||
|
||||
webservice.Route(webservice.GET("/clusters/{cluster}/applications").
|
||||
webservice.Route(webservice.GET("/runtimes/{runtime}/applications").
|
||||
To(handler.ListApplications).
|
||||
Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
@@ -52,13 +52,13 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op
|
||||
Required(false).
|
||||
DataFormat("key=value,key~value").
|
||||
DefaultValue("")).
|
||||
Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1").
|
||||
Required(false).
|
||||
DataFormat("limit=%d,page=%d").
|
||||
DefaultValue("limit=10,page=1")))
|
||||
|
||||
webservice.Route(webservice.GET("/clusters/{cluster}/namespaces/{namespace}/applications").
|
||||
webservice.Route(webservice.GET("/runtimes/{runtime}/namespaces/{namespace}/applications").
|
||||
To(handler.ListApplications).
|
||||
Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
@@ -67,59 +67,59 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op
|
||||
Required(false).
|
||||
DataFormat("key=value,key~value").
|
||||
DefaultValue("")).
|
||||
Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1").
|
||||
Required(false).
|
||||
DataFormat("limit=%d,page=%d").
|
||||
DefaultValue("limit=10,page=1")))
|
||||
|
||||
webservice.Route(webservice.GET("/clusters/{cluster}/namespaces/{namespace}/applications/{application}").
|
||||
webservice.Route(webservice.GET("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}").
|
||||
To(handler.DescribeApplication).
|
||||
Returns(http.StatusOK, api.StatusOK, openpitrix2.Application{}).
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Doc("Describe the specified application of the namespace").
|
||||
Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("application", "application ID")))
|
||||
|
||||
webservice.Route(webservice.POST("/clusters/{cluster}/namespaces/{namespace}/applications").
|
||||
webservice.Route(webservice.POST("/runtimes/{runtime}/namespaces/{namespace}/applications").
|
||||
To(handler.CreateApplication).
|
||||
Doc("Deploy a new application").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Reads(openpitrix2.CreateClusterRequest{}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")))
|
||||
|
||||
webservice.Route(webservice.PATCH("/clusters/{cluster}/namespaces/{namespace}/applications/{application}").
|
||||
webservice.Route(webservice.PATCH("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}").
|
||||
Consumes(mimePatch...).
|
||||
To(handler.ModifyApplication).
|
||||
Doc("Modify application").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Reads(openpitrix2.ModifyClusterAttributesRequest{}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("application", "the id of the application cluster")))
|
||||
|
||||
webservice.Route(webservice.DELETE("/clusters/cluster/namespaces/{namespace}/applications/{application}").
|
||||
webservice.Route(webservice.DELETE("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}").
|
||||
To(handler.DeleteApplication).
|
||||
Doc("Delete the specified application").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("cluster", "the id of cluster(runtime")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("application", "the id of the application cluster")))
|
||||
|
||||
webservice.Route(webservice.POST("/clusters/{cluster}/namespaces/{namespace}/applications/{application}").
|
||||
webservice.Route(webservice.POST("/runtimes/{runtime}/namespaces/{namespace}/applications/{application}").
|
||||
Consumes(mimePatch...).
|
||||
To(handler.UpgradeApplication).
|
||||
Doc("Upgrade application").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}).
|
||||
Reads(openpitrix2.UpgradeClusterRequest{}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("cluster", "the id of cluster(runtime)")).
|
||||
Param(webservice.PathParameter("runtime", "the id of runtime")).
|
||||
Param(webservice.PathParameter("namespace", "the name of the project")).
|
||||
Param(webservice.PathParameter("application", "the id of the application cluster")))
|
||||
|
||||
@@ -347,6 +347,13 @@ func AddToContainer(c *restful.Container, factory informers.InformerFactory, op
|
||||
Reads(openpitrix2.RepoActionRequest{}).
|
||||
Returns(http.StatusOK, api.StatusOK, errors.Error{}).
|
||||
Param(webservice.PathParameter("repo", "repo id")))
|
||||
webservice.Route(webservice.GET("/events").
|
||||
To(handler.ListEvents).
|
||||
Doc("Get events").
|
||||
Param(webservice.QueryParameter(params.ConditionsParam, "query conditions,connect multiple conditions with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a").
|
||||
Required(false).
|
||||
DataFormat("key=%s,key~%s")).
|
||||
Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}))
|
||||
webservice.Route(webservice.GET("/repos/{repo}/events").
|
||||
To(handler.ListRepoEvents).
|
||||
Doc("Get repository events").
|
||||
|
||||
@@ -94,6 +94,9 @@ func (c *applicationOperator) ListApplications(conditions *params.Conditions, li
|
||||
if status := conditions.Match[Status]; status != "" {
|
||||
describeClustersRequest.Status = strings.Split(status, "|")
|
||||
}
|
||||
if zone := conditions.Match[Zone]; zone != "" {
|
||||
describeClustersRequest.Zone = []string{zone}
|
||||
}
|
||||
if orderBy != "" {
|
||||
describeClustersRequest.SortKey = &wrappers.StringValue{Value: orderBy}
|
||||
}
|
||||
@@ -360,8 +363,8 @@ func (c *applicationOperator) CreateApplication(runtimeId, namespace string, req
|
||||
AppId: &wrappers.StringValue{Value: request.AppId},
|
||||
VersionId: &wrappers.StringValue{Value: request.VersionId},
|
||||
RuntimeId: &wrappers.StringValue{Value: request.RuntimeId},
|
||||
Namespace: &wrappers.StringValue{Value: namespace},
|
||||
Conf: &wrappers.StringValue{Value: request.Conf},
|
||||
Zone: &wrappers.StringValue{Value: namespace},
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
@@ -407,7 +410,6 @@ func (c *applicationOperator) UpgradeApplication(request UpgradeClusterRequest)
|
||||
_, err := c.opClient.UpgradeCluster(openpitrix.ContextWithUsername(request.Username), &pb.UpgradeClusterRequest{
|
||||
ClusterId: &wrappers.StringValue{Value: request.ClusterId},
|
||||
VersionId: &wrappers.StringValue{Value: request.VersionId},
|
||||
Conf: &wrappers.StringValue{Value: request.Conf},
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
|
||||
@@ -1,19 +1,9 @@
|
||||
/*
|
||||
Copyright 2020 The KubeSphere Authors.
|
||||
<<<<<<< HEAD
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
=======
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
>>>>>>> support UpgradeCluster
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -104,6 +94,7 @@ func TestApplicationOperator_CreateApplication(t *testing.T) {
|
||||
VersionId: &wrappers.StringValue{Value: test.createClusterRequest.VersionId},
|
||||
RuntimeId: &wrappers.StringValue{Value: test.createClusterRequest.RuntimeId},
|
||||
Conf: &wrappers.StringValue{Value: test.createClusterRequest.Conf},
|
||||
Zone: &wrappers.StringValue{Value: test.targetNamespace},
|
||||
}).Return(&pb.CreateClusterResponse{}, nil).AnyTimes()
|
||||
|
||||
t.Run(test.description, func(t *testing.T) {
|
||||
|
||||
@@ -4,7 +4,6 @@ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
>>>>>>> support UpgradeCluster
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
||||
@@ -1,19 +1,9 @@
|
||||
/*
|
||||
Copyright 2020 The KubeSphere Authors.
|
||||
<<<<<<< HEAD
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
=======
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
>>>>>>> support UpgradeCluster
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
||||
@@ -1,19 +1,9 @@
|
||||
/*
|
||||
Copyright 2020 The KubeSphere Authors.
|
||||
<<<<<<< HEAD
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
=======
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
>>>>>>> support UpgradeCluster
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -44,6 +34,7 @@ type RepoInterface interface {
|
||||
ListRepos(conditions *params.Conditions, orderBy string, reverse bool, limit, offset int) (*models.PageableResponse, error)
|
||||
ValidateRepo(request *ValidateRepoRequest) (*ValidateRepoResponse, error)
|
||||
DoRepoAction(repoId string, request *RepoActionRequest) error
|
||||
ListEvents(conditions *params.Conditions, orderBy string, reverse bool, limit, offset int) (*models.PageableResponse, error)
|
||||
ListRepoEvents(repoId string, conditions *params.Conditions, limit, offset int) (*models.PageableResponse, error)
|
||||
}
|
||||
|
||||
@@ -274,3 +265,33 @@ func (c *repoOperator) ListRepoEvents(repoId string, conditions *params.Conditio
|
||||
|
||||
return &models.PageableResponse{Items: items, TotalCount: int(resp.TotalCount)}, nil
|
||||
}
|
||||
|
||||
func (c *repoOperator) ListEvents(conditions *params.Conditions, orderBy string, reverse bool, limit, offset int) (*models.PageableResponse, error) {
|
||||
describeRepoEventsRequest := &pb.DescribeRepoEventsRequest{}
|
||||
if repoId := conditions.Match["repo_id"]; repoId != "" {
|
||||
describeRepoEventsRequest.RepoId = strings.Split(repoId, "|")
|
||||
}
|
||||
if eventId := conditions.Match["repo_event_id"]; eventId != "" {
|
||||
describeRepoEventsRequest.RepoEventId = strings.Split(eventId, "|")
|
||||
}
|
||||
if status := conditions.Match["status"]; status != "" {
|
||||
describeRepoEventsRequest.Status = strings.Split(status, "|")
|
||||
}
|
||||
describeRepoEventsRequest.Limit = uint32(limit)
|
||||
describeRepoEventsRequest.Offset = uint32(offset)
|
||||
|
||||
resp, err := c.opClient.DescribeRepoEvents(openpitrix.SystemContext(), describeRepoEventsRequest)
|
||||
|
||||
if err != nil {
|
||||
klog.Error(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
items := make([]interface{}, 0)
|
||||
|
||||
for _, item := range resp.RepoEventSet {
|
||||
items = append(items, convertRepoEvent(item))
|
||||
}
|
||||
|
||||
return &models.PageableResponse{Items: items, TotalCount: int(resp.TotalCount)}, nil
|
||||
}
|
||||
|
||||
294
vendor/github.com/globalsign/mgo/bson/bson_corpus_spec_test_generator.go
generated
vendored
294
vendor/github.com/globalsign/mgo/bson/bson_corpus_spec_test_generator.go
generated
vendored
@@ -1,294 +0,0 @@
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"go/format"
|
||||
"html/template"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/globalsign/mgo/internal/json"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.SetFlags(0)
|
||||
log.SetPrefix(name + ": ")
|
||||
|
||||
var g Generator
|
||||
|
||||
fmt.Fprintf(&g, "// Code generated by \"%s.go\"; DO NOT EDIT\n\n", name)
|
||||
|
||||
src := g.generate()
|
||||
|
||||
err := ioutil.WriteFile(fmt.Sprintf("%s.go", strings.TrimSuffix(name, "_generator")), src, 0644)
|
||||
if err != nil {
|
||||
log.Fatalf("writing output: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Generator holds the state of the analysis. Primarily used to buffer
|
||||
// the output for format.Source.
|
||||
type Generator struct {
|
||||
bytes.Buffer // Accumulated output.
|
||||
}
|
||||
|
||||
// format returns the gofmt-ed contents of the Generator's buffer.
|
||||
func (g *Generator) format() []byte {
|
||||
src, err := format.Source(g.Bytes())
|
||||
if err != nil {
|
||||
// Should never happen, but can arise when developing this code.
|
||||
// The user can compile the output to see the error.
|
||||
log.Printf("warning: internal error: invalid Go generated: %s", err)
|
||||
log.Printf("warning: compile the package to analyze the error")
|
||||
return g.Bytes()
|
||||
}
|
||||
return src
|
||||
}
|
||||
|
||||
// EVERYTHING ABOVE IS CONSTANT BETWEEN THE GENERATORS
|
||||
|
||||
const name = "bson_corpus_spec_test_generator"
|
||||
|
||||
func (g *Generator) generate() []byte {
|
||||
|
||||
testFiles, err := filepath.Glob("./specdata/specifications/source/bson-corpus/tests/*.json")
|
||||
if err != nil {
|
||||
log.Fatalf("error reading bson-corpus files: %s", err)
|
||||
}
|
||||
|
||||
tests, err := g.loadTests(testFiles)
|
||||
if err != nil {
|
||||
log.Fatalf("error loading tests: %s", err)
|
||||
}
|
||||
|
||||
tmpl, err := g.getTemplate()
|
||||
if err != nil {
|
||||
log.Fatalf("error loading template: %s", err)
|
||||
}
|
||||
|
||||
tmpl.Execute(&g.Buffer, tests)
|
||||
|
||||
return g.format()
|
||||
}
|
||||
|
||||
func (g *Generator) loadTests(filenames []string) ([]*testDef, error) {
|
||||
var tests []*testDef
|
||||
for _, filename := range filenames {
|
||||
test, err := g.loadTest(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
tests = append(tests, test)
|
||||
}
|
||||
|
||||
return tests, nil
|
||||
}
|
||||
|
||||
func (g *Generator) loadTest(filename string) (*testDef, error) {
|
||||
content, err := ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var testDef testDef
|
||||
err = json.Unmarshal(content, &testDef)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
names := make(map[string]struct{})
|
||||
|
||||
for i := len(testDef.Valid) - 1; i >= 0; i-- {
|
||||
if testDef.BsonType == "0x05" && testDef.Valid[i].Description == "subtype 0x02" {
|
||||
testDef.Valid = append(testDef.Valid[:i], testDef.Valid[i+1:]...)
|
||||
continue
|
||||
}
|
||||
|
||||
name := cleanupFuncName(testDef.Description + "_" + testDef.Valid[i].Description)
|
||||
nameIdx := name
|
||||
j := 1
|
||||
for {
|
||||
if _, ok := names[nameIdx]; !ok {
|
||||
break
|
||||
}
|
||||
|
||||
nameIdx = fmt.Sprintf("%s_%d", name, j)
|
||||
}
|
||||
|
||||
names[nameIdx] = struct{}{}
|
||||
|
||||
testDef.Valid[i].TestDef = &testDef
|
||||
testDef.Valid[i].Name = nameIdx
|
||||
testDef.Valid[i].StructTest = testDef.TestKey != "" &&
|
||||
(testDef.BsonType != "0x05" || strings.Contains(testDef.Valid[i].Description, "0x00")) &&
|
||||
!testDef.Deprecated
|
||||
}
|
||||
|
||||
for i := len(testDef.DecodeErrors) - 1; i >= 0; i-- {
|
||||
if strings.Contains(testDef.DecodeErrors[i].Description, "UTF-8") {
|
||||
testDef.DecodeErrors = append(testDef.DecodeErrors[:i], testDef.DecodeErrors[i+1:]...)
|
||||
continue
|
||||
}
|
||||
|
||||
name := cleanupFuncName(testDef.Description + "_" + testDef.DecodeErrors[i].Description)
|
||||
nameIdx := name
|
||||
j := 1
|
||||
for {
|
||||
if _, ok := names[nameIdx]; !ok {
|
||||
break
|
||||
}
|
||||
|
||||
nameIdx = fmt.Sprintf("%s_%d", name, j)
|
||||
}
|
||||
names[nameIdx] = struct{}{}
|
||||
|
||||
testDef.DecodeErrors[i].Name = nameIdx
|
||||
}
|
||||
|
||||
return &testDef, nil
|
||||
}
|
||||
|
||||
func (g *Generator) getTemplate() (*template.Template, error) {
|
||||
content := `package bson_test
|
||||
|
||||
import (
|
||||
"encoding/hex"
|
||||
"time"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
"github.com/globalsign/mgo/bson"
|
||||
)
|
||||
|
||||
func testValid(c *C, in []byte, expected []byte, result interface{}) {
|
||||
err := bson.Unmarshal(in, result)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
out, err := bson.Marshal(result)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
c.Assert(string(expected), Equals, string(out), Commentf("roundtrip failed for %T, expected '%x' but got '%x'", result, expected, out))
|
||||
}
|
||||
|
||||
func testDecodeSkip(c *C, in []byte) {
|
||||
err := bson.Unmarshal(in, &struct{}{})
|
||||
c.Assert(err, IsNil)
|
||||
}
|
||||
|
||||
func testDecodeError(c *C, in []byte, result interface{}) {
|
||||
err := bson.Unmarshal(in, result)
|
||||
c.Assert(err, Not(IsNil))
|
||||
}
|
||||
|
||||
{{range .}}
|
||||
{{range .Valid}}
|
||||
func (s *S) Test{{.Name}}(c *C) {
|
||||
b, err := hex.DecodeString("{{.Bson}}")
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
{{if .CanonicalBson}}
|
||||
cb, err := hex.DecodeString("{{.CanonicalBson}}")
|
||||
c.Assert(err, IsNil)
|
||||
{{else}}
|
||||
cb := b
|
||||
{{end}}
|
||||
|
||||
var resultD bson.D
|
||||
testValid(c, b, cb, &resultD)
|
||||
{{if .StructTest}}var resultS struct {
|
||||
Element {{.TestDef.GoType}} ` + "`bson:\"{{.TestDef.TestKey}}\"`" + `
|
||||
}
|
||||
testValid(c, b, cb, &resultS){{end}}
|
||||
|
||||
testDecodeSkip(c, b)
|
||||
}
|
||||
{{end}}
|
||||
|
||||
{{range .DecodeErrors}}
|
||||
func (s *S) Test{{.Name}}(c *C) {
|
||||
b, err := hex.DecodeString("{{.Bson}}")
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
var resultD bson.D
|
||||
testDecodeError(c, b, &resultD)
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
`
|
||||
tmpl, err := template.New("").Parse(content)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return tmpl, nil
|
||||
}
|
||||
|
||||
func cleanupFuncName(name string) string {
|
||||
return strings.Map(func(r rune) rune {
|
||||
if (r >= 48 && r <= 57) || (r >= 65 && r <= 90) || (r >= 97 && r <= 122) {
|
||||
return r
|
||||
}
|
||||
return '_'
|
||||
}, name)
|
||||
}
|
||||
|
||||
type testDef struct {
|
||||
Description string `json:"description"`
|
||||
BsonType string `json:"bson_type"`
|
||||
TestKey string `json:"test_key"`
|
||||
Valid []*valid `json:"valid"`
|
||||
DecodeErrors []*decodeError `json:"decodeErrors"`
|
||||
Deprecated bool `json:"deprecated"`
|
||||
}
|
||||
|
||||
func (t *testDef) GoType() string {
|
||||
switch t.BsonType {
|
||||
case "0x01":
|
||||
return "float64"
|
||||
case "0x02":
|
||||
return "string"
|
||||
case "0x03":
|
||||
return "bson.D"
|
||||
case "0x04":
|
||||
return "[]interface{}"
|
||||
case "0x05":
|
||||
return "[]byte"
|
||||
case "0x07":
|
||||
return "bson.ObjectId"
|
||||
case "0x08":
|
||||
return "bool"
|
||||
case "0x09":
|
||||
return "time.Time"
|
||||
case "0x0E":
|
||||
return "string"
|
||||
case "0x10":
|
||||
return "int32"
|
||||
case "0x12":
|
||||
return "int64"
|
||||
case "0x13":
|
||||
return "bson.Decimal"
|
||||
default:
|
||||
return "interface{}"
|
||||
}
|
||||
}
|
||||
|
||||
type valid struct {
|
||||
Description string `json:"description"`
|
||||
Bson string `json:"bson"`
|
||||
CanonicalBson string `json:"canonical_bson"`
|
||||
|
||||
Name string
|
||||
StructTest bool
|
||||
TestDef *testDef
|
||||
}
|
||||
|
||||
type decodeError struct {
|
||||
Description string `json:"description"`
|
||||
Bson string `json:"bson"`
|
||||
|
||||
Name string
|
||||
}
|
||||
18
vendor/github.com/hashicorp/hcl/.gitignore
generated
vendored
18
vendor/github.com/hashicorp/hcl/.gitignore
generated
vendored
@@ -1,9 +1,9 @@
|
||||
y.output
|
||||
|
||||
# ignore intellij files
|
||||
.idea
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
|
||||
*.test
|
||||
y.output
|
||||
|
||||
# ignore intellij files
|
||||
.idea
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
|
||||
*.test
|
||||
|
||||
36
vendor/github.com/hashicorp/hcl/Makefile
generated
vendored
36
vendor/github.com/hashicorp/hcl/Makefile
generated
vendored
@@ -1,18 +1,18 @@
|
||||
TEST?=./...
|
||||
|
||||
default: test
|
||||
|
||||
fmt: generate
|
||||
go fmt ./...
|
||||
|
||||
test: generate
|
||||
go get -t ./...
|
||||
go test $(TEST) $(TESTARGS)
|
||||
|
||||
generate:
|
||||
go generate ./...
|
||||
|
||||
updatedeps:
|
||||
go get -u golang.org/x/tools/cmd/stringer
|
||||
|
||||
.PHONY: default generate test updatedeps
|
||||
TEST?=./...
|
||||
|
||||
default: test
|
||||
|
||||
fmt: generate
|
||||
go fmt ./...
|
||||
|
||||
test: generate
|
||||
go get -t ./...
|
||||
go test $(TEST) $(TESTARGS)
|
||||
|
||||
generate:
|
||||
go generate ./...
|
||||
|
||||
updatedeps:
|
||||
go get -u golang.org/x/tools/cmd/stringer
|
||||
|
||||
.PHONY: default generate test updatedeps
|
||||
|
||||
58
vendor/github.com/pelletier/go-toml/example-crlf.toml
generated
vendored
58
vendor/github.com/pelletier/go-toml/example-crlf.toml
generated
vendored
@@ -1,29 +1,29 @@
|
||||
# This is a TOML document. Boom.
|
||||
|
||||
title = "TOML Example"
|
||||
|
||||
[owner]
|
||||
name = "Tom Preston-Werner"
|
||||
organization = "GitHub"
|
||||
bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
|
||||
dob = 1979-05-27T07:32:00Z # First class dates? Why not?
|
||||
|
||||
[database]
|
||||
server = "192.168.1.1"
|
||||
ports = [ 8001, 8001, 8002 ]
|
||||
connection_max = 5000
|
||||
enabled = true
|
||||
|
||||
[servers]
|
||||
|
||||
# You can indent as you please. Tabs or spaces. TOML don't care.
|
||||
[servers.alpha]
|
||||
ip = "10.0.0.1"
|
||||
dc = "eqdc10"
|
||||
|
||||
[servers.beta]
|
||||
ip = "10.0.0.2"
|
||||
dc = "eqdc10"
|
||||
|
||||
[clients]
|
||||
data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it
|
||||
# This is a TOML document. Boom.
|
||||
|
||||
title = "TOML Example"
|
||||
|
||||
[owner]
|
||||
name = "Tom Preston-Werner"
|
||||
organization = "GitHub"
|
||||
bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
|
||||
dob = 1979-05-27T07:32:00Z # First class dates? Why not?
|
||||
|
||||
[database]
|
||||
server = "192.168.1.1"
|
||||
ports = [ 8001, 8001, 8002 ]
|
||||
connection_max = 5000
|
||||
enabled = true
|
||||
|
||||
[servers]
|
||||
|
||||
# You can indent as you please. Tabs or spaces. TOML don't care.
|
||||
[servers.alpha]
|
||||
ip = "10.0.0.1"
|
||||
dc = "eqdc10"
|
||||
|
||||
[servers.beta]
|
||||
ip = "10.0.0.2"
|
||||
dc = "eqdc10"
|
||||
|
||||
[clients]
|
||||
data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it
|
||||
|
||||
28
vendor/github.com/sirupsen/logrus/appveyor.yml
generated
vendored
28
vendor/github.com/sirupsen/logrus/appveyor.yml
generated
vendored
@@ -1,14 +1,14 @@
|
||||
version: "{build}"
|
||||
platform: x64
|
||||
clone_folder: c:\gopath\src\github.com\sirupsen\logrus
|
||||
environment:
|
||||
GOPATH: c:\gopath
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
install:
|
||||
- set PATH=%GOPATH%\bin;c:\go\bin;%PATH%
|
||||
- go version
|
||||
build_script:
|
||||
- go get -t
|
||||
- go test
|
||||
version: "{build}"
|
||||
platform: x64
|
||||
clone_folder: c:\gopath\src\github.com\sirupsen\logrus
|
||||
environment:
|
||||
GOPATH: c:\gopath
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
install:
|
||||
- set PATH=%GOPATH%\bin;c:\go\bin;%PATH%
|
||||
- go version
|
||||
build_script:
|
||||
- go get -t
|
||||
- go test
|
||||
|
||||
42
vendor/github.com/spf13/afero/.travis.yml
generated
vendored
42
vendor/github.com/spf13/afero/.travis.yml
generated
vendored
@@ -1,21 +1,21 @@
|
||||
sudo: false
|
||||
language: go
|
||||
|
||||
go:
|
||||
- 1.9
|
||||
- "1.10"
|
||||
- tip
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- go: tip
|
||||
fast_finish: true
|
||||
|
||||
script:
|
||||
- go build
|
||||
- go test -race -v ./...
|
||||
|
||||
sudo: false
|
||||
language: go
|
||||
|
||||
go:
|
||||
- 1.9
|
||||
- "1.10"
|
||||
- tip
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- go: tip
|
||||
fast_finish: true
|
||||
|
||||
script:
|
||||
- go build
|
||||
- go test -race -v ./...
|
||||
|
||||
|
||||
712
vendor/golang.org/x/net/html/atom/gen.go
generated
vendored
712
vendor/golang.org/x/net/html/atom/gen.go
generated
vendored
@@ -1,712 +0,0 @@
|
||||
// Copyright 2012 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
//go:generate go run gen.go
|
||||
//go:generate go run gen.go -test
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"flag"
|
||||
"fmt"
|
||||
"go/format"
|
||||
"io/ioutil"
|
||||
"math/rand"
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// identifier converts s to a Go exported identifier.
|
||||
// It converts "div" to "Div" and "accept-charset" to "AcceptCharset".
|
||||
func identifier(s string) string {
|
||||
b := make([]byte, 0, len(s))
|
||||
cap := true
|
||||
for _, c := range s {
|
||||
if c == '-' {
|
||||
cap = true
|
||||
continue
|
||||
}
|
||||
if cap && 'a' <= c && c <= 'z' {
|
||||
c -= 'a' - 'A'
|
||||
}
|
||||
cap = false
|
||||
b = append(b, byte(c))
|
||||
}
|
||||
return string(b)
|
||||
}
|
||||
|
||||
var test = flag.Bool("test", false, "generate table_test.go")
|
||||
|
||||
func genFile(name string, buf *bytes.Buffer) {
|
||||
b, err := format.Source(buf.Bytes())
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
if err := ioutil.WriteFile(name, b, 0644); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
var all []string
|
||||
all = append(all, elements...)
|
||||
all = append(all, attributes...)
|
||||
all = append(all, eventHandlers...)
|
||||
all = append(all, extra...)
|
||||
sort.Strings(all)
|
||||
|
||||
// uniq - lists have dups
|
||||
w := 0
|
||||
for _, s := range all {
|
||||
if w == 0 || all[w-1] != s {
|
||||
all[w] = s
|
||||
w++
|
||||
}
|
||||
}
|
||||
all = all[:w]
|
||||
|
||||
if *test {
|
||||
var buf bytes.Buffer
|
||||
fmt.Fprintln(&buf, "// Code generated by go generate gen.go; DO NOT EDIT.\n")
|
||||
fmt.Fprintln(&buf, "//go:generate go run gen.go -test\n")
|
||||
fmt.Fprintln(&buf, "package atom\n")
|
||||
fmt.Fprintln(&buf, "var testAtomList = []string{")
|
||||
for _, s := range all {
|
||||
fmt.Fprintf(&buf, "\t%q,\n", s)
|
||||
}
|
||||
fmt.Fprintln(&buf, "}")
|
||||
|
||||
genFile("table_test.go", &buf)
|
||||
return
|
||||
}
|
||||
|
||||
// Find hash that minimizes table size.
|
||||
var best *table
|
||||
for i := 0; i < 1000000; i++ {
|
||||
if best != nil && 1<<(best.k-1) < len(all) {
|
||||
break
|
||||
}
|
||||
h := rand.Uint32()
|
||||
for k := uint(0); k <= 16; k++ {
|
||||
if best != nil && k >= best.k {
|
||||
break
|
||||
}
|
||||
var t table
|
||||
if t.init(h, k, all) {
|
||||
best = &t
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if best == nil {
|
||||
fmt.Fprintf(os.Stderr, "failed to construct string table\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Lay out strings, using overlaps when possible.
|
||||
layout := append([]string{}, all...)
|
||||
|
||||
// Remove strings that are substrings of other strings
|
||||
for changed := true; changed; {
|
||||
changed = false
|
||||
for i, s := range layout {
|
||||
if s == "" {
|
||||
continue
|
||||
}
|
||||
for j, t := range layout {
|
||||
if i != j && t != "" && strings.Contains(s, t) {
|
||||
changed = true
|
||||
layout[j] = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Join strings where one suffix matches another prefix.
|
||||
for {
|
||||
// Find best i, j, k such that layout[i][len-k:] == layout[j][:k],
|
||||
// maximizing overlap length k.
|
||||
besti := -1
|
||||
bestj := -1
|
||||
bestk := 0
|
||||
for i, s := range layout {
|
||||
if s == "" {
|
||||
continue
|
||||
}
|
||||
for j, t := range layout {
|
||||
if i == j {
|
||||
continue
|
||||
}
|
||||
for k := bestk + 1; k <= len(s) && k <= len(t); k++ {
|
||||
if s[len(s)-k:] == t[:k] {
|
||||
besti = i
|
||||
bestj = j
|
||||
bestk = k
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if bestk > 0 {
|
||||
layout[besti] += layout[bestj][bestk:]
|
||||
layout[bestj] = ""
|
||||
continue
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
text := strings.Join(layout, "")
|
||||
|
||||
atom := map[string]uint32{}
|
||||
for _, s := range all {
|
||||
off := strings.Index(text, s)
|
||||
if off < 0 {
|
||||
panic("lost string " + s)
|
||||
}
|
||||
atom[s] = uint32(off<<8 | len(s))
|
||||
}
|
||||
|
||||
var buf bytes.Buffer
|
||||
// Generate the Go code.
|
||||
fmt.Fprintln(&buf, "// Code generated by go generate gen.go; DO NOT EDIT.\n")
|
||||
fmt.Fprintln(&buf, "//go:generate go run gen.go\n")
|
||||
fmt.Fprintln(&buf, "package atom\n\nconst (")
|
||||
|
||||
// compute max len
|
||||
maxLen := 0
|
||||
for _, s := range all {
|
||||
if maxLen < len(s) {
|
||||
maxLen = len(s)
|
||||
}
|
||||
fmt.Fprintf(&buf, "\t%s Atom = %#x\n", identifier(s), atom[s])
|
||||
}
|
||||
fmt.Fprintln(&buf, ")\n")
|
||||
|
||||
fmt.Fprintf(&buf, "const hash0 = %#x\n\n", best.h0)
|
||||
fmt.Fprintf(&buf, "const maxAtomLen = %d\n\n", maxLen)
|
||||
|
||||
fmt.Fprintf(&buf, "var table = [1<<%d]Atom{\n", best.k)
|
||||
for i, s := range best.tab {
|
||||
if s == "" {
|
||||
continue
|
||||
}
|
||||
fmt.Fprintf(&buf, "\t%#x: %#x, // %s\n", i, atom[s], s)
|
||||
}
|
||||
fmt.Fprintf(&buf, "}\n")
|
||||
datasize := (1 << best.k) * 4
|
||||
|
||||
fmt.Fprintln(&buf, "const atomText =")
|
||||
textsize := len(text)
|
||||
for len(text) > 60 {
|
||||
fmt.Fprintf(&buf, "\t%q +\n", text[:60])
|
||||
text = text[60:]
|
||||
}
|
||||
fmt.Fprintf(&buf, "\t%q\n\n", text)
|
||||
|
||||
genFile("table.go", &buf)
|
||||
|
||||
fmt.Fprintf(os.Stdout, "%d atoms; %d string bytes + %d tables = %d total data\n", len(all), textsize, datasize, textsize+datasize)
|
||||
}
|
||||
|
||||
type byLen []string
|
||||
|
||||
func (x byLen) Less(i, j int) bool { return len(x[i]) > len(x[j]) }
|
||||
func (x byLen) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
|
||||
func (x byLen) Len() int { return len(x) }
|
||||
|
||||
// fnv computes the FNV hash with an arbitrary starting value h.
|
||||
func fnv(h uint32, s string) uint32 {
|
||||
for i := 0; i < len(s); i++ {
|
||||
h ^= uint32(s[i])
|
||||
h *= 16777619
|
||||
}
|
||||
return h
|
||||
}
|
||||
|
||||
// A table represents an attempt at constructing the lookup table.
|
||||
// The lookup table uses cuckoo hashing, meaning that each string
|
||||
// can be found in one of two positions.
|
||||
type table struct {
|
||||
h0 uint32
|
||||
k uint
|
||||
mask uint32
|
||||
tab []string
|
||||
}
|
||||
|
||||
// hash returns the two hashes for s.
|
||||
func (t *table) hash(s string) (h1, h2 uint32) {
|
||||
h := fnv(t.h0, s)
|
||||
h1 = h & t.mask
|
||||
h2 = (h >> 16) & t.mask
|
||||
return
|
||||
}
|
||||
|
||||
// init initializes the table with the given parameters.
|
||||
// h0 is the initial hash value,
|
||||
// k is the number of bits of hash value to use, and
|
||||
// x is the list of strings to store in the table.
|
||||
// init returns false if the table cannot be constructed.
|
||||
func (t *table) init(h0 uint32, k uint, x []string) bool {
|
||||
t.h0 = h0
|
||||
t.k = k
|
||||
t.tab = make([]string, 1<<k)
|
||||
t.mask = 1<<k - 1
|
||||
for _, s := range x {
|
||||
if !t.insert(s) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// insert inserts s in the table.
|
||||
func (t *table) insert(s string) bool {
|
||||
h1, h2 := t.hash(s)
|
||||
if t.tab[h1] == "" {
|
||||
t.tab[h1] = s
|
||||
return true
|
||||
}
|
||||
if t.tab[h2] == "" {
|
||||
t.tab[h2] = s
|
||||
return true
|
||||
}
|
||||
if t.push(h1, 0) {
|
||||
t.tab[h1] = s
|
||||
return true
|
||||
}
|
||||
if t.push(h2, 0) {
|
||||
t.tab[h2] = s
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// push attempts to push aside the entry in slot i.
|
||||
func (t *table) push(i uint32, depth int) bool {
|
||||
if depth > len(t.tab) {
|
||||
return false
|
||||
}
|
||||
s := t.tab[i]
|
||||
h1, h2 := t.hash(s)
|
||||
j := h1 + h2 - i
|
||||
if t.tab[j] != "" && !t.push(j, depth+1) {
|
||||
return false
|
||||
}
|
||||
t.tab[j] = s
|
||||
return true
|
||||
}
|
||||
|
||||
// The lists of element names and attribute keys were taken from
|
||||
// https://html.spec.whatwg.org/multipage/indices.html#index
|
||||
// as of the "HTML Living Standard - Last Updated 16 April 2018" version.
|
||||
|
||||
// "command", "keygen" and "menuitem" have been removed from the spec,
|
||||
// but are kept here for backwards compatibility.
|
||||
var elements = []string{
|
||||
"a",
|
||||
"abbr",
|
||||
"address",
|
||||
"area",
|
||||
"article",
|
||||
"aside",
|
||||
"audio",
|
||||
"b",
|
||||
"base",
|
||||
"bdi",
|
||||
"bdo",
|
||||
"blockquote",
|
||||
"body",
|
||||
"br",
|
||||
"button",
|
||||
"canvas",
|
||||
"caption",
|
||||
"cite",
|
||||
"code",
|
||||
"col",
|
||||
"colgroup",
|
||||
"command",
|
||||
"data",
|
||||
"datalist",
|
||||
"dd",
|
||||
"del",
|
||||
"details",
|
||||
"dfn",
|
||||
"dialog",
|
||||
"div",
|
||||
"dl",
|
||||
"dt",
|
||||
"em",
|
||||
"embed",
|
||||
"fieldset",
|
||||
"figcaption",
|
||||
"figure",
|
||||
"footer",
|
||||
"form",
|
||||
"h1",
|
||||
"h2",
|
||||
"h3",
|
||||
"h4",
|
||||
"h5",
|
||||
"h6",
|
||||
"head",
|
||||
"header",
|
||||
"hgroup",
|
||||
"hr",
|
||||
"html",
|
||||
"i",
|
||||
"iframe",
|
||||
"img",
|
||||
"input",
|
||||
"ins",
|
||||
"kbd",
|
||||
"keygen",
|
||||
"label",
|
||||
"legend",
|
||||
"li",
|
||||
"link",
|
||||
"main",
|
||||
"map",
|
||||
"mark",
|
||||
"menu",
|
||||
"menuitem",
|
||||
"meta",
|
||||
"meter",
|
||||
"nav",
|
||||
"noscript",
|
||||
"object",
|
||||
"ol",
|
||||
"optgroup",
|
||||
"option",
|
||||
"output",
|
||||
"p",
|
||||
"param",
|
||||
"picture",
|
||||
"pre",
|
||||
"progress",
|
||||
"q",
|
||||
"rp",
|
||||
"rt",
|
||||
"ruby",
|
||||
"s",
|
||||
"samp",
|
||||
"script",
|
||||
"section",
|
||||
"select",
|
||||
"slot",
|
||||
"small",
|
||||
"source",
|
||||
"span",
|
||||
"strong",
|
||||
"style",
|
||||
"sub",
|
||||
"summary",
|
||||
"sup",
|
||||
"table",
|
||||
"tbody",
|
||||
"td",
|
||||
"template",
|
||||
"textarea",
|
||||
"tfoot",
|
||||
"th",
|
||||
"thead",
|
||||
"time",
|
||||
"title",
|
||||
"tr",
|
||||
"track",
|
||||
"u",
|
||||
"ul",
|
||||
"var",
|
||||
"video",
|
||||
"wbr",
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/indices.html#attributes-3
|
||||
//
|
||||
// "challenge", "command", "contextmenu", "dropzone", "icon", "keytype", "mediagroup",
|
||||
// "radiogroup", "spellcheck", "scoped", "seamless", "sortable" and "sorted" have been removed from the spec,
|
||||
// but are kept here for backwards compatibility.
|
||||
var attributes = []string{
|
||||
"abbr",
|
||||
"accept",
|
||||
"accept-charset",
|
||||
"accesskey",
|
||||
"action",
|
||||
"allowfullscreen",
|
||||
"allowpaymentrequest",
|
||||
"allowusermedia",
|
||||
"alt",
|
||||
"as",
|
||||
"async",
|
||||
"autocomplete",
|
||||
"autofocus",
|
||||
"autoplay",
|
||||
"challenge",
|
||||
"charset",
|
||||
"checked",
|
||||
"cite",
|
||||
"class",
|
||||
"color",
|
||||
"cols",
|
||||
"colspan",
|
||||
"command",
|
||||
"content",
|
||||
"contenteditable",
|
||||
"contextmenu",
|
||||
"controls",
|
||||
"coords",
|
||||
"crossorigin",
|
||||
"data",
|
||||
"datetime",
|
||||
"default",
|
||||
"defer",
|
||||
"dir",
|
||||
"dirname",
|
||||
"disabled",
|
||||
"download",
|
||||
"draggable",
|
||||
"dropzone",
|
||||
"enctype",
|
||||
"for",
|
||||
"form",
|
||||
"formaction",
|
||||
"formenctype",
|
||||
"formmethod",
|
||||
"formnovalidate",
|
||||
"formtarget",
|
||||
"headers",
|
||||
"height",
|
||||
"hidden",
|
||||
"high",
|
||||
"href",
|
||||
"hreflang",
|
||||
"http-equiv",
|
||||
"icon",
|
||||
"id",
|
||||
"inputmode",
|
||||
"integrity",
|
||||
"is",
|
||||
"ismap",
|
||||
"itemid",
|
||||
"itemprop",
|
||||
"itemref",
|
||||
"itemscope",
|
||||
"itemtype",
|
||||
"keytype",
|
||||
"kind",
|
||||
"label",
|
||||
"lang",
|
||||
"list",
|
||||
"loop",
|
||||
"low",
|
||||
"manifest",
|
||||
"max",
|
||||
"maxlength",
|
||||
"media",
|
||||
"mediagroup",
|
||||
"method",
|
||||
"min",
|
||||
"minlength",
|
||||
"multiple",
|
||||
"muted",
|
||||
"name",
|
||||
"nomodule",
|
||||
"nonce",
|
||||
"novalidate",
|
||||
"open",
|
||||
"optimum",
|
||||
"pattern",
|
||||
"ping",
|
||||
"placeholder",
|
||||
"playsinline",
|
||||
"poster",
|
||||
"preload",
|
||||
"radiogroup",
|
||||
"readonly",
|
||||
"referrerpolicy",
|
||||
"rel",
|
||||
"required",
|
||||
"reversed",
|
||||
"rows",
|
||||
"rowspan",
|
||||
"sandbox",
|
||||
"spellcheck",
|
||||
"scope",
|
||||
"scoped",
|
||||
"seamless",
|
||||
"selected",
|
||||
"shape",
|
||||
"size",
|
||||
"sizes",
|
||||
"sortable",
|
||||
"sorted",
|
||||
"slot",
|
||||
"span",
|
||||
"spellcheck",
|
||||
"src",
|
||||
"srcdoc",
|
||||
"srclang",
|
||||
"srcset",
|
||||
"start",
|
||||
"step",
|
||||
"style",
|
||||
"tabindex",
|
||||
"target",
|
||||
"title",
|
||||
"translate",
|
||||
"type",
|
||||
"typemustmatch",
|
||||
"updateviacache",
|
||||
"usemap",
|
||||
"value",
|
||||
"width",
|
||||
"workertype",
|
||||
"wrap",
|
||||
}
|
||||
|
||||
// "onautocomplete", "onautocompleteerror", "onmousewheel",
|
||||
// "onshow" and "onsort" have been removed from the spec,
|
||||
// but are kept here for backwards compatibility.
|
||||
var eventHandlers = []string{
|
||||
"onabort",
|
||||
"onautocomplete",
|
||||
"onautocompleteerror",
|
||||
"onauxclick",
|
||||
"onafterprint",
|
||||
"onbeforeprint",
|
||||
"onbeforeunload",
|
||||
"onblur",
|
||||
"oncancel",
|
||||
"oncanplay",
|
||||
"oncanplaythrough",
|
||||
"onchange",
|
||||
"onclick",
|
||||
"onclose",
|
||||
"oncontextmenu",
|
||||
"oncopy",
|
||||
"oncuechange",
|
||||
"oncut",
|
||||
"ondblclick",
|
||||
"ondrag",
|
||||
"ondragend",
|
||||
"ondragenter",
|
||||
"ondragexit",
|
||||
"ondragleave",
|
||||
"ondragover",
|
||||
"ondragstart",
|
||||
"ondrop",
|
||||
"ondurationchange",
|
||||
"onemptied",
|
||||
"onended",
|
||||
"onerror",
|
||||
"onfocus",
|
||||
"onhashchange",
|
||||
"oninput",
|
||||
"oninvalid",
|
||||
"onkeydown",
|
||||
"onkeypress",
|
||||
"onkeyup",
|
||||
"onlanguagechange",
|
||||
"onload",
|
||||
"onloadeddata",
|
||||
"onloadedmetadata",
|
||||
"onloadend",
|
||||
"onloadstart",
|
||||
"onmessage",
|
||||
"onmessageerror",
|
||||
"onmousedown",
|
||||
"onmouseenter",
|
||||
"onmouseleave",
|
||||
"onmousemove",
|
||||
"onmouseout",
|
||||
"onmouseover",
|
||||
"onmouseup",
|
||||
"onmousewheel",
|
||||
"onwheel",
|
||||
"onoffline",
|
||||
"ononline",
|
||||
"onpagehide",
|
||||
"onpageshow",
|
||||
"onpaste",
|
||||
"onpause",
|
||||
"onplay",
|
||||
"onplaying",
|
||||
"onpopstate",
|
||||
"onprogress",
|
||||
"onratechange",
|
||||
"onreset",
|
||||
"onresize",
|
||||
"onrejectionhandled",
|
||||
"onscroll",
|
||||
"onsecuritypolicyviolation",
|
||||
"onseeked",
|
||||
"onseeking",
|
||||
"onselect",
|
||||
"onshow",
|
||||
"onsort",
|
||||
"onstalled",
|
||||
"onstorage",
|
||||
"onsubmit",
|
||||
"onsuspend",
|
||||
"ontimeupdate",
|
||||
"ontoggle",
|
||||
"onunhandledrejection",
|
||||
"onunload",
|
||||
"onvolumechange",
|
||||
"onwaiting",
|
||||
}
|
||||
|
||||
// extra are ad-hoc values not covered by any of the lists above.
|
||||
var extra = []string{
|
||||
"acronym",
|
||||
"align",
|
||||
"annotation",
|
||||
"annotation-xml",
|
||||
"applet",
|
||||
"basefont",
|
||||
"bgsound",
|
||||
"big",
|
||||
"blink",
|
||||
"center",
|
||||
"color",
|
||||
"desc",
|
||||
"face",
|
||||
"font",
|
||||
"foreignObject", // HTML is case-insensitive, but SVG-embedded-in-HTML is case-sensitive.
|
||||
"foreignobject",
|
||||
"frame",
|
||||
"frameset",
|
||||
"image",
|
||||
"isindex",
|
||||
"listing",
|
||||
"malignmark",
|
||||
"marquee",
|
||||
"math",
|
||||
"mglyph",
|
||||
"mi",
|
||||
"mn",
|
||||
"mo",
|
||||
"ms",
|
||||
"mtext",
|
||||
"nobr",
|
||||
"noembed",
|
||||
"noframes",
|
||||
"plaintext",
|
||||
"prompt",
|
||||
"public",
|
||||
"rb",
|
||||
"rtc",
|
||||
"spacer",
|
||||
"strike",
|
||||
"svg",
|
||||
"system",
|
||||
"tt",
|
||||
"xmp",
|
||||
}
|
||||
61
vendor/golang.org/x/sys/unix/mkasm_darwin.go
generated
vendored
61
vendor/golang.org/x/sys/unix/mkasm_darwin.go
generated
vendored
@@ -1,61 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
// mkasm_darwin.go generates assembly trampolines to call libSystem routines from Go.
|
||||
//This program must be run after mksyscall.go.
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
in1, err := ioutil.ReadFile("syscall_darwin.go")
|
||||
if err != nil {
|
||||
log.Fatalf("can't open syscall_darwin.go: %s", err)
|
||||
}
|
||||
arch := os.Args[1]
|
||||
in2, err := ioutil.ReadFile(fmt.Sprintf("syscall_darwin_%s.go", arch))
|
||||
if err != nil {
|
||||
log.Fatalf("can't open syscall_darwin_%s.go: %s", arch, err)
|
||||
}
|
||||
in3, err := ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.go", arch))
|
||||
if err != nil {
|
||||
log.Fatalf("can't open zsyscall_darwin_%s.go: %s", arch, err)
|
||||
}
|
||||
in := string(in1) + string(in2) + string(in3)
|
||||
|
||||
trampolines := map[string]bool{}
|
||||
|
||||
var out bytes.Buffer
|
||||
|
||||
fmt.Fprintf(&out, "// go run mkasm_darwin.go %s\n", strings.Join(os.Args[1:], " "))
|
||||
fmt.Fprintf(&out, "// Code generated by the command above; DO NOT EDIT.\n")
|
||||
fmt.Fprintf(&out, "\n")
|
||||
fmt.Fprintf(&out, "// +build go1.12\n")
|
||||
fmt.Fprintf(&out, "\n")
|
||||
fmt.Fprintf(&out, "#include \"textflag.h\"\n")
|
||||
for _, line := range strings.Split(in, "\n") {
|
||||
if !strings.HasPrefix(line, "func ") || !strings.HasSuffix(line, "_trampoline()") {
|
||||
continue
|
||||
}
|
||||
fn := line[5 : len(line)-13]
|
||||
if !trampolines[fn] {
|
||||
trampolines[fn] = true
|
||||
fmt.Fprintf(&out, "TEXT ·%s_trampoline(SB),NOSPLIT,$0-0\n", fn)
|
||||
fmt.Fprintf(&out, "\tJMP\t%s(SB)\n", fn)
|
||||
}
|
||||
}
|
||||
err = ioutil.WriteFile(fmt.Sprintf("zsyscall_darwin_%s.s", arch), out.Bytes(), 0644)
|
||||
if err != nil {
|
||||
log.Fatalf("can't write zsyscall_darwin_%s.s: %s", arch, err)
|
||||
}
|
||||
}
|
||||
106
vendor/golang.org/x/sys/unix/mkpost.go
generated
vendored
106
vendor/golang.org/x/sys/unix/mkpost.go
generated
vendored
@@ -1,106 +0,0 @@
|
||||
// Copyright 2016 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
// mkpost processes the output of cgo -godefs to
|
||||
// modify the generated types. It is used to clean up
|
||||
// the sys API in an architecture specific manner.
|
||||
//
|
||||
// mkpost is run after cgo -godefs; see README.md.
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"go/format"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Get the OS and architecture (using GOARCH_TARGET if it exists)
|
||||
goos := os.Getenv("GOOS")
|
||||
goarch := os.Getenv("GOARCH_TARGET")
|
||||
if goarch == "" {
|
||||
goarch = os.Getenv("GOARCH")
|
||||
}
|
||||
// Check that we are using the Docker-based build system if we should be.
|
||||
if goos == "linux" {
|
||||
if os.Getenv("GOLANG_SYS_BUILD") != "docker" {
|
||||
os.Stderr.WriteString("In the Docker-based build system, mkpost should not be called directly.\n")
|
||||
os.Stderr.WriteString("See README.md\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
b, err := ioutil.ReadAll(os.Stdin)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Intentionally export __val fields in Fsid and Sigset_t
|
||||
valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__val(\s+\S+\s+)}`)
|
||||
b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$3}"))
|
||||
|
||||
// Intentionally export __fds_bits field in FdSet
|
||||
fdSetRegex := regexp.MustCompile(`type (FdSet) struct {(\s+)X__fds_bits(\s+\S+\s+)}`)
|
||||
b = fdSetRegex.ReplaceAll(b, []byte("type $1 struct {${2}Bits$3}"))
|
||||
|
||||
// If we have empty Ptrace structs, we should delete them. Only s390x emits
|
||||
// nonempty Ptrace structs.
|
||||
ptraceRexexp := regexp.MustCompile(`type Ptrace((Psw|Fpregs|Per) struct {\s*})`)
|
||||
b = ptraceRexexp.ReplaceAll(b, nil)
|
||||
|
||||
// Replace the control_regs union with a blank identifier for now.
|
||||
controlRegsRegex := regexp.MustCompile(`(Control_regs)\s+\[0\]uint64`)
|
||||
b = controlRegsRegex.ReplaceAll(b, []byte("_ [0]uint64"))
|
||||
|
||||
// Remove fields that are added by glibc
|
||||
// Note that this is unstable as the identifers are private.
|
||||
removeFieldsRegex := regexp.MustCompile(`X__glibc\S*`)
|
||||
b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
|
||||
|
||||
// Convert [65]int8 to [65]byte in Utsname members to simplify
|
||||
// conversion to string; see golang.org/issue/20753
|
||||
convertUtsnameRegex := regexp.MustCompile(`((Sys|Node|Domain)name|Release|Version|Machine)(\s+)\[(\d+)\]u?int8`)
|
||||
b = convertUtsnameRegex.ReplaceAll(b, []byte("$1$3[$4]byte"))
|
||||
|
||||
// Convert [1024]int8 to [1024]byte in Ptmget members
|
||||
convertPtmget := regexp.MustCompile(`([SC]n)(\s+)\[(\d+)\]u?int8`)
|
||||
b = convertPtmget.ReplaceAll(b, []byte("$1[$3]byte"))
|
||||
|
||||
// Remove spare fields (e.g. in Statx_t)
|
||||
spareFieldsRegex := regexp.MustCompile(`X__spare\S*`)
|
||||
b = spareFieldsRegex.ReplaceAll(b, []byte("_"))
|
||||
|
||||
// Remove cgo padding fields
|
||||
removePaddingFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`)
|
||||
b = removePaddingFieldsRegex.ReplaceAll(b, []byte("_"))
|
||||
|
||||
// Remove padding, hidden, or unused fields
|
||||
removeFieldsRegex = regexp.MustCompile(`\b(X_\S+|Padding)`)
|
||||
b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
|
||||
|
||||
// Remove the first line of warning from cgo
|
||||
b = b[bytes.IndexByte(b, '\n')+1:]
|
||||
// Modify the command in the header to include:
|
||||
// mkpost, our own warning, and a build tag.
|
||||
replacement := fmt.Sprintf(`$1 | go run mkpost.go
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s,%s`, goarch, goos)
|
||||
cgoCommandRegex := regexp.MustCompile(`(cgo -godefs .*)`)
|
||||
b = cgoCommandRegex.ReplaceAll(b, []byte(replacement))
|
||||
|
||||
// gofmt
|
||||
b, err = format.Source(b)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
os.Stdout.Write(b)
|
||||
}
|
||||
402
vendor/golang.org/x/sys/unix/mksyscall.go
generated
vendored
402
vendor/golang.org/x/sys/unix/mksyscall.go
generated
vendored
@@ -1,402 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
This program reads a file containing function prototypes
|
||||
(like syscall_darwin.go) and generates system call bodies.
|
||||
The prototypes are marked by lines beginning with "//sys"
|
||||
and read like func declarations if //sys is replaced by func, but:
|
||||
* The parameter lists must give a name for each argument.
|
||||
This includes return parameters.
|
||||
* The parameter lists must give a type for each argument:
|
||||
the (x, y, z int) shorthand is not allowed.
|
||||
* If the return parameter is an error number, it must be named errno.
|
||||
|
||||
A line beginning with //sysnb is like //sys, except that the
|
||||
goroutine will not be suspended during the execution of the system
|
||||
call. This must only be used for system calls which can never
|
||||
block, as otherwise the system call could cause all goroutines to
|
||||
hang.
|
||||
*/
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
b32 = flag.Bool("b32", false, "32bit big-endian")
|
||||
l32 = flag.Bool("l32", false, "32bit little-endian")
|
||||
plan9 = flag.Bool("plan9", false, "plan9")
|
||||
openbsd = flag.Bool("openbsd", false, "openbsd")
|
||||
netbsd = flag.Bool("netbsd", false, "netbsd")
|
||||
dragonfly = flag.Bool("dragonfly", false, "dragonfly")
|
||||
arm = flag.Bool("arm", false, "arm") // 64-bit value should use (even, odd)-pair
|
||||
tags = flag.String("tags", "", "build tags")
|
||||
filename = flag.String("output", "", "output file name (standard output if omitted)")
|
||||
)
|
||||
|
||||
// cmdLine returns this programs's commandline arguments
|
||||
func cmdLine() string {
|
||||
return "go run mksyscall.go " + strings.Join(os.Args[1:], " ")
|
||||
}
|
||||
|
||||
// buildTags returns build tags
|
||||
func buildTags() string {
|
||||
return *tags
|
||||
}
|
||||
|
||||
// Param is function parameter
|
||||
type Param struct {
|
||||
Name string
|
||||
Type string
|
||||
}
|
||||
|
||||
// usage prints the program usage
|
||||
func usage() {
|
||||
fmt.Fprintf(os.Stderr, "usage: go run mksyscall.go [-b32 | -l32] [-tags x,y] [file ...]\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// parseParamList parses parameter list and returns a slice of parameters
|
||||
func parseParamList(list string) []string {
|
||||
list = strings.TrimSpace(list)
|
||||
if list == "" {
|
||||
return []string{}
|
||||
}
|
||||
return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
|
||||
}
|
||||
|
||||
// parseParam splits a parameter into name and type
|
||||
func parseParam(p string) Param {
|
||||
ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
|
||||
if ps == nil {
|
||||
fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
|
||||
os.Exit(1)
|
||||
}
|
||||
return Param{ps[1], ps[2]}
|
||||
}
|
||||
|
||||
func main() {
|
||||
// Get the OS and architecture (using GOARCH_TARGET if it exists)
|
||||
goos := os.Getenv("GOOS")
|
||||
if goos == "" {
|
||||
fmt.Fprintln(os.Stderr, "GOOS not defined in environment")
|
||||
os.Exit(1)
|
||||
}
|
||||
goarch := os.Getenv("GOARCH_TARGET")
|
||||
if goarch == "" {
|
||||
goarch = os.Getenv("GOARCH")
|
||||
}
|
||||
|
||||
// Check that we are using the Docker-based build system if we should
|
||||
if goos == "linux" {
|
||||
if os.Getenv("GOLANG_SYS_BUILD") != "docker" {
|
||||
fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n")
|
||||
fmt.Fprintf(os.Stderr, "See README.md\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
flag.Usage = usage
|
||||
flag.Parse()
|
||||
if len(flag.Args()) <= 0 {
|
||||
fmt.Fprintf(os.Stderr, "no files to parse provided\n")
|
||||
usage()
|
||||
}
|
||||
|
||||
endianness := ""
|
||||
if *b32 {
|
||||
endianness = "big-endian"
|
||||
} else if *l32 {
|
||||
endianness = "little-endian"
|
||||
}
|
||||
|
||||
libc := false
|
||||
if goos == "darwin" && strings.Contains(buildTags(), ",go1.12") {
|
||||
libc = true
|
||||
}
|
||||
trampolines := map[string]bool{}
|
||||
|
||||
text := ""
|
||||
for _, path := range flag.Args() {
|
||||
file, err := os.Open(path)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
s := bufio.NewScanner(file)
|
||||
for s.Scan() {
|
||||
t := s.Text()
|
||||
t = strings.TrimSpace(t)
|
||||
t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
|
||||
nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
|
||||
if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// Line must be of the form
|
||||
// func Open(path string, mode int, perm int) (fd int, errno error)
|
||||
// Split into name, in params, out params.
|
||||
f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$`).FindStringSubmatch(t)
|
||||
if f == nil {
|
||||
fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
|
||||
os.Exit(1)
|
||||
}
|
||||
funct, inps, outps, sysname := f[2], f[3], f[4], f[5]
|
||||
|
||||
// Split argument lists on comma.
|
||||
in := parseParamList(inps)
|
||||
out := parseParamList(outps)
|
||||
|
||||
// Try in vain to keep people from editing this file.
|
||||
// The theory is that they jump into the middle of the file
|
||||
// without reading the header.
|
||||
text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
|
||||
|
||||
// Go function header.
|
||||
outDecl := ""
|
||||
if len(out) > 0 {
|
||||
outDecl = fmt.Sprintf(" (%s)", strings.Join(out, ", "))
|
||||
}
|
||||
text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outDecl)
|
||||
|
||||
// Check if err return available
|
||||
errvar := ""
|
||||
for _, param := range out {
|
||||
p := parseParam(param)
|
||||
if p.Type == "error" {
|
||||
errvar = p.Name
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// Prepare arguments to Syscall.
|
||||
var args []string
|
||||
n := 0
|
||||
for _, param := range in {
|
||||
p := parseParam(param)
|
||||
if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
|
||||
args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))")
|
||||
} else if p.Type == "string" && errvar != "" {
|
||||
text += fmt.Sprintf("\tvar _p%d *byte\n", n)
|
||||
text += fmt.Sprintf("\t_p%d, %s = BytePtrFromString(%s)\n", n, errvar, p.Name)
|
||||
text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
|
||||
args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
|
||||
n++
|
||||
} else if p.Type == "string" {
|
||||
fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
|
||||
text += fmt.Sprintf("\tvar _p%d *byte\n", n)
|
||||
text += fmt.Sprintf("\t_p%d, _ = BytePtrFromString(%s)\n", n, p.Name)
|
||||
args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
|
||||
n++
|
||||
} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
|
||||
// Convert slice into pointer, length.
|
||||
// Have to be careful not to take address of &a[0] if len == 0:
|
||||
// pass dummy pointer in that case.
|
||||
// Used to pass nil, but some OSes or simulators reject write(fd, nil, 0).
|
||||
text += fmt.Sprintf("\tvar _p%d unsafe.Pointer\n", n)
|
||||
text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = unsafe.Pointer(&%s[0])\n\t}", p.Name, n, p.Name)
|
||||
text += fmt.Sprintf(" else {\n\t\t_p%d = unsafe.Pointer(&_zero)\n\t}\n", n)
|
||||
args = append(args, fmt.Sprintf("uintptr(_p%d)", n), fmt.Sprintf("uintptr(len(%s))", p.Name))
|
||||
n++
|
||||
} else if p.Type == "int64" && (*openbsd || *netbsd) {
|
||||
args = append(args, "0")
|
||||
if endianness == "big-endian" {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
} else if endianness == "little-endian" {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
}
|
||||
} else if p.Type == "int64" && *dragonfly {
|
||||
if regexp.MustCompile(`^(?i)extp(read|write)`).FindStringSubmatch(funct) == nil {
|
||||
args = append(args, "0")
|
||||
}
|
||||
if endianness == "big-endian" {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
} else if endianness == "little-endian" {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
}
|
||||
} else if p.Type == "int64" && endianness != "" {
|
||||
if len(args)%2 == 1 && *arm {
|
||||
// arm abi specifies 64-bit argument uses
|
||||
// (even, odd) pair
|
||||
args = append(args, "0")
|
||||
}
|
||||
if endianness == "big-endian" {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
|
||||
}
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
}
|
||||
}
|
||||
|
||||
// Determine which form to use; pad args with zeros.
|
||||
asm := "Syscall"
|
||||
if nonblock != nil {
|
||||
if errvar == "" && goos == "linux" {
|
||||
asm = "RawSyscallNoError"
|
||||
} else {
|
||||
asm = "RawSyscall"
|
||||
}
|
||||
} else {
|
||||
if errvar == "" && goos == "linux" {
|
||||
asm = "SyscallNoError"
|
||||
}
|
||||
}
|
||||
if len(args) <= 3 {
|
||||
for len(args) < 3 {
|
||||
args = append(args, "0")
|
||||
}
|
||||
} else if len(args) <= 6 {
|
||||
asm += "6"
|
||||
for len(args) < 6 {
|
||||
args = append(args, "0")
|
||||
}
|
||||
} else if len(args) <= 9 {
|
||||
asm += "9"
|
||||
for len(args) < 9 {
|
||||
args = append(args, "0")
|
||||
}
|
||||
} else {
|
||||
fmt.Fprintf(os.Stderr, "%s:%s too many arguments to system call\n", path, funct)
|
||||
}
|
||||
|
||||
// System call number.
|
||||
if sysname == "" {
|
||||
sysname = "SYS_" + funct
|
||||
sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
|
||||
sysname = strings.ToUpper(sysname)
|
||||
}
|
||||
|
||||
var libcFn string
|
||||
if libc {
|
||||
asm = "syscall_" + strings.ToLower(asm[:1]) + asm[1:] // internal syscall call
|
||||
sysname = strings.TrimPrefix(sysname, "SYS_") // remove SYS_
|
||||
sysname = strings.ToLower(sysname) // lowercase
|
||||
if sysname == "getdirentries64" {
|
||||
// Special case - libSystem name and
|
||||
// raw syscall name don't match.
|
||||
sysname = "__getdirentries64"
|
||||
}
|
||||
libcFn = sysname
|
||||
sysname = "funcPC(libc_" + sysname + "_trampoline)"
|
||||
}
|
||||
|
||||
// Actual call.
|
||||
arglist := strings.Join(args, ", ")
|
||||
call := fmt.Sprintf("%s(%s, %s)", asm, sysname, arglist)
|
||||
|
||||
// Assign return values.
|
||||
body := ""
|
||||
ret := []string{"_", "_", "_"}
|
||||
doErrno := false
|
||||
for i := 0; i < len(out); i++ {
|
||||
p := parseParam(out[i])
|
||||
reg := ""
|
||||
if p.Name == "err" && !*plan9 {
|
||||
reg = "e1"
|
||||
ret[2] = reg
|
||||
doErrno = true
|
||||
} else if p.Name == "err" && *plan9 {
|
||||
ret[0] = "r0"
|
||||
ret[2] = "e1"
|
||||
break
|
||||
} else {
|
||||
reg = fmt.Sprintf("r%d", i)
|
||||
ret[i] = reg
|
||||
}
|
||||
if p.Type == "bool" {
|
||||
reg = fmt.Sprintf("%s != 0", reg)
|
||||
}
|
||||
if p.Type == "int64" && endianness != "" {
|
||||
// 64-bit number in r1:r0 or r0:r1.
|
||||
if i+2 > len(out) {
|
||||
fmt.Fprintf(os.Stderr, "%s:%s not enough registers for int64 return\n", path, funct)
|
||||
}
|
||||
if endianness == "big-endian" {
|
||||
reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1)
|
||||
} else {
|
||||
reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i)
|
||||
}
|
||||
ret[i] = fmt.Sprintf("r%d", i)
|
||||
ret[i+1] = fmt.Sprintf("r%d", i+1)
|
||||
}
|
||||
if reg != "e1" || *plan9 {
|
||||
body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
|
||||
}
|
||||
}
|
||||
if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" {
|
||||
text += fmt.Sprintf("\t%s\n", call)
|
||||
} else {
|
||||
if errvar == "" && goos == "linux" {
|
||||
// raw syscall without error on Linux, see golang.org/issue/22924
|
||||
text += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], call)
|
||||
} else {
|
||||
text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call)
|
||||
}
|
||||
}
|
||||
text += body
|
||||
|
||||
if *plan9 && ret[2] == "e1" {
|
||||
text += "\tif int32(r0) == -1 {\n"
|
||||
text += "\t\terr = e1\n"
|
||||
text += "\t}\n"
|
||||
} else if doErrno {
|
||||
text += "\tif e1 != 0 {\n"
|
||||
text += "\t\terr = errnoErr(e1)\n"
|
||||
text += "\t}\n"
|
||||
}
|
||||
text += "\treturn\n"
|
||||
text += "}\n\n"
|
||||
|
||||
if libc && !trampolines[libcFn] {
|
||||
// some system calls share a trampoline, like read and readlen.
|
||||
trampolines[libcFn] = true
|
||||
// Declare assembly trampoline.
|
||||
text += fmt.Sprintf("func libc_%s_trampoline()\n", libcFn)
|
||||
// Assembly trampoline calls the libc_* function, which this magic
|
||||
// redirects to use the function from libSystem.
|
||||
text += fmt.Sprintf("//go:linkname libc_%s libc_%s\n", libcFn, libcFn)
|
||||
text += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"/usr/lib/libSystem.B.dylib\"\n", libcFn, libcFn)
|
||||
text += "\n"
|
||||
}
|
||||
}
|
||||
if err := s.Err(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
file.Close()
|
||||
}
|
||||
fmt.Printf(srcTemplate, cmdLine(), buildTags(), text)
|
||||
}
|
||||
|
||||
const srcTemplate = `// %s
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s
|
||||
|
||||
package unix
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var _ syscall.Errno
|
||||
|
||||
%s
|
||||
`
|
||||
404
vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
generated
vendored
404
vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
generated
vendored
@@ -1,404 +0,0 @@
|
||||
// Copyright 2019 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
This program reads a file containing function prototypes
|
||||
(like syscall_aix.go) and generates system call bodies.
|
||||
The prototypes are marked by lines beginning with "//sys"
|
||||
and read like func declarations if //sys is replaced by func, but:
|
||||
* The parameter lists must give a name for each argument.
|
||||
This includes return parameters.
|
||||
* The parameter lists must give a type for each argument:
|
||||
the (x, y, z int) shorthand is not allowed.
|
||||
* If the return parameter is an error number, it must be named err.
|
||||
* If go func name needs to be different than its libc name,
|
||||
* or the function is not in libc, name could be specified
|
||||
* at the end, after "=" sign, like
|
||||
//sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
|
||||
*/
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
b32 = flag.Bool("b32", false, "32bit big-endian")
|
||||
l32 = flag.Bool("l32", false, "32bit little-endian")
|
||||
aix = flag.Bool("aix", false, "aix")
|
||||
tags = flag.String("tags", "", "build tags")
|
||||
)
|
||||
|
||||
// cmdLine returns this programs's commandline arguments
|
||||
func cmdLine() string {
|
||||
return "go run mksyscall_aix_ppc.go " + strings.Join(os.Args[1:], " ")
|
||||
}
|
||||
|
||||
// buildTags returns build tags
|
||||
func buildTags() string {
|
||||
return *tags
|
||||
}
|
||||
|
||||
// Param is function parameter
|
||||
type Param struct {
|
||||
Name string
|
||||
Type string
|
||||
}
|
||||
|
||||
// usage prints the program usage
|
||||
func usage() {
|
||||
fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc.go [-b32 | -l32] [-tags x,y] [file ...]\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// parseParamList parses parameter list and returns a slice of parameters
|
||||
func parseParamList(list string) []string {
|
||||
list = strings.TrimSpace(list)
|
||||
if list == "" {
|
||||
return []string{}
|
||||
}
|
||||
return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
|
||||
}
|
||||
|
||||
// parseParam splits a parameter into name and type
|
||||
func parseParam(p string) Param {
|
||||
ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
|
||||
if ps == nil {
|
||||
fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
|
||||
os.Exit(1)
|
||||
}
|
||||
return Param{ps[1], ps[2]}
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Usage = usage
|
||||
flag.Parse()
|
||||
if len(flag.Args()) <= 0 {
|
||||
fmt.Fprintf(os.Stderr, "no files to parse provided\n")
|
||||
usage()
|
||||
}
|
||||
|
||||
endianness := ""
|
||||
if *b32 {
|
||||
endianness = "big-endian"
|
||||
} else if *l32 {
|
||||
endianness = "little-endian"
|
||||
}
|
||||
|
||||
pack := ""
|
||||
text := ""
|
||||
cExtern := "/*\n#include <stdint.h>\n#include <stddef.h>\n"
|
||||
for _, path := range flag.Args() {
|
||||
file, err := os.Open(path)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
s := bufio.NewScanner(file)
|
||||
for s.Scan() {
|
||||
t := s.Text()
|
||||
t = strings.TrimSpace(t)
|
||||
t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
|
||||
if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
|
||||
pack = p[1]
|
||||
}
|
||||
nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
|
||||
if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// Line must be of the form
|
||||
// func Open(path string, mode int, perm int) (fd int, err error)
|
||||
// Split into name, in params, out params.
|
||||
f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
|
||||
if f == nil {
|
||||
fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
|
||||
os.Exit(1)
|
||||
}
|
||||
funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
|
||||
|
||||
// Split argument lists on comma.
|
||||
in := parseParamList(inps)
|
||||
out := parseParamList(outps)
|
||||
|
||||
inps = strings.Join(in, ", ")
|
||||
outps = strings.Join(out, ", ")
|
||||
|
||||
// Try in vain to keep people from editing this file.
|
||||
// The theory is that they jump into the middle of the file
|
||||
// without reading the header.
|
||||
text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
|
||||
|
||||
// Check if value return, err return available
|
||||
errvar := ""
|
||||
retvar := ""
|
||||
rettype := ""
|
||||
for _, param := range out {
|
||||
p := parseParam(param)
|
||||
if p.Type == "error" {
|
||||
errvar = p.Name
|
||||
} else {
|
||||
retvar = p.Name
|
||||
rettype = p.Type
|
||||
}
|
||||
}
|
||||
|
||||
// System call name.
|
||||
if sysname == "" {
|
||||
sysname = funct
|
||||
}
|
||||
sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
|
||||
sysname = strings.ToLower(sysname) // All libc functions are lowercase.
|
||||
|
||||
cRettype := ""
|
||||
if rettype == "unsafe.Pointer" {
|
||||
cRettype = "uintptr_t"
|
||||
} else if rettype == "uintptr" {
|
||||
cRettype = "uintptr_t"
|
||||
} else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil {
|
||||
cRettype = "uintptr_t"
|
||||
} else if rettype == "int" {
|
||||
cRettype = "int"
|
||||
} else if rettype == "int32" {
|
||||
cRettype = "int"
|
||||
} else if rettype == "int64" {
|
||||
cRettype = "long long"
|
||||
} else if rettype == "uint32" {
|
||||
cRettype = "unsigned int"
|
||||
} else if rettype == "uint64" {
|
||||
cRettype = "unsigned long long"
|
||||
} else {
|
||||
cRettype = "int"
|
||||
}
|
||||
if sysname == "exit" {
|
||||
cRettype = "void"
|
||||
}
|
||||
|
||||
// Change p.Types to c
|
||||
var cIn []string
|
||||
for _, param := range in {
|
||||
p := parseParam(param)
|
||||
if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if p.Type == "string" {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
|
||||
cIn = append(cIn, "uintptr_t", "size_t")
|
||||
} else if p.Type == "unsafe.Pointer" {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if p.Type == "uintptr" {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if p.Type == "int" {
|
||||
cIn = append(cIn, "int")
|
||||
} else if p.Type == "int32" {
|
||||
cIn = append(cIn, "int")
|
||||
} else if p.Type == "int64" {
|
||||
cIn = append(cIn, "long long")
|
||||
} else if p.Type == "uint32" {
|
||||
cIn = append(cIn, "unsigned int")
|
||||
} else if p.Type == "uint64" {
|
||||
cIn = append(cIn, "unsigned long long")
|
||||
} else {
|
||||
cIn = append(cIn, "int")
|
||||
}
|
||||
}
|
||||
|
||||
if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" {
|
||||
// Imports of system calls from libc
|
||||
cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
|
||||
cIn := strings.Join(cIn, ", ")
|
||||
cExtern += fmt.Sprintf("(%s);\n", cIn)
|
||||
}
|
||||
|
||||
// So file name.
|
||||
if *aix {
|
||||
if modname == "" {
|
||||
modname = "libc.a/shr_64.o"
|
||||
} else {
|
||||
fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
strconvfunc := "C.CString"
|
||||
|
||||
// Go function header.
|
||||
if outps != "" {
|
||||
outps = fmt.Sprintf(" (%s)", outps)
|
||||
}
|
||||
if text != "" {
|
||||
text += "\n"
|
||||
}
|
||||
|
||||
text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps)
|
||||
|
||||
// Prepare arguments to Syscall.
|
||||
var args []string
|
||||
n := 0
|
||||
argN := 0
|
||||
for _, param := range in {
|
||||
p := parseParam(param)
|
||||
if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
|
||||
args = append(args, "C.uintptr_t(uintptr(unsafe.Pointer("+p.Name+")))")
|
||||
} else if p.Type == "string" && errvar != "" {
|
||||
text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name)
|
||||
args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n))
|
||||
n++
|
||||
} else if p.Type == "string" {
|
||||
fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
|
||||
text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name)
|
||||
args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n))
|
||||
n++
|
||||
} else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil {
|
||||
// Convert slice into pointer, length.
|
||||
// Have to be careful not to take address of &a[0] if len == 0:
|
||||
// pass nil in that case.
|
||||
text += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1])
|
||||
text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
|
||||
args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(unsafe.Pointer(_p%d)))", n))
|
||||
n++
|
||||
text += fmt.Sprintf("\tvar _p%d int\n", n)
|
||||
text += fmt.Sprintf("\t_p%d = len(%s)\n", n, p.Name)
|
||||
args = append(args, fmt.Sprintf("C.size_t(_p%d)", n))
|
||||
n++
|
||||
} else if p.Type == "int64" && endianness != "" {
|
||||
if endianness == "big-endian" {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
|
||||
}
|
||||
n++
|
||||
} else if p.Type == "bool" {
|
||||
text += fmt.Sprintf("\tvar _p%d uint32\n", n)
|
||||
text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n)
|
||||
args = append(args, fmt.Sprintf("_p%d", n))
|
||||
} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
|
||||
args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name))
|
||||
} else if p.Type == "unsafe.Pointer" {
|
||||
args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name))
|
||||
} else if p.Type == "int" {
|
||||
if (argN == 2) && ((funct == "readlen") || (funct == "writelen")) {
|
||||
args = append(args, fmt.Sprintf("C.size_t(%s)", p.Name))
|
||||
} else if argN == 0 && funct == "fcntl" {
|
||||
args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
|
||||
} else if (argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt")) {
|
||||
args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
|
||||
}
|
||||
} else if p.Type == "int32" {
|
||||
args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
|
||||
} else if p.Type == "int64" {
|
||||
args = append(args, fmt.Sprintf("C.longlong(%s)", p.Name))
|
||||
} else if p.Type == "uint32" {
|
||||
args = append(args, fmt.Sprintf("C.uint(%s)", p.Name))
|
||||
} else if p.Type == "uint64" {
|
||||
args = append(args, fmt.Sprintf("C.ulonglong(%s)", p.Name))
|
||||
} else if p.Type == "uintptr" {
|
||||
args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
|
||||
}
|
||||
argN++
|
||||
}
|
||||
|
||||
// Actual call.
|
||||
arglist := strings.Join(args, ", ")
|
||||
call := ""
|
||||
if sysname == "exit" {
|
||||
if errvar != "" {
|
||||
call += "er :="
|
||||
} else {
|
||||
call += ""
|
||||
}
|
||||
} else if errvar != "" {
|
||||
call += "r0,er :="
|
||||
} else if retvar != "" {
|
||||
call += "r0,_ :="
|
||||
} else {
|
||||
call += ""
|
||||
}
|
||||
call += fmt.Sprintf("C.%s(%s)", sysname, arglist)
|
||||
|
||||
// Assign return values.
|
||||
body := ""
|
||||
for i := 0; i < len(out); i++ {
|
||||
p := parseParam(out[i])
|
||||
reg := ""
|
||||
if p.Name == "err" {
|
||||
reg = "e1"
|
||||
} else {
|
||||
reg = "r0"
|
||||
}
|
||||
if reg != "e1" {
|
||||
body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
|
||||
}
|
||||
}
|
||||
|
||||
// verify return
|
||||
if sysname != "exit" && errvar != "" {
|
||||
if regexp.MustCompile(`^uintptr`).FindStringSubmatch(cRettype) != nil {
|
||||
body += "\tif (uintptr(r0) ==^uintptr(0) && er != nil) {\n"
|
||||
body += fmt.Sprintf("\t\t%s = er\n", errvar)
|
||||
body += "\t}\n"
|
||||
} else {
|
||||
body += "\tif (r0 ==-1 && er != nil) {\n"
|
||||
body += fmt.Sprintf("\t\t%s = er\n", errvar)
|
||||
body += "\t}\n"
|
||||
}
|
||||
} else if errvar != "" {
|
||||
body += "\tif (er != nil) {\n"
|
||||
body += fmt.Sprintf("\t\t%s = er\n", errvar)
|
||||
body += "\t}\n"
|
||||
}
|
||||
|
||||
text += fmt.Sprintf("\t%s\n", call)
|
||||
text += body
|
||||
|
||||
text += "\treturn\n"
|
||||
text += "}\n"
|
||||
}
|
||||
if err := s.Err(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
file.Close()
|
||||
}
|
||||
imp := ""
|
||||
if pack != "unix" {
|
||||
imp = "import \"golang.org/x/sys/unix\"\n"
|
||||
|
||||
}
|
||||
fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, cExtern, imp, text)
|
||||
}
|
||||
|
||||
const srcTemplate = `// %s
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s
|
||||
|
||||
package %s
|
||||
|
||||
|
||||
%s
|
||||
*/
|
||||
import "C"
|
||||
import (
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
|
||||
%s
|
||||
|
||||
%s
|
||||
`
|
||||
602
vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
generated
vendored
602
vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
generated
vendored
@@ -1,602 +0,0 @@
|
||||
// Copyright 2019 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
This program reads a file containing function prototypes
|
||||
(like syscall_aix.go) and generates system call bodies.
|
||||
The prototypes are marked by lines beginning with "//sys"
|
||||
and read like func declarations if //sys is replaced by func, but:
|
||||
* The parameter lists must give a name for each argument.
|
||||
This includes return parameters.
|
||||
* The parameter lists must give a type for each argument:
|
||||
the (x, y, z int) shorthand is not allowed.
|
||||
* If the return parameter is an error number, it must be named err.
|
||||
* If go func name needs to be different than its libc name,
|
||||
* or the function is not in libc, name could be specified
|
||||
* at the end, after "=" sign, like
|
||||
//sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
|
||||
|
||||
|
||||
This program will generate three files and handle both gc and gccgo implementation:
|
||||
- zsyscall_aix_ppc64.go: the common part of each implementation (error handler, pointer creation)
|
||||
- zsyscall_aix_ppc64_gc.go: gc part with //go_cgo_import_dynamic and a call to syscall6
|
||||
- zsyscall_aix_ppc64_gccgo.go: gccgo part with C function and conversion to C type.
|
||||
|
||||
The generated code looks like this
|
||||
|
||||
zsyscall_aix_ppc64.go
|
||||
func asyscall(...) (n int, err error) {
|
||||
// Pointer Creation
|
||||
r1, e1 := callasyscall(...)
|
||||
// Type Conversion
|
||||
// Error Handler
|
||||
return
|
||||
}
|
||||
|
||||
zsyscall_aix_ppc64_gc.go
|
||||
//go:cgo_import_dynamic libc_asyscall asyscall "libc.a/shr_64.o"
|
||||
//go:linkname libc_asyscall libc_asyscall
|
||||
var asyscall syscallFunc
|
||||
|
||||
func callasyscall(...) (r1 uintptr, e1 Errno) {
|
||||
r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_asyscall)), "nb_args", ... )
|
||||
return
|
||||
}
|
||||
|
||||
zsyscall_aix_ppc64_ggcgo.go
|
||||
|
||||
// int asyscall(...)
|
||||
|
||||
import "C"
|
||||
|
||||
func callasyscall(...) (r1 uintptr, e1 Errno) {
|
||||
r1 = uintptr(C.asyscall(...))
|
||||
e1 = syscall.GetErrno()
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
b32 = flag.Bool("b32", false, "32bit big-endian")
|
||||
l32 = flag.Bool("l32", false, "32bit little-endian")
|
||||
aix = flag.Bool("aix", false, "aix")
|
||||
tags = flag.String("tags", "", "build tags")
|
||||
)
|
||||
|
||||
// cmdLine returns this programs's commandline arguments
|
||||
func cmdLine() string {
|
||||
return "go run mksyscall_aix_ppc64.go " + strings.Join(os.Args[1:], " ")
|
||||
}
|
||||
|
||||
// buildTags returns build tags
|
||||
func buildTags() string {
|
||||
return *tags
|
||||
}
|
||||
|
||||
// Param is function parameter
|
||||
type Param struct {
|
||||
Name string
|
||||
Type string
|
||||
}
|
||||
|
||||
// usage prints the program usage
|
||||
func usage() {
|
||||
fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc64.go [-b32 | -l32] [-tags x,y] [file ...]\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// parseParamList parses parameter list and returns a slice of parameters
|
||||
func parseParamList(list string) []string {
|
||||
list = strings.TrimSpace(list)
|
||||
if list == "" {
|
||||
return []string{}
|
||||
}
|
||||
return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
|
||||
}
|
||||
|
||||
// parseParam splits a parameter into name and type
|
||||
func parseParam(p string) Param {
|
||||
ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
|
||||
if ps == nil {
|
||||
fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
|
||||
os.Exit(1)
|
||||
}
|
||||
return Param{ps[1], ps[2]}
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Usage = usage
|
||||
flag.Parse()
|
||||
if len(flag.Args()) <= 0 {
|
||||
fmt.Fprintf(os.Stderr, "no files to parse provided\n")
|
||||
usage()
|
||||
}
|
||||
|
||||
endianness := ""
|
||||
if *b32 {
|
||||
endianness = "big-endian"
|
||||
} else if *l32 {
|
||||
endianness = "little-endian"
|
||||
}
|
||||
|
||||
pack := ""
|
||||
// GCCGO
|
||||
textgccgo := ""
|
||||
cExtern := "/*\n#include <stdint.h>\n"
|
||||
// GC
|
||||
textgc := ""
|
||||
dynimports := ""
|
||||
linknames := ""
|
||||
var vars []string
|
||||
// COMMON
|
||||
textcommon := ""
|
||||
for _, path := range flag.Args() {
|
||||
file, err := os.Open(path)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
s := bufio.NewScanner(file)
|
||||
for s.Scan() {
|
||||
t := s.Text()
|
||||
t = strings.TrimSpace(t)
|
||||
t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
|
||||
if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
|
||||
pack = p[1]
|
||||
}
|
||||
nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
|
||||
if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// Line must be of the form
|
||||
// func Open(path string, mode int, perm int) (fd int, err error)
|
||||
// Split into name, in params, out params.
|
||||
f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
|
||||
if f == nil {
|
||||
fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
|
||||
os.Exit(1)
|
||||
}
|
||||
funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
|
||||
|
||||
// Split argument lists on comma.
|
||||
in := parseParamList(inps)
|
||||
out := parseParamList(outps)
|
||||
|
||||
inps = strings.Join(in, ", ")
|
||||
outps = strings.Join(out, ", ")
|
||||
|
||||
if sysname == "" {
|
||||
sysname = funct
|
||||
}
|
||||
|
||||
onlyCommon := false
|
||||
if funct == "readlen" || funct == "writelen" || funct == "FcntlInt" || funct == "FcntlFlock" {
|
||||
// This function call another syscall which is already implemented.
|
||||
// Therefore, the gc and gccgo part must not be generated.
|
||||
onlyCommon = true
|
||||
}
|
||||
|
||||
// Try in vain to keep people from editing this file.
|
||||
// The theory is that they jump into the middle of the file
|
||||
// without reading the header.
|
||||
|
||||
textcommon += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
|
||||
if !onlyCommon {
|
||||
textgccgo += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
|
||||
textgc += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
|
||||
}
|
||||
|
||||
// Check if value return, err return available
|
||||
errvar := ""
|
||||
rettype := ""
|
||||
for _, param := range out {
|
||||
p := parseParam(param)
|
||||
if p.Type == "error" {
|
||||
errvar = p.Name
|
||||
} else {
|
||||
rettype = p.Type
|
||||
}
|
||||
}
|
||||
|
||||
sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
|
||||
sysname = strings.ToLower(sysname) // All libc functions are lowercase.
|
||||
|
||||
// GCCGO Prototype return type
|
||||
cRettype := ""
|
||||
if rettype == "unsafe.Pointer" {
|
||||
cRettype = "uintptr_t"
|
||||
} else if rettype == "uintptr" {
|
||||
cRettype = "uintptr_t"
|
||||
} else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil {
|
||||
cRettype = "uintptr_t"
|
||||
} else if rettype == "int" {
|
||||
cRettype = "int"
|
||||
} else if rettype == "int32" {
|
||||
cRettype = "int"
|
||||
} else if rettype == "int64" {
|
||||
cRettype = "long long"
|
||||
} else if rettype == "uint32" {
|
||||
cRettype = "unsigned int"
|
||||
} else if rettype == "uint64" {
|
||||
cRettype = "unsigned long long"
|
||||
} else {
|
||||
cRettype = "int"
|
||||
}
|
||||
if sysname == "exit" {
|
||||
cRettype = "void"
|
||||
}
|
||||
|
||||
// GCCGO Prototype arguments type
|
||||
var cIn []string
|
||||
for i, param := range in {
|
||||
p := parseParam(param)
|
||||
if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if p.Type == "string" {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
|
||||
cIn = append(cIn, "uintptr_t", "size_t")
|
||||
} else if p.Type == "unsafe.Pointer" {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if p.Type == "uintptr" {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else if p.Type == "int" {
|
||||
if (i == 0 || i == 2) && funct == "fcntl" {
|
||||
// These fcntl arguments needs to be uintptr to be able to call FcntlInt and FcntlFlock
|
||||
cIn = append(cIn, "uintptr_t")
|
||||
} else {
|
||||
cIn = append(cIn, "int")
|
||||
}
|
||||
|
||||
} else if p.Type == "int32" {
|
||||
cIn = append(cIn, "int")
|
||||
} else if p.Type == "int64" {
|
||||
cIn = append(cIn, "long long")
|
||||
} else if p.Type == "uint32" {
|
||||
cIn = append(cIn, "unsigned int")
|
||||
} else if p.Type == "uint64" {
|
||||
cIn = append(cIn, "unsigned long long")
|
||||
} else {
|
||||
cIn = append(cIn, "int")
|
||||
}
|
||||
}
|
||||
|
||||
if !onlyCommon {
|
||||
// GCCGO Prototype Generation
|
||||
// Imports of system calls from libc
|
||||
cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
|
||||
cIn := strings.Join(cIn, ", ")
|
||||
cExtern += fmt.Sprintf("(%s);\n", cIn)
|
||||
}
|
||||
// GC Library name
|
||||
if modname == "" {
|
||||
modname = "libc.a/shr_64.o"
|
||||
} else {
|
||||
fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct)
|
||||
os.Exit(1)
|
||||
}
|
||||
sysvarname := fmt.Sprintf("libc_%s", sysname)
|
||||
|
||||
if !onlyCommon {
|
||||
// GC Runtime import of function to allow cross-platform builds.
|
||||
dynimports += fmt.Sprintf("//go:cgo_import_dynamic %s %s \"%s\"\n", sysvarname, sysname, modname)
|
||||
// GC Link symbol to proc address variable.
|
||||
linknames += fmt.Sprintf("//go:linkname %s %s\n", sysvarname, sysvarname)
|
||||
// GC Library proc address variable.
|
||||
vars = append(vars, sysvarname)
|
||||
}
|
||||
|
||||
strconvfunc := "BytePtrFromString"
|
||||
strconvtype := "*byte"
|
||||
|
||||
// Go function header.
|
||||
if outps != "" {
|
||||
outps = fmt.Sprintf(" (%s)", outps)
|
||||
}
|
||||
if textcommon != "" {
|
||||
textcommon += "\n"
|
||||
}
|
||||
|
||||
textcommon += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps)
|
||||
|
||||
// Prepare arguments tocall.
|
||||
var argscommon []string // Arguments in the common part
|
||||
var argscall []string // Arguments for call prototype
|
||||
var argsgc []string // Arguments for gc call (with syscall6)
|
||||
var argsgccgo []string // Arguments for gccgo call (with C.name_of_syscall)
|
||||
n := 0
|
||||
argN := 0
|
||||
for _, param := range in {
|
||||
p := parseParam(param)
|
||||
if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
|
||||
argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(%s))", p.Name))
|
||||
argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
|
||||
argsgc = append(argsgc, p.Name)
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
|
||||
} else if p.Type == "string" && errvar != "" {
|
||||
textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
|
||||
textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
|
||||
textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
|
||||
|
||||
argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
|
||||
argscall = append(argscall, fmt.Sprintf("_p%d uintptr ", n))
|
||||
argsgc = append(argsgc, fmt.Sprintf("_p%d", n))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n))
|
||||
n++
|
||||
} else if p.Type == "string" {
|
||||
fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
|
||||
textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
|
||||
textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
|
||||
textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
|
||||
|
||||
argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
|
||||
argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n))
|
||||
argsgc = append(argsgc, fmt.Sprintf("_p%d", n))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n))
|
||||
n++
|
||||
} else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil {
|
||||
// Convert slice into pointer, length.
|
||||
// Have to be careful not to take address of &a[0] if len == 0:
|
||||
// pass nil in that case.
|
||||
textcommon += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1])
|
||||
textcommon += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
|
||||
argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("len(%s)", p.Name))
|
||||
argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n), fmt.Sprintf("_lenp%d int", n))
|
||||
argsgc = append(argsgc, fmt.Sprintf("_p%d", n), fmt.Sprintf("uintptr(_lenp%d)", n))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n), fmt.Sprintf("C.size_t(_lenp%d)", n))
|
||||
n++
|
||||
} else if p.Type == "int64" && endianness != "" {
|
||||
fmt.Fprintf(os.Stderr, path+":"+funct+" uses int64 with 32 bits mode. Case not yet implemented\n")
|
||||
} else if p.Type == "bool" {
|
||||
fmt.Fprintf(os.Stderr, path+":"+funct+" uses bool. Case not yet implemented\n")
|
||||
} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil || p.Type == "unsafe.Pointer" {
|
||||
argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
|
||||
argsgc = append(argsgc, p.Name)
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
|
||||
} else if p.Type == "int" {
|
||||
if (argN == 0 || argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt") || (funct == "FcntlFlock")) {
|
||||
// These fcntl arguments need to be uintptr to be able to call FcntlInt and FcntlFlock
|
||||
argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
|
||||
argsgc = append(argsgc, p.Name)
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
|
||||
|
||||
} else {
|
||||
argscommon = append(argscommon, p.Name)
|
||||
argscall = append(argscall, fmt.Sprintf("%s int", p.Name))
|
||||
argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
|
||||
}
|
||||
} else if p.Type == "int32" {
|
||||
argscommon = append(argscommon, p.Name)
|
||||
argscall = append(argscall, fmt.Sprintf("%s int32", p.Name))
|
||||
argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
|
||||
} else if p.Type == "int64" {
|
||||
argscommon = append(argscommon, p.Name)
|
||||
argscall = append(argscall, fmt.Sprintf("%s int64", p.Name))
|
||||
argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.longlong(%s)", p.Name))
|
||||
} else if p.Type == "uint32" {
|
||||
argscommon = append(argscommon, p.Name)
|
||||
argscall = append(argscall, fmt.Sprintf("%s uint32", p.Name))
|
||||
argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.uint(%s)", p.Name))
|
||||
} else if p.Type == "uint64" {
|
||||
argscommon = append(argscommon, p.Name)
|
||||
argscall = append(argscall, fmt.Sprintf("%s uint64", p.Name))
|
||||
argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.ulonglong(%s)", p.Name))
|
||||
} else if p.Type == "uintptr" {
|
||||
argscommon = append(argscommon, p.Name)
|
||||
argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
|
||||
argsgc = append(argsgc, p.Name)
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
|
||||
} else {
|
||||
argscommon = append(argscommon, fmt.Sprintf("int(%s)", p.Name))
|
||||
argscall = append(argscall, fmt.Sprintf("%s int", p.Name))
|
||||
argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
|
||||
}
|
||||
argN++
|
||||
}
|
||||
nargs := len(argsgc)
|
||||
|
||||
// COMMON function generation
|
||||
argscommonlist := strings.Join(argscommon, ", ")
|
||||
callcommon := fmt.Sprintf("call%s(%s)", sysname, argscommonlist)
|
||||
ret := []string{"_", "_"}
|
||||
body := ""
|
||||
doErrno := false
|
||||
for i := 0; i < len(out); i++ {
|
||||
p := parseParam(out[i])
|
||||
reg := ""
|
||||
if p.Name == "err" {
|
||||
reg = "e1"
|
||||
ret[1] = reg
|
||||
doErrno = true
|
||||
} else {
|
||||
reg = "r0"
|
||||
ret[0] = reg
|
||||
}
|
||||
if p.Type == "bool" {
|
||||
reg = fmt.Sprintf("%s != 0", reg)
|
||||
}
|
||||
if reg != "e1" {
|
||||
body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
|
||||
}
|
||||
}
|
||||
if ret[0] == "_" && ret[1] == "_" {
|
||||
textcommon += fmt.Sprintf("\t%s\n", callcommon)
|
||||
} else {
|
||||
textcommon += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], callcommon)
|
||||
}
|
||||
textcommon += body
|
||||
|
||||
if doErrno {
|
||||
textcommon += "\tif e1 != 0 {\n"
|
||||
textcommon += "\t\terr = errnoErr(e1)\n"
|
||||
textcommon += "\t}\n"
|
||||
}
|
||||
textcommon += "\treturn\n"
|
||||
textcommon += "}\n"
|
||||
|
||||
if onlyCommon {
|
||||
continue
|
||||
}
|
||||
|
||||
// CALL Prototype
|
||||
callProto := fmt.Sprintf("func call%s(%s) (r1 uintptr, e1 Errno) {\n", sysname, strings.Join(argscall, ", "))
|
||||
|
||||
// GC function generation
|
||||
asm := "syscall6"
|
||||
if nonblock != nil {
|
||||
asm = "rawSyscall6"
|
||||
}
|
||||
|
||||
if len(argsgc) <= 6 {
|
||||
for len(argsgc) < 6 {
|
||||
argsgc = append(argsgc, "0")
|
||||
}
|
||||
} else {
|
||||
fmt.Fprintf(os.Stderr, "%s: too many arguments to system call", funct)
|
||||
os.Exit(1)
|
||||
}
|
||||
argsgclist := strings.Join(argsgc, ", ")
|
||||
callgc := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, argsgclist)
|
||||
|
||||
textgc += callProto
|
||||
textgc += fmt.Sprintf("\tr1, _, e1 = %s\n", callgc)
|
||||
textgc += "\treturn\n}\n"
|
||||
|
||||
// GCCGO function generation
|
||||
argsgccgolist := strings.Join(argsgccgo, ", ")
|
||||
callgccgo := fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist)
|
||||
textgccgo += callProto
|
||||
textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo)
|
||||
textgccgo += "\te1 = syscall.GetErrno()\n"
|
||||
textgccgo += "\treturn\n}\n"
|
||||
}
|
||||
if err := s.Err(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
file.Close()
|
||||
}
|
||||
imp := ""
|
||||
if pack != "unix" {
|
||||
imp = "import \"golang.org/x/sys/unix\"\n"
|
||||
|
||||
}
|
||||
|
||||
// Print zsyscall_aix_ppc64.go
|
||||
err := ioutil.WriteFile("zsyscall_aix_ppc64.go",
|
||||
[]byte(fmt.Sprintf(srcTemplate1, cmdLine(), buildTags(), pack, imp, textcommon)),
|
||||
0644)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Print zsyscall_aix_ppc64_gc.go
|
||||
vardecls := "\t" + strings.Join(vars, ",\n\t")
|
||||
vardecls += " syscallFunc"
|
||||
err = ioutil.WriteFile("zsyscall_aix_ppc64_gc.go",
|
||||
[]byte(fmt.Sprintf(srcTemplate2, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, textgc)),
|
||||
0644)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Print zsyscall_aix_ppc64_gccgo.go
|
||||
err = ioutil.WriteFile("zsyscall_aix_ppc64_gccgo.go",
|
||||
[]byte(fmt.Sprintf(srcTemplate3, cmdLine(), buildTags(), pack, cExtern, imp, textgccgo)),
|
||||
0644)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
const srcTemplate1 = `// %s
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s
|
||||
|
||||
package %s
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
|
||||
%s
|
||||
|
||||
%s
|
||||
`
|
||||
const srcTemplate2 = `// %s
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s
|
||||
// +build !gccgo
|
||||
|
||||
package %s
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
)
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
type syscallFunc uintptr
|
||||
|
||||
var (
|
||||
%s
|
||||
)
|
||||
|
||||
// Implemented in runtime/syscall_aix.go.
|
||||
func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
|
||||
func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
|
||||
|
||||
%s
|
||||
`
|
||||
const srcTemplate3 = `// %s
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s
|
||||
// +build gccgo
|
||||
|
||||
package %s
|
||||
|
||||
%s
|
||||
*/
|
||||
import "C"
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
|
||||
%s
|
||||
|
||||
%s
|
||||
`
|
||||
335
vendor/golang.org/x/sys/unix/mksyscall_solaris.go
generated
vendored
335
vendor/golang.org/x/sys/unix/mksyscall_solaris.go
generated
vendored
@@ -1,335 +0,0 @@
|
||||
// Copyright 2019 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
This program reads a file containing function prototypes
|
||||
(like syscall_solaris.go) and generates system call bodies.
|
||||
The prototypes are marked by lines beginning with "//sys"
|
||||
and read like func declarations if //sys is replaced by func, but:
|
||||
* The parameter lists must give a name for each argument.
|
||||
This includes return parameters.
|
||||
* The parameter lists must give a type for each argument:
|
||||
the (x, y, z int) shorthand is not allowed.
|
||||
* If the return parameter is an error number, it must be named err.
|
||||
* If go func name needs to be different than its libc name,
|
||||
* or the function is not in libc, name could be specified
|
||||
* at the end, after "=" sign, like
|
||||
//sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
b32 = flag.Bool("b32", false, "32bit big-endian")
|
||||
l32 = flag.Bool("l32", false, "32bit little-endian")
|
||||
tags = flag.String("tags", "", "build tags")
|
||||
)
|
||||
|
||||
// cmdLine returns this programs's commandline arguments
|
||||
func cmdLine() string {
|
||||
return "go run mksyscall_solaris.go " + strings.Join(os.Args[1:], " ")
|
||||
}
|
||||
|
||||
// buildTags returns build tags
|
||||
func buildTags() string {
|
||||
return *tags
|
||||
}
|
||||
|
||||
// Param is function parameter
|
||||
type Param struct {
|
||||
Name string
|
||||
Type string
|
||||
}
|
||||
|
||||
// usage prints the program usage
|
||||
func usage() {
|
||||
fmt.Fprintf(os.Stderr, "usage: go run mksyscall_solaris.go [-b32 | -l32] [-tags x,y] [file ...]\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// parseParamList parses parameter list and returns a slice of parameters
|
||||
func parseParamList(list string) []string {
|
||||
list = strings.TrimSpace(list)
|
||||
if list == "" {
|
||||
return []string{}
|
||||
}
|
||||
return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
|
||||
}
|
||||
|
||||
// parseParam splits a parameter into name and type
|
||||
func parseParam(p string) Param {
|
||||
ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
|
||||
if ps == nil {
|
||||
fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
|
||||
os.Exit(1)
|
||||
}
|
||||
return Param{ps[1], ps[2]}
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Usage = usage
|
||||
flag.Parse()
|
||||
if len(flag.Args()) <= 0 {
|
||||
fmt.Fprintf(os.Stderr, "no files to parse provided\n")
|
||||
usage()
|
||||
}
|
||||
|
||||
endianness := ""
|
||||
if *b32 {
|
||||
endianness = "big-endian"
|
||||
} else if *l32 {
|
||||
endianness = "little-endian"
|
||||
}
|
||||
|
||||
pack := ""
|
||||
text := ""
|
||||
dynimports := ""
|
||||
linknames := ""
|
||||
var vars []string
|
||||
for _, path := range flag.Args() {
|
||||
file, err := os.Open(path)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
s := bufio.NewScanner(file)
|
||||
for s.Scan() {
|
||||
t := s.Text()
|
||||
t = strings.TrimSpace(t)
|
||||
t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
|
||||
if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
|
||||
pack = p[1]
|
||||
}
|
||||
nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
|
||||
if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// Line must be of the form
|
||||
// func Open(path string, mode int, perm int) (fd int, err error)
|
||||
// Split into name, in params, out params.
|
||||
f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
|
||||
if f == nil {
|
||||
fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
|
||||
os.Exit(1)
|
||||
}
|
||||
funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
|
||||
|
||||
// Split argument lists on comma.
|
||||
in := parseParamList(inps)
|
||||
out := parseParamList(outps)
|
||||
|
||||
inps = strings.Join(in, ", ")
|
||||
outps = strings.Join(out, ", ")
|
||||
|
||||
// Try in vain to keep people from editing this file.
|
||||
// The theory is that they jump into the middle of the file
|
||||
// without reading the header.
|
||||
text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
|
||||
|
||||
// So file name.
|
||||
if modname == "" {
|
||||
modname = "libc"
|
||||
}
|
||||
|
||||
// System call name.
|
||||
if sysname == "" {
|
||||
sysname = funct
|
||||
}
|
||||
|
||||
// System call pointer variable name.
|
||||
sysvarname := fmt.Sprintf("proc%s", sysname)
|
||||
|
||||
strconvfunc := "BytePtrFromString"
|
||||
strconvtype := "*byte"
|
||||
|
||||
sysname = strings.ToLower(sysname) // All libc functions are lowercase.
|
||||
|
||||
// Runtime import of function to allow cross-platform builds.
|
||||
dynimports += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"%s.so\"\n", sysname, sysname, modname)
|
||||
// Link symbol to proc address variable.
|
||||
linknames += fmt.Sprintf("//go:linkname %s libc_%s\n", sysvarname, sysname)
|
||||
// Library proc address variable.
|
||||
vars = append(vars, sysvarname)
|
||||
|
||||
// Go function header.
|
||||
outlist := strings.Join(out, ", ")
|
||||
if outlist != "" {
|
||||
outlist = fmt.Sprintf(" (%s)", outlist)
|
||||
}
|
||||
if text != "" {
|
||||
text += "\n"
|
||||
}
|
||||
text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outlist)
|
||||
|
||||
// Check if err return available
|
||||
errvar := ""
|
||||
for _, param := range out {
|
||||
p := parseParam(param)
|
||||
if p.Type == "error" {
|
||||
errvar = p.Name
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
// Prepare arguments to Syscall.
|
||||
var args []string
|
||||
n := 0
|
||||
for _, param := range in {
|
||||
p := parseParam(param)
|
||||
if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
|
||||
args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))")
|
||||
} else if p.Type == "string" && errvar != "" {
|
||||
text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
|
||||
text += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
|
||||
text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
|
||||
args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
|
||||
n++
|
||||
} else if p.Type == "string" {
|
||||
fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
|
||||
text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
|
||||
text += fmt.Sprintf("\t_p%d, _ = %s(%s)\n", n, strconvfunc, p.Name)
|
||||
args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
|
||||
n++
|
||||
} else if s := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); s != nil {
|
||||
// Convert slice into pointer, length.
|
||||
// Have to be careful not to take address of &a[0] if len == 0:
|
||||
// pass nil in that case.
|
||||
text += fmt.Sprintf("\tvar _p%d *%s\n", n, s[1])
|
||||
text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
|
||||
args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("uintptr(len(%s))", p.Name))
|
||||
n++
|
||||
} else if p.Type == "int64" && endianness != "" {
|
||||
if endianness == "big-endian" {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
|
||||
}
|
||||
} else if p.Type == "bool" {
|
||||
text += fmt.Sprintf("\tvar _p%d uint32\n", n)
|
||||
text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n)
|
||||
args = append(args, fmt.Sprintf("uintptr(_p%d)", n))
|
||||
n++
|
||||
} else {
|
||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||
}
|
||||
}
|
||||
nargs := len(args)
|
||||
|
||||
// Determine which form to use; pad args with zeros.
|
||||
asm := "sysvicall6"
|
||||
if nonblock != nil {
|
||||
asm = "rawSysvicall6"
|
||||
}
|
||||
if len(args) <= 6 {
|
||||
for len(args) < 6 {
|
||||
args = append(args, "0")
|
||||
}
|
||||
} else {
|
||||
fmt.Fprintf(os.Stderr, "%s: too many arguments to system call\n", path)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Actual call.
|
||||
arglist := strings.Join(args, ", ")
|
||||
call := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, arglist)
|
||||
|
||||
// Assign return values.
|
||||
body := ""
|
||||
ret := []string{"_", "_", "_"}
|
||||
doErrno := false
|
||||
for i := 0; i < len(out); i++ {
|
||||
p := parseParam(out[i])
|
||||
reg := ""
|
||||
if p.Name == "err" {
|
||||
reg = "e1"
|
||||
ret[2] = reg
|
||||
doErrno = true
|
||||
} else {
|
||||
reg = fmt.Sprintf("r%d", i)
|
||||
ret[i] = reg
|
||||
}
|
||||
if p.Type == "bool" {
|
||||
reg = fmt.Sprintf("%d != 0", reg)
|
||||
}
|
||||
if p.Type == "int64" && endianness != "" {
|
||||
// 64-bit number in r1:r0 or r0:r1.
|
||||
if i+2 > len(out) {
|
||||
fmt.Fprintf(os.Stderr, "%s: not enough registers for int64 return\n", path)
|
||||
os.Exit(1)
|
||||
}
|
||||
if endianness == "big-endian" {
|
||||
reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1)
|
||||
} else {
|
||||
reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i)
|
||||
}
|
||||
ret[i] = fmt.Sprintf("r%d", i)
|
||||
ret[i+1] = fmt.Sprintf("r%d", i+1)
|
||||
}
|
||||
if reg != "e1" {
|
||||
body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
|
||||
}
|
||||
}
|
||||
if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" {
|
||||
text += fmt.Sprintf("\t%s\n", call)
|
||||
} else {
|
||||
text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call)
|
||||
}
|
||||
text += body
|
||||
|
||||
if doErrno {
|
||||
text += "\tif e1 != 0 {\n"
|
||||
text += "\t\terr = e1\n"
|
||||
text += "\t}\n"
|
||||
}
|
||||
text += "\treturn\n"
|
||||
text += "}\n"
|
||||
}
|
||||
if err := s.Err(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
file.Close()
|
||||
}
|
||||
imp := ""
|
||||
if pack != "unix" {
|
||||
imp = "import \"golang.org/x/sys/unix\"\n"
|
||||
|
||||
}
|
||||
vardecls := "\t" + strings.Join(vars, ",\n\t")
|
||||
vardecls += " syscallFunc"
|
||||
fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, text)
|
||||
}
|
||||
|
||||
const srcTemplate = `// %s
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s
|
||||
|
||||
package %s
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
var (
|
||||
%s
|
||||
)
|
||||
|
||||
%s
|
||||
`
|
||||
190
vendor/golang.org/x/sys/unix/mksysnum.go
generated
vendored
190
vendor/golang.org/x/sys/unix/mksysnum.go
generated
vendored
@@ -1,190 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
// Generate system call table for DragonFly, NetBSD,
|
||||
// FreeBSD, OpenBSD or Darwin from master list
|
||||
// (for example, /usr/src/sys/kern/syscalls.master or
|
||||
// sys/syscall.h).
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
goos, goarch string
|
||||
)
|
||||
|
||||
// cmdLine returns this programs's commandline arguments
|
||||
func cmdLine() string {
|
||||
return "go run mksysnum.go " + strings.Join(os.Args[1:], " ")
|
||||
}
|
||||
|
||||
// buildTags returns build tags
|
||||
func buildTags() string {
|
||||
return fmt.Sprintf("%s,%s", goarch, goos)
|
||||
}
|
||||
|
||||
func checkErr(err error) {
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
// source string and substring slice for regexp
|
||||
type re struct {
|
||||
str string // source string
|
||||
sub []string // matched sub-string
|
||||
}
|
||||
|
||||
// Match performs regular expression match
|
||||
func (r *re) Match(exp string) bool {
|
||||
r.sub = regexp.MustCompile(exp).FindStringSubmatch(r.str)
|
||||
if r.sub != nil {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// fetchFile fetches a text file from URL
|
||||
func fetchFile(URL string) io.Reader {
|
||||
resp, err := http.Get(URL)
|
||||
checkErr(err)
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
checkErr(err)
|
||||
return strings.NewReader(string(body))
|
||||
}
|
||||
|
||||
// readFile reads a text file from path
|
||||
func readFile(path string) io.Reader {
|
||||
file, err := os.Open(os.Args[1])
|
||||
checkErr(err)
|
||||
return file
|
||||
}
|
||||
|
||||
func format(name, num, proto string) string {
|
||||
name = strings.ToUpper(name)
|
||||
// There are multiple entries for enosys and nosys, so comment them out.
|
||||
nm := re{str: name}
|
||||
if nm.Match(`^SYS_E?NOSYS$`) {
|
||||
name = fmt.Sprintf("// %s", name)
|
||||
}
|
||||
if name == `SYS_SYS_EXIT` {
|
||||
name = `SYS_EXIT`
|
||||
}
|
||||
return fmt.Sprintf(" %s = %s; // %s\n", name, num, proto)
|
||||
}
|
||||
|
||||
func main() {
|
||||
// Get the OS (using GOOS_TARGET if it exist)
|
||||
goos = os.Getenv("GOOS_TARGET")
|
||||
if goos == "" {
|
||||
goos = os.Getenv("GOOS")
|
||||
}
|
||||
// Get the architecture (using GOARCH_TARGET if it exists)
|
||||
goarch = os.Getenv("GOARCH_TARGET")
|
||||
if goarch == "" {
|
||||
goarch = os.Getenv("GOARCH")
|
||||
}
|
||||
// Check if GOOS and GOARCH environment variables are defined
|
||||
if goarch == "" || goos == "" {
|
||||
fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
file := strings.TrimSpace(os.Args[1])
|
||||
var syscalls io.Reader
|
||||
if strings.HasPrefix(file, "https://") || strings.HasPrefix(file, "http://") {
|
||||
// Download syscalls.master file
|
||||
syscalls = fetchFile(file)
|
||||
} else {
|
||||
syscalls = readFile(file)
|
||||
}
|
||||
|
||||
var text, line string
|
||||
s := bufio.NewScanner(syscalls)
|
||||
for s.Scan() {
|
||||
t := re{str: line}
|
||||
if t.Match(`^(.*)\\$`) {
|
||||
// Handle continuation
|
||||
line = t.sub[1]
|
||||
line += strings.TrimLeft(s.Text(), " \t")
|
||||
} else {
|
||||
// New line
|
||||
line = s.Text()
|
||||
}
|
||||
t = re{str: line}
|
||||
if t.Match(`\\$`) {
|
||||
continue
|
||||
}
|
||||
t = re{str: line}
|
||||
|
||||
switch goos {
|
||||
case "dragonfly":
|
||||
if t.Match(`^([0-9]+)\s+STD\s+({ \S+\s+(\w+).*)$`) {
|
||||
num, proto := t.sub[1], t.sub[2]
|
||||
name := fmt.Sprintf("SYS_%s", t.sub[3])
|
||||
text += format(name, num, proto)
|
||||
}
|
||||
case "freebsd":
|
||||
if t.Match(`^([0-9]+)\s+\S+\s+(?:NO)?STD\s+({ \S+\s+(\w+).*)$`) {
|
||||
num, proto := t.sub[1], t.sub[2]
|
||||
name := fmt.Sprintf("SYS_%s", t.sub[3])
|
||||
text += format(name, num, proto)
|
||||
}
|
||||
case "openbsd":
|
||||
if t.Match(`^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$`) {
|
||||
num, proto, name := t.sub[1], t.sub[3], t.sub[4]
|
||||
text += format(name, num, proto)
|
||||
}
|
||||
case "netbsd":
|
||||
if t.Match(`^([0-9]+)\s+((STD)|(NOERR))\s+(RUMP\s+)?({\s+\S+\s*\*?\s*\|(\S+)\|(\S*)\|(\w+).*\s+})(\s+(\S+))?$`) {
|
||||
num, proto, compat := t.sub[1], t.sub[6], t.sub[8]
|
||||
name := t.sub[7] + "_" + t.sub[9]
|
||||
if t.sub[11] != "" {
|
||||
name = t.sub[7] + "_" + t.sub[11]
|
||||
}
|
||||
name = strings.ToUpper(name)
|
||||
if compat == "" || compat == "13" || compat == "30" || compat == "50" {
|
||||
text += fmt.Sprintf(" %s = %s; // %s\n", name, num, proto)
|
||||
}
|
||||
}
|
||||
case "darwin":
|
||||
if t.Match(`^#define\s+SYS_(\w+)\s+([0-9]+)`) {
|
||||
name, num := t.sub[1], t.sub[2]
|
||||
name = strings.ToUpper(name)
|
||||
text += fmt.Sprintf(" SYS_%s = %s;\n", name, num)
|
||||
}
|
||||
default:
|
||||
fmt.Fprintf(os.Stderr, "unrecognized GOOS=%s\n", goos)
|
||||
os.Exit(1)
|
||||
|
||||
}
|
||||
}
|
||||
err := s.Err()
|
||||
checkErr(err)
|
||||
|
||||
fmt.Printf(template, cmdLine(), buildTags(), text)
|
||||
}
|
||||
|
||||
const template = `// %s
|
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s
|
||||
|
||||
package unix
|
||||
|
||||
const(
|
||||
%s)`
|
||||
236
vendor/golang.org/x/sys/unix/types_aix.go
generated
vendored
236
vendor/golang.org/x/sys/unix/types_aix.go
generated
vendored
@@ -1,236 +0,0 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
// +build aix
|
||||
|
||||
/*
|
||||
Input to cgo -godefs. See also mkerrors.sh and mkall.sh
|
||||
*/
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix
|
||||
|
||||
/*
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/limits.h>
|
||||
#include <sys/un.h>
|
||||
#include <utime.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/poll.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/statfs.h>
|
||||
#include <sys/termio.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
#include <termios.h>
|
||||
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/icmp6.h>
|
||||
|
||||
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
enum {
|
||||
sizeofPtr = sizeof(void*),
|
||||
};
|
||||
|
||||
union sockaddr_all {
|
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3;
|
||||
struct sockaddr_un s4;
|
||||
struct sockaddr_dl s5;
|
||||
};
|
||||
|
||||
struct sockaddr_any {
|
||||
struct sockaddr addr;
|
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
|
||||
};
|
||||
|
||||
*/
|
||||
import "C"
|
||||
|
||||
// Machine characteristics
|
||||
|
||||
const (
|
||||
SizeofPtr = C.sizeofPtr
|
||||
SizeofShort = C.sizeof_short
|
||||
SizeofInt = C.sizeof_int
|
||||
SizeofLong = C.sizeof_long
|
||||
SizeofLongLong = C.sizeof_longlong
|
||||
PathMax = C.PATH_MAX
|
||||
)
|
||||
|
||||
// Basic types
|
||||
|
||||
type (
|
||||
_C_short C.short
|
||||
_C_int C.int
|
||||
_C_long C.long
|
||||
_C_long_long C.longlong
|
||||
)
|
||||
|
||||
type off64 C.off64_t
|
||||
type off C.off_t
|
||||
type Mode_t C.mode_t
|
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec
|
||||
|
||||
type StTimespec C.struct_st_timespec
|
||||
|
||||
type Timeval C.struct_timeval
|
||||
|
||||
type Timeval32 C.struct_timeval32
|
||||
|
||||
type Timex C.struct_timex
|
||||
|
||||
type Time_t C.time_t
|
||||
|
||||
type Tms C.struct_tms
|
||||
|
||||
type Utimbuf C.struct_utimbuf
|
||||
|
||||
type Timezone C.struct_timezone
|
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage
|
||||
|
||||
type Rlimit C.struct_rlimit64
|
||||
|
||||
type Pid_t C.pid_t
|
||||
|
||||
type _Gid_t C.gid_t
|
||||
|
||||
type dev_t C.dev_t
|
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat
|
||||
|
||||
type StatxTimestamp C.struct_statx_timestamp
|
||||
|
||||
type Statx_t C.struct_statx
|
||||
|
||||
type Dirent C.struct_dirent
|
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in
|
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6
|
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
|
||||
type _Socklen C.socklen_t
|
||||
|
||||
type Cmsghdr C.struct_cmsghdr
|
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter
|
||||
|
||||
type Iovec C.struct_iovec
|
||||
|
||||
type IPMreq C.struct_ip_mreq
|
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq
|
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
|
||||
|
||||
type Linger C.struct_linger
|
||||
|
||||
type Msghdr C.struct_msghdr
|
||||
|
||||
const (
|
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
|
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
|
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
|
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
|
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
|
||||
SizeofMsghdr = C.sizeof_struct_msghdr
|
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr
|
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
|
||||
)
|
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const (
|
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr
|
||||
)
|
||||
|
||||
type IfMsgHdr C.struct_if_msghdr
|
||||
|
||||
// Misc
|
||||
|
||||
type FdSet C.fd_set
|
||||
|
||||
type Utsname C.struct_utsname
|
||||
|
||||
type Ustat_t C.struct_ustat
|
||||
|
||||
type Sigset_t C.sigset_t
|
||||
|
||||
const (
|
||||
AT_FDCWD = C.AT_FDCWD
|
||||
AT_REMOVEDIR = C.AT_REMOVEDIR
|
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||
)
|
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios
|
||||
|
||||
type Termio C.struct_termio
|
||||
|
||||
type Winsize C.struct_winsize
|
||||
|
||||
//poll
|
||||
|
||||
type PollFd struct {
|
||||
Fd int32
|
||||
Events uint16
|
||||
Revents uint16
|
||||
}
|
||||
|
||||
const (
|
||||
POLLERR = C.POLLERR
|
||||
POLLHUP = C.POLLHUP
|
||||
POLLIN = C.POLLIN
|
||||
POLLNVAL = C.POLLNVAL
|
||||
POLLOUT = C.POLLOUT
|
||||
POLLPRI = C.POLLPRI
|
||||
POLLRDBAND = C.POLLRDBAND
|
||||
POLLRDNORM = C.POLLRDNORM
|
||||
POLLWRBAND = C.POLLWRBAND
|
||||
POLLWRNORM = C.POLLWRNORM
|
||||
)
|
||||
|
||||
//flock_t
|
||||
|
||||
type Flock_t C.struct_flock64
|
||||
|
||||
// Statfs
|
||||
|
||||
type Fsid_t C.struct_fsid_t
|
||||
type Fsid64_t C.struct_fsid64_t
|
||||
|
||||
type Statfs_t C.struct_statfs
|
||||
|
||||
const RNDGETENTCNT = 0x80045200
|
||||
277
vendor/golang.org/x/sys/unix/types_darwin.go
generated
vendored
277
vendor/golang.org/x/sys/unix/types_darwin.go
generated
vendored
@@ -1,277 +0,0 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
Input to cgo -godefs. See README.md
|
||||
*/
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix
|
||||
|
||||
/*
|
||||
#define __DARWIN_UNIX03 0
|
||||
#define KERNEL
|
||||
#define _DARWIN_USE_64_BIT_INODE
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <mach/mach.h>
|
||||
#include <mach/message.h>
|
||||
#include <sys/event.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/signal.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/wait.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/if_var.h>
|
||||
#include <net/route.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/icmp6.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
enum {
|
||||
sizeofPtr = sizeof(void*),
|
||||
};
|
||||
|
||||
union sockaddr_all {
|
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3;
|
||||
struct sockaddr_un s4;
|
||||
struct sockaddr_dl s5;
|
||||
};
|
||||
|
||||
struct sockaddr_any {
|
||||
struct sockaddr addr;
|
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
|
||||
};
|
||||
|
||||
*/
|
||||
import "C"
|
||||
|
||||
// Machine characteristics
|
||||
|
||||
const (
|
||||
SizeofPtr = C.sizeofPtr
|
||||
SizeofShort = C.sizeof_short
|
||||
SizeofInt = C.sizeof_int
|
||||
SizeofLong = C.sizeof_long
|
||||
SizeofLongLong = C.sizeof_longlong
|
||||
)
|
||||
|
||||
// Basic types
|
||||
|
||||
type (
|
||||
_C_short C.short
|
||||
_C_int C.int
|
||||
_C_long C.long
|
||||
_C_long_long C.longlong
|
||||
)
|
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec
|
||||
|
||||
type Timeval C.struct_timeval
|
||||
|
||||
type Timeval32 C.struct_timeval32
|
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage
|
||||
|
||||
type Rlimit C.struct_rlimit
|
||||
|
||||
type _Gid_t C.gid_t
|
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat64
|
||||
|
||||
type Statfs_t C.struct_statfs64
|
||||
|
||||
type Flock_t C.struct_flock
|
||||
|
||||
type Fstore_t C.struct_fstore
|
||||
|
||||
type Radvisory_t C.struct_radvisory
|
||||
|
||||
type Fbootstraptransfer_t C.struct_fbootstraptransfer
|
||||
|
||||
type Log2phys_t C.struct_log2phys
|
||||
|
||||
type Fsid C.struct_fsid
|
||||
|
||||
type Dirent C.struct_dirent
|
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in
|
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6
|
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un
|
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
|
||||
type _Socklen C.socklen_t
|
||||
|
||||
type Linger C.struct_linger
|
||||
|
||||
type Iovec C.struct_iovec
|
||||
|
||||
type IPMreq C.struct_ip_mreq
|
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq
|
||||
|
||||
type Msghdr C.struct_msghdr
|
||||
|
||||
type Cmsghdr C.struct_cmsghdr
|
||||
|
||||
type Inet4Pktinfo C.struct_in_pktinfo
|
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo
|
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
|
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter
|
||||
|
||||
const (
|
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
|
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
|
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
|
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
|
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
|
||||
SizeofMsghdr = C.sizeof_struct_msghdr
|
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr
|
||||
SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo
|
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
|
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
|
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
|
||||
)
|
||||
|
||||
// Ptrace requests
|
||||
|
||||
const (
|
||||
PTRACE_TRACEME = C.PT_TRACE_ME
|
||||
PTRACE_CONT = C.PT_CONTINUE
|
||||
PTRACE_KILL = C.PT_KILL
|
||||
)
|
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent
|
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set
|
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const (
|
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr
|
||||
SizeofIfData = C.sizeof_struct_if_data
|
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
|
||||
SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr
|
||||
SizeofIfmaMsghdr2 = C.sizeof_struct_ifma_msghdr2
|
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr
|
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics
|
||||
)
|
||||
|
||||
type IfMsghdr C.struct_if_msghdr
|
||||
|
||||
type IfData C.struct_if_data
|
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr
|
||||
|
||||
type IfmaMsghdr C.struct_ifma_msghdr
|
||||
|
||||
type IfmaMsghdr2 C.struct_ifma_msghdr2
|
||||
|
||||
type RtMsghdr C.struct_rt_msghdr
|
||||
|
||||
type RtMetrics C.struct_rt_metrics
|
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const (
|
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version
|
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat
|
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program
|
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn
|
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr
|
||||
)
|
||||
|
||||
type BpfVersion C.struct_bpf_version
|
||||
|
||||
type BpfStat C.struct_bpf_stat
|
||||
|
||||
type BpfProgram C.struct_bpf_program
|
||||
|
||||
type BpfInsn C.struct_bpf_insn
|
||||
|
||||
type BpfHdr C.struct_bpf_hdr
|
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios
|
||||
|
||||
type Winsize C.struct_winsize
|
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const (
|
||||
AT_FDCWD = C.AT_FDCWD
|
||||
AT_REMOVEDIR = C.AT_REMOVEDIR
|
||||
AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW
|
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||
)
|
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd
|
||||
|
||||
const (
|
||||
POLLERR = C.POLLERR
|
||||
POLLHUP = C.POLLHUP
|
||||
POLLIN = C.POLLIN
|
||||
POLLNVAL = C.POLLNVAL
|
||||
POLLOUT = C.POLLOUT
|
||||
POLLPRI = C.POLLPRI
|
||||
POLLRDBAND = C.POLLRDBAND
|
||||
POLLRDNORM = C.POLLRDNORM
|
||||
POLLWRBAND = C.POLLWRBAND
|
||||
POLLWRNORM = C.POLLWRNORM
|
||||
)
|
||||
|
||||
// uname
|
||||
|
||||
type Utsname C.struct_utsname
|
||||
263
vendor/golang.org/x/sys/unix/types_dragonfly.go
generated
vendored
263
vendor/golang.org/x/sys/unix/types_dragonfly.go
generated
vendored
@@ -1,263 +0,0 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
Input to cgo -godefs. See README.md
|
||||
*/
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix
|
||||
|
||||
/*
|
||||
#define KERNEL
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
#include <termios.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/event.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/signal.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/wait.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/route.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/icmp6.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
enum {
|
||||
sizeofPtr = sizeof(void*),
|
||||
};
|
||||
|
||||
union sockaddr_all {
|
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3;
|
||||
struct sockaddr_un s4;
|
||||
struct sockaddr_dl s5;
|
||||
};
|
||||
|
||||
struct sockaddr_any {
|
||||
struct sockaddr addr;
|
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
|
||||
};
|
||||
|
||||
*/
|
||||
import "C"
|
||||
|
||||
// Machine characteristics
|
||||
|
||||
const (
|
||||
SizeofPtr = C.sizeofPtr
|
||||
SizeofShort = C.sizeof_short
|
||||
SizeofInt = C.sizeof_int
|
||||
SizeofLong = C.sizeof_long
|
||||
SizeofLongLong = C.sizeof_longlong
|
||||
)
|
||||
|
||||
// Basic types
|
||||
|
||||
type (
|
||||
_C_short C.short
|
||||
_C_int C.int
|
||||
_C_long C.long
|
||||
_C_long_long C.longlong
|
||||
)
|
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec
|
||||
|
||||
type Timeval C.struct_timeval
|
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage
|
||||
|
||||
type Rlimit C.struct_rlimit
|
||||
|
||||
type _Gid_t C.gid_t
|
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat
|
||||
|
||||
type Statfs_t C.struct_statfs
|
||||
|
||||
type Flock_t C.struct_flock
|
||||
|
||||
type Dirent C.struct_dirent
|
||||
|
||||
type Fsid C.struct_fsid
|
||||
|
||||
// File system limits
|
||||
|
||||
const (
|
||||
PathMax = C.PATH_MAX
|
||||
)
|
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in
|
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6
|
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un
|
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
|
||||
type _Socklen C.socklen_t
|
||||
|
||||
type Linger C.struct_linger
|
||||
|
||||
type Iovec C.struct_iovec
|
||||
|
||||
type IPMreq C.struct_ip_mreq
|
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq
|
||||
|
||||
type Msghdr C.struct_msghdr
|
||||
|
||||
type Cmsghdr C.struct_cmsghdr
|
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo
|
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
|
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter
|
||||
|
||||
const (
|
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
|
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
|
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
|
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
|
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
|
||||
SizeofMsghdr = C.sizeof_struct_msghdr
|
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr
|
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
|
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
|
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
|
||||
)
|
||||
|
||||
// Ptrace requests
|
||||
|
||||
const (
|
||||
PTRACE_TRACEME = C.PT_TRACE_ME
|
||||
PTRACE_CONT = C.PT_CONTINUE
|
||||
PTRACE_KILL = C.PT_KILL
|
||||
)
|
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent
|
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set
|
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const (
|
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr
|
||||
SizeofIfData = C.sizeof_struct_if_data
|
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
|
||||
SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr
|
||||
SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
|
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr
|
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics
|
||||
)
|
||||
|
||||
type IfMsghdr C.struct_if_msghdr
|
||||
|
||||
type IfData C.struct_if_data
|
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr
|
||||
|
||||
type IfmaMsghdr C.struct_ifma_msghdr
|
||||
|
||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr
|
||||
|
||||
type RtMsghdr C.struct_rt_msghdr
|
||||
|
||||
type RtMetrics C.struct_rt_metrics
|
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const (
|
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version
|
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat
|
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program
|
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn
|
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr
|
||||
)
|
||||
|
||||
type BpfVersion C.struct_bpf_version
|
||||
|
||||
type BpfStat C.struct_bpf_stat
|
||||
|
||||
type BpfProgram C.struct_bpf_program
|
||||
|
||||
type BpfInsn C.struct_bpf_insn
|
||||
|
||||
type BpfHdr C.struct_bpf_hdr
|
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios
|
||||
|
||||
type Winsize C.struct_winsize
|
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const (
|
||||
AT_FDCWD = C.AT_FDCWD
|
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||
)
|
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd
|
||||
|
||||
const (
|
||||
POLLERR = C.POLLERR
|
||||
POLLHUP = C.POLLHUP
|
||||
POLLIN = C.POLLIN
|
||||
POLLNVAL = C.POLLNVAL
|
||||
POLLOUT = C.POLLOUT
|
||||
POLLPRI = C.POLLPRI
|
||||
POLLRDBAND = C.POLLRDBAND
|
||||
POLLRDNORM = C.POLLRDNORM
|
||||
POLLWRBAND = C.POLLWRBAND
|
||||
POLLWRNORM = C.POLLWRNORM
|
||||
)
|
||||
|
||||
// Uname
|
||||
|
||||
type Utsname C.struct_utsname
|
||||
356
vendor/golang.org/x/sys/unix/types_freebsd.go
generated
vendored
356
vendor/golang.org/x/sys/unix/types_freebsd.go
generated
vendored
@@ -1,356 +0,0 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
Input to cgo -godefs. See README.md
|
||||
*/
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix
|
||||
|
||||
/*
|
||||
#define _WANT_FREEBSD11_STAT 1
|
||||
#define _WANT_FREEBSD11_STATFS 1
|
||||
#define _WANT_FREEBSD11_DIRENT 1
|
||||
#define _WANT_FREEBSD11_KEVENT 1
|
||||
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
#include <termios.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/capsicum.h>
|
||||
#include <sys/event.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/signal.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/wait.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/route.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/icmp6.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
enum {
|
||||
sizeofPtr = sizeof(void*),
|
||||
};
|
||||
|
||||
union sockaddr_all {
|
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3;
|
||||
struct sockaddr_un s4;
|
||||
struct sockaddr_dl s5;
|
||||
};
|
||||
|
||||
struct sockaddr_any {
|
||||
struct sockaddr addr;
|
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
|
||||
};
|
||||
|
||||
// This structure is a duplicate of if_data on FreeBSD 8-STABLE.
|
||||
// See /usr/include/net/if.h.
|
||||
struct if_data8 {
|
||||
u_char ifi_type;
|
||||
u_char ifi_physical;
|
||||
u_char ifi_addrlen;
|
||||
u_char ifi_hdrlen;
|
||||
u_char ifi_link_state;
|
||||
u_char ifi_spare_char1;
|
||||
u_char ifi_spare_char2;
|
||||
u_char ifi_datalen;
|
||||
u_long ifi_mtu;
|
||||
u_long ifi_metric;
|
||||
u_long ifi_baudrate;
|
||||
u_long ifi_ipackets;
|
||||
u_long ifi_ierrors;
|
||||
u_long ifi_opackets;
|
||||
u_long ifi_oerrors;
|
||||
u_long ifi_collisions;
|
||||
u_long ifi_ibytes;
|
||||
u_long ifi_obytes;
|
||||
u_long ifi_imcasts;
|
||||
u_long ifi_omcasts;
|
||||
u_long ifi_iqdrops;
|
||||
u_long ifi_noproto;
|
||||
u_long ifi_hwassist;
|
||||
// FIXME: these are now unions, so maybe need to change definitions?
|
||||
#undef ifi_epoch
|
||||
time_t ifi_epoch;
|
||||
#undef ifi_lastchange
|
||||
struct timeval ifi_lastchange;
|
||||
};
|
||||
|
||||
// This structure is a duplicate of if_msghdr on FreeBSD 8-STABLE.
|
||||
// See /usr/include/net/if.h.
|
||||
struct if_msghdr8 {
|
||||
u_short ifm_msglen;
|
||||
u_char ifm_version;
|
||||
u_char ifm_type;
|
||||
int ifm_addrs;
|
||||
int ifm_flags;
|
||||
u_short ifm_index;
|
||||
struct if_data8 ifm_data;
|
||||
};
|
||||
*/
|
||||
import "C"
|
||||
|
||||
// Machine characteristics
|
||||
|
||||
const (
|
||||
SizeofPtr = C.sizeofPtr
|
||||
SizeofShort = C.sizeof_short
|
||||
SizeofInt = C.sizeof_int
|
||||
SizeofLong = C.sizeof_long
|
||||
SizeofLongLong = C.sizeof_longlong
|
||||
)
|
||||
|
||||
// Basic types
|
||||
|
||||
type (
|
||||
_C_short C.short
|
||||
_C_int C.int
|
||||
_C_long C.long
|
||||
_C_long_long C.longlong
|
||||
)
|
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec
|
||||
|
||||
type Timeval C.struct_timeval
|
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage
|
||||
|
||||
type Rlimit C.struct_rlimit
|
||||
|
||||
type _Gid_t C.gid_t
|
||||
|
||||
// Files
|
||||
|
||||
const (
|
||||
_statfsVersion = C.STATFS_VERSION
|
||||
_dirblksiz = C.DIRBLKSIZ
|
||||
)
|
||||
|
||||
type Stat_t C.struct_stat
|
||||
|
||||
type stat_freebsd11_t C.struct_freebsd11_stat
|
||||
|
||||
type Statfs_t C.struct_statfs
|
||||
|
||||
type statfs_freebsd11_t C.struct_freebsd11_statfs
|
||||
|
||||
type Flock_t C.struct_flock
|
||||
|
||||
type Dirent C.struct_dirent
|
||||
|
||||
type dirent_freebsd11 C.struct_freebsd11_dirent
|
||||
|
||||
type Fsid C.struct_fsid
|
||||
|
||||
// File system limits
|
||||
|
||||
const (
|
||||
PathMax = C.PATH_MAX
|
||||
)
|
||||
|
||||
// Advice to Fadvise
|
||||
|
||||
const (
|
||||
FADV_NORMAL = C.POSIX_FADV_NORMAL
|
||||
FADV_RANDOM = C.POSIX_FADV_RANDOM
|
||||
FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL
|
||||
FADV_WILLNEED = C.POSIX_FADV_WILLNEED
|
||||
FADV_DONTNEED = C.POSIX_FADV_DONTNEED
|
||||
FADV_NOREUSE = C.POSIX_FADV_NOREUSE
|
||||
)
|
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in
|
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6
|
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un
|
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
|
||||
type _Socklen C.socklen_t
|
||||
|
||||
type Linger C.struct_linger
|
||||
|
||||
type Iovec C.struct_iovec
|
||||
|
||||
type IPMreq C.struct_ip_mreq
|
||||
|
||||
type IPMreqn C.struct_ip_mreqn
|
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq
|
||||
|
||||
type Msghdr C.struct_msghdr
|
||||
|
||||
type Cmsghdr C.struct_cmsghdr
|
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo
|
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
|
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter
|
||||
|
||||
const (
|
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
|
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
|
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
|
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
|
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
SizeofIPMreqn = C.sizeof_struct_ip_mreqn
|
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
|
||||
SizeofMsghdr = C.sizeof_struct_msghdr
|
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr
|
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
|
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
|
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
|
||||
)
|
||||
|
||||
// Ptrace requests
|
||||
|
||||
const (
|
||||
PTRACE_TRACEME = C.PT_TRACE_ME
|
||||
PTRACE_CONT = C.PT_CONTINUE
|
||||
PTRACE_KILL = C.PT_KILL
|
||||
)
|
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent_freebsd11
|
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set
|
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const (
|
||||
sizeofIfMsghdr = C.sizeof_struct_if_msghdr
|
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr8
|
||||
sizeofIfData = C.sizeof_struct_if_data
|
||||
SizeofIfData = C.sizeof_struct_if_data8
|
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
|
||||
SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr
|
||||
SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
|
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr
|
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics
|
||||
)
|
||||
|
||||
type ifMsghdr C.struct_if_msghdr
|
||||
|
||||
type IfMsghdr C.struct_if_msghdr8
|
||||
|
||||
type ifData C.struct_if_data
|
||||
|
||||
type IfData C.struct_if_data8
|
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr
|
||||
|
||||
type IfmaMsghdr C.struct_ifma_msghdr
|
||||
|
||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr
|
||||
|
||||
type RtMsghdr C.struct_rt_msghdr
|
||||
|
||||
type RtMetrics C.struct_rt_metrics
|
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const (
|
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version
|
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat
|
||||
SizeofBpfZbuf = C.sizeof_struct_bpf_zbuf
|
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program
|
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn
|
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr
|
||||
SizeofBpfZbufHeader = C.sizeof_struct_bpf_zbuf_header
|
||||
)
|
||||
|
||||
type BpfVersion C.struct_bpf_version
|
||||
|
||||
type BpfStat C.struct_bpf_stat
|
||||
|
||||
type BpfZbuf C.struct_bpf_zbuf
|
||||
|
||||
type BpfProgram C.struct_bpf_program
|
||||
|
||||
type BpfInsn C.struct_bpf_insn
|
||||
|
||||
type BpfHdr C.struct_bpf_hdr
|
||||
|
||||
type BpfZbufHeader C.struct_bpf_zbuf_header
|
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios
|
||||
|
||||
type Winsize C.struct_winsize
|
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const (
|
||||
AT_FDCWD = C.AT_FDCWD
|
||||
AT_REMOVEDIR = C.AT_REMOVEDIR
|
||||
AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW
|
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||
)
|
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd
|
||||
|
||||
const (
|
||||
POLLERR = C.POLLERR
|
||||
POLLHUP = C.POLLHUP
|
||||
POLLIN = C.POLLIN
|
||||
POLLINIGNEOF = C.POLLINIGNEOF
|
||||
POLLNVAL = C.POLLNVAL
|
||||
POLLOUT = C.POLLOUT
|
||||
POLLPRI = C.POLLPRI
|
||||
POLLRDBAND = C.POLLRDBAND
|
||||
POLLRDNORM = C.POLLRDNORM
|
||||
POLLWRBAND = C.POLLWRBAND
|
||||
POLLWRNORM = C.POLLWRNORM
|
||||
)
|
||||
|
||||
// Capabilities
|
||||
|
||||
type CapRights C.struct_cap_rights
|
||||
|
||||
// Uname
|
||||
|
||||
type Utsname C.struct_utsname
|
||||
289
vendor/golang.org/x/sys/unix/types_netbsd.go
generated
vendored
289
vendor/golang.org/x/sys/unix/types_netbsd.go
generated
vendored
@@ -1,289 +0,0 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
Input to cgo -godefs. See README.md
|
||||
*/
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix
|
||||
|
||||
/*
|
||||
#define KERNEL
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
#include <termios.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/event.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/signal.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/wait.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/route.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/icmp6.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
enum {
|
||||
sizeofPtr = sizeof(void*),
|
||||
};
|
||||
|
||||
union sockaddr_all {
|
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3;
|
||||
struct sockaddr_un s4;
|
||||
struct sockaddr_dl s5;
|
||||
};
|
||||
|
||||
struct sockaddr_any {
|
||||
struct sockaddr addr;
|
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
|
||||
};
|
||||
|
||||
*/
|
||||
import "C"
|
||||
|
||||
// Machine characteristics
|
||||
|
||||
const (
|
||||
SizeofPtr = C.sizeofPtr
|
||||
SizeofShort = C.sizeof_short
|
||||
SizeofInt = C.sizeof_int
|
||||
SizeofLong = C.sizeof_long
|
||||
SizeofLongLong = C.sizeof_longlong
|
||||
)
|
||||
|
||||
// Basic types
|
||||
|
||||
type (
|
||||
_C_short C.short
|
||||
_C_int C.int
|
||||
_C_long C.long
|
||||
_C_long_long C.longlong
|
||||
)
|
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec
|
||||
|
||||
type Timeval C.struct_timeval
|
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage
|
||||
|
||||
type Rlimit C.struct_rlimit
|
||||
|
||||
type _Gid_t C.gid_t
|
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat
|
||||
|
||||
type Statfs_t C.struct_statfs
|
||||
|
||||
type Flock_t C.struct_flock
|
||||
|
||||
type Dirent C.struct_dirent
|
||||
|
||||
type Fsid C.fsid_t
|
||||
|
||||
// File system limits
|
||||
|
||||
const (
|
||||
PathMax = C.PATH_MAX
|
||||
)
|
||||
|
||||
// Advice to Fadvise
|
||||
|
||||
const (
|
||||
FADV_NORMAL = C.POSIX_FADV_NORMAL
|
||||
FADV_RANDOM = C.POSIX_FADV_RANDOM
|
||||
FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL
|
||||
FADV_WILLNEED = C.POSIX_FADV_WILLNEED
|
||||
FADV_DONTNEED = C.POSIX_FADV_DONTNEED
|
||||
FADV_NOREUSE = C.POSIX_FADV_NOREUSE
|
||||
)
|
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in
|
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6
|
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un
|
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
|
||||
type _Socklen C.socklen_t
|
||||
|
||||
type Linger C.struct_linger
|
||||
|
||||
type Iovec C.struct_iovec
|
||||
|
||||
type IPMreq C.struct_ip_mreq
|
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq
|
||||
|
||||
type Msghdr C.struct_msghdr
|
||||
|
||||
type Cmsghdr C.struct_cmsghdr
|
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo
|
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
|
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter
|
||||
|
||||
const (
|
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
|
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
|
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
|
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
|
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
|
||||
SizeofMsghdr = C.sizeof_struct_msghdr
|
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr
|
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
|
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
|
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
|
||||
)
|
||||
|
||||
// Ptrace requests
|
||||
|
||||
const (
|
||||
PTRACE_TRACEME = C.PT_TRACE_ME
|
||||
PTRACE_CONT = C.PT_CONTINUE
|
||||
PTRACE_KILL = C.PT_KILL
|
||||
)
|
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent
|
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set
|
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const (
|
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr
|
||||
SizeofIfData = C.sizeof_struct_if_data
|
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
|
||||
SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
|
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr
|
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics
|
||||
)
|
||||
|
||||
type IfMsghdr C.struct_if_msghdr
|
||||
|
||||
type IfData C.struct_if_data
|
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr
|
||||
|
||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr
|
||||
|
||||
type RtMsghdr C.struct_rt_msghdr
|
||||
|
||||
type RtMetrics C.struct_rt_metrics
|
||||
|
||||
type Mclpool C.struct_mclpool
|
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const (
|
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version
|
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat
|
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program
|
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn
|
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr
|
||||
)
|
||||
|
||||
type BpfVersion C.struct_bpf_version
|
||||
|
||||
type BpfStat C.struct_bpf_stat
|
||||
|
||||
type BpfProgram C.struct_bpf_program
|
||||
|
||||
type BpfInsn C.struct_bpf_insn
|
||||
|
||||
type BpfHdr C.struct_bpf_hdr
|
||||
|
||||
type BpfTimeval C.struct_bpf_timeval
|
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios
|
||||
|
||||
type Winsize C.struct_winsize
|
||||
|
||||
type Ptmget C.struct_ptmget
|
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const (
|
||||
AT_FDCWD = C.AT_FDCWD
|
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||
)
|
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd
|
||||
|
||||
const (
|
||||
POLLERR = C.POLLERR
|
||||
POLLHUP = C.POLLHUP
|
||||
POLLIN = C.POLLIN
|
||||
POLLNVAL = C.POLLNVAL
|
||||
POLLOUT = C.POLLOUT
|
||||
POLLPRI = C.POLLPRI
|
||||
POLLRDBAND = C.POLLRDBAND
|
||||
POLLRDNORM = C.POLLRDNORM
|
||||
POLLWRBAND = C.POLLWRBAND
|
||||
POLLWRNORM = C.POLLWRNORM
|
||||
)
|
||||
|
||||
// Sysctl
|
||||
|
||||
type Sysctlnode C.struct_sysctlnode
|
||||
|
||||
// Uname
|
||||
|
||||
type Utsname C.struct_utsname
|
||||
|
||||
// Clockinfo
|
||||
|
||||
const SizeofClockinfo = C.sizeof_struct_clockinfo
|
||||
|
||||
type Clockinfo C.struct_clockinfo
|
||||
276
vendor/golang.org/x/sys/unix/types_openbsd.go
generated
vendored
276
vendor/golang.org/x/sys/unix/types_openbsd.go
generated
vendored
@@ -1,276 +0,0 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
Input to cgo -godefs. See README.md
|
||||
*/
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix
|
||||
|
||||
/*
|
||||
#define KERNEL
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
#include <termios.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/event.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/signal.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/wait.h>
|
||||
#include <uvm/uvmexp.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/route.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/icmp6.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
enum {
|
||||
sizeofPtr = sizeof(void*),
|
||||
};
|
||||
|
||||
union sockaddr_all {
|
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3;
|
||||
struct sockaddr_un s4;
|
||||
struct sockaddr_dl s5;
|
||||
};
|
||||
|
||||
struct sockaddr_any {
|
||||
struct sockaddr addr;
|
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
|
||||
};
|
||||
|
||||
*/
|
||||
import "C"
|
||||
|
||||
// Machine characteristics
|
||||
|
||||
const (
|
||||
SizeofPtr = C.sizeofPtr
|
||||
SizeofShort = C.sizeof_short
|
||||
SizeofInt = C.sizeof_int
|
||||
SizeofLong = C.sizeof_long
|
||||
SizeofLongLong = C.sizeof_longlong
|
||||
)
|
||||
|
||||
// Basic types
|
||||
|
||||
type (
|
||||
_C_short C.short
|
||||
_C_int C.int
|
||||
_C_long C.long
|
||||
_C_long_long C.longlong
|
||||
)
|
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec
|
||||
|
||||
type Timeval C.struct_timeval
|
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage
|
||||
|
||||
type Rlimit C.struct_rlimit
|
||||
|
||||
type _Gid_t C.gid_t
|
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat
|
||||
|
||||
type Statfs_t C.struct_statfs
|
||||
|
||||
type Flock_t C.struct_flock
|
||||
|
||||
type Dirent C.struct_dirent
|
||||
|
||||
type Fsid C.fsid_t
|
||||
|
||||
// File system limits
|
||||
|
||||
const (
|
||||
PathMax = C.PATH_MAX
|
||||
)
|
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in
|
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6
|
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un
|
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
|
||||
type _Socklen C.socklen_t
|
||||
|
||||
type Linger C.struct_linger
|
||||
|
||||
type Iovec C.struct_iovec
|
||||
|
||||
type IPMreq C.struct_ip_mreq
|
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq
|
||||
|
||||
type Msghdr C.struct_msghdr
|
||||
|
||||
type Cmsghdr C.struct_cmsghdr
|
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo
|
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
|
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter
|
||||
|
||||
const (
|
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
|
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
|
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
|
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
|
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
|
||||
SizeofMsghdr = C.sizeof_struct_msghdr
|
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr
|
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
|
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
|
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
|
||||
)
|
||||
|
||||
// Ptrace requests
|
||||
|
||||
const (
|
||||
PTRACE_TRACEME = C.PT_TRACE_ME
|
||||
PTRACE_CONT = C.PT_CONTINUE
|
||||
PTRACE_KILL = C.PT_KILL
|
||||
)
|
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent
|
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set
|
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const (
|
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr
|
||||
SizeofIfData = C.sizeof_struct_if_data
|
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
|
||||
SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
|
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr
|
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics
|
||||
)
|
||||
|
||||
type IfMsghdr C.struct_if_msghdr
|
||||
|
||||
type IfData C.struct_if_data
|
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr
|
||||
|
||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr
|
||||
|
||||
type RtMsghdr C.struct_rt_msghdr
|
||||
|
||||
type RtMetrics C.struct_rt_metrics
|
||||
|
||||
type Mclpool C.struct_mclpool
|
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const (
|
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version
|
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat
|
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program
|
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn
|
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr
|
||||
)
|
||||
|
||||
type BpfVersion C.struct_bpf_version
|
||||
|
||||
type BpfStat C.struct_bpf_stat
|
||||
|
||||
type BpfProgram C.struct_bpf_program
|
||||
|
||||
type BpfInsn C.struct_bpf_insn
|
||||
|
||||
type BpfHdr C.struct_bpf_hdr
|
||||
|
||||
type BpfTimeval C.struct_bpf_timeval
|
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios
|
||||
|
||||
type Winsize C.struct_winsize
|
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const (
|
||||
AT_FDCWD = C.AT_FDCWD
|
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||
)
|
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd
|
||||
|
||||
const (
|
||||
POLLERR = C.POLLERR
|
||||
POLLHUP = C.POLLHUP
|
||||
POLLIN = C.POLLIN
|
||||
POLLNVAL = C.POLLNVAL
|
||||
POLLOUT = C.POLLOUT
|
||||
POLLPRI = C.POLLPRI
|
||||
POLLRDBAND = C.POLLRDBAND
|
||||
POLLRDNORM = C.POLLRDNORM
|
||||
POLLWRBAND = C.POLLWRBAND
|
||||
POLLWRNORM = C.POLLWRNORM
|
||||
)
|
||||
|
||||
// Signal Sets
|
||||
|
||||
type Sigset_t C.sigset_t
|
||||
|
||||
// Uname
|
||||
|
||||
type Utsname C.struct_utsname
|
||||
|
||||
// Uvmexp
|
||||
|
||||
const SizeofUvmexp = C.sizeof_struct_uvmexp
|
||||
|
||||
type Uvmexp C.struct_uvmexp
|
||||
266
vendor/golang.org/x/sys/unix/types_solaris.go
generated
vendored
266
vendor/golang.org/x/sys/unix/types_solaris.go
generated
vendored
@@ -1,266 +0,0 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
/*
|
||||
Input to cgo -godefs. See README.md
|
||||
*/
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix
|
||||
|
||||
/*
|
||||
#define KERNEL
|
||||
// These defines ensure that builds done on newer versions of Solaris are
|
||||
// backwards-compatible with older versions of Solaris and
|
||||
// OpenSolaris-based derivatives.
|
||||
#define __USE_SUNOS_SOCKETS__ // msghdr
|
||||
#define __USE_LEGACY_PROTOTYPES__ // iovec
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <netdb.h>
|
||||
#include <limits.h>
|
||||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
#include <termios.h>
|
||||
#include <termio.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/signal.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/times.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/wait.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/route.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/icmp6.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <ustat.h>
|
||||
#include <utime.h>
|
||||
|
||||
enum {
|
||||
sizeofPtr = sizeof(void*),
|
||||
};
|
||||
|
||||
union sockaddr_all {
|
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3;
|
||||
struct sockaddr_un s4;
|
||||
struct sockaddr_dl s5;
|
||||
};
|
||||
|
||||
struct sockaddr_any {
|
||||
struct sockaddr addr;
|
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
|
||||
};
|
||||
|
||||
*/
|
||||
import "C"
|
||||
|
||||
// Machine characteristics
|
||||
|
||||
const (
|
||||
SizeofPtr = C.sizeofPtr
|
||||
SizeofShort = C.sizeof_short
|
||||
SizeofInt = C.sizeof_int
|
||||
SizeofLong = C.sizeof_long
|
||||
SizeofLongLong = C.sizeof_longlong
|
||||
PathMax = C.PATH_MAX
|
||||
MaxHostNameLen = C.MAXHOSTNAMELEN
|
||||
)
|
||||
|
||||
// Basic types
|
||||
|
||||
type (
|
||||
_C_short C.short
|
||||
_C_int C.int
|
||||
_C_long C.long
|
||||
_C_long_long C.longlong
|
||||
)
|
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec
|
||||
|
||||
type Timeval C.struct_timeval
|
||||
|
||||
type Timeval32 C.struct_timeval32
|
||||
|
||||
type Tms C.struct_tms
|
||||
|
||||
type Utimbuf C.struct_utimbuf
|
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage
|
||||
|
||||
type Rlimit C.struct_rlimit
|
||||
|
||||
type _Gid_t C.gid_t
|
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat
|
||||
|
||||
type Flock_t C.struct_flock
|
||||
|
||||
type Dirent C.struct_dirent
|
||||
|
||||
// Filesystems
|
||||
|
||||
type _Fsblkcnt_t C.fsblkcnt_t
|
||||
|
||||
type Statvfs_t C.struct_statvfs
|
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in
|
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6
|
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un
|
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
|
||||
type _Socklen C.socklen_t
|
||||
|
||||
type Linger C.struct_linger
|
||||
|
||||
type Iovec C.struct_iovec
|
||||
|
||||
type IPMreq C.struct_ip_mreq
|
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq
|
||||
|
||||
type Msghdr C.struct_msghdr
|
||||
|
||||
type Cmsghdr C.struct_cmsghdr
|
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo
|
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo
|
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter
|
||||
|
||||
const (
|
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
|
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
|
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
|
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
|
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
|
||||
SizeofMsghdr = C.sizeof_struct_msghdr
|
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr
|
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
|
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
|
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
|
||||
)
|
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set
|
||||
|
||||
// Misc
|
||||
|
||||
type Utsname C.struct_utsname
|
||||
|
||||
type Ustat_t C.struct_ustat
|
||||
|
||||
const (
|
||||
AT_FDCWD = C.AT_FDCWD
|
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||
AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW
|
||||
AT_REMOVEDIR = C.AT_REMOVEDIR
|
||||
AT_EACCESS = C.AT_EACCESS
|
||||
)
|
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const (
|
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr
|
||||
SizeofIfData = C.sizeof_struct_if_data
|
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
|
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr
|
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics
|
||||
)
|
||||
|
||||
type IfMsghdr C.struct_if_msghdr
|
||||
|
||||
type IfData C.struct_if_data
|
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr
|
||||
|
||||
type RtMsghdr C.struct_rt_msghdr
|
||||
|
||||
type RtMetrics C.struct_rt_metrics
|
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const (
|
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version
|
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat
|
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program
|
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn
|
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr
|
||||
)
|
||||
|
||||
type BpfVersion C.struct_bpf_version
|
||||
|
||||
type BpfStat C.struct_bpf_stat
|
||||
|
||||
type BpfProgram C.struct_bpf_program
|
||||
|
||||
type BpfInsn C.struct_bpf_insn
|
||||
|
||||
type BpfTimeval C.struct_bpf_timeval
|
||||
|
||||
type BpfHdr C.struct_bpf_hdr
|
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios
|
||||
|
||||
type Termio C.struct_termio
|
||||
|
||||
type Winsize C.struct_winsize
|
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd
|
||||
|
||||
const (
|
||||
POLLERR = C.POLLERR
|
||||
POLLHUP = C.POLLHUP
|
||||
POLLIN = C.POLLIN
|
||||
POLLNVAL = C.POLLNVAL
|
||||
POLLOUT = C.POLLOUT
|
||||
POLLPRI = C.POLLPRI
|
||||
POLLRDBAND = C.POLLRDBAND
|
||||
POLLRDNORM = C.POLLRDNORM
|
||||
POLLWRBAND = C.POLLWRBAND
|
||||
POLLWRNORM = C.POLLWRNORM
|
||||
)
|
||||
556
vendor/golang.org/x/text/encoding/charmap/maketables.go
generated
vendored
556
vendor/golang.org/x/text/encoding/charmap/maketables.go
generated
vendored
@@ -1,556 +0,0 @@
|
||||
// Copyright 2013 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"sort"
|
||||
"strings"
|
||||
"unicode/utf8"
|
||||
|
||||
"golang.org/x/text/encoding"
|
||||
"golang.org/x/text/internal/gen"
|
||||
)
|
||||
|
||||
const ascii = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" +
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
|
||||
` !"#$%&'()*+,-./0123456789:;<=>?` +
|
||||
`@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` +
|
||||
"`abcdefghijklmnopqrstuvwxyz{|}~\u007f"
|
||||
|
||||
var encodings = []struct {
|
||||
name string
|
||||
mib string
|
||||
comment string
|
||||
varName string
|
||||
replacement byte
|
||||
mapping string
|
||||
}{
|
||||
{
|
||||
"IBM Code Page 037",
|
||||
"IBM037",
|
||||
"",
|
||||
"CodePage037",
|
||||
0x3f,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM037-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 437",
|
||||
"PC8CodePage437",
|
||||
"",
|
||||
"CodePage437",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM437-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 850",
|
||||
"PC850Multilingual",
|
||||
"",
|
||||
"CodePage850",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM850-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 852",
|
||||
"PCp852",
|
||||
"",
|
||||
"CodePage852",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM852-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 855",
|
||||
"IBM855",
|
||||
"",
|
||||
"CodePage855",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM855-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"Windows Code Page 858", // PC latin1 with Euro
|
||||
"IBM00858",
|
||||
"",
|
||||
"CodePage858",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-858-2000.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 860",
|
||||
"IBM860",
|
||||
"",
|
||||
"CodePage860",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM860-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 862",
|
||||
"PC862LatinHebrew",
|
||||
"",
|
||||
"CodePage862",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM862-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 863",
|
||||
"IBM863",
|
||||
"",
|
||||
"CodePage863",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM863-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 865",
|
||||
"IBM865",
|
||||
"",
|
||||
"CodePage865",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM865-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 866",
|
||||
"IBM866",
|
||||
"",
|
||||
"CodePage866",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-ibm866.txt",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 1047",
|
||||
"IBM1047",
|
||||
"",
|
||||
"CodePage1047",
|
||||
0x3f,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM1047-2.1.2.ucm",
|
||||
},
|
||||
{
|
||||
"IBM Code Page 1140",
|
||||
"IBM01140",
|
||||
"",
|
||||
"CodePage1140",
|
||||
0x3f,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/ibm-1140_P100-1997.ucm",
|
||||
},
|
||||
{
|
||||
"ISO 8859-1",
|
||||
"ISOLatin1",
|
||||
"",
|
||||
"ISO8859_1",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/iso-8859_1-1998.ucm",
|
||||
},
|
||||
{
|
||||
"ISO 8859-2",
|
||||
"ISOLatin2",
|
||||
"",
|
||||
"ISO8859_2",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-2.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-3",
|
||||
"ISOLatin3",
|
||||
"",
|
||||
"ISO8859_3",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-3.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-4",
|
||||
"ISOLatin4",
|
||||
"",
|
||||
"ISO8859_4",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-4.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-5",
|
||||
"ISOLatinCyrillic",
|
||||
"",
|
||||
"ISO8859_5",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-5.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-6",
|
||||
"ISOLatinArabic",
|
||||
"",
|
||||
"ISO8859_6,ISO8859_6E,ISO8859_6I",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-6.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-7",
|
||||
"ISOLatinGreek",
|
||||
"",
|
||||
"ISO8859_7",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-7.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-8",
|
||||
"ISOLatinHebrew",
|
||||
"",
|
||||
"ISO8859_8,ISO8859_8E,ISO8859_8I",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-8.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-9",
|
||||
"ISOLatin5",
|
||||
"",
|
||||
"ISO8859_9",
|
||||
encoding.ASCIISub,
|
||||
"http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/iso-8859_9-1999.ucm",
|
||||
},
|
||||
{
|
||||
"ISO 8859-10",
|
||||
"ISOLatin6",
|
||||
"",
|
||||
"ISO8859_10",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-10.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-13",
|
||||
"ISO885913",
|
||||
"",
|
||||
"ISO8859_13",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-13.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-14",
|
||||
"ISO885914",
|
||||
"",
|
||||
"ISO8859_14",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-14.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-15",
|
||||
"ISO885915",
|
||||
"",
|
||||
"ISO8859_15",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-15.txt",
|
||||
},
|
||||
{
|
||||
"ISO 8859-16",
|
||||
"ISO885916",
|
||||
"",
|
||||
"ISO8859_16",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-iso-8859-16.txt",
|
||||
},
|
||||
{
|
||||
"KOI8-R",
|
||||
"KOI8R",
|
||||
"",
|
||||
"KOI8R",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-koi8-r.txt",
|
||||
},
|
||||
{
|
||||
"KOI8-U",
|
||||
"KOI8U",
|
||||
"",
|
||||
"KOI8U",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-koi8-u.txt",
|
||||
},
|
||||
{
|
||||
"Macintosh",
|
||||
"Macintosh",
|
||||
"",
|
||||
"Macintosh",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-macintosh.txt",
|
||||
},
|
||||
{
|
||||
"Macintosh Cyrillic",
|
||||
"MacintoshCyrillic",
|
||||
"",
|
||||
"MacintoshCyrillic",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-x-mac-cyrillic.txt",
|
||||
},
|
||||
{
|
||||
"Windows 874",
|
||||
"Windows874",
|
||||
"",
|
||||
"Windows874",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-874.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1250",
|
||||
"Windows1250",
|
||||
"",
|
||||
"Windows1250",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1250.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1251",
|
||||
"Windows1251",
|
||||
"",
|
||||
"Windows1251",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1251.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1252",
|
||||
"Windows1252",
|
||||
"",
|
||||
"Windows1252",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1252.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1253",
|
||||
"Windows1253",
|
||||
"",
|
||||
"Windows1253",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1253.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1254",
|
||||
"Windows1254",
|
||||
"",
|
||||
"Windows1254",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1254.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1255",
|
||||
"Windows1255",
|
||||
"",
|
||||
"Windows1255",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1255.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1256",
|
||||
"Windows1256",
|
||||
"",
|
||||
"Windows1256",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1256.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1257",
|
||||
"Windows1257",
|
||||
"",
|
||||
"Windows1257",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1257.txt",
|
||||
},
|
||||
{
|
||||
"Windows 1258",
|
||||
"Windows1258",
|
||||
"",
|
||||
"Windows1258",
|
||||
encoding.ASCIISub,
|
||||
"http://encoding.spec.whatwg.org/index-windows-1258.txt",
|
||||
},
|
||||
{
|
||||
"X-User-Defined",
|
||||
"XUserDefined",
|
||||
"It is defined at http://encoding.spec.whatwg.org/#x-user-defined",
|
||||
"XUserDefined",
|
||||
encoding.ASCIISub,
|
||||
ascii +
|
||||
"\uf780\uf781\uf782\uf783\uf784\uf785\uf786\uf787" +
|
||||
"\uf788\uf789\uf78a\uf78b\uf78c\uf78d\uf78e\uf78f" +
|
||||
"\uf790\uf791\uf792\uf793\uf794\uf795\uf796\uf797" +
|
||||
"\uf798\uf799\uf79a\uf79b\uf79c\uf79d\uf79e\uf79f" +
|
||||
"\uf7a0\uf7a1\uf7a2\uf7a3\uf7a4\uf7a5\uf7a6\uf7a7" +
|
||||
"\uf7a8\uf7a9\uf7aa\uf7ab\uf7ac\uf7ad\uf7ae\uf7af" +
|
||||
"\uf7b0\uf7b1\uf7b2\uf7b3\uf7b4\uf7b5\uf7b6\uf7b7" +
|
||||
"\uf7b8\uf7b9\uf7ba\uf7bb\uf7bc\uf7bd\uf7be\uf7bf" +
|
||||
"\uf7c0\uf7c1\uf7c2\uf7c3\uf7c4\uf7c5\uf7c6\uf7c7" +
|
||||
"\uf7c8\uf7c9\uf7ca\uf7cb\uf7cc\uf7cd\uf7ce\uf7cf" +
|
||||
"\uf7d0\uf7d1\uf7d2\uf7d3\uf7d4\uf7d5\uf7d6\uf7d7" +
|
||||
"\uf7d8\uf7d9\uf7da\uf7db\uf7dc\uf7dd\uf7de\uf7df" +
|
||||
"\uf7e0\uf7e1\uf7e2\uf7e3\uf7e4\uf7e5\uf7e6\uf7e7" +
|
||||
"\uf7e8\uf7e9\uf7ea\uf7eb\uf7ec\uf7ed\uf7ee\uf7ef" +
|
||||
"\uf7f0\uf7f1\uf7f2\uf7f3\uf7f4\uf7f5\uf7f6\uf7f7" +
|
||||
"\uf7f8\uf7f9\uf7fa\uf7fb\uf7fc\uf7fd\uf7fe\uf7ff",
|
||||
},
|
||||
}
|
||||
|
||||
func getWHATWG(url string) string {
|
||||
res, err := http.Get(url)
|
||||
if err != nil {
|
||||
log.Fatalf("%q: Get: %v", url, err)
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
mapping := make([]rune, 128)
|
||||
for i := range mapping {
|
||||
mapping[i] = '\ufffd'
|
||||
}
|
||||
|
||||
scanner := bufio.NewScanner(res.Body)
|
||||
for scanner.Scan() {
|
||||
s := strings.TrimSpace(scanner.Text())
|
||||
if s == "" || s[0] == '#' {
|
||||
continue
|
||||
}
|
||||
x, y := 0, 0
|
||||
if _, err := fmt.Sscanf(s, "%d\t0x%x", &x, &y); err != nil {
|
||||
log.Fatalf("could not parse %q", s)
|
||||
}
|
||||
if x < 0 || 128 <= x {
|
||||
log.Fatalf("code %d is out of range", x)
|
||||
}
|
||||
if 0x80 <= y && y < 0xa0 {
|
||||
// We diverge from the WHATWG spec by mapping control characters
|
||||
// in the range [0x80, 0xa0) to U+FFFD.
|
||||
continue
|
||||
}
|
||||
mapping[x] = rune(y)
|
||||
}
|
||||
return ascii + string(mapping)
|
||||
}
|
||||
|
||||
func getUCM(url string) string {
|
||||
res, err := http.Get(url)
|
||||
if err != nil {
|
||||
log.Fatalf("%q: Get: %v", url, err)
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
mapping := make([]rune, 256)
|
||||
for i := range mapping {
|
||||
mapping[i] = '\ufffd'
|
||||
}
|
||||
|
||||
charsFound := 0
|
||||
scanner := bufio.NewScanner(res.Body)
|
||||
for scanner.Scan() {
|
||||
s := strings.TrimSpace(scanner.Text())
|
||||
if s == "" || s[0] == '#' {
|
||||
continue
|
||||
}
|
||||
var c byte
|
||||
var r rune
|
||||
if _, err := fmt.Sscanf(s, `<U%x> \x%x |0`, &r, &c); err != nil {
|
||||
continue
|
||||
}
|
||||
mapping[c] = r
|
||||
charsFound++
|
||||
}
|
||||
|
||||
if charsFound < 200 {
|
||||
log.Fatalf("%q: only %d characters found (wrong page format?)", url, charsFound)
|
||||
}
|
||||
|
||||
return string(mapping)
|
||||
}
|
||||
|
||||
func main() {
|
||||
mibs := map[string]bool{}
|
||||
all := []string{}
|
||||
|
||||
w := gen.NewCodeWriter()
|
||||
defer w.WriteGoFile("tables.go", "charmap")
|
||||
|
||||
printf := func(s string, a ...interface{}) { fmt.Fprintf(w, s, a...) }
|
||||
|
||||
printf("import (\n")
|
||||
printf("\t\"golang.org/x/text/encoding\"\n")
|
||||
printf("\t\"golang.org/x/text/encoding/internal/identifier\"\n")
|
||||
printf(")\n\n")
|
||||
for _, e := range encodings {
|
||||
varNames := strings.Split(e.varName, ",")
|
||||
all = append(all, varNames...)
|
||||
varName := varNames[0]
|
||||
switch {
|
||||
case strings.HasPrefix(e.mapping, "http://encoding.spec.whatwg.org/"):
|
||||
e.mapping = getWHATWG(e.mapping)
|
||||
case strings.HasPrefix(e.mapping, "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/"):
|
||||
e.mapping = getUCM(e.mapping)
|
||||
}
|
||||
|
||||
asciiSuperset, low := strings.HasPrefix(e.mapping, ascii), 0x00
|
||||
if asciiSuperset {
|
||||
low = 0x80
|
||||
}
|
||||
lvn := 1
|
||||
if strings.HasPrefix(varName, "ISO") || strings.HasPrefix(varName, "KOI") {
|
||||
lvn = 3
|
||||
}
|
||||
lowerVarName := strings.ToLower(varName[:lvn]) + varName[lvn:]
|
||||
printf("// %s is the %s encoding.\n", varName, e.name)
|
||||
if e.comment != "" {
|
||||
printf("//\n// %s\n", e.comment)
|
||||
}
|
||||
printf("var %s *Charmap = &%s\n\nvar %s = Charmap{\nname: %q,\n",
|
||||
varName, lowerVarName, lowerVarName, e.name)
|
||||
if mibs[e.mib] {
|
||||
log.Fatalf("MIB type %q declared multiple times.", e.mib)
|
||||
}
|
||||
printf("mib: identifier.%s,\n", e.mib)
|
||||
printf("asciiSuperset: %t,\n", asciiSuperset)
|
||||
printf("low: 0x%02x,\n", low)
|
||||
printf("replacement: 0x%02x,\n", e.replacement)
|
||||
|
||||
printf("decode: [256]utf8Enc{\n")
|
||||
i, backMapping := 0, map[rune]byte{}
|
||||
for _, c := range e.mapping {
|
||||
if _, ok := backMapping[c]; !ok && c != utf8.RuneError {
|
||||
backMapping[c] = byte(i)
|
||||
}
|
||||
var buf [8]byte
|
||||
n := utf8.EncodeRune(buf[:], c)
|
||||
if n > 3 {
|
||||
panic(fmt.Sprintf("rune %q (%U) is too long", c, c))
|
||||
}
|
||||
printf("{%d,[3]byte{0x%02x,0x%02x,0x%02x}},", n, buf[0], buf[1], buf[2])
|
||||
if i%2 == 1 {
|
||||
printf("\n")
|
||||
}
|
||||
i++
|
||||
}
|
||||
printf("},\n")
|
||||
|
||||
printf("encode: [256]uint32{\n")
|
||||
encode := make([]uint32, 0, 256)
|
||||
for c, i := range backMapping {
|
||||
encode = append(encode, uint32(i)<<24|uint32(c))
|
||||
}
|
||||
sort.Sort(byRune(encode))
|
||||
for len(encode) < cap(encode) {
|
||||
encode = append(encode, encode[len(encode)-1])
|
||||
}
|
||||
for i, enc := range encode {
|
||||
printf("0x%08x,", enc)
|
||||
if i%8 == 7 {
|
||||
printf("\n")
|
||||
}
|
||||
}
|
||||
printf("},\n}\n")
|
||||
|
||||
// Add an estimate of the size of a single Charmap{} struct value, which
|
||||
// includes two 256 elem arrays of 4 bytes and some extra fields, which
|
||||
// align to 3 uint64s on 64-bit architectures.
|
||||
w.Size += 2*4*256 + 3*8
|
||||
}
|
||||
// TODO: add proper line breaking.
|
||||
printf("var listAll = []encoding.Encoding{\n%s,\n}\n\n", strings.Join(all, ",\n"))
|
||||
}
|
||||
|
||||
type byRune []uint32
|
||||
|
||||
func (b byRune) Len() int { return len(b) }
|
||||
func (b byRune) Less(i, j int) bool { return b[i]&0xffffff < b[j]&0xffffff }
|
||||
func (b byRune) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
|
||||
173
vendor/golang.org/x/text/encoding/htmlindex/gen.go
generated
vendored
173
vendor/golang.org/x/text/encoding/htmlindex/gen.go
generated
vendored
@@ -1,173 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/text/internal/gen"
|
||||
)
|
||||
|
||||
type group struct {
|
||||
Encodings []struct {
|
||||
Labels []string
|
||||
Name string
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
gen.Init()
|
||||
|
||||
r := gen.Open("https://encoding.spec.whatwg.org", "whatwg", "encodings.json")
|
||||
var groups []group
|
||||
if err := json.NewDecoder(r).Decode(&groups); err != nil {
|
||||
log.Fatalf("Error reading encodings.json: %v", err)
|
||||
}
|
||||
|
||||
w := &bytes.Buffer{}
|
||||
fmt.Fprintln(w, "type htmlEncoding byte")
|
||||
fmt.Fprintln(w, "const (")
|
||||
for i, g := range groups {
|
||||
for _, e := range g.Encodings {
|
||||
key := strings.ToLower(e.Name)
|
||||
name := consts[key]
|
||||
if name == "" {
|
||||
log.Fatalf("No const defined for %s.", key)
|
||||
}
|
||||
if i == 0 {
|
||||
fmt.Fprintf(w, "%s htmlEncoding = iota\n", name)
|
||||
} else {
|
||||
fmt.Fprintf(w, "%s\n", name)
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Fprintln(w, "numEncodings")
|
||||
fmt.Fprint(w, ")\n\n")
|
||||
|
||||
fmt.Fprintln(w, "var canonical = [numEncodings]string{")
|
||||
for _, g := range groups {
|
||||
for _, e := range g.Encodings {
|
||||
fmt.Fprintf(w, "%q,\n", strings.ToLower(e.Name))
|
||||
}
|
||||
}
|
||||
fmt.Fprint(w, "}\n\n")
|
||||
|
||||
fmt.Fprintln(w, "var nameMap = map[string]htmlEncoding{")
|
||||
for _, g := range groups {
|
||||
for _, e := range g.Encodings {
|
||||
for _, l := range e.Labels {
|
||||
key := strings.ToLower(e.Name)
|
||||
name := consts[key]
|
||||
fmt.Fprintf(w, "%q: %s,\n", l, name)
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Fprint(w, "}\n\n")
|
||||
|
||||
var tags []string
|
||||
fmt.Fprintln(w, "var localeMap = []htmlEncoding{")
|
||||
for _, loc := range locales {
|
||||
tags = append(tags, loc.tag)
|
||||
fmt.Fprintf(w, "%s, // %s \n", consts[loc.name], loc.tag)
|
||||
}
|
||||
fmt.Fprint(w, "}\n\n")
|
||||
|
||||
fmt.Fprintf(w, "const locales = %q\n", strings.Join(tags, " "))
|
||||
|
||||
gen.WriteGoFile("tables.go", "htmlindex", w.Bytes())
|
||||
}
|
||||
|
||||
// consts maps canonical encoding name to internal constant.
|
||||
var consts = map[string]string{
|
||||
"utf-8": "utf8",
|
||||
"ibm866": "ibm866",
|
||||
"iso-8859-2": "iso8859_2",
|
||||
"iso-8859-3": "iso8859_3",
|
||||
"iso-8859-4": "iso8859_4",
|
||||
"iso-8859-5": "iso8859_5",
|
||||
"iso-8859-6": "iso8859_6",
|
||||
"iso-8859-7": "iso8859_7",
|
||||
"iso-8859-8": "iso8859_8",
|
||||
"iso-8859-8-i": "iso8859_8I",
|
||||
"iso-8859-10": "iso8859_10",
|
||||
"iso-8859-13": "iso8859_13",
|
||||
"iso-8859-14": "iso8859_14",
|
||||
"iso-8859-15": "iso8859_15",
|
||||
"iso-8859-16": "iso8859_16",
|
||||
"koi8-r": "koi8r",
|
||||
"koi8-u": "koi8u",
|
||||
"macintosh": "macintosh",
|
||||
"windows-874": "windows874",
|
||||
"windows-1250": "windows1250",
|
||||
"windows-1251": "windows1251",
|
||||
"windows-1252": "windows1252",
|
||||
"windows-1253": "windows1253",
|
||||
"windows-1254": "windows1254",
|
||||
"windows-1255": "windows1255",
|
||||
"windows-1256": "windows1256",
|
||||
"windows-1257": "windows1257",
|
||||
"windows-1258": "windows1258",
|
||||
"x-mac-cyrillic": "macintoshCyrillic",
|
||||
"gbk": "gbk",
|
||||
"gb18030": "gb18030",
|
||||
// "hz-gb-2312": "hzgb2312", // Was removed from WhatWG
|
||||
"big5": "big5",
|
||||
"euc-jp": "eucjp",
|
||||
"iso-2022-jp": "iso2022jp",
|
||||
"shift_jis": "shiftJIS",
|
||||
"euc-kr": "euckr",
|
||||
"replacement": "replacement",
|
||||
"utf-16be": "utf16be",
|
||||
"utf-16le": "utf16le",
|
||||
"x-user-defined": "xUserDefined",
|
||||
}
|
||||
|
||||
// locales is taken from
|
||||
// https://html.spec.whatwg.org/multipage/syntax.html#encoding-sniffing-algorithm.
|
||||
var locales = []struct{ tag, name string }{
|
||||
// The default value. Explicitly state latin to benefit from the exact
|
||||
// script option, while still making 1252 the default encoding for languages
|
||||
// written in Latin script.
|
||||
{"und_Latn", "windows-1252"},
|
||||
{"ar", "windows-1256"},
|
||||
{"ba", "windows-1251"},
|
||||
{"be", "windows-1251"},
|
||||
{"bg", "windows-1251"},
|
||||
{"cs", "windows-1250"},
|
||||
{"el", "iso-8859-7"},
|
||||
{"et", "windows-1257"},
|
||||
{"fa", "windows-1256"},
|
||||
{"he", "windows-1255"},
|
||||
{"hr", "windows-1250"},
|
||||
{"hu", "iso-8859-2"},
|
||||
{"ja", "shift_jis"},
|
||||
{"kk", "windows-1251"},
|
||||
{"ko", "euc-kr"},
|
||||
{"ku", "windows-1254"},
|
||||
{"ky", "windows-1251"},
|
||||
{"lt", "windows-1257"},
|
||||
{"lv", "windows-1257"},
|
||||
{"mk", "windows-1251"},
|
||||
{"pl", "iso-8859-2"},
|
||||
{"ru", "windows-1251"},
|
||||
{"sah", "windows-1251"},
|
||||
{"sk", "windows-1250"},
|
||||
{"sl", "iso-8859-2"},
|
||||
{"sr", "windows-1251"},
|
||||
{"tg", "windows-1251"},
|
||||
{"th", "windows-874"},
|
||||
{"tr", "windows-1254"},
|
||||
{"tt", "windows-1251"},
|
||||
{"uk", "windows-1251"},
|
||||
{"vi", "windows-1258"},
|
||||
{"zh-hans", "gb18030"},
|
||||
{"zh-hant", "big5"},
|
||||
}
|
||||
137
vendor/golang.org/x/text/encoding/internal/identifier/gen.go
generated
vendored
137
vendor/golang.org/x/text/encoding/internal/identifier/gen.go
generated
vendored
@@ -1,137 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/text/internal/gen"
|
||||
)
|
||||
|
||||
type registry struct {
|
||||
XMLName xml.Name `xml:"registry"`
|
||||
Updated string `xml:"updated"`
|
||||
Registry []struct {
|
||||
ID string `xml:"id,attr"`
|
||||
Record []struct {
|
||||
Name string `xml:"name"`
|
||||
Xref []struct {
|
||||
Type string `xml:"type,attr"`
|
||||
Data string `xml:"data,attr"`
|
||||
} `xml:"xref"`
|
||||
Desc struct {
|
||||
Data string `xml:",innerxml"`
|
||||
// Any []struct {
|
||||
// Data string `xml:",chardata"`
|
||||
// } `xml:",any"`
|
||||
// Data string `xml:",chardata"`
|
||||
} `xml:"description,"`
|
||||
MIB string `xml:"value"`
|
||||
Alias []string `xml:"alias"`
|
||||
MIME string `xml:"preferred_alias"`
|
||||
} `xml:"record"`
|
||||
} `xml:"registry"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
r := gen.OpenIANAFile("assignments/character-sets/character-sets.xml")
|
||||
reg := ®istry{}
|
||||
if err := xml.NewDecoder(r).Decode(®); err != nil && err != io.EOF {
|
||||
log.Fatalf("Error decoding charset registry: %v", err)
|
||||
}
|
||||
if len(reg.Registry) == 0 || reg.Registry[0].ID != "character-sets-1" {
|
||||
log.Fatalf("Unexpected ID %s", reg.Registry[0].ID)
|
||||
}
|
||||
|
||||
w := &bytes.Buffer{}
|
||||
fmt.Fprintf(w, "const (\n")
|
||||
for _, rec := range reg.Registry[0].Record {
|
||||
constName := ""
|
||||
for _, a := range rec.Alias {
|
||||
if strings.HasPrefix(a, "cs") && strings.IndexByte(a, '-') == -1 {
|
||||
// Some of the constant definitions have comments in them. Strip those.
|
||||
constName = strings.Title(strings.SplitN(a[2:], "\n", 2)[0])
|
||||
}
|
||||
}
|
||||
if constName == "" {
|
||||
switch rec.MIB {
|
||||
case "2085":
|
||||
constName = "HZGB2312" // Not listed as alias for some reason.
|
||||
default:
|
||||
log.Fatalf("No cs alias defined for %s.", rec.MIB)
|
||||
}
|
||||
}
|
||||
if rec.MIME != "" {
|
||||
rec.MIME = fmt.Sprintf(" (MIME: %s)", rec.MIME)
|
||||
}
|
||||
fmt.Fprintf(w, "// %s is the MIB identifier with IANA name %s%s.\n//\n", constName, rec.Name, rec.MIME)
|
||||
if len(rec.Desc.Data) > 0 {
|
||||
fmt.Fprint(w, "// ")
|
||||
d := xml.NewDecoder(strings.NewReader(rec.Desc.Data))
|
||||
inElem := true
|
||||
attr := ""
|
||||
for {
|
||||
t, err := d.Token()
|
||||
if err != nil {
|
||||
if err != io.EOF {
|
||||
log.Fatal(err)
|
||||
}
|
||||
break
|
||||
}
|
||||
switch x := t.(type) {
|
||||
case xml.CharData:
|
||||
attr = "" // Don't need attribute info.
|
||||
a := bytes.Split([]byte(x), []byte("\n"))
|
||||
for i, b := range a {
|
||||
if b = bytes.TrimSpace(b); len(b) != 0 {
|
||||
if !inElem && i > 0 {
|
||||
fmt.Fprint(w, "\n// ")
|
||||
}
|
||||
inElem = false
|
||||
fmt.Fprintf(w, "%s ", string(b))
|
||||
}
|
||||
}
|
||||
case xml.StartElement:
|
||||
if x.Name.Local == "xref" {
|
||||
inElem = true
|
||||
use := false
|
||||
for _, a := range x.Attr {
|
||||
if a.Name.Local == "type" {
|
||||
use = use || a.Value != "person"
|
||||
}
|
||||
if a.Name.Local == "data" && use {
|
||||
attr = a.Value + " "
|
||||
}
|
||||
}
|
||||
}
|
||||
case xml.EndElement:
|
||||
inElem = false
|
||||
fmt.Fprint(w, attr)
|
||||
}
|
||||
}
|
||||
fmt.Fprint(w, "\n")
|
||||
}
|
||||
for _, x := range rec.Xref {
|
||||
switch x.Type {
|
||||
case "rfc":
|
||||
fmt.Fprintf(w, "// Reference: %s\n", strings.ToUpper(x.Data))
|
||||
case "uri":
|
||||
fmt.Fprintf(w, "// Reference: %s\n", x.Data)
|
||||
}
|
||||
}
|
||||
fmt.Fprintf(w, "%s MIB = %s\n", constName, rec.MIB)
|
||||
fmt.Fprintln(w)
|
||||
}
|
||||
fmt.Fprintln(w, ")")
|
||||
|
||||
gen.WriteGoFile("mib.go", "identifier", w.Bytes())
|
||||
}
|
||||
161
vendor/golang.org/x/text/encoding/japanese/maketables.go
generated
vendored
161
vendor/golang.org/x/text/encoding/japanese/maketables.go
generated
vendored
@@ -1,161 +0,0 @@
|
||||
// Copyright 2013 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// This program generates tables.go:
|
||||
// go run maketables.go | gofmt > tables.go
|
||||
|
||||
// TODO: Emoji extensions?
|
||||
// http://www.unicode.org/faq/emoji_dingbats.html
|
||||
// http://www.unicode.org/Public/UNIDATA/EmojiSources.txt
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type entry struct {
|
||||
jisCode, table int
|
||||
}
|
||||
|
||||
func main() {
|
||||
fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n")
|
||||
fmt.Printf("// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS.\n")
|
||||
fmt.Printf(`package japanese // import "golang.org/x/text/encoding/japanese"` + "\n\n")
|
||||
|
||||
reverse := [65536]entry{}
|
||||
for i := range reverse {
|
||||
reverse[i].table = -1
|
||||
}
|
||||
|
||||
tables := []struct {
|
||||
url string
|
||||
name string
|
||||
}{
|
||||
{"http://encoding.spec.whatwg.org/index-jis0208.txt", "0208"},
|
||||
{"http://encoding.spec.whatwg.org/index-jis0212.txt", "0212"},
|
||||
}
|
||||
for i, table := range tables {
|
||||
res, err := http.Get(table.url)
|
||||
if err != nil {
|
||||
log.Fatalf("%q: Get: %v", table.url, err)
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
mapping := [65536]uint16{}
|
||||
|
||||
scanner := bufio.NewScanner(res.Body)
|
||||
for scanner.Scan() {
|
||||
s := strings.TrimSpace(scanner.Text())
|
||||
if s == "" || s[0] == '#' {
|
||||
continue
|
||||
}
|
||||
x, y := 0, uint16(0)
|
||||
if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
|
||||
log.Fatalf("%q: could not parse %q", table.url, s)
|
||||
}
|
||||
if x < 0 || 120*94 <= x {
|
||||
log.Fatalf("%q: JIS code %d is out of range", table.url, x)
|
||||
}
|
||||
mapping[x] = y
|
||||
if reverse[y].table == -1 {
|
||||
reverse[y] = entry{jisCode: x, table: i}
|
||||
}
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
log.Fatalf("%q: scanner error: %v", table.url, err)
|
||||
}
|
||||
|
||||
fmt.Printf("// jis%sDecode is the decoding table from JIS %s code to Unicode.\n// It is defined at %s\n",
|
||||
table.name, table.name, table.url)
|
||||
fmt.Printf("var jis%sDecode = [...]uint16{\n", table.name)
|
||||
for i, m := range mapping {
|
||||
if m != 0 {
|
||||
fmt.Printf("\t%d: 0x%04X,\n", i, m)
|
||||
}
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
}
|
||||
|
||||
// Any run of at least separation continuous zero entries in the reverse map will
|
||||
// be a separate encode table.
|
||||
const separation = 1024
|
||||
|
||||
intervals := []interval(nil)
|
||||
low, high := -1, -1
|
||||
for i, v := range reverse {
|
||||
if v.table == -1 {
|
||||
continue
|
||||
}
|
||||
if low < 0 {
|
||||
low = i
|
||||
} else if i-high >= separation {
|
||||
if high >= 0 {
|
||||
intervals = append(intervals, interval{low, high})
|
||||
}
|
||||
low = i
|
||||
}
|
||||
high = i + 1
|
||||
}
|
||||
if high >= 0 {
|
||||
intervals = append(intervals, interval{low, high})
|
||||
}
|
||||
sort.Sort(byDecreasingLength(intervals))
|
||||
|
||||
fmt.Printf("const (\n")
|
||||
fmt.Printf("\tjis0208 = 1\n")
|
||||
fmt.Printf("\tjis0212 = 2\n")
|
||||
fmt.Printf("\tcodeMask = 0x7f\n")
|
||||
fmt.Printf("\tcodeShift = 7\n")
|
||||
fmt.Printf("\ttableShift = 14\n")
|
||||
fmt.Printf(")\n\n")
|
||||
|
||||
fmt.Printf("const numEncodeTables = %d\n\n", len(intervals))
|
||||
fmt.Printf("// encodeX are the encoding tables from Unicode to JIS code,\n")
|
||||
fmt.Printf("// sorted by decreasing length.\n")
|
||||
for i, v := range intervals {
|
||||
fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high)
|
||||
}
|
||||
fmt.Printf("//\n")
|
||||
fmt.Printf("// The high two bits of the value record whether the JIS code comes from the\n")
|
||||
fmt.Printf("// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2).\n")
|
||||
fmt.Printf("// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the\n")
|
||||
fmt.Printf("// JIS code (94*j1 + j2) within that table.\n")
|
||||
fmt.Printf("\n")
|
||||
|
||||
for i, v := range intervals {
|
||||
fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high)
|
||||
fmt.Printf("var encode%d = [...]uint16{\n", i)
|
||||
for j := v.low; j < v.high; j++ {
|
||||
x := reverse[j]
|
||||
if x.table == -1 {
|
||||
continue
|
||||
}
|
||||
fmt.Printf("\t%d - %d: jis%s<<14 | 0x%02X<<7 | 0x%02X,\n",
|
||||
j, v.low, tables[x.table].name, x.jisCode/94, x.jisCode%94)
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
}
|
||||
}
|
||||
|
||||
// interval is a half-open interval [low, high).
|
||||
type interval struct {
|
||||
low, high int
|
||||
}
|
||||
|
||||
func (i interval) len() int { return i.high - i.low }
|
||||
|
||||
// byDecreasingLength sorts intervals by decreasing length.
|
||||
type byDecreasingLength []interval
|
||||
|
||||
func (b byDecreasingLength) Len() int { return len(b) }
|
||||
func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() }
|
||||
func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
|
||||
143
vendor/golang.org/x/text/encoding/korean/maketables.go
generated
vendored
143
vendor/golang.org/x/text/encoding/korean/maketables.go
generated
vendored
@@ -1,143 +0,0 @@
|
||||
// Copyright 2013 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// This program generates tables.go:
|
||||
// go run maketables.go | gofmt > tables.go
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n")
|
||||
fmt.Printf("// Package korean provides Korean encodings such as EUC-KR.\n")
|
||||
fmt.Printf(`package korean // import "golang.org/x/text/encoding/korean"` + "\n\n")
|
||||
|
||||
res, err := http.Get("http://encoding.spec.whatwg.org/index-euc-kr.txt")
|
||||
if err != nil {
|
||||
log.Fatalf("Get: %v", err)
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
mapping := [65536]uint16{}
|
||||
reverse := [65536]uint16{}
|
||||
|
||||
scanner := bufio.NewScanner(res.Body)
|
||||
for scanner.Scan() {
|
||||
s := strings.TrimSpace(scanner.Text())
|
||||
if s == "" || s[0] == '#' {
|
||||
continue
|
||||
}
|
||||
x, y := uint16(0), uint16(0)
|
||||
if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
|
||||
log.Fatalf("could not parse %q", s)
|
||||
}
|
||||
if x < 0 || 178*(0xc7-0x81)+(0xfe-0xc7)*94+(0xff-0xa1) <= x {
|
||||
log.Fatalf("EUC-KR code %d is out of range", x)
|
||||
}
|
||||
mapping[x] = y
|
||||
if reverse[y] == 0 {
|
||||
c0, c1 := uint16(0), uint16(0)
|
||||
if x < 178*(0xc7-0x81) {
|
||||
c0 = uint16(x/178) + 0x81
|
||||
c1 = uint16(x % 178)
|
||||
switch {
|
||||
case c1 < 1*26:
|
||||
c1 += 0x41
|
||||
case c1 < 2*26:
|
||||
c1 += 0x47
|
||||
default:
|
||||
c1 += 0x4d
|
||||
}
|
||||
} else {
|
||||
x -= 178 * (0xc7 - 0x81)
|
||||
c0 = uint16(x/94) + 0xc7
|
||||
c1 = uint16(x%94) + 0xa1
|
||||
}
|
||||
reverse[y] = c0<<8 | c1
|
||||
}
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
log.Fatalf("scanner error: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("// decode is the decoding table from EUC-KR code to Unicode.\n")
|
||||
fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt\n")
|
||||
fmt.Printf("var decode = [...]uint16{\n")
|
||||
for i, v := range mapping {
|
||||
if v != 0 {
|
||||
fmt.Printf("\t%d: 0x%04X,\n", i, v)
|
||||
}
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
|
||||
// Any run of at least separation continuous zero entries in the reverse map will
|
||||
// be a separate encode table.
|
||||
const separation = 1024
|
||||
|
||||
intervals := []interval(nil)
|
||||
low, high := -1, -1
|
||||
for i, v := range reverse {
|
||||
if v == 0 {
|
||||
continue
|
||||
}
|
||||
if low < 0 {
|
||||
low = i
|
||||
} else if i-high >= separation {
|
||||
if high >= 0 {
|
||||
intervals = append(intervals, interval{low, high})
|
||||
}
|
||||
low = i
|
||||
}
|
||||
high = i + 1
|
||||
}
|
||||
if high >= 0 {
|
||||
intervals = append(intervals, interval{low, high})
|
||||
}
|
||||
sort.Sort(byDecreasingLength(intervals))
|
||||
|
||||
fmt.Printf("const numEncodeTables = %d\n\n", len(intervals))
|
||||
fmt.Printf("// encodeX are the encoding tables from Unicode to EUC-KR code,\n")
|
||||
fmt.Printf("// sorted by decreasing length.\n")
|
||||
for i, v := range intervals {
|
||||
fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high)
|
||||
}
|
||||
fmt.Printf("\n")
|
||||
|
||||
for i, v := range intervals {
|
||||
fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high)
|
||||
fmt.Printf("var encode%d = [...]uint16{\n", i)
|
||||
for j := v.low; j < v.high; j++ {
|
||||
x := reverse[j]
|
||||
if x == 0 {
|
||||
continue
|
||||
}
|
||||
fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x)
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
}
|
||||
}
|
||||
|
||||
// interval is a half-open interval [low, high).
|
||||
type interval struct {
|
||||
low, high int
|
||||
}
|
||||
|
||||
func (i interval) len() int { return i.high - i.low }
|
||||
|
||||
// byDecreasingLength sorts intervals by decreasing length.
|
||||
type byDecreasingLength []interval
|
||||
|
||||
func (b byDecreasingLength) Len() int { return len(b) }
|
||||
func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() }
|
||||
func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
|
||||
161
vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go
generated
vendored
161
vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go
generated
vendored
@@ -1,161 +0,0 @@
|
||||
// Copyright 2013 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// This program generates tables.go:
|
||||
// go run maketables.go | gofmt > tables.go
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n")
|
||||
fmt.Printf("// Package simplifiedchinese provides Simplified Chinese encodings such as GBK.\n")
|
||||
fmt.Printf(`package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese"` + "\n\n")
|
||||
|
||||
printGB18030()
|
||||
printGBK()
|
||||
}
|
||||
|
||||
func printGB18030() {
|
||||
res, err := http.Get("http://encoding.spec.whatwg.org/index-gb18030.txt")
|
||||
if err != nil {
|
||||
log.Fatalf("Get: %v", err)
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
fmt.Printf("// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt\n")
|
||||
fmt.Printf("var gb18030 = [...][2]uint16{\n")
|
||||
scanner := bufio.NewScanner(res.Body)
|
||||
for scanner.Scan() {
|
||||
s := strings.TrimSpace(scanner.Text())
|
||||
if s == "" || s[0] == '#' {
|
||||
continue
|
||||
}
|
||||
x, y := uint32(0), uint32(0)
|
||||
if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
|
||||
log.Fatalf("could not parse %q", s)
|
||||
}
|
||||
if x < 0x10000 && y < 0x10000 {
|
||||
fmt.Printf("\t{0x%04x, 0x%04x},\n", x, y)
|
||||
}
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
}
|
||||
|
||||
func printGBK() {
|
||||
res, err := http.Get("http://encoding.spec.whatwg.org/index-gbk.txt")
|
||||
if err != nil {
|
||||
log.Fatalf("Get: %v", err)
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
mapping := [65536]uint16{}
|
||||
reverse := [65536]uint16{}
|
||||
|
||||
scanner := bufio.NewScanner(res.Body)
|
||||
for scanner.Scan() {
|
||||
s := strings.TrimSpace(scanner.Text())
|
||||
if s == "" || s[0] == '#' {
|
||||
continue
|
||||
}
|
||||
x, y := uint16(0), uint16(0)
|
||||
if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
|
||||
log.Fatalf("could not parse %q", s)
|
||||
}
|
||||
if x < 0 || 126*190 <= x {
|
||||
log.Fatalf("GBK code %d is out of range", x)
|
||||
}
|
||||
mapping[x] = y
|
||||
if reverse[y] == 0 {
|
||||
c0, c1 := x/190, x%190
|
||||
if c1 >= 0x3f {
|
||||
c1++
|
||||
}
|
||||
reverse[y] = (0x81+c0)<<8 | (0x40 + c1)
|
||||
}
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
log.Fatalf("scanner error: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("// decode is the decoding table from GBK code to Unicode.\n")
|
||||
fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt\n")
|
||||
fmt.Printf("var decode = [...]uint16{\n")
|
||||
for i, v := range mapping {
|
||||
if v != 0 {
|
||||
fmt.Printf("\t%d: 0x%04X,\n", i, v)
|
||||
}
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
|
||||
// Any run of at least separation continuous zero entries in the reverse map will
|
||||
// be a separate encode table.
|
||||
const separation = 1024
|
||||
|
||||
intervals := []interval(nil)
|
||||
low, high := -1, -1
|
||||
for i, v := range reverse {
|
||||
if v == 0 {
|
||||
continue
|
||||
}
|
||||
if low < 0 {
|
||||
low = i
|
||||
} else if i-high >= separation {
|
||||
if high >= 0 {
|
||||
intervals = append(intervals, interval{low, high})
|
||||
}
|
||||
low = i
|
||||
}
|
||||
high = i + 1
|
||||
}
|
||||
if high >= 0 {
|
||||
intervals = append(intervals, interval{low, high})
|
||||
}
|
||||
sort.Sort(byDecreasingLength(intervals))
|
||||
|
||||
fmt.Printf("const numEncodeTables = %d\n\n", len(intervals))
|
||||
fmt.Printf("// encodeX are the encoding tables from Unicode to GBK code,\n")
|
||||
fmt.Printf("// sorted by decreasing length.\n")
|
||||
for i, v := range intervals {
|
||||
fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high)
|
||||
}
|
||||
fmt.Printf("\n")
|
||||
|
||||
for i, v := range intervals {
|
||||
fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high)
|
||||
fmt.Printf("var encode%d = [...]uint16{\n", i)
|
||||
for j := v.low; j < v.high; j++ {
|
||||
x := reverse[j]
|
||||
if x == 0 {
|
||||
continue
|
||||
}
|
||||
fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x)
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
}
|
||||
}
|
||||
|
||||
// interval is a half-open interval [low, high).
|
||||
type interval struct {
|
||||
low, high int
|
||||
}
|
||||
|
||||
func (i interval) len() int { return i.high - i.low }
|
||||
|
||||
// byDecreasingLength sorts intervals by decreasing length.
|
||||
type byDecreasingLength []interval
|
||||
|
||||
func (b byDecreasingLength) Len() int { return len(b) }
|
||||
func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() }
|
||||
func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
|
||||
140
vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go
generated
vendored
140
vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go
generated
vendored
@@ -1,140 +0,0 @@
|
||||
// Copyright 2013 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// This program generates tables.go:
|
||||
// go run maketables.go | gofmt > tables.go
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n")
|
||||
fmt.Printf("// Package traditionalchinese provides Traditional Chinese encodings such as Big5.\n")
|
||||
fmt.Printf(`package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese"` + "\n\n")
|
||||
|
||||
res, err := http.Get("http://encoding.spec.whatwg.org/index-big5.txt")
|
||||
if err != nil {
|
||||
log.Fatalf("Get: %v", err)
|
||||
}
|
||||
defer res.Body.Close()
|
||||
|
||||
mapping := [65536]uint32{}
|
||||
reverse := [65536 * 4]uint16{}
|
||||
|
||||
scanner := bufio.NewScanner(res.Body)
|
||||
for scanner.Scan() {
|
||||
s := strings.TrimSpace(scanner.Text())
|
||||
if s == "" || s[0] == '#' {
|
||||
continue
|
||||
}
|
||||
x, y := uint16(0), uint32(0)
|
||||
if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
|
||||
log.Fatalf("could not parse %q", s)
|
||||
}
|
||||
if x < 0 || 126*157 <= x {
|
||||
log.Fatalf("Big5 code %d is out of range", x)
|
||||
}
|
||||
mapping[x] = y
|
||||
|
||||
// The WHATWG spec http://encoding.spec.whatwg.org/#indexes says that
|
||||
// "The index pointer for code point in index is the first pointer
|
||||
// corresponding to code point in index", which would normally mean
|
||||
// that the code below should be guarded by "if reverse[y] == 0", but
|
||||
// last instead of first seems to match the behavior of
|
||||
// "iconv -f UTF-8 -t BIG5". For example, U+8005 者 occurs twice in
|
||||
// http://encoding.spec.whatwg.org/index-big5.txt, as index 2148
|
||||
// (encoded as "\x8e\xcd") and index 6543 (encoded as "\xaa\xcc")
|
||||
// and "echo 者 | iconv -f UTF-8 -t BIG5 | xxd" gives "\xaa\xcc".
|
||||
c0, c1 := x/157, x%157
|
||||
if c1 < 0x3f {
|
||||
c1 += 0x40
|
||||
} else {
|
||||
c1 += 0x62
|
||||
}
|
||||
reverse[y] = (0x81+c0)<<8 | c1
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
log.Fatalf("scanner error: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("// decode is the decoding table from Big5 code to Unicode.\n")
|
||||
fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-big5.txt\n")
|
||||
fmt.Printf("var decode = [...]uint32{\n")
|
||||
for i, v := range mapping {
|
||||
if v != 0 {
|
||||
fmt.Printf("\t%d: 0x%08X,\n", i, v)
|
||||
}
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
|
||||
// Any run of at least separation continuous zero entries in the reverse map will
|
||||
// be a separate encode table.
|
||||
const separation = 1024
|
||||
|
||||
intervals := []interval(nil)
|
||||
low, high := -1, -1
|
||||
for i, v := range reverse {
|
||||
if v == 0 {
|
||||
continue
|
||||
}
|
||||
if low < 0 {
|
||||
low = i
|
||||
} else if i-high >= separation {
|
||||
if high >= 0 {
|
||||
intervals = append(intervals, interval{low, high})
|
||||
}
|
||||
low = i
|
||||
}
|
||||
high = i + 1
|
||||
}
|
||||
if high >= 0 {
|
||||
intervals = append(intervals, interval{low, high})
|
||||
}
|
||||
sort.Sort(byDecreasingLength(intervals))
|
||||
|
||||
fmt.Printf("const numEncodeTables = %d\n\n", len(intervals))
|
||||
fmt.Printf("// encodeX are the encoding tables from Unicode to Big5 code,\n")
|
||||
fmt.Printf("// sorted by decreasing length.\n")
|
||||
for i, v := range intervals {
|
||||
fmt.Printf("// encode%d: %5d entries for runes in [%6d, %6d).\n", i, v.len(), v.low, v.high)
|
||||
}
|
||||
fmt.Printf("\n")
|
||||
|
||||
for i, v := range intervals {
|
||||
fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high)
|
||||
fmt.Printf("var encode%d = [...]uint16{\n", i)
|
||||
for j := v.low; j < v.high; j++ {
|
||||
x := reverse[j]
|
||||
if x == 0 {
|
||||
continue
|
||||
}
|
||||
fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x)
|
||||
}
|
||||
fmt.Printf("}\n\n")
|
||||
}
|
||||
}
|
||||
|
||||
// interval is a half-open interval [low, high).
|
||||
type interval struct {
|
||||
low, high int
|
||||
}
|
||||
|
||||
func (i interval) len() int { return i.high - i.low }
|
||||
|
||||
// byDecreasingLength sorts intervals by decreasing length.
|
||||
type byDecreasingLength []interval
|
||||
|
||||
func (b byDecreasingLength) Len() int { return len(b) }
|
||||
func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() }
|
||||
func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
|
||||
1712
vendor/golang.org/x/text/language/gen.go
generated
vendored
1712
vendor/golang.org/x/text/language/gen.go
generated
vendored
File diff suppressed because it is too large
Load Diff
20
vendor/golang.org/x/text/language/gen_common.go
generated
vendored
20
vendor/golang.org/x/text/language/gen_common.go
generated
vendored
@@ -1,20 +0,0 @@
|
||||
// Copyright 2014 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// This file contains code common to the maketables.go and the package code.
|
||||
|
||||
// langAliasType is the type of an alias in langAliasMap.
|
||||
type langAliasType int8
|
||||
|
||||
const (
|
||||
langDeprecated langAliasType = iota
|
||||
langMacro
|
||||
langLegacy
|
||||
|
||||
langAliasTypeUnknown langAliasType = -1
|
||||
)
|
||||
162
vendor/golang.org/x/text/language/gen_index.go
generated
vendored
162
vendor/golang.org/x/text/language/gen_index.go
generated
vendored
@@ -1,162 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// This file generates derivative tables based on the language package itself.
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"reflect"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/text/internal/gen"
|
||||
"golang.org/x/text/language"
|
||||
"golang.org/x/text/unicode/cldr"
|
||||
)
|
||||
|
||||
var (
|
||||
test = flag.Bool("test", false,
|
||||
"test existing tables; can be used to compare web data with package data.")
|
||||
|
||||
draft = flag.String("draft",
|
||||
"contributed",
|
||||
`Minimal draft requirements (approved, contributed, provisional, unconfirmed).`)
|
||||
)
|
||||
|
||||
func main() {
|
||||
gen.Init()
|
||||
|
||||
// Read the CLDR zip file.
|
||||
r := gen.OpenCLDRCoreZip()
|
||||
defer r.Close()
|
||||
|
||||
d := &cldr.Decoder{}
|
||||
data, err := d.DecodeZip(r)
|
||||
if err != nil {
|
||||
log.Fatalf("DecodeZip: %v", err)
|
||||
}
|
||||
|
||||
w := gen.NewCodeWriter()
|
||||
defer func() {
|
||||
buf := &bytes.Buffer{}
|
||||
|
||||
if _, err = w.WriteGo(buf, "language", ""); err != nil {
|
||||
log.Fatalf("Error formatting file index.go: %v", err)
|
||||
}
|
||||
|
||||
// Since we're generating a table for our own package we need to rewrite
|
||||
// doing the equivalent of go fmt -r 'language.b -> b'. Using
|
||||
// bytes.Replace will do.
|
||||
out := bytes.Replace(buf.Bytes(), []byte("language."), nil, -1)
|
||||
if err := ioutil.WriteFile("index.go", out, 0600); err != nil {
|
||||
log.Fatalf("Could not create file index.go: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
m := map[language.Tag]bool{}
|
||||
for _, lang := range data.Locales() {
|
||||
// We include all locales unconditionally to be consistent with en_US.
|
||||
// We want en_US, even though it has no data associated with it.
|
||||
|
||||
// TODO: put any of the languages for which no data exists at the end
|
||||
// of the index. This allows all components based on ICU to use that
|
||||
// as the cutoff point.
|
||||
// if x := data.RawLDML(lang); false ||
|
||||
// x.LocaleDisplayNames != nil ||
|
||||
// x.Characters != nil ||
|
||||
// x.Delimiters != nil ||
|
||||
// x.Measurement != nil ||
|
||||
// x.Dates != nil ||
|
||||
// x.Numbers != nil ||
|
||||
// x.Units != nil ||
|
||||
// x.ListPatterns != nil ||
|
||||
// x.Collations != nil ||
|
||||
// x.Segmentations != nil ||
|
||||
// x.Rbnf != nil ||
|
||||
// x.Annotations != nil ||
|
||||
// x.Metadata != nil {
|
||||
|
||||
// TODO: support POSIX natively, albeit non-standard.
|
||||
tag := language.Make(strings.Replace(lang, "_POSIX", "-u-va-posix", 1))
|
||||
m[tag] = true
|
||||
// }
|
||||
}
|
||||
// Include locales for plural rules, which uses a different structure.
|
||||
for _, plurals := range data.Supplemental().Plurals {
|
||||
for _, rules := range plurals.PluralRules {
|
||||
for _, lang := range strings.Split(rules.Locales, " ") {
|
||||
m[language.Make(lang)] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var core, special []language.Tag
|
||||
|
||||
for t := range m {
|
||||
if x := t.Extensions(); len(x) != 0 && fmt.Sprint(x) != "[u-va-posix]" {
|
||||
log.Fatalf("Unexpected extension %v in %v", x, t)
|
||||
}
|
||||
if len(t.Variants()) == 0 && len(t.Extensions()) == 0 {
|
||||
core = append(core, t)
|
||||
} else {
|
||||
special = append(special, t)
|
||||
}
|
||||
}
|
||||
|
||||
w.WriteComment(`
|
||||
NumCompactTags is the number of common tags. The maximum tag is
|
||||
NumCompactTags-1.`)
|
||||
w.WriteConst("NumCompactTags", len(core)+len(special))
|
||||
|
||||
sort.Sort(byAlpha(special))
|
||||
w.WriteVar("specialTags", special)
|
||||
|
||||
// TODO: order by frequency?
|
||||
sort.Sort(byAlpha(core))
|
||||
|
||||
// Size computations are just an estimate.
|
||||
w.Size += int(reflect.TypeOf(map[uint32]uint16{}).Size())
|
||||
w.Size += len(core) * 6 // size of uint32 and uint16
|
||||
|
||||
fmt.Fprintln(w)
|
||||
fmt.Fprintln(w, "var coreTags = map[uint32]uint16{")
|
||||
fmt.Fprintln(w, "0x0: 0, // und")
|
||||
i := len(special) + 1 // Und and special tags already written.
|
||||
for _, t := range core {
|
||||
if t == language.Und {
|
||||
continue
|
||||
}
|
||||
fmt.Fprint(w.Hash, t, i)
|
||||
b, s, r := t.Raw()
|
||||
fmt.Fprintf(w, "0x%s%s%s: %d, // %s\n",
|
||||
getIndex(b, 3), // 3 is enough as it is guaranteed to be a compact number
|
||||
getIndex(s, 2),
|
||||
getIndex(r, 3),
|
||||
i, t)
|
||||
i++
|
||||
}
|
||||
fmt.Fprintln(w, "}")
|
||||
}
|
||||
|
||||
// getIndex prints the subtag type and extracts its index of size nibble.
|
||||
// If the index is less than n nibbles, the result is prefixed with 0s.
|
||||
func getIndex(x interface{}, n int) string {
|
||||
s := fmt.Sprintf("%#v", x) // s is of form Type{typeID: 0x00}
|
||||
s = s[strings.Index(s, "0x")+2 : len(s)-1]
|
||||
return strings.Repeat("0", n-len(s)) + s
|
||||
}
|
||||
|
||||
type byAlpha []language.Tag
|
||||
|
||||
func (a byAlpha) Len() int { return len(a) }
|
||||
func (a byAlpha) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
||||
func (a byAlpha) Less(i, j int) bool { return a[i].String() < a[j].String() }
|
||||
133
vendor/golang.org/x/text/unicode/bidi/gen.go
generated
vendored
133
vendor/golang.org/x/text/unicode/bidi/gen.go
generated
vendored
@@ -1,133 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"log"
|
||||
|
||||
"golang.org/x/text/internal/gen"
|
||||
"golang.org/x/text/internal/triegen"
|
||||
"golang.org/x/text/internal/ucd"
|
||||
)
|
||||
|
||||
var outputFile = flag.String("out", "tables.go", "output file")
|
||||
|
||||
func main() {
|
||||
gen.Init()
|
||||
gen.Repackage("gen_trieval.go", "trieval.go", "bidi")
|
||||
gen.Repackage("gen_ranges.go", "ranges_test.go", "bidi")
|
||||
|
||||
genTables()
|
||||
}
|
||||
|
||||
// bidiClass names and codes taken from class "bc" in
|
||||
// http://www.unicode.org/Public/8.0.0/ucd/PropertyValueAliases.txt
|
||||
var bidiClass = map[string]Class{
|
||||
"AL": AL, // ArabicLetter
|
||||
"AN": AN, // ArabicNumber
|
||||
"B": B, // ParagraphSeparator
|
||||
"BN": BN, // BoundaryNeutral
|
||||
"CS": CS, // CommonSeparator
|
||||
"EN": EN, // EuropeanNumber
|
||||
"ES": ES, // EuropeanSeparator
|
||||
"ET": ET, // EuropeanTerminator
|
||||
"L": L, // LeftToRight
|
||||
"NSM": NSM, // NonspacingMark
|
||||
"ON": ON, // OtherNeutral
|
||||
"R": R, // RightToLeft
|
||||
"S": S, // SegmentSeparator
|
||||
"WS": WS, // WhiteSpace
|
||||
|
||||
"FSI": Control,
|
||||
"PDF": Control,
|
||||
"PDI": Control,
|
||||
"LRE": Control,
|
||||
"LRI": Control,
|
||||
"LRO": Control,
|
||||
"RLE": Control,
|
||||
"RLI": Control,
|
||||
"RLO": Control,
|
||||
}
|
||||
|
||||
func genTables() {
|
||||
if numClass > 0x0F {
|
||||
log.Fatalf("Too many Class constants (%#x > 0x0F).", numClass)
|
||||
}
|
||||
w := gen.NewCodeWriter()
|
||||
defer w.WriteVersionedGoFile(*outputFile, "bidi")
|
||||
|
||||
gen.WriteUnicodeVersion(w)
|
||||
|
||||
t := triegen.NewTrie("bidi")
|
||||
|
||||
// Build data about bracket mapping. These bits need to be or-ed with
|
||||
// any other bits.
|
||||
orMask := map[rune]uint64{}
|
||||
|
||||
xorMap := map[rune]int{}
|
||||
xorMasks := []rune{0} // First value is no-op.
|
||||
|
||||
ucd.Parse(gen.OpenUCDFile("BidiBrackets.txt"), func(p *ucd.Parser) {
|
||||
r1 := p.Rune(0)
|
||||
r2 := p.Rune(1)
|
||||
xor := r1 ^ r2
|
||||
if _, ok := xorMap[xor]; !ok {
|
||||
xorMap[xor] = len(xorMasks)
|
||||
xorMasks = append(xorMasks, xor)
|
||||
}
|
||||
entry := uint64(xorMap[xor]) << xorMaskShift
|
||||
switch p.String(2) {
|
||||
case "o":
|
||||
entry |= openMask
|
||||
case "c", "n":
|
||||
default:
|
||||
log.Fatalf("Unknown bracket class %q.", p.String(2))
|
||||
}
|
||||
orMask[r1] = entry
|
||||
})
|
||||
|
||||
w.WriteComment(`
|
||||
xorMasks contains masks to be xor-ed with brackets to get the reverse
|
||||
version.`)
|
||||
w.WriteVar("xorMasks", xorMasks)
|
||||
|
||||
done := map[rune]bool{}
|
||||
|
||||
insert := func(r rune, c Class) {
|
||||
if !done[r] {
|
||||
t.Insert(r, orMask[r]|uint64(c))
|
||||
done[r] = true
|
||||
}
|
||||
}
|
||||
|
||||
// Insert the derived BiDi properties.
|
||||
ucd.Parse(gen.OpenUCDFile("extracted/DerivedBidiClass.txt"), func(p *ucd.Parser) {
|
||||
r := p.Rune(0)
|
||||
class, ok := bidiClass[p.String(1)]
|
||||
if !ok {
|
||||
log.Fatalf("%U: Unknown BiDi class %q", r, p.String(1))
|
||||
}
|
||||
insert(r, class)
|
||||
})
|
||||
visitDefaults(insert)
|
||||
|
||||
// TODO: use sparse blocks. This would reduce table size considerably
|
||||
// from the looks of it.
|
||||
|
||||
sz, err := t.Gen(w)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
w.Size += sz
|
||||
}
|
||||
|
||||
// dummy values to make methods in gen_common compile. The real versions
|
||||
// will be generated by this file to tables.go.
|
||||
var (
|
||||
xorMasks []rune
|
||||
)
|
||||
57
vendor/golang.org/x/text/unicode/bidi/gen_ranges.go
generated
vendored
57
vendor/golang.org/x/text/unicode/bidi/gen_ranges.go
generated
vendored
@@ -1,57 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"unicode"
|
||||
|
||||
"golang.org/x/text/internal/gen"
|
||||
"golang.org/x/text/internal/ucd"
|
||||
"golang.org/x/text/unicode/rangetable"
|
||||
)
|
||||
|
||||
// These tables are hand-extracted from:
|
||||
// http://www.unicode.org/Public/8.0.0/ucd/extracted/DerivedBidiClass.txt
|
||||
func visitDefaults(fn func(r rune, c Class)) {
|
||||
// first write default values for ranges listed above.
|
||||
visitRunes(fn, AL, []rune{
|
||||
0x0600, 0x07BF, // Arabic
|
||||
0x08A0, 0x08FF, // Arabic Extended-A
|
||||
0xFB50, 0xFDCF, // Arabic Presentation Forms
|
||||
0xFDF0, 0xFDFF,
|
||||
0xFE70, 0xFEFF,
|
||||
0x0001EE00, 0x0001EEFF, // Arabic Mathematical Alpha Symbols
|
||||
})
|
||||
visitRunes(fn, R, []rune{
|
||||
0x0590, 0x05FF, // Hebrew
|
||||
0x07C0, 0x089F, // Nko et al.
|
||||
0xFB1D, 0xFB4F,
|
||||
0x00010800, 0x00010FFF, // Cypriot Syllabary et. al.
|
||||
0x0001E800, 0x0001EDFF,
|
||||
0x0001EF00, 0x0001EFFF,
|
||||
})
|
||||
visitRunes(fn, ET, []rune{ // European Terminator
|
||||
0x20A0, 0x20Cf, // Currency symbols
|
||||
})
|
||||
rangetable.Visit(unicode.Noncharacter_Code_Point, func(r rune) {
|
||||
fn(r, BN) // Boundary Neutral
|
||||
})
|
||||
ucd.Parse(gen.OpenUCDFile("DerivedCoreProperties.txt"), func(p *ucd.Parser) {
|
||||
if p.String(1) == "Default_Ignorable_Code_Point" {
|
||||
fn(p.Rune(0), BN) // Boundary Neutral
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func visitRunes(fn func(r rune, c Class), c Class, runes []rune) {
|
||||
for i := 0; i < len(runes); i += 2 {
|
||||
lo, hi := runes[i], runes[i+1]
|
||||
for j := lo; j <= hi; j++ {
|
||||
fn(j, c)
|
||||
}
|
||||
}
|
||||
}
|
||||
64
vendor/golang.org/x/text/unicode/bidi/gen_trieval.go
generated
vendored
64
vendor/golang.org/x/text/unicode/bidi/gen_trieval.go
generated
vendored
@@ -1,64 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// Class is the Unicode BiDi class. Each rune has a single class.
|
||||
type Class uint
|
||||
|
||||
const (
|
||||
L Class = iota // LeftToRight
|
||||
R // RightToLeft
|
||||
EN // EuropeanNumber
|
||||
ES // EuropeanSeparator
|
||||
ET // EuropeanTerminator
|
||||
AN // ArabicNumber
|
||||
CS // CommonSeparator
|
||||
B // ParagraphSeparator
|
||||
S // SegmentSeparator
|
||||
WS // WhiteSpace
|
||||
ON // OtherNeutral
|
||||
BN // BoundaryNeutral
|
||||
NSM // NonspacingMark
|
||||
AL // ArabicLetter
|
||||
Control // Control LRO - PDI
|
||||
|
||||
numClass
|
||||
|
||||
LRO // LeftToRightOverride
|
||||
RLO // RightToLeftOverride
|
||||
LRE // LeftToRightEmbedding
|
||||
RLE // RightToLeftEmbedding
|
||||
PDF // PopDirectionalFormat
|
||||
LRI // LeftToRightIsolate
|
||||
RLI // RightToLeftIsolate
|
||||
FSI // FirstStrongIsolate
|
||||
PDI // PopDirectionalIsolate
|
||||
|
||||
unknownClass = ^Class(0)
|
||||
)
|
||||
|
||||
var controlToClass = map[rune]Class{
|
||||
0x202D: LRO, // LeftToRightOverride,
|
||||
0x202E: RLO, // RightToLeftOverride,
|
||||
0x202A: LRE, // LeftToRightEmbedding,
|
||||
0x202B: RLE, // RightToLeftEmbedding,
|
||||
0x202C: PDF, // PopDirectionalFormat,
|
||||
0x2066: LRI, // LeftToRightIsolate,
|
||||
0x2067: RLI, // RightToLeftIsolate,
|
||||
0x2068: FSI, // FirstStrongIsolate,
|
||||
0x2069: PDI, // PopDirectionalIsolate,
|
||||
}
|
||||
|
||||
// A trie entry has the following bits:
|
||||
// 7..5 XOR mask for brackets
|
||||
// 4 1: Bracket open, 0: Bracket close
|
||||
// 3..0 Class type
|
||||
|
||||
const (
|
||||
openMask = 0x10
|
||||
xorMaskShift = 5
|
||||
)
|
||||
976
vendor/golang.org/x/text/unicode/norm/maketables.go
generated
vendored
976
vendor/golang.org/x/text/unicode/norm/maketables.go
generated
vendored
@@ -1,976 +0,0 @@
|
||||
// Copyright 2011 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
// Normalization table generator.
|
||||
// Data read from the web.
|
||||
// See forminfo.go for a description of the trie values associated with each rune.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/text/internal/gen"
|
||||
"golang.org/x/text/internal/triegen"
|
||||
"golang.org/x/text/internal/ucd"
|
||||
)
|
||||
|
||||
func main() {
|
||||
gen.Init()
|
||||
loadUnicodeData()
|
||||
compactCCC()
|
||||
loadCompositionExclusions()
|
||||
completeCharFields(FCanonical)
|
||||
completeCharFields(FCompatibility)
|
||||
computeNonStarterCounts()
|
||||
verifyComputed()
|
||||
printChars()
|
||||
testDerived()
|
||||
printTestdata()
|
||||
makeTables()
|
||||
}
|
||||
|
||||
var (
|
||||
tablelist = flag.String("tables",
|
||||
"all",
|
||||
"comma-separated list of which tables to generate; "+
|
||||
"can be 'decomp', 'recomp', 'info' and 'all'")
|
||||
test = flag.Bool("test",
|
||||
false,
|
||||
"test existing tables against DerivedNormalizationProps and generate test data for regression testing")
|
||||
verbose = flag.Bool("verbose",
|
||||
false,
|
||||
"write data to stdout as it is parsed")
|
||||
)
|
||||
|
||||
const MaxChar = 0x10FFFF // anything above this shouldn't exist
|
||||
|
||||
// Quick Check properties of runes allow us to quickly
|
||||
// determine whether a rune may occur in a normal form.
|
||||
// For a given normal form, a rune may be guaranteed to occur
|
||||
// verbatim (QC=Yes), may or may not combine with another
|
||||
// rune (QC=Maybe), or may not occur (QC=No).
|
||||
type QCResult int
|
||||
|
||||
const (
|
||||
QCUnknown QCResult = iota
|
||||
QCYes
|
||||
QCNo
|
||||
QCMaybe
|
||||
)
|
||||
|
||||
func (r QCResult) String() string {
|
||||
switch r {
|
||||
case QCYes:
|
||||
return "Yes"
|
||||
case QCNo:
|
||||
return "No"
|
||||
case QCMaybe:
|
||||
return "Maybe"
|
||||
}
|
||||
return "***UNKNOWN***"
|
||||
}
|
||||
|
||||
const (
|
||||
FCanonical = iota // NFC or NFD
|
||||
FCompatibility // NFKC or NFKD
|
||||
FNumberOfFormTypes
|
||||
)
|
||||
|
||||
const (
|
||||
MComposed = iota // NFC or NFKC
|
||||
MDecomposed // NFD or NFKD
|
||||
MNumberOfModes
|
||||
)
|
||||
|
||||
// This contains only the properties we're interested in.
|
||||
type Char struct {
|
||||
name string
|
||||
codePoint rune // if zero, this index is not a valid code point.
|
||||
ccc uint8 // canonical combining class
|
||||
origCCC uint8
|
||||
excludeInComp bool // from CompositionExclusions.txt
|
||||
compatDecomp bool // it has a compatibility expansion
|
||||
|
||||
nTrailingNonStarters uint8
|
||||
nLeadingNonStarters uint8 // must be equal to trailing if non-zero
|
||||
|
||||
forms [FNumberOfFormTypes]FormInfo // For FCanonical and FCompatibility
|
||||
|
||||
state State
|
||||
}
|
||||
|
||||
var chars = make([]Char, MaxChar+1)
|
||||
var cccMap = make(map[uint8]uint8)
|
||||
|
||||
func (c Char) String() string {
|
||||
buf := new(bytes.Buffer)
|
||||
|
||||
fmt.Fprintf(buf, "%U [%s]:\n", c.codePoint, c.name)
|
||||
fmt.Fprintf(buf, " ccc: %v\n", c.ccc)
|
||||
fmt.Fprintf(buf, " excludeInComp: %v\n", c.excludeInComp)
|
||||
fmt.Fprintf(buf, " compatDecomp: %v\n", c.compatDecomp)
|
||||
fmt.Fprintf(buf, " state: %v\n", c.state)
|
||||
fmt.Fprintf(buf, " NFC:\n")
|
||||
fmt.Fprint(buf, c.forms[FCanonical])
|
||||
fmt.Fprintf(buf, " NFKC:\n")
|
||||
fmt.Fprint(buf, c.forms[FCompatibility])
|
||||
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
// In UnicodeData.txt, some ranges are marked like this:
|
||||
// 3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
|
||||
// 4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
|
||||
// parseCharacter keeps a state variable indicating the weirdness.
|
||||
type State int
|
||||
|
||||
const (
|
||||
SNormal State = iota // known to be zero for the type
|
||||
SFirst
|
||||
SLast
|
||||
SMissing
|
||||
)
|
||||
|
||||
var lastChar = rune('\u0000')
|
||||
|
||||
func (c Char) isValid() bool {
|
||||
return c.codePoint != 0 && c.state != SMissing
|
||||
}
|
||||
|
||||
type FormInfo struct {
|
||||
quickCheck [MNumberOfModes]QCResult // index: MComposed or MDecomposed
|
||||
verified [MNumberOfModes]bool // index: MComposed or MDecomposed
|
||||
|
||||
combinesForward bool // May combine with rune on the right
|
||||
combinesBackward bool // May combine with rune on the left
|
||||
isOneWay bool // Never appears in result
|
||||
inDecomp bool // Some decompositions result in this char.
|
||||
decomp Decomposition
|
||||
expandedDecomp Decomposition
|
||||
}
|
||||
|
||||
func (f FormInfo) String() string {
|
||||
buf := bytes.NewBuffer(make([]byte, 0))
|
||||
|
||||
fmt.Fprintf(buf, " quickCheck[C]: %v\n", f.quickCheck[MComposed])
|
||||
fmt.Fprintf(buf, " quickCheck[D]: %v\n", f.quickCheck[MDecomposed])
|
||||
fmt.Fprintf(buf, " cmbForward: %v\n", f.combinesForward)
|
||||
fmt.Fprintf(buf, " cmbBackward: %v\n", f.combinesBackward)
|
||||
fmt.Fprintf(buf, " isOneWay: %v\n", f.isOneWay)
|
||||
fmt.Fprintf(buf, " inDecomp: %v\n", f.inDecomp)
|
||||
fmt.Fprintf(buf, " decomposition: %X\n", f.decomp)
|
||||
fmt.Fprintf(buf, " expandedDecomp: %X\n", f.expandedDecomp)
|
||||
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
type Decomposition []rune
|
||||
|
||||
func parseDecomposition(s string, skipfirst bool) (a []rune, err error) {
|
||||
decomp := strings.Split(s, " ")
|
||||
if len(decomp) > 0 && skipfirst {
|
||||
decomp = decomp[1:]
|
||||
}
|
||||
for _, d := range decomp {
|
||||
point, err := strconv.ParseUint(d, 16, 64)
|
||||
if err != nil {
|
||||
return a, err
|
||||
}
|
||||
a = append(a, rune(point))
|
||||
}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
func loadUnicodeData() {
|
||||
f := gen.OpenUCDFile("UnicodeData.txt")
|
||||
defer f.Close()
|
||||
p := ucd.New(f)
|
||||
for p.Next() {
|
||||
r := p.Rune(ucd.CodePoint)
|
||||
char := &chars[r]
|
||||
|
||||
char.ccc = uint8(p.Uint(ucd.CanonicalCombiningClass))
|
||||
decmap := p.String(ucd.DecompMapping)
|
||||
|
||||
exp, err := parseDecomposition(decmap, false)
|
||||
isCompat := false
|
||||
if err != nil {
|
||||
if len(decmap) > 0 {
|
||||
exp, err = parseDecomposition(decmap, true)
|
||||
if err != nil {
|
||||
log.Fatalf(`%U: bad decomp |%v|: "%s"`, r, decmap, err)
|
||||
}
|
||||
isCompat = true
|
||||
}
|
||||
}
|
||||
|
||||
char.name = p.String(ucd.Name)
|
||||
char.codePoint = r
|
||||
char.forms[FCompatibility].decomp = exp
|
||||
if !isCompat {
|
||||
char.forms[FCanonical].decomp = exp
|
||||
} else {
|
||||
char.compatDecomp = true
|
||||
}
|
||||
if len(decmap) > 0 {
|
||||
char.forms[FCompatibility].decomp = exp
|
||||
}
|
||||
}
|
||||
if err := p.Err(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// compactCCC converts the sparse set of CCC values to a continguous one,
|
||||
// reducing the number of bits needed from 8 to 6.
|
||||
func compactCCC() {
|
||||
m := make(map[uint8]uint8)
|
||||
for i := range chars {
|
||||
c := &chars[i]
|
||||
m[c.ccc] = 0
|
||||
}
|
||||
cccs := []int{}
|
||||
for v, _ := range m {
|
||||
cccs = append(cccs, int(v))
|
||||
}
|
||||
sort.Ints(cccs)
|
||||
for i, c := range cccs {
|
||||
cccMap[uint8(i)] = uint8(c)
|
||||
m[uint8(c)] = uint8(i)
|
||||
}
|
||||
for i := range chars {
|
||||
c := &chars[i]
|
||||
c.origCCC = c.ccc
|
||||
c.ccc = m[c.ccc]
|
||||
}
|
||||
if len(m) >= 1<<6 {
|
||||
log.Fatalf("too many difference CCC values: %d >= 64", len(m))
|
||||
}
|
||||
}
|
||||
|
||||
// CompositionExclusions.txt has form:
|
||||
// 0958 # ...
|
||||
// See http://unicode.org/reports/tr44/ for full explanation
|
||||
func loadCompositionExclusions() {
|
||||
f := gen.OpenUCDFile("CompositionExclusions.txt")
|
||||
defer f.Close()
|
||||
p := ucd.New(f)
|
||||
for p.Next() {
|
||||
c := &chars[p.Rune(0)]
|
||||
if c.excludeInComp {
|
||||
log.Fatalf("%U: Duplicate entry in exclusions.", c.codePoint)
|
||||
}
|
||||
c.excludeInComp = true
|
||||
}
|
||||
if e := p.Err(); e != nil {
|
||||
log.Fatal(e)
|
||||
}
|
||||
}
|
||||
|
||||
// hasCompatDecomp returns true if any of the recursive
|
||||
// decompositions contains a compatibility expansion.
|
||||
// In this case, the character may not occur in NFK*.
|
||||
func hasCompatDecomp(r rune) bool {
|
||||
c := &chars[r]
|
||||
if c.compatDecomp {
|
||||
return true
|
||||
}
|
||||
for _, d := range c.forms[FCompatibility].decomp {
|
||||
if hasCompatDecomp(d) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Hangul related constants.
|
||||
const (
|
||||
HangulBase = 0xAC00
|
||||
HangulEnd = 0xD7A4 // hangulBase + Jamo combinations (19 * 21 * 28)
|
||||
|
||||
JamoLBase = 0x1100
|
||||
JamoLEnd = 0x1113
|
||||
JamoVBase = 0x1161
|
||||
JamoVEnd = 0x1176
|
||||
JamoTBase = 0x11A8
|
||||
JamoTEnd = 0x11C3
|
||||
|
||||
JamoLVTCount = 19 * 21 * 28
|
||||
JamoTCount = 28
|
||||
)
|
||||
|
||||
func isHangul(r rune) bool {
|
||||
return HangulBase <= r && r < HangulEnd
|
||||
}
|
||||
|
||||
func isHangulWithoutJamoT(r rune) bool {
|
||||
if !isHangul(r) {
|
||||
return false
|
||||
}
|
||||
r -= HangulBase
|
||||
return r < JamoLVTCount && r%JamoTCount == 0
|
||||
}
|
||||
|
||||
func ccc(r rune) uint8 {
|
||||
return chars[r].ccc
|
||||
}
|
||||
|
||||
// Insert a rune in a buffer, ordered by Canonical Combining Class.
|
||||
func insertOrdered(b Decomposition, r rune) Decomposition {
|
||||
n := len(b)
|
||||
b = append(b, 0)
|
||||
cc := ccc(r)
|
||||
if cc > 0 {
|
||||
// Use bubble sort.
|
||||
for ; n > 0; n-- {
|
||||
if ccc(b[n-1]) <= cc {
|
||||
break
|
||||
}
|
||||
b[n] = b[n-1]
|
||||
}
|
||||
}
|
||||
b[n] = r
|
||||
return b
|
||||
}
|
||||
|
||||
// Recursively decompose.
|
||||
func decomposeRecursive(form int, r rune, d Decomposition) Decomposition {
|
||||
dcomp := chars[r].forms[form].decomp
|
||||
if len(dcomp) == 0 {
|
||||
return insertOrdered(d, r)
|
||||
}
|
||||
for _, c := range dcomp {
|
||||
d = decomposeRecursive(form, c, d)
|
||||
}
|
||||
return d
|
||||
}
|
||||
|
||||
func completeCharFields(form int) {
|
||||
// Phase 0: pre-expand decomposition.
|
||||
for i := range chars {
|
||||
f := &chars[i].forms[form]
|
||||
if len(f.decomp) == 0 {
|
||||
continue
|
||||
}
|
||||
exp := make(Decomposition, 0)
|
||||
for _, c := range f.decomp {
|
||||
exp = decomposeRecursive(form, c, exp)
|
||||
}
|
||||
f.expandedDecomp = exp
|
||||
}
|
||||
|
||||
// Phase 1: composition exclusion, mark decomposition.
|
||||
for i := range chars {
|
||||
c := &chars[i]
|
||||
f := &c.forms[form]
|
||||
|
||||
// Marks script-specific exclusions and version restricted.
|
||||
f.isOneWay = c.excludeInComp
|
||||
|
||||
// Singletons
|
||||
f.isOneWay = f.isOneWay || len(f.decomp) == 1
|
||||
|
||||
// Non-starter decompositions
|
||||
if len(f.decomp) > 1 {
|
||||
chk := c.ccc != 0 || chars[f.decomp[0]].ccc != 0
|
||||
f.isOneWay = f.isOneWay || chk
|
||||
}
|
||||
|
||||
// Runes that decompose into more than two runes.
|
||||
f.isOneWay = f.isOneWay || len(f.decomp) > 2
|
||||
|
||||
if form == FCompatibility {
|
||||
f.isOneWay = f.isOneWay || hasCompatDecomp(c.codePoint)
|
||||
}
|
||||
|
||||
for _, r := range f.decomp {
|
||||
chars[r].forms[form].inDecomp = true
|
||||
}
|
||||
}
|
||||
|
||||
// Phase 2: forward and backward combining.
|
||||
for i := range chars {
|
||||
c := &chars[i]
|
||||
f := &c.forms[form]
|
||||
|
||||
if !f.isOneWay && len(f.decomp) == 2 {
|
||||
f0 := &chars[f.decomp[0]].forms[form]
|
||||
f1 := &chars[f.decomp[1]].forms[form]
|
||||
if !f0.isOneWay {
|
||||
f0.combinesForward = true
|
||||
}
|
||||
if !f1.isOneWay {
|
||||
f1.combinesBackward = true
|
||||
}
|
||||
}
|
||||
if isHangulWithoutJamoT(rune(i)) {
|
||||
f.combinesForward = true
|
||||
}
|
||||
}
|
||||
|
||||
// Phase 3: quick check values.
|
||||
for i := range chars {
|
||||
c := &chars[i]
|
||||
f := &c.forms[form]
|
||||
|
||||
switch {
|
||||
case len(f.decomp) > 0:
|
||||
f.quickCheck[MDecomposed] = QCNo
|
||||
case isHangul(rune(i)):
|
||||
f.quickCheck[MDecomposed] = QCNo
|
||||
default:
|
||||
f.quickCheck[MDecomposed] = QCYes
|
||||
}
|
||||
switch {
|
||||
case f.isOneWay:
|
||||
f.quickCheck[MComposed] = QCNo
|
||||
case (i & 0xffff00) == JamoLBase:
|
||||
f.quickCheck[MComposed] = QCYes
|
||||
if JamoLBase <= i && i < JamoLEnd {
|
||||
f.combinesForward = true
|
||||
}
|
||||
if JamoVBase <= i && i < JamoVEnd {
|
||||
f.quickCheck[MComposed] = QCMaybe
|
||||
f.combinesBackward = true
|
||||
f.combinesForward = true
|
||||
}
|
||||
if JamoTBase <= i && i < JamoTEnd {
|
||||
f.quickCheck[MComposed] = QCMaybe
|
||||
f.combinesBackward = true
|
||||
}
|
||||
case !f.combinesBackward:
|
||||
f.quickCheck[MComposed] = QCYes
|
||||
default:
|
||||
f.quickCheck[MComposed] = QCMaybe
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func computeNonStarterCounts() {
|
||||
// Phase 4: leading and trailing non-starter count
|
||||
for i := range chars {
|
||||
c := &chars[i]
|
||||
|
||||
runes := []rune{rune(i)}
|
||||
// We always use FCompatibility so that the CGJ insertion points do not
|
||||
// change for repeated normalizations with different forms.
|
||||
if exp := c.forms[FCompatibility].expandedDecomp; len(exp) > 0 {
|
||||
runes = exp
|
||||
}
|
||||
// We consider runes that combine backwards to be non-starters for the
|
||||
// purpose of Stream-Safe Text Processing.
|
||||
for _, r := range runes {
|
||||
if cr := &chars[r]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward {
|
||||
break
|
||||
}
|
||||
c.nLeadingNonStarters++
|
||||
}
|
||||
for i := len(runes) - 1; i >= 0; i-- {
|
||||
if cr := &chars[runes[i]]; cr.ccc == 0 && !cr.forms[FCompatibility].combinesBackward {
|
||||
break
|
||||
}
|
||||
c.nTrailingNonStarters++
|
||||
}
|
||||
if c.nTrailingNonStarters > 3 {
|
||||
log.Fatalf("%U: Decomposition with more than 3 (%d) trailing modifiers (%U)", i, c.nTrailingNonStarters, runes)
|
||||
}
|
||||
|
||||
if isHangul(rune(i)) {
|
||||
c.nTrailingNonStarters = 2
|
||||
if isHangulWithoutJamoT(rune(i)) {
|
||||
c.nTrailingNonStarters = 1
|
||||
}
|
||||
}
|
||||
|
||||
if l, t := c.nLeadingNonStarters, c.nTrailingNonStarters; l > 0 && l != t {
|
||||
log.Fatalf("%U: number of leading and trailing non-starters should be equal (%d vs %d)", i, l, t)
|
||||
}
|
||||
if t := c.nTrailingNonStarters; t > 3 {
|
||||
log.Fatalf("%U: number of trailing non-starters is %d > 3", t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func printBytes(w io.Writer, b []byte, name string) {
|
||||
fmt.Fprintf(w, "// %s: %d bytes\n", name, len(b))
|
||||
fmt.Fprintf(w, "var %s = [...]byte {", name)
|
||||
for i, c := range b {
|
||||
switch {
|
||||
case i%64 == 0:
|
||||
fmt.Fprintf(w, "\n// Bytes %x - %x\n", i, i+63)
|
||||
case i%8 == 0:
|
||||
fmt.Fprintf(w, "\n")
|
||||
}
|
||||
fmt.Fprintf(w, "0x%.2X, ", c)
|
||||
}
|
||||
fmt.Fprint(w, "\n}\n\n")
|
||||
}
|
||||
|
||||
// See forminfo.go for format.
|
||||
func makeEntry(f *FormInfo, c *Char) uint16 {
|
||||
e := uint16(0)
|
||||
if r := c.codePoint; HangulBase <= r && r < HangulEnd {
|
||||
e |= 0x40
|
||||
}
|
||||
if f.combinesForward {
|
||||
e |= 0x20
|
||||
}
|
||||
if f.quickCheck[MDecomposed] == QCNo {
|
||||
e |= 0x4
|
||||
}
|
||||
switch f.quickCheck[MComposed] {
|
||||
case QCYes:
|
||||
case QCNo:
|
||||
e |= 0x10
|
||||
case QCMaybe:
|
||||
e |= 0x18
|
||||
default:
|
||||
log.Fatalf("Illegal quickcheck value %v.", f.quickCheck[MComposed])
|
||||
}
|
||||
e |= uint16(c.nTrailingNonStarters)
|
||||
return e
|
||||
}
|
||||
|
||||
// decompSet keeps track of unique decompositions, grouped by whether
|
||||
// the decomposition is followed by a trailing and/or leading CCC.
|
||||
type decompSet [7]map[string]bool
|
||||
|
||||
const (
|
||||
normalDecomp = iota
|
||||
firstMulti
|
||||
firstCCC
|
||||
endMulti
|
||||
firstLeadingCCC
|
||||
firstCCCZeroExcept
|
||||
firstStarterWithNLead
|
||||
lastDecomp
|
||||
)
|
||||
|
||||
var cname = []string{"firstMulti", "firstCCC", "endMulti", "firstLeadingCCC", "firstCCCZeroExcept", "firstStarterWithNLead", "lastDecomp"}
|
||||
|
||||
func makeDecompSet() decompSet {
|
||||
m := decompSet{}
|
||||
for i := range m {
|
||||
m[i] = make(map[string]bool)
|
||||
}
|
||||
return m
|
||||
}
|
||||
func (m *decompSet) insert(key int, s string) {
|
||||
m[key][s] = true
|
||||
}
|
||||
|
||||
func printCharInfoTables(w io.Writer) int {
|
||||
mkstr := func(r rune, f *FormInfo) (int, string) {
|
||||
d := f.expandedDecomp
|
||||
s := string([]rune(d))
|
||||
if max := 1 << 6; len(s) >= max {
|
||||
const msg = "%U: too many bytes in decomposition: %d >= %d"
|
||||
log.Fatalf(msg, r, len(s), max)
|
||||
}
|
||||
head := uint8(len(s))
|
||||
if f.quickCheck[MComposed] != QCYes {
|
||||
head |= 0x40
|
||||
}
|
||||
if f.combinesForward {
|
||||
head |= 0x80
|
||||
}
|
||||
s = string([]byte{head}) + s
|
||||
|
||||
lccc := ccc(d[0])
|
||||
tccc := ccc(d[len(d)-1])
|
||||
cc := ccc(r)
|
||||
if cc != 0 && lccc == 0 && tccc == 0 {
|
||||
log.Fatalf("%U: trailing and leading ccc are 0 for non-zero ccc %d", r, cc)
|
||||
}
|
||||
if tccc < lccc && lccc != 0 {
|
||||
const msg = "%U: lccc (%d) must be <= tcc (%d)"
|
||||
log.Fatalf(msg, r, lccc, tccc)
|
||||
}
|
||||
index := normalDecomp
|
||||
nTrail := chars[r].nTrailingNonStarters
|
||||
nLead := chars[r].nLeadingNonStarters
|
||||
if tccc > 0 || lccc > 0 || nTrail > 0 {
|
||||
tccc <<= 2
|
||||
tccc |= nTrail
|
||||
s += string([]byte{tccc})
|
||||
index = endMulti
|
||||
for _, r := range d[1:] {
|
||||
if ccc(r) == 0 {
|
||||
index = firstCCC
|
||||
}
|
||||
}
|
||||
if lccc > 0 || nLead > 0 {
|
||||
s += string([]byte{lccc})
|
||||
if index == firstCCC {
|
||||
log.Fatalf("%U: multi-segment decomposition not supported for decompositions with leading CCC != 0", r)
|
||||
}
|
||||
index = firstLeadingCCC
|
||||
}
|
||||
if cc != lccc {
|
||||
if cc != 0 {
|
||||
log.Fatalf("%U: for lccc != ccc, expected ccc to be 0; was %d", r, cc)
|
||||
}
|
||||
index = firstCCCZeroExcept
|
||||
}
|
||||
} else if len(d) > 1 {
|
||||
index = firstMulti
|
||||
}
|
||||
return index, s
|
||||
}
|
||||
|
||||
decompSet := makeDecompSet()
|
||||
const nLeadStr = "\x00\x01" // 0-byte length and tccc with nTrail.
|
||||
decompSet.insert(firstStarterWithNLead, nLeadStr)
|
||||
|
||||
// Store the uniqued decompositions in a byte buffer,
|
||||
// preceded by their byte length.
|
||||
for _, c := range chars {
|
||||
for _, f := range c.forms {
|
||||
if len(f.expandedDecomp) == 0 {
|
||||
continue
|
||||
}
|
||||
if f.combinesBackward {
|
||||
log.Fatalf("%U: combinesBackward and decompose", c.codePoint)
|
||||
}
|
||||
index, s := mkstr(c.codePoint, &f)
|
||||
decompSet.insert(index, s)
|
||||
}
|
||||
}
|
||||
|
||||
decompositions := bytes.NewBuffer(make([]byte, 0, 10000))
|
||||
size := 0
|
||||
positionMap := make(map[string]uint16)
|
||||
decompositions.WriteString("\000")
|
||||
fmt.Fprintln(w, "const (")
|
||||
for i, m := range decompSet {
|
||||
sa := []string{}
|
||||
for s := range m {
|
||||
sa = append(sa, s)
|
||||
}
|
||||
sort.Strings(sa)
|
||||
for _, s := range sa {
|
||||
p := decompositions.Len()
|
||||
decompositions.WriteString(s)
|
||||
positionMap[s] = uint16(p)
|
||||
}
|
||||
if cname[i] != "" {
|
||||
fmt.Fprintf(w, "%s = 0x%X\n", cname[i], decompositions.Len())
|
||||
}
|
||||
}
|
||||
fmt.Fprintln(w, "maxDecomp = 0x8000")
|
||||
fmt.Fprintln(w, ")")
|
||||
b := decompositions.Bytes()
|
||||
printBytes(w, b, "decomps")
|
||||
size += len(b)
|
||||
|
||||
varnames := []string{"nfc", "nfkc"}
|
||||
for i := 0; i < FNumberOfFormTypes; i++ {
|
||||
trie := triegen.NewTrie(varnames[i])
|
||||
|
||||
for r, c := range chars {
|
||||
f := c.forms[i]
|
||||
d := f.expandedDecomp
|
||||
if len(d) != 0 {
|
||||
_, key := mkstr(c.codePoint, &f)
|
||||
trie.Insert(rune(r), uint64(positionMap[key]))
|
||||
if c.ccc != ccc(d[0]) {
|
||||
// We assume the lead ccc of a decomposition !=0 in this case.
|
||||
if ccc(d[0]) == 0 {
|
||||
log.Fatalf("Expected leading CCC to be non-zero; ccc is %d", c.ccc)
|
||||
}
|
||||
}
|
||||
} else if c.nLeadingNonStarters > 0 && len(f.expandedDecomp) == 0 && c.ccc == 0 && !f.combinesBackward {
|
||||
// Handle cases where it can't be detected that the nLead should be equal
|
||||
// to nTrail.
|
||||
trie.Insert(c.codePoint, uint64(positionMap[nLeadStr]))
|
||||
} else if v := makeEntry(&f, &c)<<8 | uint16(c.ccc); v != 0 {
|
||||
trie.Insert(c.codePoint, uint64(0x8000|v))
|
||||
}
|
||||
}
|
||||
sz, err := trie.Gen(w, triegen.Compact(&normCompacter{name: varnames[i]}))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
size += sz
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
func contains(sa []string, s string) bool {
|
||||
for _, a := range sa {
|
||||
if a == s {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func makeTables() {
|
||||
w := &bytes.Buffer{}
|
||||
|
||||
size := 0
|
||||
if *tablelist == "" {
|
||||
return
|
||||
}
|
||||
list := strings.Split(*tablelist, ",")
|
||||
if *tablelist == "all" {
|
||||
list = []string{"recomp", "info"}
|
||||
}
|
||||
|
||||
// Compute maximum decomposition size.
|
||||
max := 0
|
||||
for _, c := range chars {
|
||||
if n := len(string(c.forms[FCompatibility].expandedDecomp)); n > max {
|
||||
max = n
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Fprintln(w, "const (")
|
||||
fmt.Fprintln(w, "\t// Version is the Unicode edition from which the tables are derived.")
|
||||
fmt.Fprintf(w, "\tVersion = %q\n", gen.UnicodeVersion())
|
||||
fmt.Fprintln(w)
|
||||
fmt.Fprintln(w, "\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform")
|
||||
fmt.Fprintln(w, "\t// may need to write atomically for any Form. Making a destination buffer at")
|
||||
fmt.Fprintln(w, "\t// least this size ensures that Transform can always make progress and that")
|
||||
fmt.Fprintln(w, "\t// the user does not need to grow the buffer on an ErrShortDst.")
|
||||
fmt.Fprintf(w, "\tMaxTransformChunkSize = %d+maxNonStarters*4\n", len(string(0x034F))+max)
|
||||
fmt.Fprintln(w, ")\n")
|
||||
|
||||
// Print the CCC remap table.
|
||||
size += len(cccMap)
|
||||
fmt.Fprintf(w, "var ccc = [%d]uint8{", len(cccMap))
|
||||
for i := 0; i < len(cccMap); i++ {
|
||||
if i%8 == 0 {
|
||||
fmt.Fprintln(w)
|
||||
}
|
||||
fmt.Fprintf(w, "%3d, ", cccMap[uint8(i)])
|
||||
}
|
||||
fmt.Fprintln(w, "\n}\n")
|
||||
|
||||
if contains(list, "info") {
|
||||
size += printCharInfoTables(w)
|
||||
}
|
||||
|
||||
if contains(list, "recomp") {
|
||||
// Note that we use 32 bit keys, instead of 64 bit.
|
||||
// This clips the bits of three entries, but we know
|
||||
// this won't cause a collision. The compiler will catch
|
||||
// any changes made to UnicodeData.txt that introduces
|
||||
// a collision.
|
||||
// Note that the recomposition map for NFC and NFKC
|
||||
// are identical.
|
||||
|
||||
// Recomposition map
|
||||
nrentries := 0
|
||||
for _, c := range chars {
|
||||
f := c.forms[FCanonical]
|
||||
if !f.isOneWay && len(f.decomp) > 0 {
|
||||
nrentries++
|
||||
}
|
||||
}
|
||||
sz := nrentries * 8
|
||||
size += sz
|
||||
fmt.Fprintf(w, "// recompMap: %d bytes (entries only)\n", sz)
|
||||
fmt.Fprintln(w, "var recompMap = map[uint32]rune{")
|
||||
for i, c := range chars {
|
||||
f := c.forms[FCanonical]
|
||||
d := f.decomp
|
||||
if !f.isOneWay && len(d) > 0 {
|
||||
key := uint32(uint16(d[0]))<<16 + uint32(uint16(d[1]))
|
||||
fmt.Fprintf(w, "0x%.8X: 0x%.4X,\n", key, i)
|
||||
}
|
||||
}
|
||||
fmt.Fprintf(w, "}\n\n")
|
||||
}
|
||||
|
||||
fmt.Fprintf(w, "// Total size of tables: %dKB (%d bytes)\n", (size+512)/1024, size)
|
||||
gen.WriteVersionedGoFile("tables.go", "norm", w.Bytes())
|
||||
}
|
||||
|
||||
func printChars() {
|
||||
if *verbose {
|
||||
for _, c := range chars {
|
||||
if !c.isValid() || c.state == SMissing {
|
||||
continue
|
||||
}
|
||||
fmt.Println(c)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// verifyComputed does various consistency tests.
|
||||
func verifyComputed() {
|
||||
for i, c := range chars {
|
||||
for _, f := range c.forms {
|
||||
isNo := (f.quickCheck[MDecomposed] == QCNo)
|
||||
if (len(f.decomp) > 0) != isNo && !isHangul(rune(i)) {
|
||||
log.Fatalf("%U: NF*D QC must be No if rune decomposes", i)
|
||||
}
|
||||
|
||||
isMaybe := f.quickCheck[MComposed] == QCMaybe
|
||||
if f.combinesBackward != isMaybe {
|
||||
log.Fatalf("%U: NF*C QC must be Maybe if combinesBackward", i)
|
||||
}
|
||||
if len(f.decomp) > 0 && f.combinesForward && isMaybe {
|
||||
log.Fatalf("%U: NF*C QC must be Yes or No if combinesForward and decomposes", i)
|
||||
}
|
||||
|
||||
if len(f.expandedDecomp) != 0 {
|
||||
continue
|
||||
}
|
||||
if a, b := c.nLeadingNonStarters > 0, (c.ccc > 0 || f.combinesBackward); a != b {
|
||||
// We accept these runes to be treated differently (it only affects
|
||||
// segment breaking in iteration, most likely on improper use), but
|
||||
// reconsider if more characters are added.
|
||||
// U+FF9E HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;;;;
|
||||
// U+FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;;;;
|
||||
// U+3133 HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;
|
||||
// U+318E HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;;
|
||||
// U+FFA3 HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;;
|
||||
// U+FFDC HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;;
|
||||
if i != 0xFF9E && i != 0xFF9F && !(0x3133 <= i && i <= 0x318E) && !(0xFFA3 <= i && i <= 0xFFDC) {
|
||||
log.Fatalf("%U: nLead was %v; want %v", i, a, b)
|
||||
}
|
||||
}
|
||||
}
|
||||
nfc := c.forms[FCanonical]
|
||||
nfkc := c.forms[FCompatibility]
|
||||
if nfc.combinesBackward != nfkc.combinesBackward {
|
||||
log.Fatalf("%U: Cannot combine combinesBackward\n", c.codePoint)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Use values in DerivedNormalizationProps.txt to compare against the
|
||||
// values we computed.
|
||||
// DerivedNormalizationProps.txt has form:
|
||||
// 00C0..00C5 ; NFD_QC; N # ...
|
||||
// 0374 ; NFD_QC; N # ...
|
||||
// See http://unicode.org/reports/tr44/ for full explanation
|
||||
func testDerived() {
|
||||
f := gen.OpenUCDFile("DerivedNormalizationProps.txt")
|
||||
defer f.Close()
|
||||
p := ucd.New(f)
|
||||
for p.Next() {
|
||||
r := p.Rune(0)
|
||||
c := &chars[r]
|
||||
|
||||
var ftype, mode int
|
||||
qt := p.String(1)
|
||||
switch qt {
|
||||
case "NFC_QC":
|
||||
ftype, mode = FCanonical, MComposed
|
||||
case "NFD_QC":
|
||||
ftype, mode = FCanonical, MDecomposed
|
||||
case "NFKC_QC":
|
||||
ftype, mode = FCompatibility, MComposed
|
||||
case "NFKD_QC":
|
||||
ftype, mode = FCompatibility, MDecomposed
|
||||
default:
|
||||
continue
|
||||
}
|
||||
var qr QCResult
|
||||
switch p.String(2) {
|
||||
case "Y":
|
||||
qr = QCYes
|
||||
case "N":
|
||||
qr = QCNo
|
||||
case "M":
|
||||
qr = QCMaybe
|
||||
default:
|
||||
log.Fatalf(`Unexpected quick check value "%s"`, p.String(2))
|
||||
}
|
||||
if got := c.forms[ftype].quickCheck[mode]; got != qr {
|
||||
log.Printf("%U: FAILED %s (was %v need %v)\n", r, qt, got, qr)
|
||||
}
|
||||
c.forms[ftype].verified[mode] = true
|
||||
}
|
||||
if err := p.Err(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
// Any unspecified value must be QCYes. Verify this.
|
||||
for i, c := range chars {
|
||||
for j, fd := range c.forms {
|
||||
for k, qr := range fd.quickCheck {
|
||||
if !fd.verified[k] && qr != QCYes {
|
||||
m := "%U: FAIL F:%d M:%d (was %v need Yes) %s\n"
|
||||
log.Printf(m, i, j, k, qr, c.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var testHeader = `const (
|
||||
Yes = iota
|
||||
No
|
||||
Maybe
|
||||
)
|
||||
|
||||
type formData struct {
|
||||
qc uint8
|
||||
combinesForward bool
|
||||
decomposition string
|
||||
}
|
||||
|
||||
type runeData struct {
|
||||
r rune
|
||||
ccc uint8
|
||||
nLead uint8
|
||||
nTrail uint8
|
||||
f [2]formData // 0: canonical; 1: compatibility
|
||||
}
|
||||
|
||||
func f(qc uint8, cf bool, dec string) [2]formData {
|
||||
return [2]formData{{qc, cf, dec}, {qc, cf, dec}}
|
||||
}
|
||||
|
||||
func g(qc, qck uint8, cf, cfk bool, d, dk string) [2]formData {
|
||||
return [2]formData{{qc, cf, d}, {qck, cfk, dk}}
|
||||
}
|
||||
|
||||
var testData = []runeData{
|
||||
`
|
||||
|
||||
func printTestdata() {
|
||||
type lastInfo struct {
|
||||
ccc uint8
|
||||
nLead uint8
|
||||
nTrail uint8
|
||||
f string
|
||||
}
|
||||
|
||||
last := lastInfo{}
|
||||
w := &bytes.Buffer{}
|
||||
fmt.Fprintf(w, testHeader)
|
||||
for r, c := range chars {
|
||||
f := c.forms[FCanonical]
|
||||
qc, cf, d := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp)
|
||||
f = c.forms[FCompatibility]
|
||||
qck, cfk, dk := f.quickCheck[MComposed], f.combinesForward, string(f.expandedDecomp)
|
||||
s := ""
|
||||
if d == dk && qc == qck && cf == cfk {
|
||||
s = fmt.Sprintf("f(%s, %v, %q)", qc, cf, d)
|
||||
} else {
|
||||
s = fmt.Sprintf("g(%s, %s, %v, %v, %q, %q)", qc, qck, cf, cfk, d, dk)
|
||||
}
|
||||
current := lastInfo{c.ccc, c.nLeadingNonStarters, c.nTrailingNonStarters, s}
|
||||
if last != current {
|
||||
fmt.Fprintf(w, "\t{0x%x, %d, %d, %d, %s},\n", r, c.origCCC, c.nLeadingNonStarters, c.nTrailingNonStarters, s)
|
||||
last = current
|
||||
}
|
||||
}
|
||||
fmt.Fprintln(w, "}")
|
||||
gen.WriteVersionedGoFile("data_test.go", "norm", w.Bytes())
|
||||
}
|
||||
117
vendor/golang.org/x/text/unicode/norm/triegen.go
generated
vendored
117
vendor/golang.org/x/text/unicode/norm/triegen.go
generated
vendored
@@ -1,117 +0,0 @@
|
||||
// Copyright 2011 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
// Trie table generator.
|
||||
// Used by make*tables tools to generate a go file with trie data structures
|
||||
// for mapping UTF-8 to a 16-bit value. All but the last byte in a UTF-8 byte
|
||||
// sequence are used to lookup offsets in the index table to be used for the
|
||||
// next byte. The last byte is used to index into a table with 16-bit values.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
)
|
||||
|
||||
const maxSparseEntries = 16
|
||||
|
||||
type normCompacter struct {
|
||||
sparseBlocks [][]uint64
|
||||
sparseOffset []uint16
|
||||
sparseCount int
|
||||
name string
|
||||
}
|
||||
|
||||
func mostFrequentStride(a []uint64) int {
|
||||
counts := make(map[int]int)
|
||||
var v int
|
||||
for _, x := range a {
|
||||
if stride := int(x) - v; v != 0 && stride >= 0 {
|
||||
counts[stride]++
|
||||
}
|
||||
v = int(x)
|
||||
}
|
||||
var maxs, maxc int
|
||||
for stride, cnt := range counts {
|
||||
if cnt > maxc || (cnt == maxc && stride < maxs) {
|
||||
maxs, maxc = stride, cnt
|
||||
}
|
||||
}
|
||||
return maxs
|
||||
}
|
||||
|
||||
func countSparseEntries(a []uint64) int {
|
||||
stride := mostFrequentStride(a)
|
||||
var v, count int
|
||||
for _, tv := range a {
|
||||
if int(tv)-v != stride {
|
||||
if tv != 0 {
|
||||
count++
|
||||
}
|
||||
}
|
||||
v = int(tv)
|
||||
}
|
||||
return count
|
||||
}
|
||||
|
||||
func (c *normCompacter) Size(v []uint64) (sz int, ok bool) {
|
||||
if n := countSparseEntries(v); n <= maxSparseEntries {
|
||||
return (n+1)*4 + 2, true
|
||||
}
|
||||
return 0, false
|
||||
}
|
||||
|
||||
func (c *normCompacter) Store(v []uint64) uint32 {
|
||||
h := uint32(len(c.sparseOffset))
|
||||
c.sparseBlocks = append(c.sparseBlocks, v)
|
||||
c.sparseOffset = append(c.sparseOffset, uint16(c.sparseCount))
|
||||
c.sparseCount += countSparseEntries(v) + 1
|
||||
return h
|
||||
}
|
||||
|
||||
func (c *normCompacter) Handler() string {
|
||||
return c.name + "Sparse.lookup"
|
||||
}
|
||||
|
||||
func (c *normCompacter) Print(w io.Writer) (retErr error) {
|
||||
p := func(f string, x ...interface{}) {
|
||||
if _, err := fmt.Fprintf(w, f, x...); retErr == nil && err != nil {
|
||||
retErr = err
|
||||
}
|
||||
}
|
||||
|
||||
ls := len(c.sparseBlocks)
|
||||
p("// %sSparseOffset: %d entries, %d bytes\n", c.name, ls, ls*2)
|
||||
p("var %sSparseOffset = %#v\n\n", c.name, c.sparseOffset)
|
||||
|
||||
ns := c.sparseCount
|
||||
p("// %sSparseValues: %d entries, %d bytes\n", c.name, ns, ns*4)
|
||||
p("var %sSparseValues = [%d]valueRange {", c.name, ns)
|
||||
for i, b := range c.sparseBlocks {
|
||||
p("\n// Block %#x, offset %#x", i, c.sparseOffset[i])
|
||||
var v int
|
||||
stride := mostFrequentStride(b)
|
||||
n := countSparseEntries(b)
|
||||
p("\n{value:%#04x,lo:%#02x},", stride, uint8(n))
|
||||
for i, nv := range b {
|
||||
if int(nv)-v != stride {
|
||||
if v != 0 {
|
||||
p(",hi:%#02x},", 0x80+i-1)
|
||||
}
|
||||
if nv != 0 {
|
||||
p("\n{value:%#04x,lo:%#02x", nv, 0x80+i)
|
||||
}
|
||||
}
|
||||
v = int(nv)
|
||||
}
|
||||
if v != 0 {
|
||||
p(",hi:%#02x},", 0x80+len(b)-1)
|
||||
}
|
||||
}
|
||||
p("\n}\n\n")
|
||||
return
|
||||
}
|
||||
115
vendor/golang.org/x/text/width/gen.go
generated
vendored
115
vendor/golang.org/x/text/width/gen.go
generated
vendored
@@ -1,115 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
// This program generates the trie for width operations. The generated table
|
||||
// includes width category information as well as the normalization mappings.
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"math"
|
||||
"unicode/utf8"
|
||||
|
||||
"golang.org/x/text/internal/gen"
|
||||
"golang.org/x/text/internal/triegen"
|
||||
)
|
||||
|
||||
// See gen_common.go for flags.
|
||||
|
||||
func main() {
|
||||
gen.Init()
|
||||
genTables()
|
||||
genTests()
|
||||
gen.Repackage("gen_trieval.go", "trieval.go", "width")
|
||||
gen.Repackage("gen_common.go", "common_test.go", "width")
|
||||
}
|
||||
|
||||
func genTables() {
|
||||
t := triegen.NewTrie("width")
|
||||
// fold and inverse mappings. See mapComment for a description of the format
|
||||
// of each entry. Add dummy value to make an index of 0 mean no mapping.
|
||||
inverse := [][4]byte{{}}
|
||||
mapping := map[[4]byte]int{[4]byte{}: 0}
|
||||
|
||||
getWidthData(func(r rune, tag elem, alt rune) {
|
||||
idx := 0
|
||||
if alt != 0 {
|
||||
var buf [4]byte
|
||||
buf[0] = byte(utf8.EncodeRune(buf[1:], alt))
|
||||
s := string(r)
|
||||
buf[buf[0]] ^= s[len(s)-1]
|
||||
var ok bool
|
||||
if idx, ok = mapping[buf]; !ok {
|
||||
idx = len(mapping)
|
||||
if idx > math.MaxUint8 {
|
||||
log.Fatalf("Index %d does not fit in a byte.", idx)
|
||||
}
|
||||
mapping[buf] = idx
|
||||
inverse = append(inverse, buf)
|
||||
}
|
||||
}
|
||||
t.Insert(r, uint64(tag|elem(idx)))
|
||||
})
|
||||
|
||||
w := &bytes.Buffer{}
|
||||
gen.WriteUnicodeVersion(w)
|
||||
|
||||
sz, err := t.Gen(w)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
sz += writeMappings(w, inverse)
|
||||
|
||||
fmt.Fprintf(w, "// Total table size %d bytes (%dKiB)\n", sz, sz/1024)
|
||||
|
||||
gen.WriteVersionedGoFile(*outputFile, "width", w.Bytes())
|
||||
}
|
||||
|
||||
const inverseDataComment = `
|
||||
// inverseData contains 4-byte entries of the following format:
|
||||
// <length> <modified UTF-8-encoded rune> <0 padding>
|
||||
// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the
|
||||
// UTF-8 encoding of the original rune. Mappings often have the following
|
||||
// pattern:
|
||||
// A -> A (U+FF21 -> U+0041)
|
||||
// B -> B (U+FF22 -> U+0042)
|
||||
// ...
|
||||
// By xor-ing the last byte the same entry can be shared by many mappings. This
|
||||
// reduces the total number of distinct entries by about two thirds.
|
||||
// The resulting entry for the aforementioned mappings is
|
||||
// { 0x01, 0xE0, 0x00, 0x00 }
|
||||
// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get
|
||||
// E0 ^ A1 = 41.
|
||||
// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get
|
||||
// E0 ^ A2 = 42.
|
||||
// Note that because of the xor-ing, the byte sequence stored in the entry is
|
||||
// not valid UTF-8.`
|
||||
|
||||
func writeMappings(w io.Writer, data [][4]byte) int {
|
||||
fmt.Fprintln(w, inverseDataComment)
|
||||
fmt.Fprintf(w, "var inverseData = [%d][4]byte{\n", len(data))
|
||||
for _, x := range data {
|
||||
fmt.Fprintf(w, "{ 0x%02x, 0x%02x, 0x%02x, 0x%02x },\n", x[0], x[1], x[2], x[3])
|
||||
}
|
||||
fmt.Fprintln(w, "}")
|
||||
return len(data) * 4
|
||||
}
|
||||
|
||||
func genTests() {
|
||||
w := &bytes.Buffer{}
|
||||
fmt.Fprintf(w, "\nvar mapRunes = map[rune]struct{r rune; e elem}{\n")
|
||||
getWidthData(func(r rune, tag elem, alt rune) {
|
||||
if alt != 0 {
|
||||
fmt.Fprintf(w, "\t0x%X: {0x%X, 0x%X},\n", r, alt, tag)
|
||||
}
|
||||
})
|
||||
fmt.Fprintln(w, "}")
|
||||
gen.WriteGoFile("runes_test.go", "width", w.Bytes())
|
||||
}
|
||||
96
vendor/golang.org/x/text/width/gen_common.go
generated
vendored
96
vendor/golang.org/x/text/width/gen_common.go
generated
vendored
@@ -1,96 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// This code is shared between the main code generator and the test code.
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"log"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/text/internal/gen"
|
||||
"golang.org/x/text/internal/ucd"
|
||||
)
|
||||
|
||||
var (
|
||||
outputFile = flag.String("out", "tables.go", "output file")
|
||||
)
|
||||
|
||||
var typeMap = map[string]elem{
|
||||
"A": tagAmbiguous,
|
||||
"N": tagNeutral,
|
||||
"Na": tagNarrow,
|
||||
"W": tagWide,
|
||||
"F": tagFullwidth,
|
||||
"H": tagHalfwidth,
|
||||
}
|
||||
|
||||
// getWidthData calls f for every entry for which it is defined.
|
||||
//
|
||||
// f may be called multiple times for the same rune. The last call to f is the
|
||||
// correct value. f is not called for all runes. The default tag type is
|
||||
// Neutral.
|
||||
func getWidthData(f func(r rune, tag elem, alt rune)) {
|
||||
// Set the default values for Unified Ideographs. In line with Annex 11,
|
||||
// we encode full ranges instead of the defined runes in Unified_Ideograph.
|
||||
for _, b := range []struct{ lo, hi rune }{
|
||||
{0x4E00, 0x9FFF}, // the CJK Unified Ideographs block,
|
||||
{0x3400, 0x4DBF}, // the CJK Unified Ideographs Externsion A block,
|
||||
{0xF900, 0xFAFF}, // the CJK Compatibility Ideographs block,
|
||||
{0x20000, 0x2FFFF}, // the Supplementary Ideographic Plane,
|
||||
{0x30000, 0x3FFFF}, // the Tertiary Ideographic Plane,
|
||||
} {
|
||||
for r := b.lo; r <= b.hi; r++ {
|
||||
f(r, tagWide, 0)
|
||||
}
|
||||
}
|
||||
|
||||
inverse := map[rune]rune{}
|
||||
maps := map[string]bool{
|
||||
"<wide>": true,
|
||||
"<narrow>": true,
|
||||
}
|
||||
|
||||
// We cannot reuse package norm's decomposition, as we need an unexpanded
|
||||
// decomposition. We make use of the opportunity to verify that the
|
||||
// decomposition type is as expected.
|
||||
ucd.Parse(gen.OpenUCDFile("UnicodeData.txt"), func(p *ucd.Parser) {
|
||||
r := p.Rune(0)
|
||||
s := strings.SplitN(p.String(ucd.DecompMapping), " ", 2)
|
||||
if !maps[s[0]] {
|
||||
return
|
||||
}
|
||||
x, err := strconv.ParseUint(s[1], 16, 32)
|
||||
if err != nil {
|
||||
log.Fatalf("Error parsing rune %q", s[1])
|
||||
}
|
||||
if inverse[r] != 0 || inverse[rune(x)] != 0 {
|
||||
log.Fatalf("Circular dependency in mapping between %U and %U", r, x)
|
||||
}
|
||||
inverse[r] = rune(x)
|
||||
inverse[rune(x)] = r
|
||||
})
|
||||
|
||||
// <rune range>;<type>
|
||||
ucd.Parse(gen.OpenUCDFile("EastAsianWidth.txt"), func(p *ucd.Parser) {
|
||||
tag, ok := typeMap[p.String(1)]
|
||||
if !ok {
|
||||
log.Fatalf("Unknown width type %q", p.String(1))
|
||||
}
|
||||
r := p.Rune(0)
|
||||
alt, ok := inverse[r]
|
||||
if tag == tagFullwidth || tag == tagHalfwidth && r != wonSign {
|
||||
tag |= tagNeedsFold
|
||||
if !ok {
|
||||
log.Fatalf("Narrow or wide rune %U has no decomposition", r)
|
||||
}
|
||||
}
|
||||
f(r, tag, alt)
|
||||
})
|
||||
}
|
||||
34
vendor/golang.org/x/text/width/gen_trieval.go
generated
vendored
34
vendor/golang.org/x/text/width/gen_trieval.go
generated
vendored
@@ -1,34 +0,0 @@
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
// elem is an entry of the width trie. The high byte is used to encode the type
|
||||
// of the rune. The low byte is used to store the index to a mapping entry in
|
||||
// the inverseData array.
|
||||
type elem uint16
|
||||
|
||||
const (
|
||||
tagNeutral elem = iota << typeShift
|
||||
tagAmbiguous
|
||||
tagWide
|
||||
tagNarrow
|
||||
tagFullwidth
|
||||
tagHalfwidth
|
||||
)
|
||||
|
||||
const (
|
||||
numTypeBits = 3
|
||||
typeShift = 16 - numTypeBits
|
||||
|
||||
// tagNeedsFold is true for all fullwidth and halfwidth runes except for
|
||||
// the Won sign U+20A9.
|
||||
tagNeedsFold = 0x1000
|
||||
|
||||
// The Korean Won sign is halfwidth, but SHOULD NOT be mapped to a wide
|
||||
// variant.
|
||||
wonSign rune = 0x20A9
|
||||
)
|
||||
99
vendor/golang.org/x/tools/go/gcexportdata/main.go
generated
vendored
99
vendor/golang.org/x/tools/go/gcexportdata/main.go
generated
vendored
@@ -1,99 +0,0 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
// The gcexportdata command is a diagnostic tool that displays the
|
||||
// contents of gc export data files.
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"go/token"
|
||||
"go/types"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"golang.org/x/tools/go/gcexportdata"
|
||||
"golang.org/x/tools/go/types/typeutil"
|
||||
)
|
||||
|
||||
var packageFlag = flag.String("package", "", "alternative package to print")
|
||||
|
||||
func main() {
|
||||
log.SetPrefix("gcexportdata: ")
|
||||
log.SetFlags(0)
|
||||
flag.Usage = func() {
|
||||
fmt.Fprintln(os.Stderr, "usage: gcexportdata [-package path] file.a")
|
||||
}
|
||||
flag.Parse()
|
||||
if flag.NArg() != 1 {
|
||||
flag.Usage()
|
||||
os.Exit(2)
|
||||
}
|
||||
filename := flag.Args()[0]
|
||||
|
||||
f, err := os.Open(filename)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
r, err := gcexportdata.NewReader(f)
|
||||
if err != nil {
|
||||
log.Fatalf("%s: %s", filename, err)
|
||||
}
|
||||
|
||||
// Decode the package.
|
||||
const primary = "<primary>"
|
||||
imports := make(map[string]*types.Package)
|
||||
fset := token.NewFileSet()
|
||||
pkg, err := gcexportdata.Read(r, fset, imports, primary)
|
||||
if err != nil {
|
||||
log.Fatalf("%s: %s", filename, err)
|
||||
}
|
||||
|
||||
// Optionally select an indirectly mentioned package.
|
||||
if *packageFlag != "" {
|
||||
pkg = imports[*packageFlag]
|
||||
if pkg == nil {
|
||||
fmt.Fprintf(os.Stderr, "export data file %s does not mention %s; has:\n",
|
||||
filename, *packageFlag)
|
||||
for p := range imports {
|
||||
if p != primary {
|
||||
fmt.Fprintf(os.Stderr, "\t%s\n", p)
|
||||
}
|
||||
}
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
// Print all package-level declarations, including non-exported ones.
|
||||
fmt.Printf("package %s\n", pkg.Name())
|
||||
for _, imp := range pkg.Imports() {
|
||||
fmt.Printf("import %q\n", imp.Path())
|
||||
}
|
||||
qual := func(p *types.Package) string {
|
||||
if pkg == p {
|
||||
return ""
|
||||
}
|
||||
return p.Name()
|
||||
}
|
||||
scope := pkg.Scope()
|
||||
for _, name := range scope.Names() {
|
||||
obj := scope.Lookup(name)
|
||||
fmt.Printf("%s: %s\n",
|
||||
fset.Position(obj.Pos()),
|
||||
types.ObjectString(obj, qual))
|
||||
|
||||
// For types, print each method.
|
||||
if _, ok := obj.(*types.TypeName); ok {
|
||||
for _, method := range typeutil.IntuitiveMethodSet(obj.Type(), nil) {
|
||||
fmt.Printf("%s: %s\n",
|
||||
fset.Position(method.Obj().Pos()),
|
||||
types.SelectionString(method, qual))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
173
vendor/golang.org/x/tools/internal/imports/mkindex.go
generated
vendored
173
vendor/golang.org/x/tools/internal/imports/mkindex.go
generated
vendored
@@ -1,173 +0,0 @@
|
||||
// +build ignore
|
||||
|
||||
// Copyright 2013 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Command mkindex creates the file "pkgindex.go" containing an index of the Go
|
||||
// standard library. The file is intended to be built as part of the imports
|
||||
// package, so that the package may be used in environments where a GOROOT is
|
||||
// not available (such as App Engine).
|
||||
package imports
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"go/ast"
|
||||
"go/build"
|
||||
"go/format"
|
||||
"go/parser"
|
||||
"go/token"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
pkgIndex = make(map[string][]pkg)
|
||||
exports = make(map[string]map[string]bool)
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Don't use GOPATH.
|
||||
ctx := build.Default
|
||||
ctx.GOPATH = ""
|
||||
|
||||
// Populate pkgIndex global from GOROOT.
|
||||
for _, path := range ctx.SrcDirs() {
|
||||
f, err := os.Open(path)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
continue
|
||||
}
|
||||
children, err := f.Readdir(-1)
|
||||
f.Close()
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
continue
|
||||
}
|
||||
for _, child := range children {
|
||||
if child.IsDir() {
|
||||
loadPkg(path, child.Name())
|
||||
}
|
||||
}
|
||||
}
|
||||
// Populate exports global.
|
||||
for _, ps := range pkgIndex {
|
||||
for _, p := range ps {
|
||||
e := loadExports(p.dir)
|
||||
if e != nil {
|
||||
exports[p.dir] = e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Construct source file.
|
||||
var buf bytes.Buffer
|
||||
fmt.Fprint(&buf, pkgIndexHead)
|
||||
fmt.Fprintf(&buf, "var pkgIndexMaster = %#v\n", pkgIndex)
|
||||
fmt.Fprintf(&buf, "var exportsMaster = %#v\n", exports)
|
||||
src := buf.Bytes()
|
||||
|
||||
// Replace main.pkg type name with pkg.
|
||||
src = bytes.Replace(src, []byte("main.pkg"), []byte("pkg"), -1)
|
||||
// Replace actual GOROOT with "/go".
|
||||
src = bytes.Replace(src, []byte(ctx.GOROOT), []byte("/go"), -1)
|
||||
// Add some line wrapping.
|
||||
src = bytes.Replace(src, []byte("}, "), []byte("},\n"), -1)
|
||||
src = bytes.Replace(src, []byte("true, "), []byte("true,\n"), -1)
|
||||
|
||||
var err error
|
||||
src, err = format.Source(src)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Write out source file.
|
||||
err = ioutil.WriteFile("pkgindex.go", src, 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
const pkgIndexHead = `package imports
|
||||
|
||||
func init() {
|
||||
pkgIndexOnce.Do(func() {
|
||||
pkgIndex.m = pkgIndexMaster
|
||||
})
|
||||
loadExports = func(dir string) map[string]bool {
|
||||
return exportsMaster[dir]
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
type pkg struct {
|
||||
importpath string // full pkg import path, e.g. "net/http"
|
||||
dir string // absolute file path to pkg directory e.g. "/usr/lib/go/src/fmt"
|
||||
}
|
||||
|
||||
var fset = token.NewFileSet()
|
||||
|
||||
func loadPkg(root, importpath string) {
|
||||
shortName := path.Base(importpath)
|
||||
if shortName == "testdata" {
|
||||
return
|
||||
}
|
||||
|
||||
dir := filepath.Join(root, importpath)
|
||||
pkgIndex[shortName] = append(pkgIndex[shortName], pkg{
|
||||
importpath: importpath,
|
||||
dir: dir,
|
||||
})
|
||||
|
||||
pkgDir, err := os.Open(dir)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
children, err := pkgDir.Readdir(-1)
|
||||
pkgDir.Close()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
for _, child := range children {
|
||||
name := child.Name()
|
||||
if name == "" {
|
||||
continue
|
||||
}
|
||||
if c := name[0]; c == '.' || ('0' <= c && c <= '9') {
|
||||
continue
|
||||
}
|
||||
if child.IsDir() {
|
||||
loadPkg(root, filepath.Join(importpath, name))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func loadExports(dir string) map[string]bool {
|
||||
exports := make(map[string]bool)
|
||||
buildPkg, err := build.ImportDir(dir, 0)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), "no buildable Go source files in") {
|
||||
return nil
|
||||
}
|
||||
log.Printf("could not import %q: %v", dir, err)
|
||||
return nil
|
||||
}
|
||||
for _, file := range buildPkg.GoFiles {
|
||||
f, err := parser.ParseFile(fset, filepath.Join(dir, file), nil, 0)
|
||||
if err != nil {
|
||||
log.Printf("could not parse %q: %v", file, err)
|
||||
continue
|
||||
}
|
||||
for name := range f.Scope.Objects {
|
||||
if ast.IsExported(name) {
|
||||
exports[name] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
return exports
|
||||
}
|
||||
132
vendor/golang.org/x/tools/internal/imports/mkstdlib.go
generated
vendored
132
vendor/golang.org/x/tools/internal/imports/mkstdlib.go
generated
vendored
@@ -1,132 +0,0 @@
|
||||
// +build ignore
|
||||
|
||||
// mkstdlib generates the zstdlib.go file, containing the Go standard
|
||||
// library API symbols. It's baked into the binary to avoid scanning
|
||||
// GOPATH in the common case.
|
||||
package imports
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"fmt"
|
||||
"go/format"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func mustOpen(name string) io.Reader {
|
||||
f, err := os.Open(name)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return f
|
||||
}
|
||||
|
||||
func api(base string) string {
|
||||
return filepath.Join(runtime.GOROOT(), "api", base)
|
||||
}
|
||||
|
||||
var sym = regexp.MustCompile(`^pkg (\S+).*?, (?:var|func|type|const) ([A-Z]\w*)`)
|
||||
|
||||
var unsafeSyms = map[string]bool{"Alignof": true, "ArbitraryType": true, "Offsetof": true, "Pointer": true, "Sizeof": true}
|
||||
|
||||
func main() {
|
||||
var buf bytes.Buffer
|
||||
outf := func(format string, args ...interface{}) {
|
||||
fmt.Fprintf(&buf, format, args...)
|
||||
}
|
||||
outf("// Code generated by mkstdlib.go. DO NOT EDIT.\n\n")
|
||||
outf("package imports\n")
|
||||
outf("var stdlib = map[string]map[string]bool{\n")
|
||||
f := io.MultiReader(
|
||||
mustOpen(api("go1.txt")),
|
||||
mustOpen(api("go1.1.txt")),
|
||||
mustOpen(api("go1.2.txt")),
|
||||
mustOpen(api("go1.3.txt")),
|
||||
mustOpen(api("go1.4.txt")),
|
||||
mustOpen(api("go1.5.txt")),
|
||||
mustOpen(api("go1.6.txt")),
|
||||
mustOpen(api("go1.7.txt")),
|
||||
mustOpen(api("go1.8.txt")),
|
||||
mustOpen(api("go1.9.txt")),
|
||||
mustOpen(api("go1.10.txt")),
|
||||
mustOpen(api("go1.11.txt")),
|
||||
mustOpen(api("go1.12.txt")),
|
||||
|
||||
// The API of the syscall/js package needs to be computed explicitly,
|
||||
// because it's not included in the GOROOT/api/go1.*.txt files at this time.
|
||||
syscallJSAPI(),
|
||||
)
|
||||
sc := bufio.NewScanner(f)
|
||||
|
||||
pkgs := map[string]map[string]bool{
|
||||
"unsafe": unsafeSyms,
|
||||
}
|
||||
paths := []string{"unsafe"}
|
||||
|
||||
for sc.Scan() {
|
||||
l := sc.Text()
|
||||
has := func(v string) bool { return strings.Contains(l, v) }
|
||||
if has("struct, ") || has("interface, ") || has(", method (") {
|
||||
continue
|
||||
}
|
||||
if m := sym.FindStringSubmatch(l); m != nil {
|
||||
path, sym := m[1], m[2]
|
||||
|
||||
if _, ok := pkgs[path]; !ok {
|
||||
pkgs[path] = map[string]bool{}
|
||||
paths = append(paths, path)
|
||||
}
|
||||
pkgs[path][sym] = true
|
||||
}
|
||||
}
|
||||
if err := sc.Err(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
sort.Strings(paths)
|
||||
for _, path := range paths {
|
||||
outf("\t%q: map[string]bool{\n", path)
|
||||
pkg := pkgs[path]
|
||||
var syms []string
|
||||
for sym := range pkg {
|
||||
syms = append(syms, sym)
|
||||
}
|
||||
sort.Strings(syms)
|
||||
for _, sym := range syms {
|
||||
outf("\t\t%q: true,\n", sym)
|
||||
}
|
||||
outf("},\n")
|
||||
}
|
||||
outf("}\n")
|
||||
fmtbuf, err := format.Source(buf.Bytes())
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
err = ioutil.WriteFile("zstdlib.go", fmtbuf, 0666)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// syscallJSAPI returns the API of the syscall/js package.
|
||||
// It's computed from the contents of $(go env GOROOT)/src/syscall/js.
|
||||
func syscallJSAPI() io.Reader {
|
||||
var exeSuffix string
|
||||
if runtime.GOOS == "windows" {
|
||||
exeSuffix = ".exe"
|
||||
}
|
||||
cmd := exec.Command("go"+exeSuffix, "run", "cmd/api", "-contexts", "js-wasm", "syscall/js")
|
||||
out, err := cmd.Output()
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
return bytes.NewReader(out)
|
||||
}
|
||||
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@@ -1359,7 +1359,7 @@ k8s.io/utils/net
|
||||
k8s.io/utils/path
|
||||
k8s.io/utils/pointer
|
||||
k8s.io/utils/trace
|
||||
# openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => github.com/pengcong06/openpitrix v0.4.1-0.20200527062040-411ab8612348
|
||||
# openpitrix.io/openpitrix v0.4.1-0.20190920134345-4d2be6e4965c => openpitrix.io/openpitrix v0.4.9-0.20200610105301-68151bb90d21
|
||||
openpitrix.io/openpitrix/pkg/config
|
||||
openpitrix.io/openpitrix/pkg/constants
|
||||
openpitrix.io/openpitrix/pkg/db
|
||||
|
||||
2
vendor/openpitrix.io/openpitrix/pkg/constants/column.go
generated
vendored
2
vendor/openpitrix.io/openpitrix/pkg/constants/column.go
generated
vendored
@@ -262,7 +262,7 @@ var IndexedColumns = map[string][]string{
|
||||
},
|
||||
TableCluster: {
|
||||
ColumnClusterId, ColumnAppId, ColumnVersionId, ColumnStatus,
|
||||
ColumnRuntimeId, ColumnFrontgateId, ColumnOwner, ColumnClusterType,
|
||||
ColumnRuntimeId, ColumnFrontgateId, ColumnOwner, ColumnClusterType, ColumnZone,
|
||||
},
|
||||
TableKeyPair: {
|
||||
ColumnKeyPairId, ColumnName, ColumnOwner,
|
||||
|
||||
630
vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go
generated
vendored
630
vendor/openpitrix.io/openpitrix/pkg/pb/cluster.pb.go
generated
vendored
@@ -288,7 +288,7 @@ type CreateClusterRequest struct {
|
||||
// advanced param
|
||||
AdvancedParam []string `protobuf:"bytes,5,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
|
||||
// kubernetes namespace
|
||||
Namespace *wrappers.StringValue `protobuf:"bytes,6,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
Zone *wrappers.StringValue `protobuf:"bytes,6,opt,name=zone,proto3" json:"zone,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -354,9 +354,9 @@ func (m *CreateClusterRequest) GetAdvancedParam() []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *CreateClusterRequest) GetNamespace() *wrappers.StringValue {
|
||||
func (m *CreateClusterRequest) GetZone() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.Namespace
|
||||
return m.Zone
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -1004,12 +1004,10 @@ type UpgradeClusterRequest struct {
|
||||
// app version id
|
||||
VersionId *wrappers.StringValue `protobuf:"bytes,2,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
|
||||
// advanced param
|
||||
AdvancedParam []string `protobuf:"bytes,3,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
|
||||
// values
|
||||
Conf *wrappers.StringValue `protobuf:"bytes,4,opt,name=conf,proto3" json:"conf,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
AdvancedParam []string `protobuf:"bytes,3,rep,name=advanced_param,json=advancedParam,proto3" json:"advanced_param,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *UpgradeClusterRequest) Reset() { *m = UpgradeClusterRequest{} }
|
||||
@@ -1058,13 +1056,6 @@ func (m *UpgradeClusterRequest) GetAdvancedParam() []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *UpgradeClusterRequest) GetConf() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.Conf
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type UpgradeClusterResponse struct {
|
||||
// id of cluster upgraded
|
||||
ClusterId *wrappers.StringValue `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
|
||||
@@ -4904,310 +4895,309 @@ func init() {
|
||||
func init() { proto.RegisterFile("cluster.proto", fileDescriptor_3cfb3b8ec240c376) }
|
||||
|
||||
var fileDescriptor_3cfb3b8ec240c376 = []byte{
|
||||
// 4844 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0x4d, 0x6c, 0x1c, 0x47,
|
||||
0x76, 0x3f, 0x7a, 0x86, 0x1c, 0x92, 0x6f, 0x38, 0x43, 0xaa, 0x48, 0x0e, 0x47, 0x43, 0x4a, 0x1e,
|
||||
0xb5, 0xfc, 0xa1, 0xbf, 0x97, 0x26, 0x6d, 0x59, 0x5e, 0xcb, 0x92, 0xf5, 0x5f, 0x8f, 0x28, 0xc5,
|
||||
0xcb, 0x58, 0xb2, 0x85, 0xa1, 0x24, 0x6f, 0x1c, 0x67, 0x7b, 0x9b, 0xd3, 0xc5, 0x61, 0x2f, 0x67,
|
||||
0xba, 0x7b, 0xbb, 0x6b, 0xa8, 0xa5, 0x91, 0x93, 0x11, 0x20, 0xc9, 0xee, 0x26, 0xc0, 0x32, 0x48,
|
||||
0xb0, 0xf9, 0x04, 0x82, 0x20, 0x8b, 0x4d, 0x10, 0x23, 0xbb, 0x06, 0x72, 0x30, 0x72, 0xc8, 0x29,
|
||||
0x7b, 0x09, 0x90, 0x1c, 0x72, 0x09, 0x7c, 0xca, 0x61, 0x4f, 0xce, 0x35, 0xb7, 0x5c, 0x82, 0xfa,
|
||||
0xe8, 0x8f, 0xea, 0xe9, 0x19, 0xd6, 0x70, 0x28, 0xc9, 0x8b, 0x9c, 0xc8, 0xe9, 0x7e, 0xef, 0xd5,
|
||||
0xaf, 0x5e, 0xbd, 0x57, 0xef, 0x55, 0xd5, 0xab, 0x86, 0x52, 0xab, 0xd3, 0x0b, 0x08, 0xf6, 0xd7,
|
||||
0x3d, 0xdf, 0x25, 0x2e, 0x02, 0xd7, 0xc3, 0x8e, 0x67, 0x13, 0xdf, 0xfe, 0x6e, 0x6d, 0xa5, 0xed,
|
||||
0xba, 0xed, 0x0e, 0xde, 0x60, 0x6f, 0x76, 0x7a, 0xbb, 0x1b, 0xb8, 0xeb, 0x91, 0x43, 0x4e, 0x58,
|
||||
0x3b, 0x9f, 0x7e, 0xf9, 0xc8, 0x37, 0x3d, 0x0f, 0xfb, 0x81, 0x78, 0xff, 0x4c, 0xfa, 0x3d, 0xb1,
|
||||
0xbb, 0x38, 0x20, 0x66, 0xd7, 0x13, 0x04, 0xab, 0x82, 0xc0, 0xf4, 0xec, 0x0d, 0xd3, 0x71, 0x5c,
|
||||
0x62, 0x12, 0xdb, 0x75, 0x42, 0xf6, 0x35, 0xf6, 0xa7, 0xf5, 0x52, 0x1b, 0x3b, 0x2f, 0x05, 0x8f,
|
||||
0xcc, 0x76, 0x1b, 0xfb, 0x1b, 0xae, 0xc7, 0x28, 0xfa, 0xa9, 0xf5, 0x3f, 0xc9, 0x41, 0xe5, 0x16,
|
||||
0x0e, 0x5a, 0xbe, 0xbd, 0x83, 0xb7, 0x7b, 0x3b, 0x0e, 0x26, 0x41, 0x13, 0x7f, 0xa7, 0x87, 0x03,
|
||||
0x82, 0xae, 0x03, 0xf8, 0x3d, 0x87, 0x36, 0x6e, 0xd8, 0x56, 0x55, 0xab, 0x6b, 0x97, 0x8a, 0x97,
|
||||
0x57, 0xd7, 0x79, 0xdb, 0xeb, 0x21, 0xb8, 0xf5, 0x6d, 0xe2, 0xdb, 0x4e, 0xfb, 0xa1, 0xd9, 0xe9,
|
||||
0xe1, 0xe6, 0x8c, 0xa0, 0xdf, 0xb2, 0xd0, 0x22, 0x4c, 0x76, 0xec, 0xae, 0x4d, 0xaa, 0xb9, 0xba,
|
||||
0x76, 0xa9, 0xd4, 0xe4, 0x3f, 0x50, 0x05, 0x0a, 0xee, 0xee, 0x6e, 0x80, 0x49, 0x35, 0xcf, 0x1e,
|
||||
0x8b, 0x5f, 0xe8, 0x06, 0x14, 0x03, 0xd6, 0xb8, 0x41, 0x0e, 0x3d, 0x5c, 0x9d, 0x18, 0xd0, 0xd6,
|
||||
0x83, 0x2d, 0x87, 0xbc, 0x7a, 0x99, 0xb7, 0x05, 0x9c, 0xe1, 0xfe, 0xa1, 0x87, 0xd1, 0x0a, 0xcc,
|
||||
0x08, 0x76, 0xdb, 0xaa, 0x4e, 0xd6, 0xf3, 0x97, 0x66, 0x9a, 0xd3, 0xfc, 0xc1, 0x96, 0x85, 0x10,
|
||||
0x4c, 0x7c, 0xe4, 0x3a, 0xb8, 0x5a, 0x60, 0xcf, 0xd9, 0xff, 0xe8, 0x39, 0x28, 0x9b, 0xd6, 0x81,
|
||||
0xe9, 0xb4, 0xb0, 0x65, 0x78, 0xa6, 0x6f, 0x76, 0xab, 0x53, 0xec, 0x6d, 0x29, 0x7c, 0x7a, 0x8f,
|
||||
0x3e, 0xd4, 0x3f, 0xcb, 0x43, 0x81, 0x2b, 0x05, 0xbd, 0x91, 0x6c, 0x42, 0x45, 0x17, 0x31, 0x80,
|
||||
0x97, 0x61, 0xc2, 0x31, 0xbb, 0x98, 0x69, 0xe2, 0x38, 0x2e, 0x46, 0x49, 0x39, 0x18, 0xe4, 0xbc,
|
||||
0x0a, 0x07, 0xeb, 0xd0, 0x75, 0x28, 0xb6, 0x7c, 0x6c, 0x12, 0x6c, 0x50, 0xfd, 0x0b, 0x05, 0xd6,
|
||||
0xfa, 0x18, 0xef, 0x87, 0x96, 0xd4, 0x04, 0x4e, 0x4e, 0x1f, 0xa0, 0xff, 0x0f, 0x45, 0x8b, 0x99,
|
||||
0x00, 0xb3, 0x92, 0xea, 0xa4, 0x42, 0xab, 0x49, 0x06, 0xf4, 0x0c, 0x14, 0x6d, 0x27, 0x20, 0x54,
|
||||
0x71, 0x54, 0x3b, 0x5c, 0xd1, 0x10, 0x3e, 0xda, 0xb2, 0xd0, 0xab, 0x50, 0x38, 0xf0, 0x5a, 0xf4,
|
||||
0xdd, 0x94, 0x82, 0xec, 0xc9, 0x03, 0xaf, 0xb5, 0x65, 0xa5, 0x6d, 0x62, 0x7a, 0x34, 0x9b, 0xd0,
|
||||
0xbb, 0xb0, 0xdc, 0x67, 0xd7, 0x81, 0xe7, 0x3a, 0x01, 0xa6, 0x78, 0x89, 0x4b, 0xcc, 0x8e, 0xd1,
|
||||
0x72, 0x7b, 0x0e, 0x61, 0xa3, 0x59, 0x6a, 0x02, 0x7b, 0xb4, 0x49, 0x9f, 0xa0, 0x57, 0x40, 0x48,
|
||||
0x32, 0xa8, 0xa9, 0xe6, 0xea, 0xf9, 0x4b, 0xc5, 0xcb, 0x68, 0x3d, 0xf6, 0xef, 0x75, 0x2e, 0xb1,
|
||||
0x29, 0x4c, 0x62, 0x1b, 0x13, 0xfd, 0xf3, 0x1c, 0x2c, 0x6e, 0x32, 0x95, 0x6e, 0xf2, 0x59, 0x21,
|
||||
0xf4, 0xa2, 0x57, 0xa1, 0x60, 0x7a, 0x9e, 0xaa, 0xd5, 0x4c, 0x9a, 0x9e, 0xb7, 0x65, 0x51, 0xd7,
|
||||
0x3b, 0xc0, 0x7e, 0x60, 0xbb, 0x0e, 0x65, 0x54, 0x31, 0x9c, 0x19, 0x41, 0xcf, 0x99, 0x13, 0x7e,
|
||||
0x9b, 0x1f, 0xcd, 0x6f, 0x5f, 0x86, 0x89, 0x96, 0xeb, 0xec, 0x0e, 0x74, 0x41, 0xc9, 0xf4, 0x28,
|
||||
0x65, 0x86, 0x2f, 0x4d, 0x66, 0xf8, 0x12, 0xba, 0x06, 0x33, 0xd4, 0xb6, 0x03, 0xcf, 0x6c, 0x51,
|
||||
0x5f, 0x54, 0x00, 0x15, 0x91, 0xeb, 0xbf, 0xab, 0xc1, 0x52, 0x4a, 0xb9, 0x62, 0x28, 0xaf, 0x03,
|
||||
0x88, 0x59, 0x58, 0x79, 0x8e, 0x12, 0xf4, 0xdc, 0x2c, 0xbf, 0xed, 0xee, 0xa8, 0x6a, 0x78, 0xf2,
|
||||
0xdb, 0xee, 0xce, 0x96, 0xa5, 0x7f, 0x9a, 0x87, 0xc5, 0xbb, 0xae, 0x65, 0xef, 0x1e, 0xa6, 0x06,
|
||||
0xfa, 0x25, 0x98, 0x12, 0xa2, 0x05, 0x8e, 0x85, 0xa4, 0xc5, 0x84, 0xc4, 0x21, 0x0d, 0x6a, 0xc0,
|
||||
0x7c, 0x88, 0xdc, 0x71, 0x2d, 0x9c, 0xb0, 0xb4, 0xe5, 0x0c, 0xbe, 0x77, 0x5d, 0x0b, 0x37, 0xcb,
|
||||
0xad, 0xf8, 0xc7, 0x36, 0x26, 0x49, 0x11, 0xbe, 0xdb, 0xe1, 0x22, 0xf2, 0x03, 0x45, 0x34, 0xdd,
|
||||
0x4e, 0x2c, 0x82, 0xfe, 0x48, 0x89, 0xe8, 0xd8, 0xce, 0x3e, 0x13, 0x31, 0x31, 0x50, 0xc4, 0x1d,
|
||||
0xdb, 0xd9, 0x8f, 0x44, 0xd0, 0x1f, 0x54, 0xc4, 0xdb, 0x80, 0x42, 0x11, 0x2d, 0xb7, 0xdb, 0x75,
|
||||
0x1d, 0x26, 0x64, 0x92, 0x09, 0x39, 0x9b, 0x21, 0x64, 0x93, 0x11, 0x35, 0xc3, 0x76, 0xf9, 0x4f,
|
||||
0x2a, 0xe8, 0xd7, 0xa0, 0x1a, 0x61, 0x71, 0x4d, 0x6b, 0xc7, 0xec, 0x50, 0xf3, 0xf1, 0x99, 0xb8,
|
||||
0x02, 0x13, 0xf7, 0x4c, 0x16, 0xa6, 0x04, 0x69, 0xb3, 0xd2, 0xea, 0x7f, 0x48, 0xbd, 0xf3, 0x3e,
|
||||
0x2c, 0xa5, 0xc6, 0xec, 0x14, 0xec, 0x47, 0x7f, 0x08, 0x55, 0x49, 0x2a, 0x1b, 0x24, 0x61, 0x0d,
|
||||
0xd7, 0x60, 0x36, 0x39, 0xbc, 0x42, 0xf4, 0xc0, 0xa1, 0x2d, 0x26, 0x86, 0x56, 0x6f, 0xc2, 0xd9,
|
||||
0x0c, 0xb9, 0x02, 0xf1, 0x6b, 0x30, 0xc5, 0xec, 0x45, 0x11, 0x6e, 0x81, 0x12, 0x6f, 0x59, 0xfa,
|
||||
0xbf, 0x69, 0x70, 0x5e, 0x12, 0xda, 0x20, 0xc4, 0xb7, 0x77, 0x7a, 0x04, 0x27, 0xe3, 0xfd, 0xc9,
|
||||
0x7d, 0x69, 0xf4, 0x20, 0x97, 0x8a, 0x3a, 0xf9, 0x11, 0xa3, 0x8e, 0xfe, 0x4d, 0x78, 0x66, 0x60,
|
||||
0x87, 0x4e, 0x63, 0x74, 0x7f, 0x4f, 0x03, 0xbd, 0x6f, 0x18, 0xfa, 0xb5, 0x76, 0xb2, 0xf1, 0x18,
|
||||
0x5d, 0x5f, 0xfa, 0x87, 0x70, 0x71, 0x28, 0x9c, 0xf1, 0xec, 0xe3, 0x5b, 0xb0, 0xd2, 0xb0, 0xac,
|
||||
0xfb, 0xe6, 0x4e, 0x07, 0x27, 0xe4, 0x47, 0xbd, 0xcc, 0x9a, 0xad, 0xb4, 0x91, 0x66, 0x2b, 0xfd,
|
||||
0x0d, 0x38, 0x7f, 0x0b, 0x77, 0x30, 0xc1, 0x03, 0x1b, 0x59, 0x4e, 0x42, 0xa7, 0x21, 0x24, 0x04,
|
||||
0xf7, 0xa9, 0x06, 0x4b, 0x9c, 0x57, 0xb0, 0x45, 0x2c, 0xe7, 0x52, 0x23, 0x4c, 0xb9, 0x12, 0x56,
|
||||
0xd9, 0x1f, 0x9b, 0x72, 0x59, 0xb1, 0xe9, 0x65, 0x98, 0xdc, 0x75, 0xfd, 0x56, 0x98, 0x70, 0xf5,
|
||||
0xe7, 0x4d, 0x37, 0x5d, 0xb7, 0x23, 0xa2, 0x00, 0x23, 0x44, 0x17, 0x60, 0xb6, 0xed, 0x9b, 0x2d,
|
||||
0x6c, 0x78, 0xd8, 0xb7, 0x5d, 0x8b, 0x85, 0xcb, 0x52, 0xb3, 0xc8, 0x9e, 0xdd, 0x63, 0x8f, 0xf4,
|
||||
0x77, 0x69, 0x62, 0x2d, 0x63, 0x16, 0x43, 0x74, 0x0c, 0xe8, 0xa5, 0x44, 0x58, 0xa2, 0xaf, 0x44,
|
||||
0xe0, 0xf9, 0x42, 0x83, 0xa5, 0x07, 0x5e, 0xdb, 0x37, 0xad, 0x74, 0x8a, 0x31, 0x96, 0xe3, 0x8e,
|
||||
0x95, 0x6a, 0xf4, 0xeb, 0x37, 0x9f, 0xad, 0xdf, 0x11, 0x93, 0x0a, 0xfd, 0x7b, 0x1a, 0x54, 0xd2,
|
||||
0x9d, 0x7d, 0x6a, 0x21, 0xff, 0x37, 0xa1, 0xd2, 0x74, 0x3b, 0x9d, 0x1d, 0xb3, 0xb5, 0x7f, 0x9a,
|
||||
0x9a, 0x57, 0x33, 0x4e, 0xfd, 0xfb, 0x1a, 0x2c, 0xf7, 0x35, 0xff, 0xd4, 0x74, 0xf1, 0x79, 0x0e,
|
||||
0x66, 0x59, 0x26, 0x81, 0x03, 0xb7, 0x47, 0x3d, 0xe1, 0x65, 0x98, 0xa0, 0xc9, 0x87, 0x52, 0xe3,
|
||||
0x8c, 0x12, 0xad, 0x43, 0xbe, 0xe5, 0xf5, 0x06, 0x36, 0x9a, 0x4c, 0xe8, 0x29, 0x21, 0xa5, 0x6f,
|
||||
0x7b, 0xbd, 0x81, 0x01, 0x42, 0xa2, 0x6f, 0x7b, 0x3d, 0x74, 0x05, 0x0a, 0x5d, 0xdc, 0x75, 0xfd,
|
||||
0x43, 0xa5, 0x75, 0xa4, 0xa0, 0x45, 0x0d, 0x28, 0x45, 0x8b, 0x98, 0xc0, 0xfe, 0x08, 0x0f, 0x5c,
|
||||
0x06, 0x25, 0x99, 0x67, 0x43, 0x96, 0x6d, 0xfb, 0x23, 0x8c, 0xbe, 0x06, 0xb3, 0x01, 0x71, 0x7d,
|
||||
0xb3, 0x2d, 0x24, 0x14, 0x14, 0x24, 0x14, 0x05, 0x07, 0x15, 0xa0, 0x7f, 0xa6, 0xc1, 0x62, 0x13,
|
||||
0x53, 0xde, 0xd3, 0xb4, 0xb3, 0x1b, 0x50, 0x62, 0xe9, 0xa1, 0x2f, 0x86, 0x4c, 0xa4, 0x99, 0xd5,
|
||||
0xe4, 0xc4, 0x9d, 0x1c, 0xd2, 0xe6, 0xac, 0x9f, 0x1c, 0x60, 0xb5, 0xfc, 0x9e, 0xe5, 0xe8, 0x29,
|
||||
0xec, 0x4f, 0xcd, 0x48, 0xff, 0x4b, 0x83, 0x4a, 0xc3, 0xb2, 0xb2, 0x62, 0xcc, 0xb8, 0x49, 0x0e,
|
||||
0xb3, 0xf5, 0x9c, 0xb2, 0xad, 0x5f, 0x07, 0x60, 0x21, 0x8d, 0xaf, 0x34, 0x55, 0x4c, 0x78, 0x86,
|
||||
0xd2, 0xf3, 0x65, 0x68, 0xbf, 0xe6, 0x27, 0x06, 0x4d, 0x10, 0x7d, 0xbd, 0x7d, 0x6a, 0xba, 0xff,
|
||||
0x91, 0x06, 0x67, 0xa5, 0xb8, 0x77, 0x7a, 0xea, 0x4f, 0xe4, 0x07, 0xb9, 0x64, 0x7e, 0xa0, 0x18,
|
||||
0x86, 0xf4, 0xdf, 0xd7, 0xa0, 0x96, 0x05, 0xed, 0xa9, 0xe9, 0xea, 0x13, 0x0d, 0x96, 0x1f, 0x78,
|
||||
0x56, 0xbc, 0xae, 0xbd, 0xed, 0x1c, 0x9c, 0x8a, 0xa6, 0xd6, 0x21, 0x8f, 0x9d, 0x03, 0x25, 0x28,
|
||||
0x94, 0x50, 0x55, 0x81, 0x3f, 0xd0, 0xa0, 0xda, 0x8f, 0xf7, 0xa9, 0xa9, 0xef, 0x67, 0x65, 0x28,
|
||||
0x49, 0x8b, 0xca, 0x27, 0xed, 0xdd, 0xef, 0xc1, 0x52, 0x80, 0xfd, 0x03, 0xd6, 0x9a, 0xd1, 0xf3,
|
||||
0x3c, 0xec, 0x1b, 0x3b, 0x6e, 0xcf, 0xb1, 0x94, 0x1c, 0x1d, 0x71, 0xd6, 0x2d, 0xeb, 0x01, 0x65,
|
||||
0xbc, 0x49, 0xf9, 0xd0, 0xdb, 0x30, 0x1f, 0x8d, 0x83, 0xd9, 0x62, 0xfb, 0xb4, 0x4a, 0x49, 0xd3,
|
||||
0x5c, 0xc8, 0xd5, 0xe0, 0x4c, 0x34, 0x14, 0xd9, 0x8e, 0x4d, 0x0c, 0xda, 0x86, 0xdd, 0xc2, 0x6a,
|
||||
0x7b, 0x7a, 0x94, 0x63, 0x9b, 0x33, 0xd0, 0x70, 0x18, 0x10, 0xd3, 0x8f, 0x25, 0xa8, 0x6c, 0xd9,
|
||||
0xcc, 0x32, 0x96, 0x50, 0x04, 0x0f, 0x87, 0x5e, 0x24, 0x41, 0x65, 0xef, 0x8f, 0x86, 0x43, 0x2f,
|
||||
0x14, 0xf0, 0x75, 0x38, 0x13, 0xb4, 0xcc, 0x0e, 0x36, 0xdc, 0x5e, 0x8c, 0x63, 0x5a, 0x45, 0x1d,
|
||||
0x8c, 0xed, 0xbd, 0x5e, 0x04, 0xe5, 0x57, 0x60, 0x9e, 0x4b, 0xb2, 0x9d, 0x48, 0xd0, 0x8c, 0x82,
|
||||
0xa0, 0x32, 0xe3, 0xda, 0x72, 0x42, 0x39, 0xb7, 0x61, 0xce, 0xc7, 0xb2, 0x5e, 0x40, 0x45, 0x8c,
|
||||
0x60, 0x4a, 0x88, 0xb1, 0x70, 0x40, 0x7c, 0xf7, 0x30, 0x12, 0x53, 0x54, 0x11, 0x23, 0x98, 0x12,
|
||||
0x62, 0x7a, 0x3c, 0x47, 0x8e, 0xc4, 0xcc, 0xaa, 0x88, 0x11, 0x4c, 0xa1, 0x98, 0x4d, 0x28, 0xb7,
|
||||
0x7a, 0x01, 0x71, 0xbb, 0x91, 0x94, 0x92, 0x82, 0x94, 0x12, 0xe7, 0x49, 0x08, 0xa1, 0x09, 0x6a,
|
||||
0x2f, 0x1e, 0xee, 0xb2, 0x8a, 0x10, 0xce, 0x93, 0x52, 0xaf, 0xeb, 0xc7, 0x1d, 0x9a, 0x53, 0x55,
|
||||
0xaf, 0xeb, 0x47, 0x1d, 0xba, 0x0f, 0xcb, 0x16, 0x9b, 0xe6, 0x8d, 0xc0, 0x31, 0xbd, 0x60, 0xcf,
|
||||
0x8d, 0x47, 0x6b, 0x5e, 0x41, 0xdc, 0x12, 0x67, 0xde, 0x16, 0xbc, 0x09, 0x73, 0xde, 0xc3, 0x66,
|
||||
0x87, 0xec, 0x19, 0xad, 0x3d, 0xdc, 0xda, 0xaf, 0x9e, 0x51, 0x31, 0x67, 0xce, 0xb1, 0x49, 0x19,
|
||||
0xd0, 0x57, 0x61, 0xaa, 0xeb, 0x3a, 0x36, 0x71, 0xfd, 0x2a, 0x52, 0xe0, 0x0d, 0x89, 0xd1, 0x2d,
|
||||
0x28, 0x7b, 0x66, 0x10, 0x78, 0x7b, 0xbe, 0x19, 0xe0, 0x0e, 0x0e, 0x82, 0xea, 0x82, 0x8a, 0x52,
|
||||
0x64, 0x1e, 0xaa, 0x94, 0x03, 0xec, 0x13, 0xbb, 0x65, 0x76, 0x0c, 0x6a, 0xd5, 0xb6, 0xd3, 0x36,
|
||||
0x3c, 0xb7, 0x63, 0xb7, 0x0e, 0xab, 0x8b, 0x2a, 0x4a, 0x09, 0x99, 0xb7, 0x39, 0xef, 0x3d, 0xc6,
|
||||
0x8a, 0x36, 0x61, 0xce, 0x6c, 0x63, 0x87, 0x18, 0x2c, 0x11, 0xee, 0x74, 0xb0, 0x55, 0x5d, 0x3a,
|
||||
0x76, 0x0d, 0x5d, 0x66, 0x2c, 0x5b, 0x21, 0x07, 0x6a, 0x42, 0x45, 0x18, 0x60, 0x17, 0x13, 0xd3,
|
||||
0x32, 0x89, 0x69, 0xf0, 0x6d, 0x9e, 0x6a, 0x45, 0x01, 0xd9, 0x22, 0xe7, 0xbd, 0x2b, 0x58, 0xb7,
|
||||
0x19, 0x27, 0x7a, 0x1d, 0xa6, 0xed, 0x2e, 0xcd, 0xc4, 0x6d, 0xab, 0xba, 0xac, 0xa2, 0x6d, 0x46,
|
||||
0xbd, 0x65, 0xd1, 0x89, 0x4f, 0x18, 0xb2, 0xd0, 0x4e, 0x55, 0x65, 0xe2, 0xe3, 0x2c, 0x42, 0x29,
|
||||
0x1f, 0xc2, 0xaa, 0xed, 0xb4, 0x7c, 0xdc, 0xc5, 0x0e, 0x31, 0x3b, 0x46, 0xe8, 0x17, 0x3d, 0xcf,
|
||||
0x73, 0x7d, 0x82, 0xad, 0xea, 0xd9, 0x63, 0x35, 0x54, 0x4b, 0xf0, 0xdf, 0xe4, 0x2e, 0x12, 0x72,
|
||||
0xa3, 0x37, 0x01, 0xf6, 0x0e, 0x3d, 0x6a, 0x94, 0x81, 0xeb, 0x57, 0x6b, 0x0a, 0xe8, 0x12, 0xf4,
|
||||
0xfa, 0x4f, 0x4a, 0x50, 0x4c, 0x64, 0x3f, 0x27, 0xdd, 0xbe, 0x92, 0x03, 0x6d, 0xee, 0x64, 0x7b,
|
||||
0x85, 0x79, 0xe5, 0xbd, 0xc2, 0x1b, 0xf2, 0x09, 0x93, 0x4a, 0x48, 0x4c, 0x9e, 0x3f, 0xbd, 0x01,
|
||||
0x33, 0x07, 0x6e, 0xa7, 0xc7, 0x0f, 0x44, 0x54, 0x42, 0xe1, 0x34, 0x27, 0xdf, 0xb2, 0xe8, 0x62,
|
||||
0xd2, 0xc2, 0xca, 0x01, 0x50, 0xd0, 0xca, 0xa7, 0x85, 0x53, 0x23, 0x9d, 0x16, 0x5e, 0x07, 0xf0,
|
||||
0x7c, 0xfb, 0xc0, 0x24, 0xd8, 0xb0, 0x3d, 0xa5, 0x68, 0x37, 0x23, 0xe8, 0xb7, 0x3c, 0x96, 0xf7,
|
||||
0xd9, 0x9e, 0x52, 0x68, 0xa3, 0x84, 0x0c, 0x67, 0x98, 0xc0, 0x0c, 0x8c, 0x64, 0xc9, 0xa4, 0x65,
|
||||
0x3a, 0x4c, 0x5a, 0xa2, 0x6c, 0xa9, 0xa8, 0x9c, 0x2d, 0x5d, 0x81, 0x42, 0x40, 0x4c, 0xd2, 0x0b,
|
||||
0x94, 0xa2, 0x94, 0xa0, 0x45, 0x5b, 0x70, 0x86, 0xf8, 0xa6, 0x13, 0xd8, 0x34, 0xb1, 0x31, 0x84,
|
||||
0x00, 0x95, 0x00, 0x35, 0x1f, 0xb3, 0x6d, 0x73, 0x51, 0xaf, 0xc3, 0x74, 0xdb, 0x77, 0x7b, 0xec,
|
||||
0x30, 0xae, 0xac, 0xd0, 0xd9, 0x29, 0x46, 0xcd, 0xc7, 0xc4, 0x7d, 0xe4, 0x60, 0xdf, 0xf0, 0x4c,
|
||||
0xb2, 0xa7, 0x14, 0x92, 0x66, 0x18, 0xfd, 0x3d, 0x93, 0xec, 0xd1, 0xdc, 0xa3, 0xdd, 0x71, 0x77,
|
||||
0xe8, 0xb4, 0x1b, 0xa9, 0x7a, 0x5e, 0xa1, 0xf5, 0x32, 0xe7, 0xda, 0x0e, 0x15, 0x7e, 0x1b, 0xe6,
|
||||
0x52, 0xb3, 0xa4, 0x52, 0x08, 0x2a, 0xcb, 0xd3, 0x23, 0x75, 0x78, 0xaf, 0xb7, 0x63, 0xec, 0xe3,
|
||||
0x43, 0xa5, 0x28, 0x54, 0xf0, 0x7a, 0x3b, 0xef, 0x60, 0xb6, 0x3d, 0x22, 0xa2, 0x9f, 0x18, 0x02,
|
||||
0x95, 0x18, 0x24, 0x02, 0x66, 0xa4, 0xfe, 0x19, 0x3b, 0x10, 0xb3, 0xa1, 0x88, 0x39, 0xc3, 0xe6,
|
||||
0xc0, 0x69, 0x3b, 0xe0, 0x53, 0x1f, 0xba, 0x0e, 0x45, 0xb3, 0x47, 0xdc, 0x90, 0xf5, 0xf8, 0x00,
|
||||
0x03, 0x94, 0x3c, 0x66, 0x4e, 0x9e, 0x8c, 0x57, 0x46, 0x3a, 0x19, 0xbf, 0x0e, 0x45, 0xde, 0x5d,
|
||||
0xce, 0xbc, 0x7c, 0x3c, 0x33, 0x27, 0x67, 0xcc, 0xaf, 0xc1, 0xd4, 0x9e, 0x1b, 0xb0, 0x29, 0x40,
|
||||
0x25, 0x86, 0x14, 0x28, 0xf1, 0x96, 0x15, 0xb3, 0x79, 0x22, 0x50, 0xa8, 0xb0, 0x79, 0xc9, 0x03,
|
||||
0x27, 0xe6, 0x97, 0xb5, 0x81, 0x07, 0x4e, 0x6c, 0xaf, 0xa7, 0x98, 0x38, 0x08, 0x44, 0x6f, 0x41,
|
||||
0x59, 0x3e, 0xc2, 0xab, 0xae, 0x30, 0xee, 0x21, 0xc7, 0x77, 0x25, 0xe9, 0xf8, 0x0e, 0x9d, 0x87,
|
||||
0xe2, 0x3e, 0x3e, 0x34, 0x3c, 0xd3, 0x66, 0xf6, 0xbd, 0xca, 0xf7, 0xb4, 0xf7, 0xf1, 0xe1, 0x3d,
|
||||
0xd3, 0xa6, 0xc6, 0x7b, 0x19, 0x26, 0x99, 0x47, 0x54, 0xcf, 0xa9, 0x2c, 0xef, 0x18, 0xa9, 0xfe,
|
||||
0xcf, 0x85, 0x28, 0x54, 0x35, 0xc5, 0x5e, 0xca, 0x93, 0x5c, 0xdc, 0x89, 0x6d, 0xca, 0xfc, 0x88,
|
||||
0xdb, 0x94, 0x13, 0xa3, 0x6f, 0x53, 0x4e, 0x8e, 0xb3, 0x4d, 0x59, 0x18, 0x7b, 0x9b, 0x72, 0x6a,
|
||||
0xc4, 0x6d, 0x4a, 0x1a, 0x8d, 0xbb, 0x6e, 0xcf, 0x21, 0x86, 0xe7, 0xda, 0x0e, 0x51, 0x8a, 0x51,
|
||||
0xc0, 0x18, 0xee, 0x51, 0x7a, 0xda, 0x05, 0xce, 0x2e, 0xaa, 0x92, 0x94, 0xc2, 0xd5, 0x2c, 0x63,
|
||||
0x79, 0x8f, 0x73, 0x50, 0x04, 0xbb, 0x76, 0x07, 0x1b, 0xc1, 0x61, 0x40, 0x70, 0x57, 0x69, 0x0d,
|
||||
0x06, 0x94, 0x61, 0x9b, 0xd1, 0x87, 0xdb, 0x23, 0x45, 0xd5, 0xed, 0x91, 0xab, 0x30, 0xed, 0x63,
|
||||
0xaf, 0x63, 0xb7, 0xcc, 0xc1, 0xb1, 0x4b, 0x8a, 0x92, 0x21, 0x35, 0x5d, 0x16, 0xf9, 0xd8, 0xb4,
|
||||
0x0e, 0x8d, 0x88, 0xbf, 0xa4, 0xc0, 0x5f, 0x62, 0x3c, 0xcd, 0x50, 0xc8, 0x0d, 0x28, 0x9a, 0x9e,
|
||||
0x6d, 0x88, 0x63, 0x17, 0xa5, 0x85, 0x15, 0x98, 0x9e, 0xfd, 0x90, 0xd3, 0xeb, 0xff, 0x93, 0x83,
|
||||
0x85, 0x8c, 0xc3, 0xf2, 0x27, 0xed, 0x4f, 0x0f, 0xa1, 0x2a, 0x1d, 0xeb, 0x77, 0xec, 0x80, 0x60,
|
||||
0x87, 0x37, 0xae, 0x92, 0x09, 0x56, 0x92, 0xdc, 0x77, 0x04, 0xf3, 0x96, 0x45, 0x13, 0x04, 0x49,
|
||||
0x2e, 0x4d, 0x93, 0x95, 0xbc, 0x70, 0x3e, 0xc9, 0x76, 0xcf, 0xf5, 0x09, 0x5d, 0x88, 0xa4, 0x44,
|
||||
0xd1, 0x7c, 0x5e, 0x35, 0x69, 0x5c, 0x94, 0xe5, 0x51, 0xd6, 0x2d, 0x4b, 0xff, 0xc7, 0x5c, 0x34,
|
||||
0x8b, 0xdd, 0xb1, 0x9d, 0xfd, 0x27, 0x7d, 0xca, 0x7e, 0x07, 0x16, 0xf0, 0x77, 0x09, 0xf6, 0x1d,
|
||||
0xb3, 0x63, 0x24, 0xda, 0x55, 0x51, 0xf8, 0x99, 0x90, 0x71, 0x33, 0x79, 0x58, 0x98, 0x48, 0x84,
|
||||
0x26, 0x46, 0x4b, 0x84, 0xa2, 0x18, 0x30, 0xa9, 0x1e, 0x03, 0x3e, 0x2f, 0xc3, 0x94, 0x68, 0xfe,
|
||||
0x97, 0xac, 0x3e, 0x21, 0x51, 0xf8, 0x35, 0x71, 0xd2, 0xc2, 0xaf, 0xc9, 0xd1, 0x4e, 0x63, 0xa5,
|
||||
0x55, 0x47, 0x61, 0xa4, 0x55, 0xc7, 0x89, 0x2a, 0xf4, 0xbe, 0x06, 0xb3, 0xbb, 0xbe, 0xeb, 0x90,
|
||||
0x36, 0x5b, 0xac, 0x58, 0x4a, 0x81, 0xa0, 0x18, 0x71, 0x70, 0x01, 0xe1, 0x88, 0xb2, 0x1a, 0xbf,
|
||||
0x19, 0x95, 0x48, 0x24, 0x38, 0x58, 0xe1, 0xe7, 0x35, 0x98, 0xc1, 0x8e, 0xc5, 0xc2, 0x50, 0xa0,
|
||||
0x14, 0x05, 0x62, 0xf2, 0xc4, 0x72, 0xa4, 0x38, 0xee, 0x72, 0x64, 0xf6, 0x44, 0xcb, 0x91, 0x3b,
|
||||
0xb0, 0x18, 0xed, 0x77, 0xf8, 0xae, 0x4b, 0x0c, 0xb3, 0xd5, 0xc2, 0x41, 0x18, 0x21, 0x86, 0xe5,
|
||||
0xb7, 0x28, 0xe4, 0x6b, 0xba, 0x2e, 0x69, 0x30, 0xae, 0x94, 0x6b, 0x96, 0x47, 0x73, 0xcd, 0x1b,
|
||||
0x50, 0x14, 0x6b, 0x94, 0x5e, 0xcf, 0xb6, 0x94, 0x56, 0x38, 0xc0, 0x19, 0x1e, 0xf4, 0x6c, 0x8b,
|
||||
0x46, 0xb9, 0x68, 0x23, 0x92, 0x6b, 0x44, 0x65, 0x9f, 0xad, 0x14, 0xee, 0x43, 0x72, 0x75, 0xdc,
|
||||
0x80, 0xd9, 0x50, 0x08, 0x4b, 0xb6, 0xcf, 0x1c, 0x9b, 0x6c, 0x17, 0x05, 0xbd, 0x48, 0xd5, 0x93,
|
||||
0x55, 0x8f, 0x68, 0xb4, 0xaa, 0xc7, 0xd4, 0x22, 0x61, 0x61, 0x9c, 0x45, 0xc2, 0xe2, 0x48, 0x8b,
|
||||
0x84, 0xdb, 0x30, 0x67, 0x5a, 0x16, 0x33, 0x0b, 0xb3, 0x63, 0xd8, 0xce, 0xae, 0x2b, 0xd6, 0x37,
|
||||
0xc7, 0xac, 0xea, 0x62, 0xa6, 0x2d, 0x67, 0xd7, 0x0d, 0x33, 0x9a, 0x8a, 0x6a, 0x46, 0xf3, 0x32,
|
||||
0x4c, 0x5a, 0x78, 0xa7, 0xd7, 0x1e, 0xb8, 0xa4, 0x49, 0x54, 0xbc, 0x30, 0xc2, 0xa8, 0x26, 0xb9,
|
||||
0xaa, 0x5c, 0x93, 0x9c, 0x55, 0x33, 0x74, 0x76, 0xfc, 0x0a, 0xc7, 0xda, 0xf8, 0x15, 0x8e, 0x2b,
|
||||
0xa7, 0x51, 0xe1, 0xb8, 0x7a, 0xba, 0x15, 0x8e, 0xe7, 0xc6, 0xaa, 0x70, 0x8c, 0x83, 0xeb, 0x79,
|
||||
0xf5, 0xe0, 0xfa, 0x5b, 0x85, 0xb8, 0x46, 0x7a, 0xc4, 0xc2, 0xaa, 0xa5, 0x28, 0xb8, 0x89, 0x1a,
|
||||
0x25, 0x1e, 0xbe, 0xce, 0x49, 0xe1, 0x8b, 0x9f, 0x21, 0x26, 0x02, 0x54, 0x25, 0x9a, 0x72, 0xf9,
|
||||
0x41, 0x76, 0x38, 0xa9, 0x9e, 0x93, 0x7c, 0x97, 0x97, 0x17, 0x24, 0xbc, 0xf3, 0x42, 0x2a, 0xce,
|
||||
0xf0, 0x02, 0x73, 0x29, 0x92, 0x0c, 0x48, 0x73, 0xa6, 0x4e, 0x96, 0xe6, 0x44, 0x97, 0x17, 0xa6,
|
||||
0xb3, 0x2f, 0x2f, 0xcc, 0xf4, 0x5d, 0x5e, 0xc0, 0xa6, 0xdf, 0xda, 0x33, 0x1e, 0xb9, 0xbe, 0xa5,
|
||||
0xb6, 0x18, 0xe1, 0x0c, 0xef, 0xbb, 0xbe, 0x85, 0x5e, 0x87, 0xe9, 0xc0, 0xf5, 0x09, 0xdb, 0x91,
|
||||
0x51, 0x89, 0x44, 0x53, 0x94, 0xfa, 0x1d, 0x7c, 0x88, 0xae, 0xc0, 0x94, 0x8f, 0xa9, 0x72, 0xc3,
|
||||
0x63, 0x9f, 0x61, 0x5e, 0x1c, 0x92, 0xd2, 0xbe, 0x71, 0x43, 0x29, 0xf1, 0x81, 0x63, 0x3f, 0xfa,
|
||||
0x22, 0xb1, 0x4a, 0xfc, 0x90, 0x22, 0xf1, 0x75, 0x28, 0x3e, 0xb2, 0xc9, 0x9e, 0x61, 0x61, 0x62,
|
||||
0xda, 0x1d, 0x11, 0x41, 0x86, 0xee, 0xd1, 0x50, 0xf2, 0x5b, 0x8c, 0x9a, 0xb5, 0xce, 0xe6, 0x53,
|
||||
0xcb, 0xb0, 0x4c, 0x82, 0x95, 0xb6, 0xc7, 0xc4, 0x84, 0x6d, 0xdd, 0x32, 0x09, 0x46, 0x2f, 0xc0,
|
||||
0x9c, 0x65, 0x07, 0x5e, 0xc7, 0x3c, 0x34, 0x5a, 0x6e, 0xa7, 0xd7, 0x75, 0x82, 0xea, 0x19, 0xd6,
|
||||
0xbd, 0xb2, 0x78, 0xbc, 0xc9, 0x9f, 0x46, 0x97, 0x41, 0x50, 0x7c, 0x19, 0x44, 0xff, 0x0e, 0x54,
|
||||
0xfb, 0xbd, 0x40, 0xf5, 0xaa, 0xc0, 0x15, 0x08, 0xd5, 0x90, 0xa8, 0xe0, 0xce, 0xac, 0xfc, 0x0e,
|
||||
0xfd, 0x69, 0x1b, 0x13, 0xfd, 0x17, 0x79, 0xa8, 0x85, 0x6d, 0x36, 0x3c, 0x2f, 0xed, 0x7c, 0x4b,
|
||||
0x89, 0x3b, 0x03, 0x09, 0xef, 0x8a, 0xdd, 0x27, 0x27, 0xb9, 0x4f, 0x64, 0xae, 0xf9, 0x6c, 0x73,
|
||||
0x9d, 0x18, 0x66, 0xae, 0x93, 0x63, 0x98, 0x6b, 0xe1, 0x84, 0xe6, 0x3a, 0x75, 0x02, 0x73, 0x9d,
|
||||
0x4e, 0x9a, 0x6b, 0xca, 0xda, 0x66, 0xc6, 0xb2, 0x36, 0x38, 0x05, 0x6b, 0x2b, 0x66, 0x59, 0x9b,
|
||||
0x4e, 0x60, 0x25, 0x73, 0x94, 0x1f, 0xaf, 0x71, 0xfd, 0x38, 0x1f, 0x37, 0xfb, 0xe4, 0x6a, 0x70,
|
||||
0x62, 0xe3, 0xcc, 0x67, 0x1b, 0xe7, 0x44, 0xb6, 0x71, 0x4e, 0x0e, 0x33, 0xce, 0xc2, 0x18, 0xc6,
|
||||
0x39, 0x75, 0x42, 0xe3, 0x9c, 0x3e, 0x81, 0x71, 0xce, 0x24, 0x8d, 0x33, 0xc3, 0x3c, 0x20, 0xd3,
|
||||
0x3c, 0x3e, 0xd6, 0x60, 0x35, 0x7b, 0xa0, 0x54, 0x0d, 0x64, 0xfc, 0x4b, 0x24, 0xfa, 0xaf, 0xc3,
|
||||
0xc2, 0x36, 0x71, 0xbd, 0xc7, 0x52, 0x58, 0xad, 0xdf, 0x81, 0x45, 0x59, 0xf8, 0x58, 0x15, 0xd0,
|
||||
0x1f, 0x52, 0x69, 0xa6, 0x4f, 0x1e, 0x0f, 0xd6, 0xbb, 0xb0, 0x94, 0x92, 0x3e, 0x16, 0xd8, 0x6f,
|
||||
0x42, 0xa5, 0x89, 0x5b, 0xee, 0x01, 0xf6, 0x1f, 0x0f, 0xdc, 0xf7, 0x60, 0xb9, 0x4f, 0xfe, 0x58,
|
||||
0x80, 0x7f, 0xa6, 0xc1, 0xe2, 0x26, 0x36, 0x83, 0x5f, 0xa6, 0x1a, 0xfb, 0xbb, 0xb0, 0x94, 0x82,
|
||||
0x3c, 0x96, 0x0a, 0xce, 0xc1, 0xca, 0xdb, 0x38, 0x34, 0x00, 0xba, 0x2c, 0xb5, 0x03, 0x62, 0xb7,
|
||||
0x42, 0x45, 0xe8, 0x5f, 0x4c, 0xc0, 0x6a, 0xf6, 0x7b, 0xd1, 0x6a, 0x00, 0x4b, 0x1d, 0x33, 0x20,
|
||||
0x06, 0x79, 0xe4, 0x1a, 0x8f, 0x30, 0xde, 0x37, 0x44, 0xd4, 0x10, 0x57, 0x25, 0xde, 0x4a, 0xfa,
|
||||
0xe4, 0x30, 0x41, 0xeb, 0x77, 0xcc, 0x80, 0xdc, 0x7f, 0xe4, 0xbe, 0x8f, 0xf1, 0x3e, 0xbf, 0xf7,
|
||||
0x66, 0xdd, 0x76, 0x88, 0x7f, 0xd8, 0x44, 0x9d, 0xbe, 0x17, 0x68, 0x17, 0xe6, 0x89, 0xeb, 0x19,
|
||||
0x04, 0x3b, 0x86, 0x48, 0x99, 0x03, 0x31, 0x07, 0xbc, 0xa9, 0xdc, 0xde, 0x7d, 0xd7, 0xbb, 0x8f,
|
||||
0x9d, 0xa6, 0x60, 0xe7, 0x6d, 0x95, 0x89, 0xf4, 0x10, 0x5d, 0x8c, 0x2e, 0x3c, 0x27, 0xaa, 0x59,
|
||||
0x4b, 0xcd, 0xd9, 0x68, 0x95, 0x43, 0x27, 0xa4, 0x8b, 0x50, 0x0a, 0x33, 0x79, 0x4e, 0xc4, 0x07,
|
||||
0x6d, 0x56, 0x3c, 0xe4, 0x44, 0x1f, 0xc0, 0x6c, 0x88, 0xd8, 0xf4, 0xbc, 0x40, 0xdc, 0x15, 0xbb,
|
||||
0x3a, 0x22, 0xda, 0x86, 0xe7, 0x09, 0xa4, 0x40, 0xa2, 0x07, 0xb5, 0xdb, 0xb0, 0x3c, 0x40, 0x79,
|
||||
0x68, 0x1e, 0xf2, 0x34, 0x2e, 0xd0, 0x59, 0x74, 0xa6, 0x49, 0xff, 0xa5, 0xf3, 0xf7, 0x01, 0xb5,
|
||||
0xb8, 0xf0, 0x92, 0x32, 0xfb, 0x71, 0x2d, 0x77, 0x55, 0xab, 0x35, 0x60, 0x21, 0x43, 0x27, 0x23,
|
||||
0x89, 0xb8, 0x01, 0x73, 0x29, 0xa0, 0xa3, 0xb0, 0xeb, 0xff, 0x9d, 0x87, 0xa9, 0x77, 0xf8, 0xf9,
|
||||
0x19, 0x7a, 0x53, 0x3e, 0x5d, 0x53, 0x0a, 0xd9, 0xf1, 0xd9, 0xdb, 0x93, 0xdf, 0xfa, 0x4c, 0x9c,
|
||||
0x31, 0x4f, 0x8c, 0x70, 0xc6, 0x2c, 0x6f, 0x61, 0x4d, 0x8e, 0xb6, 0x85, 0x95, 0xda, 0xc2, 0x29,
|
||||
0x8c, 0xb3, 0x85, 0x33, 0x35, 0xd2, 0x16, 0x4e, 0x22, 0x25, 0x9a, 0x96, 0x52, 0xa2, 0xcb, 0x71,
|
||||
0x7a, 0xa0, 0xbc, 0x26, 0xff, 0x27, 0x2d, 0xbc, 0x47, 0x2c, 0x06, 0x3f, 0x9c, 0x85, 0xc3, 0x51,
|
||||
0xd4, 0x4e, 0x3a, 0x8a, 0xb9, 0x31, 0x46, 0x31, 0xaf, 0x3e, 0x8a, 0xfa, 0x83, 0xf0, 0xae, 0x6e,
|
||||
0xd4, 0x01, 0x31, 0x3b, 0x8e, 0x65, 0xc5, 0xfa, 0xdf, 0xe5, 0xe3, 0xcd, 0x0a, 0x21, 0x39, 0x8a,
|
||||
0x50, 0xff, 0x47, 0xfc, 0x63, 0x31, 0x3e, 0x40, 0x49, 0xa4, 0x9b, 0x63, 0xa6, 0xcc, 0x51, 0x7e,
|
||||
0x3e, 0x95, 0x9d, 0x9f, 0x4f, 0x4b, 0xf9, 0x79, 0x46, 0x6e, 0x3b, 0x93, 0x99, 0xdb, 0xfa, 0xf1,
|
||||
0xa2, 0x3a, 0x1e, 0x2d, 0xd5, 0xb4, 0xf6, 0x35, 0x98, 0x8d, 0xc6, 0x73, 0xc0, 0xc2, 0x27, 0x34,
|
||||
0x2e, 0x10, 0xe3, 0x48, 0x53, 0xd9, 0xd7, 0xc3, 0x5b, 0x82, 0x69, 0xfb, 0x38, 0x9f, 0xb6, 0x0f,
|
||||
0xb9, 0x3a, 0x41, 0xbf, 0x1a, 0x5e, 0xd5, 0xeb, 0x83, 0x7a, 0x1c, 0xe7, 0x3d, 0x58, 0x6a, 0x10,
|
||||
0x62, 0xb6, 0xf6, 0x46, 0x6c, 0x72, 0xe0, 0x3a, 0x4a, 0xdf, 0x80, 0x4a, 0x5a, 0xa2, 0xc0, 0x12,
|
||||
0x27, 0x2d, 0x5a, 0x32, 0x69, 0xb9, 0x47, 0x7b, 0x7d, 0xda, 0x10, 0xd2, 0x12, 0x87, 0x43, 0xf8,
|
||||
0x58, 0x83, 0x22, 0x5d, 0x4f, 0x84, 0xf1, 0xea, 0x84, 0x45, 0x85, 0x29, 0x37, 0xce, 0x8d, 0x36,
|
||||
0x41, 0x3c, 0x60, 0x77, 0x7e, 0x12, 0x30, 0x12, 0x0b, 0xde, 0x12, 0x83, 0x13, 0x0a, 0xcf, 0xba,
|
||||
0xb9, 0x9a, 0xe0, 0x6b, 0x16, 0x9d, 0xf8, 0x87, 0x7e, 0x96, 0x5d, 0xae, 0x91, 0xc5, 0x72, 0x6d,
|
||||
0xe8, 0xdf, 0x08, 0x6f, 0xba, 0x9c, 0x7a, 0xa3, 0xab, 0xe1, 0x45, 0x95, 0xac, 0x76, 0x2f, 0xff,
|
||||
0xf9, 0x57, 0xa0, 0x2c, 0xb2, 0xa3, 0xbb, 0xa6, 0x63, 0xb6, 0xb1, 0x8f, 0x3e, 0x80, 0xb9, 0x14,
|
||||
0x4a, 0xa4, 0x27, 0x5b, 0xca, 0xd6, 0x4c, 0xed, 0xe2, 0x50, 0x1a, 0x31, 0xe8, 0x2d, 0x40, 0xfd,
|
||||
0x60, 0xd0, 0x73, 0x49, 0xd6, 0x81, 0x6a, 0xa8, 0x3d, 0x7f, 0x1c, 0x99, 0x68, 0xe4, 0xfb, 0x1a,
|
||||
0x94, 0xa4, 0xb0, 0x81, 0xea, 0xd2, 0x0a, 0x36, 0x23, 0x24, 0xd6, 0x2e, 0x0c, 0xa1, 0x10, 0x43,
|
||||
0xf4, 0xda, 0x51, 0xe3, 0x0c, 0x9a, 0xe3, 0xef, 0xea, 0xfb, 0xf8, 0xb0, 0x4e, 0x87, 0xe2, 0xe3,
|
||||
0x7f, 0xff, 0xc5, 0x1f, 0xe4, 0x56, 0xf4, 0xca, 0xc6, 0xc1, 0x2b, 0x1b, 0x22, 0x7b, 0x0d, 0x36,
|
||||
0xc2, 0x71, 0x0a, 0xae, 0x69, 0x2f, 0xa2, 0x2f, 0x34, 0x98, 0x4f, 0x4f, 0x5f, 0xe8, 0xa2, 0xdc,
|
||||
0x95, 0xcc, 0x50, 0x54, 0x7b, 0x76, 0x38, 0x91, 0x80, 0xf5, 0x3d, 0xed, 0xa8, 0x61, 0xa3, 0xf6,
|
||||
0xdb, 0x98, 0x44, 0xa0, 0x82, 0xb5, 0xba, 0xa8, 0x10, 0xae, 0xef, 0xda, 0x1d, 0x82, 0xfd, 0xfa,
|
||||
0x23, 0x9b, 0xec, 0xd5, 0xc9, 0x1e, 0x0e, 0x70, 0x7d, 0xd7, 0xc6, 0x1d, 0x2b, 0xb8, 0x94, 0xf0,
|
||||
0x8e, 0xb5, 0x3a, 0x8d, 0x44, 0x6b, 0x75, 0x16, 0x03, 0xfe, 0xdf, 0x5a, 0xdd, 0xc2, 0xbb, 0x66,
|
||||
0xaf, 0x43, 0xea, 0x3e, 0x26, 0x3d, 0xdf, 0xa9, 0x9b, 0x9d, 0x4e, 0x2c, 0x99, 0xf5, 0xb7, 0x8a,
|
||||
0x06, 0xf4, 0x17, 0xfd, 0xa1, 0x06, 0x65, 0x79, 0xfa, 0x43, 0x17, 0xfa, 0x47, 0x2d, 0xdd, 0x51,
|
||||
0x7d, 0x18, 0x89, 0xe8, 0xe6, 0x9b, 0x47, 0x8d, 0x2a, 0xaa, 0xdc, 0x34, 0x49, 0x6b, 0xaf, 0xce,
|
||||
0x8b, 0xea, 0x53, 0xa0, 0x56, 0x5e, 0x1c, 0x32, 0x08, 0x7f, 0xa5, 0x41, 0x59, 0x9e, 0x0a, 0x65,
|
||||
0x5c, 0x99, 0x13, 0xaf, 0x8c, 0x2b, 0x7b, 0x26, 0xd5, 0x7f, 0xf5, 0xa8, 0x51, 0x47, 0xe7, 0x39,
|
||||
0x2e, 0x93, 0x91, 0xc4, 0xb8, 0xea, 0xc4, 0xad, 0x53, 0x57, 0x64, 0xf8, 0x2e, 0xe8, 0xab, 0x99,
|
||||
0xf8, 0x36, 0x38, 0x17, 0x45, 0xf9, 0xd7, 0x4c, 0x7b, 0x83, 0x51, 0x66, 0xce, 0xcd, 0x69, 0xed,
|
||||
0x65, 0xa2, 0xbc, 0x73, 0xd4, 0xd0, 0x51, 0x3d, 0xd4, 0x5e, 0x0a, 0xe5, 0xae, 0xef, 0x76, 0x15,
|
||||
0x70, 0x72, 0x3e, 0x8a, 0xf3, 0x77, 0x34, 0x98, 0x4b, 0x7d, 0x10, 0x07, 0xe9, 0x59, 0xc6, 0x2a,
|
||||
0x7f, 0x05, 0xaa, 0x76, 0x71, 0x28, 0x8d, 0x80, 0xba, 0x76, 0xd4, 0x28, 0xa1, 0x22, 0x35, 0x67,
|
||||
0x5e, 0x51, 0xc0, 0x47, 0xb7, 0x82, 0x16, 0x25, 0x54, 0xe2, 0x1d, 0xfa, 0xed, 0xc8, 0xd7, 0xc3,
|
||||
0xd2, 0x8e, 0x0c, 0x5f, 0x97, 0x6f, 0xc0, 0x66, 0xf9, 0x7a, 0xea, 0x9e, 0xa9, 0xfe, 0xca, 0x51,
|
||||
0x63, 0x1e, 0x95, 0x85, 0xaf, 0x8b, 0x46, 0xb9, 0xe9, 0xeb, 0x0b, 0x12, 0x0e, 0x9e, 0xf8, 0x53,
|
||||
0xa5, 0xfc, 0x48, 0x03, 0xc4, 0x19, 0x6e, 0xe1, 0x9d, 0x5e, 0xfb, 0x54, 0xe1, 0xdc, 0x38, 0x6a,
|
||||
0x54, 0x90, 0xc8, 0xe5, 0xeb, 0xec, 0x0c, 0x55, 0x02, 0x75, 0x5e, 0x3f, 0x4b, 0x41, 0xb1, 0x17,
|
||||
0x46, 0x06, 0xb4, 0xfb, 0x50, 0x92, 0x3e, 0xf7, 0x20, 0x83, 0xca, 0xfa, 0x02, 0x8d, 0x0c, 0x2a,
|
||||
0xfb, 0x7b, 0x27, 0xdf, 0x82, 0x33, 0x7d, 0x1f, 0x91, 0x40, 0xcf, 0x0e, 0xe4, 0x4b, 0x7c, 0xd1,
|
||||
0xa4, 0xf6, 0xdc, 0x31, 0x54, 0xa2, 0x85, 0x9f, 0x6a, 0xb0, 0x3c, 0xe0, 0xbb, 0x1c, 0xe8, 0xc5,
|
||||
0x81, 0x22, 0xfa, 0xbe, 0xab, 0x51, 0xfb, 0x8a, 0x12, 0x6d, 0x3c, 0xd1, 0xac, 0x20, 0xf1, 0xd1,
|
||||
0x94, 0x50, 0xcb, 0xd4, 0xb3, 0x05, 0x5d, 0xa6, 0x15, 0x74, 0x19, 0x35, 0x55, 0xf5, 0xbf, 0x6a,
|
||||
0xb0, 0x32, 0xe4, 0xd3, 0x1a, 0x68, 0x7d, 0x68, 0xcf, 0xfb, 0xa1, 0x6f, 0x28, 0xd3, 0x0b, 0xf8,
|
||||
0xef, 0x1e, 0x35, 0x5e, 0x40, 0xcf, 0x09, 0xf8, 0xd4, 0xa9, 0x13, 0xd8, 0xeb, 0xb6, 0x43, 0x83,
|
||||
0x40, 0x96, 0xed, 0xa4, 0xba, 0xc2, 0xb6, 0x80, 0xd9, 0xcc, 0xf9, 0x3e, 0x2c, 0x66, 0x7d, 0xcc,
|
||||
0x03, 0xbd, 0x90, 0x0a, 0xf7, 0x83, 0xbe, 0xc4, 0x51, 0xab, 0xf4, 0x25, 0x5d, 0xb7, 0xbb, 0x1e,
|
||||
0x39, 0x44, 0xbf, 0x41, 0xd7, 0x60, 0x99, 0xdf, 0xf0, 0x90, 0xc7, 0x76, 0xf8, 0x87, 0x3e, 0x06,
|
||||
0x8a, 0xff, 0x61, 0x14, 0x89, 0xc2, 0x0d, 0xbd, 0xac, 0x48, 0x94, 0xda, 0x9f, 0xcc, 0x8a, 0x44,
|
||||
0xe9, 0xfd, 0x40, 0xfd, 0xea, 0x51, 0x63, 0x19, 0x2d, 0x49, 0x91, 0x28, 0xd4, 0x5e, 0xa6, 0x71,
|
||||
0x70, 0x1a, 0xaa, 0xcb, 0x1f, 0x68, 0x50, 0x96, 0xbf, 0x44, 0x21, 0x63, 0xca, 0xfc, 0x24, 0x87,
|
||||
0x8c, 0x29, 0xfb, 0x43, 0x16, 0xfa, 0xab, 0x2c, 0x37, 0x11, 0x2f, 0xa5, 0xf1, 0x3d, 0xab, 0xcb,
|
||||
0x13, 0xa7, 0xa8, 0x73, 0xa1, 0x70, 0x7e, 0xa8, 0xc1, 0x5c, 0xea, 0x6b, 0x10, 0xf2, 0x34, 0x9e,
|
||||
0xfd, 0xa5, 0x0a, 0x79, 0x1a, 0x1f, 0xf0, 0x39, 0x09, 0x9a, 0x2d, 0x21, 0x34, 0x1f, 0xbe, 0x95,
|
||||
0x20, 0xd5, 0xf4, 0x25, 0x09, 0x92, 0x2f, 0x88, 0x28, 0x26, 0x3a, 0x9f, 0x4b, 0x57, 0xff, 0xe5,
|
||||
0xb9, 0x2a, 0xeb, 0x8b, 0x06, 0xf2, 0x5c, 0x95, 0xf9, 0xdd, 0x00, 0x31, 0x9f, 0xf3, 0x77, 0x43,
|
||||
0xe7, 0x73, 0x9f, 0x91, 0x50, 0x24, 0x7f, 0xa6, 0xb1, 0x3c, 0x58, 0x32, 0xcc, 0x74, 0x1e, 0x9c,
|
||||
0x65, 0x90, 0x17, 0x87, 0xd2, 0x08, 0x3c, 0x6f, 0x1d, 0x35, 0x56, 0x51, 0x4d, 0x64, 0x0d, 0x96,
|
||||
0xc5, 0x1c, 0x95, 0xa5, 0x0b, 0x49, 0x6c, 0xe9, 0xb4, 0xd2, 0xb4, 0xac, 0xd8, 0x2f, 0x3f, 0xd1,
|
||||
0xc2, 0x54, 0x5a, 0x42, 0xf8, 0xdc, 0x40, 0x03, 0x96, 0x40, 0x3e, 0x7f, 0x1c, 0x99, 0xc0, 0xf9,
|
||||
0xf5, 0xa3, 0xc6, 0x05, 0xf4, 0x8c, 0x64, 0xeb, 0x1c, 0x2a, 0xcb, 0x19, 0x86, 0xcd, 0x23, 0xe2,
|
||||
0xd6, 0x64, 0x84, 0xf7, 0x4f, 0x35, 0x98, 0x4f, 0xdf, 0xf7, 0x96, 0xd3, 0xe0, 0x01, 0xb7, 0xd7,
|
||||
0xe5, 0x34, 0x78, 0xd0, 0x95, 0x71, 0x3a, 0x6d, 0x2f, 0xa3, 0x25, 0xfe, 0xba, 0x8e, 0x9d, 0x83,
|
||||
0xba, 0xbb, 0x2b, 0xe1, 0x5b, 0xbd, 0xbc, 0x9c, 0xf2, 0x03, 0x4a, 0x69, 0x60, 0xe7, 0x80, 0xa2,
|
||||
0xfb, 0xe3, 0x5c, 0x9c, 0xa4, 0x47, 0xf3, 0x45, 0x66, 0xba, 0x92, 0x9e, 0x31, 0x9e, 0x1d, 0x4e,
|
||||
0x24, 0xd0, 0x7d, 0xa6, 0x1d, 0x35, 0xfe, 0x52, 0x43, 0x7f, 0xa1, 0xd1, 0xbc, 0x26, 0xc4, 0xb0,
|
||||
0x56, 0x6f, 0x99, 0xce, 0xe0, 0x0c, 0x3d, 0x3e, 0x74, 0x58, 0xab, 0xf3, 0x23, 0xfc, 0xb5, 0x7a,
|
||||
0x5c, 0x11, 0xb3, 0x56, 0xe7, 0xdb, 0x86, 0x6b, 0xf5, 0xb8, 0xdc, 0x65, 0xad, 0x9e, 0xac, 0x6d,
|
||||
0x11, 0x09, 0xfd, 0x5a, 0x3d, 0x59, 0x8d, 0x91, 0x9d, 0xde, 0x4b, 0xf3, 0x57, 0x19, 0xcd, 0x26,
|
||||
0x35, 0x85, 0x7e, 0x9a, 0x83, 0xa5, 0xb0, 0x63, 0xc9, 0xd4, 0xe6, 0x54, 0x15, 0xf4, 0x2f, 0xda,
|
||||
0x51, 0xe3, 0x13, 0x0d, 0xfd, 0x2d, 0x53, 0x90, 0x94, 0xe1, 0x7c, 0x89, 0xd4, 0x24, 0xe3, 0x62,
|
||||
0xca, 0x5a, 0x44, 0xa8, 0x3f, 0xf5, 0x42, 0x7f, 0x9f, 0x83, 0x85, 0x8c, 0xd3, 0x7a, 0xf4, 0x7c,
|
||||
0x96, 0x2e, 0xfa, 0x8b, 0x36, 0x6a, 0x2f, 0x1c, 0x4b, 0x27, 0xd4, 0xf6, 0x73, 0xed, 0xa8, 0xf1,
|
||||
0x37, 0x1a, 0xfa, 0x31, 0x53, 0x9b, 0xe9, 0x79, 0x5f, 0x42, 0xa5, 0x25, 0x51, 0x31, 0x95, 0x2d,
|
||||
0xa0, 0x33, 0xf2, 0xb4, 0xe6, 0x79, 0x01, 0xfa, 0x79, 0x2e, 0xde, 0xe4, 0x63, 0x46, 0xf6, 0x58,
|
||||
0xd5, 0xf6, 0x1f, 0xda, 0x51, 0xe3, 0x1f, 0x34, 0xf4, 0x69, 0xc2, 0xda, 0xbe, 0x9c, 0xca, 0xeb,
|
||||
0xc7, 0xc6, 0x83, 0x3a, 0x5a, 0xce, 0x48, 0xf8, 0x99, 0x22, 0xff, 0x53, 0x83, 0xc5, 0xac, 0x42,
|
||||
0x00, 0xf4, 0xc2, 0x10, 0x3f, 0x94, 0x62, 0xc3, 0xa5, 0xe3, 0x09, 0x85, 0x1a, 0x7b, 0x47, 0x8d,
|
||||
0x6f, 0xa0, 0x87, 0x54, 0x87, 0x3c, 0x28, 0xd8, 0x4e, 0x08, 0x73, 0x04, 0x0d, 0x8a, 0xdd, 0xbd,
|
||||
0x58, 0x6d, 0x7c, 0x1b, 0x22, 0xe9, 0x5d, 0x51, 0x0f, 0x59, 0x33, 0x34, 0x47, 0x98, 0x4d, 0x96,
|
||||
0x02, 0x20, 0xa9, 0xd2, 0x31, 0xa3, 0x02, 0xa1, 0x56, 0x1f, 0x4c, 0x20, 0xba, 0x72, 0xe5, 0xa8,
|
||||
0xb1, 0x84, 0x16, 0x78, 0xa0, 0x0b, 0x88, 0x9b, 0xd2, 0x77, 0x45, 0x97, 0x4d, 0x96, 0x52, 0x88,
|
||||
0x84, 0xae, 0x24, 0x1d, 0xf4, 0xa3, 0x54, 0x4b, 0xfd, 0x15, 0x06, 0x72, 0xb6, 0x92, 0x59, 0x25,
|
||||
0xa0, 0x7f, 0x95, 0x2d, 0xf7, 0x42, 0x30, 0xa6, 0x4f, 0x64, 0x34, 0xcb, 0x3a, 0x4a, 0xa1, 0x31,
|
||||
0x7d, 0x42, 0xe1, 0xfc, 0x11, 0x4d, 0xe8, 0xe4, 0x83, 0xfc, 0x54, 0x42, 0x97, 0x59, 0x45, 0x90,
|
||||
0x4a, 0xe8, 0xb2, 0x2b, 0x01, 0xf4, 0x6b, 0x89, 0x0d, 0x18, 0x9f, 0xd3, 0xa4, 0x8c, 0x32, 0x95,
|
||||
0x69, 0x0a, 0xa2, 0x50, 0x4f, 0xd2, 0xe1, 0x7a, 0x6a, 0x59, 0x9c, 0x51, 0x2a, 0x90, 0x5a, 0x16,
|
||||
0x67, 0x9d, 0xcc, 0x4b, 0x7a, 0x6a, 0x51, 0x8a, 0xe1, 0x7a, 0x62, 0x24, 0x14, 0xce, 0x4f, 0x34,
|
||||
0x58, 0xcc, 0x3a, 0x15, 0x96, 0x7d, 0x64, 0xc8, 0xf1, 0xbd, 0xec, 0x23, 0xc3, 0x0e, 0x98, 0xe9,
|
||||
0xd2, 0x7d, 0x05, 0x9d, 0x65, 0xdb, 0x19, 0xd1, 0xcb, 0x74, 0x6e, 0x22, 0xdc, 0x39, 0x39, 0xa0,
|
||||
0x82, 0xf2, 0xe6, 0xc4, 0x07, 0x39, 0x6f, 0x67, 0xa7, 0xc0, 0x16, 0x37, 0xaf, 0xfe, 0x6f, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x5e, 0x7b, 0x1e, 0x4e, 0x27, 0x5c, 0x00, 0x00,
|
||||
// 4827 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0x5d, 0x6c, 0x1c, 0xd7,
|
||||
0x75, 0xc6, 0xec, 0x92, 0x4b, 0xf2, 0x2c, 0x77, 0x49, 0x5d, 0x92, 0xcb, 0xd5, 0x92, 0x92, 0x57,
|
||||
0x23, 0xff, 0xa8, 0x0e, 0x4d, 0xda, 0xb2, 0x1c, 0xcb, 0x92, 0xd5, 0x78, 0x45, 0xa9, 0x0e, 0x6b,
|
||||
0xc9, 0x16, 0x96, 0x92, 0x9c, 0xba, 0x6e, 0x26, 0xc3, 0x9d, 0xcb, 0xe5, 0x84, 0xbb, 0x33, 0x93,
|
||||
0x99, 0xbb, 0x54, 0x68, 0xf4, 0xc9, 0x28, 0xd0, 0x36, 0x49, 0x0b, 0x84, 0x45, 0x8b, 0xf4, 0x17,
|
||||
0x28, 0x8a, 0x06, 0x69, 0x51, 0xa3, 0x89, 0x81, 0x02, 0x35, 0xfa, 0xd0, 0xa7, 0xe6, 0xa5, 0x40,
|
||||
0x5b, 0xa0, 0x2f, 0x45, 0x9e, 0xfa, 0x90, 0xa7, 0xf4, 0xb5, 0x6f, 0x7d, 0x29, 0xee, 0xcf, 0xfc,
|
||||
0xdc, 0xd9, 0xd9, 0xe5, 0x5d, 0x2e, 0x25, 0x39, 0xc8, 0x13, 0xb9, 0x33, 0xe7, 0x9c, 0xfb, 0xcd,
|
||||
0xb9, 0xe7, 0xef, 0xde, 0x7b, 0x66, 0xa0, 0xd4, 0xea, 0xf4, 0x02, 0x82, 0xfd, 0x75, 0xcf, 0x77,
|
||||
0x89, 0x8b, 0xc0, 0xf5, 0xb0, 0xe3, 0xd9, 0xc4, 0xb7, 0xbf, 0x59, 0x5b, 0x69, 0xbb, 0x6e, 0xbb,
|
||||
0x83, 0x37, 0xd8, 0x9d, 0x9d, 0xde, 0xee, 0x06, 0xee, 0x7a, 0xe4, 0x90, 0x13, 0xd6, 0xce, 0xa7,
|
||||
0x6f, 0x3e, 0xf2, 0x4d, 0xcf, 0xc3, 0x7e, 0x20, 0xee, 0x3f, 0x93, 0xbe, 0x4f, 0xec, 0x2e, 0x0e,
|
||||
0x88, 0xd9, 0xf5, 0x04, 0xc1, 0xaa, 0x20, 0x30, 0x3d, 0x7b, 0xc3, 0x74, 0x1c, 0x97, 0x98, 0xc4,
|
||||
0x76, 0x9d, 0x90, 0x7d, 0x8d, 0xfd, 0x69, 0xbd, 0xd4, 0xc6, 0xce, 0x4b, 0xc1, 0x23, 0xb3, 0xdd,
|
||||
0xc6, 0xfe, 0x86, 0xeb, 0x31, 0x8a, 0x7e, 0x6a, 0xfd, 0x4f, 0x72, 0x50, 0xb9, 0x85, 0x83, 0x96,
|
||||
0x6f, 0xef, 0xe0, 0xed, 0xde, 0x8e, 0x83, 0x49, 0xd0, 0xc4, 0xdf, 0xe8, 0xe1, 0x80, 0xa0, 0xeb,
|
||||
0x00, 0x7e, 0xcf, 0xa1, 0x83, 0x1b, 0xb6, 0x55, 0xd5, 0xea, 0xda, 0xa5, 0xe2, 0xe5, 0xd5, 0x75,
|
||||
0x3e, 0xf6, 0x7a, 0x08, 0x6e, 0x7d, 0x9b, 0xf8, 0xb6, 0xd3, 0x7e, 0x68, 0x76, 0x7a, 0xb8, 0x39,
|
||||
0x23, 0xe8, 0xb7, 0x2c, 0xb4, 0x08, 0x93, 0x1d, 0xbb, 0x6b, 0x93, 0x6a, 0xae, 0xae, 0x5d, 0x2a,
|
||||
0x35, 0xf9, 0x0f, 0x54, 0x81, 0x82, 0xbb, 0xbb, 0x1b, 0x60, 0x52, 0xcd, 0xb3, 0xcb, 0xe2, 0x17,
|
||||
0xba, 0x01, 0xc5, 0x80, 0x0d, 0x6e, 0x90, 0x43, 0x0f, 0x57, 0x27, 0x06, 0x8c, 0xf5, 0x60, 0xcb,
|
||||
0x21, 0xaf, 0x5e, 0xe6, 0x63, 0x01, 0x67, 0xb8, 0x7f, 0xe8, 0x61, 0xb4, 0x02, 0x33, 0x82, 0xdd,
|
||||
0xb6, 0xaa, 0x93, 0xf5, 0xfc, 0xa5, 0x99, 0xe6, 0x34, 0xbf, 0xb0, 0x65, 0x21, 0x04, 0x13, 0x1f,
|
||||
0xb9, 0x0e, 0xae, 0x16, 0xd8, 0x75, 0xf6, 0x3f, 0x7a, 0x0e, 0xca, 0xa6, 0x75, 0x60, 0x3a, 0x2d,
|
||||
0x6c, 0x19, 0x9e, 0xe9, 0x9b, 0xdd, 0xea, 0x14, 0xbb, 0x5b, 0x0a, 0xaf, 0xde, 0xa3, 0x17, 0xf5,
|
||||
0xcf, 0xf2, 0x50, 0xe0, 0x4a, 0x41, 0x6f, 0x24, 0x87, 0x50, 0xd1, 0x45, 0x0c, 0xe0, 0x65, 0x98,
|
||||
0x70, 0xcc, 0x2e, 0x66, 0x9a, 0x38, 0x8e, 0x8b, 0x51, 0x52, 0x0e, 0x06, 0x39, 0xaf, 0xc2, 0xc1,
|
||||
0x1e, 0xe8, 0x3a, 0x14, 0x5b, 0x3e, 0x36, 0x09, 0x36, 0xa8, 0xfe, 0x85, 0x02, 0x6b, 0x7d, 0x8c,
|
||||
0xf7, 0x43, 0x4b, 0x6a, 0x02, 0x27, 0xa7, 0x17, 0xd0, 0x2f, 0x43, 0xd1, 0x62, 0x26, 0xc0, 0xac,
|
||||
0xa4, 0x3a, 0xa9, 0x30, 0x6a, 0x92, 0x01, 0x3d, 0x03, 0x45, 0xdb, 0x09, 0x08, 0x55, 0x1c, 0xd5,
|
||||
0x0e, 0x57, 0x34, 0x84, 0x97, 0xb6, 0x2c, 0xf4, 0x2a, 0x14, 0x0e, 0xbc, 0x16, 0xbd, 0x37, 0xa5,
|
||||
0x20, 0x7b, 0xf2, 0xc0, 0x6b, 0x6d, 0x59, 0x69, 0x9b, 0x98, 0x1e, 0xcd, 0x26, 0xf4, 0x2e, 0x2c,
|
||||
0xf7, 0xd9, 0x75, 0xe0, 0xb9, 0x4e, 0x80, 0x29, 0x5e, 0xe2, 0x12, 0xb3, 0x63, 0xb4, 0xdc, 0x9e,
|
||||
0x43, 0xd8, 0x6c, 0x96, 0x9a, 0xc0, 0x2e, 0x6d, 0xd2, 0x2b, 0xe8, 0x15, 0x10, 0x92, 0x0c, 0x6a,
|
||||
0xaa, 0xb9, 0x7a, 0xfe, 0x52, 0xf1, 0x32, 0x5a, 0x8f, 0xfd, 0x7b, 0x9d, 0x4b, 0x6c, 0x0a, 0x93,
|
||||
0xd8, 0xc6, 0x44, 0xff, 0x8f, 0x1c, 0x2c, 0x6e, 0x32, 0x95, 0x6e, 0xf2, 0xa8, 0x10, 0x7a, 0xd1,
|
||||
0xab, 0x50, 0x30, 0x3d, 0x4f, 0xd5, 0x6a, 0x26, 0x4d, 0xcf, 0xdb, 0xb2, 0xa8, 0xeb, 0x1d, 0x60,
|
||||
0x3f, 0xb0, 0x5d, 0x87, 0x32, 0xaa, 0x18, 0xce, 0x8c, 0xa0, 0xe7, 0xcc, 0x09, 0xbf, 0xcd, 0x8f,
|
||||
0xe6, 0xb7, 0x2f, 0xc3, 0x44, 0xcb, 0x75, 0x76, 0x07, 0xba, 0xa0, 0x64, 0x7a, 0x94, 0x32, 0xc3,
|
||||
0x97, 0x26, 0x33, 0x7c, 0x29, 0xb2, 0xe9, 0x82, 0xaa, 0x4d, 0xeb, 0xbf, 0xab, 0xc1, 0x52, 0x4a,
|
||||
0xa5, 0x62, 0x02, 0xaf, 0x03, 0x88, 0xd8, 0xab, 0x1c, 0x99, 0x04, 0x3d, 0x37, 0xc6, 0xaf, 0xbb,
|
||||
0x3b, 0xaa, 0x7a, 0x9d, 0xfc, 0xba, 0xbb, 0xb3, 0x65, 0xe9, 0x9f, 0xe6, 0x61, 0xf1, 0xae, 0x6b,
|
||||
0xd9, 0xbb, 0x87, 0xa9, 0xe9, 0x7d, 0x09, 0xa6, 0x84, 0x68, 0x81, 0x63, 0x21, 0x69, 0x27, 0x21,
|
||||
0x71, 0x48, 0x83, 0x1a, 0x30, 0x1f, 0x22, 0x77, 0x5c, 0x0b, 0x27, 0xec, 0x6b, 0x39, 0x83, 0xef,
|
||||
0x5d, 0xd7, 0xc2, 0xcd, 0x72, 0x2b, 0xfe, 0xb1, 0x8d, 0x49, 0x52, 0x84, 0xef, 0x76, 0xb8, 0x88,
|
||||
0xfc, 0x40, 0x11, 0x4d, 0xb7, 0x13, 0x8b, 0xa0, 0x3f, 0x52, 0x22, 0x3a, 0xb6, 0xb3, 0xcf, 0x44,
|
||||
0x4c, 0x0c, 0x14, 0x71, 0xc7, 0x76, 0xf6, 0x23, 0x11, 0xf4, 0x07, 0x15, 0xf1, 0x36, 0xa0, 0x50,
|
||||
0x44, 0xcb, 0xed, 0x76, 0x5d, 0x87, 0x09, 0x99, 0x64, 0x42, 0xce, 0x66, 0x08, 0xd9, 0x64, 0x44,
|
||||
0xcd, 0x70, 0x5c, 0xfe, 0x93, 0x0a, 0xfa, 0x35, 0xa8, 0x46, 0x58, 0x5c, 0xd3, 0xda, 0x31, 0x3b,
|
||||
0xd4, 0x68, 0x7c, 0x26, 0xae, 0xc0, 0xc4, 0x3d, 0x93, 0x85, 0x29, 0x41, 0xda, 0xac, 0xb4, 0xfa,
|
||||
0x2f, 0x52, 0x9f, 0xbc, 0x0f, 0x4b, 0xa9, 0x39, 0x3b, 0x05, 0xfb, 0xd1, 0x1f, 0x42, 0x55, 0x92,
|
||||
0xca, 0x26, 0x49, 0x58, 0xc3, 0x35, 0x98, 0x4d, 0x4e, 0xaf, 0x10, 0x3d, 0x70, 0x6a, 0x8b, 0x89,
|
||||
0xa9, 0xd5, 0x9b, 0x70, 0x36, 0x43, 0xae, 0x40, 0xfc, 0x1a, 0x4c, 0x31, 0x7b, 0x51, 0x84, 0x5b,
|
||||
0xa0, 0xc4, 0x5b, 0x96, 0xfe, 0xef, 0x1a, 0x9c, 0x97, 0x84, 0x36, 0x08, 0xf1, 0xed, 0x9d, 0x1e,
|
||||
0xc1, 0xc9, 0x2c, 0x7f, 0x72, 0x5f, 0x1a, 0x3d, 0xb5, 0xa5, 0x72, 0x4d, 0x7e, 0xc4, 0x5c, 0xa3,
|
||||
0x7f, 0x15, 0x9e, 0x19, 0xf8, 0x40, 0xa7, 0x31, 0xbb, 0xbf, 0xa7, 0x81, 0xde, 0x37, 0x0d, 0xfd,
|
||||
0x5a, 0x3b, 0xd9, 0x7c, 0x8c, 0xae, 0x2f, 0xfd, 0x43, 0xb8, 0x38, 0x14, 0xce, 0x78, 0xf6, 0xf1,
|
||||
0x35, 0x58, 0x69, 0x58, 0xd6, 0x7d, 0x73, 0xa7, 0x83, 0x13, 0xf2, 0xa3, 0xa7, 0xcc, 0x8a, 0x56,
|
||||
0xda, 0x48, 0xd1, 0x4a, 0x7f, 0x03, 0xce, 0xdf, 0xc2, 0x1d, 0x4c, 0xf0, 0xc0, 0x41, 0x96, 0x93,
|
||||
0xd0, 0x69, 0xe2, 0x08, 0xc1, 0x7d, 0xaa, 0xc1, 0x12, 0xe7, 0x15, 0x6c, 0x11, 0xcb, 0xb9, 0xd4,
|
||||
0x0c, 0x53, 0xae, 0x84, 0x55, 0xf6, 0x67, 0xa4, 0x5c, 0x76, 0x46, 0x9a, 0xdc, 0x75, 0xfd, 0x56,
|
||||
0x58, 0x66, 0xf5, 0x57, 0x4b, 0x37, 0x5d, 0xb7, 0x23, 0xb2, 0x00, 0x23, 0x44, 0x17, 0x60, 0xb6,
|
||||
0xed, 0x9b, 0x2d, 0x6c, 0x78, 0xd8, 0xb7, 0x5d, 0x8b, 0x25, 0xc9, 0x52, 0xb3, 0xc8, 0xae, 0xdd,
|
||||
0x63, 0x97, 0xf4, 0x77, 0x69, 0x39, 0x2d, 0x63, 0x16, 0x53, 0x74, 0x0c, 0xe8, 0xa5, 0x44, 0x5a,
|
||||
0xa2, 0xb7, 0x44, 0xe2, 0xf9, 0x47, 0x0d, 0x96, 0x1e, 0x78, 0x6d, 0xdf, 0xb4, 0xd2, 0x85, 0xc5,
|
||||
0x58, 0x8e, 0x3b, 0x56, 0x81, 0xd1, 0xaf, 0xdf, 0x7c, 0x56, 0xf5, 0xfc, 0x2d, 0x0d, 0x2a, 0x69,
|
||||
0xe8, 0x4f, 0x2d, 0x81, 0xff, 0x26, 0x54, 0x9a, 0x6e, 0xa7, 0xb3, 0x63, 0xb6, 0xf6, 0x4f, 0x53,
|
||||
0x8f, 0x6a, 0xa6, 0xa6, 0x7f, 0x5b, 0x83, 0xe5, 0xbe, 0xe1, 0x9f, 0x9a, 0x2e, 0x7e, 0x92, 0x83,
|
||||
0x59, 0x56, 0x17, 0xe0, 0xc0, 0xed, 0x51, 0xbb, 0x7e, 0x19, 0x26, 0x68, 0x29, 0xa1, 0x34, 0x38,
|
||||
0xa3, 0x44, 0xeb, 0x90, 0x6f, 0x79, 0xbd, 0x81, 0x83, 0x26, 0x8b, 0x72, 0x4a, 0x48, 0xe9, 0xdb,
|
||||
0x5e, 0x6f, 0x60, 0xb8, 0x97, 0xe8, 0xdb, 0x5e, 0x0f, 0x5d, 0x81, 0x42, 0x17, 0x77, 0x5d, 0xff,
|
||||
0x50, 0x69, 0x2d, 0x28, 0x68, 0x51, 0x03, 0x4a, 0xd1, 0x42, 0x24, 0xb0, 0x3f, 0xc2, 0x03, 0x97,
|
||||
0x32, 0x49, 0xe6, 0xd9, 0x90, 0x65, 0xdb, 0xfe, 0x08, 0xa3, 0x2f, 0xc1, 0x6c, 0x40, 0x5c, 0xdf,
|
||||
0x6c, 0x0b, 0x09, 0x05, 0x05, 0x09, 0x45, 0xc1, 0x41, 0x05, 0xe8, 0x9f, 0x69, 0xb0, 0xd8, 0xc4,
|
||||
0x94, 0xf7, 0x34, 0xed, 0xec, 0x06, 0x94, 0x58, 0xb1, 0xe7, 0x8b, 0x29, 0x13, 0x45, 0x63, 0x35,
|
||||
0x19, 0x86, 0x93, 0x53, 0xda, 0x9c, 0xf5, 0x93, 0x13, 0xac, 0x56, 0xa3, 0xb3, 0x8a, 0x3b, 0x85,
|
||||
0xfd, 0xa9, 0x19, 0xe9, 0xff, 0x68, 0x50, 0x69, 0x58, 0x56, 0x56, 0xc6, 0x18, 0xb7, 0x64, 0x61,
|
||||
0xb6, 0x9e, 0x53, 0xb6, 0xf5, 0xeb, 0x00, 0x2c, 0x41, 0xf1, 0xd5, 0xa2, 0x8a, 0x09, 0xcf, 0x50,
|
||||
0x7a, 0xbe, 0x94, 0xec, 0xd7, 0xfc, 0xc4, 0xa0, 0x00, 0xd1, 0xf7, 0xb4, 0x4f, 0x4d, 0xf7, 0xdf,
|
||||
0xd3, 0xe0, 0xac, 0x94, 0xc5, 0x4e, 0x4f, 0xfd, 0x89, 0x6c, 0x9f, 0x4b, 0x66, 0x7b, 0xd5, 0xa4,
|
||||
0xf2, 0xfb, 0x1a, 0xd4, 0xb2, 0xa0, 0x3d, 0x35, 0x5d, 0x7d, 0xa2, 0xc1, 0xf2, 0x03, 0xcf, 0x8a,
|
||||
0x57, 0xa9, 0xb7, 0x9d, 0x83, 0x53, 0xd1, 0xd4, 0x3a, 0xe4, 0xb1, 0x73, 0xa0, 0x04, 0x85, 0x12,
|
||||
0xaa, 0x2a, 0xf0, 0x3b, 0x1a, 0x54, 0xfb, 0xf1, 0x3e, 0x35, 0xf5, 0xfd, 0xa8, 0x0c, 0x25, 0x69,
|
||||
0x89, 0xf8, 0xa4, 0xbd, 0xfb, 0x3d, 0x58, 0x0a, 0xb0, 0x7f, 0xc0, 0x46, 0x33, 0x7a, 0x9e, 0x87,
|
||||
0x7d, 0x63, 0xc7, 0xed, 0x39, 0x96, 0x92, 0xa3, 0x23, 0xce, 0xba, 0x65, 0x3d, 0xa0, 0x8c, 0x37,
|
||||
0x29, 0x1f, 0x7a, 0x1b, 0xe6, 0xa3, 0x79, 0x30, 0x5b, 0x6c, 0xaf, 0x55, 0x69, 0x37, 0x65, 0x2e,
|
||||
0xe4, 0x6a, 0x70, 0x26, 0x9a, 0x8a, 0x6c, 0xc7, 0x26, 0x06, 0x1d, 0xc3, 0x6e, 0x61, 0xb5, 0x7d,
|
||||
0x39, 0xca, 0xb1, 0xcd, 0x19, 0x68, 0x3a, 0x0c, 0x88, 0xe9, 0xc7, 0x12, 0x54, 0xf6, 0x5e, 0x66,
|
||||
0x19, 0x4b, 0x28, 0x82, 0xa7, 0x43, 0x2f, 0x92, 0xa0, 0xb2, 0x7f, 0x47, 0xd3, 0xa1, 0x17, 0x0a,
|
||||
0xf8, 0x32, 0x9c, 0x09, 0x5a, 0x66, 0x07, 0x1b, 0x6e, 0x2f, 0xc6, 0x31, 0xad, 0xa2, 0x0e, 0xc6,
|
||||
0xf6, 0x5e, 0x2f, 0x82, 0xf2, 0x2b, 0x30, 0xcf, 0x25, 0xd9, 0x4e, 0x24, 0x68, 0x46, 0x41, 0x50,
|
||||
0x99, 0x71, 0x6d, 0x39, 0xa1, 0x9c, 0xdb, 0x30, 0xe7, 0x63, 0x59, 0x2f, 0xa0, 0x22, 0x46, 0x30,
|
||||
0x25, 0xc4, 0x58, 0x38, 0x20, 0xbe, 0x7b, 0x18, 0x89, 0x29, 0xaa, 0x88, 0x11, 0x4c, 0x09, 0x31,
|
||||
0x3d, 0x5e, 0x23, 0x47, 0x62, 0x66, 0x55, 0xc4, 0x08, 0xa6, 0x50, 0xcc, 0x26, 0x94, 0x5b, 0xbd,
|
||||
0x80, 0xb8, 0xdd, 0x48, 0x4a, 0x49, 0x41, 0x4a, 0x89, 0xf3, 0x24, 0x84, 0xd0, 0x02, 0xb5, 0x17,
|
||||
0x4f, 0x77, 0x59, 0x45, 0x08, 0xe7, 0x49, 0xa9, 0xd7, 0xf5, 0xe3, 0x07, 0x9a, 0x53, 0x55, 0xaf,
|
||||
0xeb, 0x47, 0x0f, 0x74, 0x1f, 0x96, 0x2d, 0x16, 0xe6, 0x8d, 0xc0, 0x31, 0xbd, 0x60, 0xcf, 0x8d,
|
||||
0x67, 0x6b, 0x5e, 0x41, 0xdc, 0x12, 0x67, 0xde, 0x16, 0xbc, 0x09, 0x73, 0xde, 0xc3, 0x66, 0x87,
|
||||
0xec, 0x19, 0xad, 0x3d, 0xdc, 0xda, 0xaf, 0x9e, 0x51, 0x31, 0x67, 0xce, 0xb1, 0x49, 0x19, 0xd0,
|
||||
0x17, 0x61, 0xaa, 0xeb, 0x3a, 0x36, 0x71, 0xfd, 0x2a, 0x52, 0xe0, 0x0d, 0x89, 0xd1, 0x2d, 0x28,
|
||||
0x7b, 0x66, 0x10, 0x78, 0x7b, 0xbe, 0x19, 0xe0, 0x0e, 0x0e, 0x82, 0xea, 0x82, 0x8a, 0x52, 0x64,
|
||||
0x1e, 0xaa, 0x94, 0x03, 0xec, 0x13, 0xbb, 0x65, 0x76, 0x0c, 0x6a, 0xd5, 0xb6, 0xd3, 0x36, 0x3c,
|
||||
0xb7, 0x63, 0xb7, 0x0e, 0xab, 0x8b, 0x2a, 0x4a, 0x09, 0x99, 0xb7, 0x39, 0xef, 0x3d, 0xc6, 0x8a,
|
||||
0x36, 0x61, 0xce, 0x6c, 0x63, 0x87, 0x18, 0xac, 0x10, 0xee, 0x74, 0xb0, 0x55, 0x5d, 0x3a, 0x76,
|
||||
0x45, 0x5c, 0x66, 0x2c, 0x5b, 0x21, 0x07, 0x6a, 0x42, 0x45, 0x18, 0x60, 0x17, 0x13, 0xd3, 0x32,
|
||||
0x89, 0x69, 0xf0, 0x4d, 0x9b, 0x6a, 0x45, 0x01, 0xd9, 0x22, 0xe7, 0xbd, 0x2b, 0x58, 0xb7, 0x19,
|
||||
0x27, 0x7a, 0x1d, 0xa6, 0xed, 0x2e, 0xad, 0xc4, 0x6d, 0xab, 0xba, 0xac, 0xa2, 0x6d, 0x46, 0xbd,
|
||||
0x65, 0xd1, 0xc0, 0x27, 0x0c, 0x59, 0x68, 0xa7, 0xaa, 0x12, 0xf8, 0x38, 0x8b, 0x50, 0xca, 0x87,
|
||||
0xb0, 0x6a, 0x3b, 0x2d, 0x1f, 0x77, 0xb1, 0x43, 0xcc, 0x8e, 0x11, 0xfa, 0x45, 0xcf, 0xf3, 0x5c,
|
||||
0x9f, 0x60, 0xab, 0x7a, 0xf6, 0x58, 0x0d, 0xd5, 0x12, 0xfc, 0x37, 0xb9, 0x8b, 0x84, 0xdc, 0xe8,
|
||||
0x4d, 0x80, 0xbd, 0x43, 0x8f, 0x1a, 0x65, 0xe0, 0xfa, 0xd5, 0x9a, 0x02, 0xba, 0x04, 0xbd, 0xfe,
|
||||
0x83, 0x12, 0x14, 0x13, 0xd5, 0xcf, 0x49, 0x37, 0xa3, 0xe4, 0x44, 0x9b, 0x3b, 0xd9, 0xce, 0x5f,
|
||||
0x5e, 0x79, 0xe7, 0xef, 0x86, 0x7c, 0x4a, 0xa4, 0x92, 0x12, 0x93, 0x67, 0x48, 0x6f, 0xc0, 0xcc,
|
||||
0x81, 0xdb, 0xe9, 0xf1, 0x43, 0x0d, 0x95, 0x54, 0x38, 0xcd, 0xc9, 0xb7, 0x2c, 0xba, 0x98, 0xb4,
|
||||
0xb0, 0x72, 0x02, 0x14, 0xb4, 0xf2, 0x89, 0xdf, 0xd4, 0x48, 0x27, 0x7e, 0xd7, 0x01, 0x3c, 0xdf,
|
||||
0x3e, 0x30, 0x09, 0x36, 0x6c, 0x4f, 0x29, 0xdb, 0xcd, 0x08, 0xfa, 0x2d, 0x8f, 0xd5, 0x7d, 0xb6,
|
||||
0xa7, 0x94, 0xda, 0x28, 0x21, 0xc3, 0x19, 0x16, 0x30, 0x03, 0x33, 0x59, 0xb2, 0x68, 0x99, 0x0e,
|
||||
0x8b, 0x96, 0xa8, 0x5a, 0x2a, 0x2a, 0x57, 0x4b, 0x57, 0xa0, 0x10, 0x10, 0x93, 0xf4, 0x02, 0xa5,
|
||||
0x2c, 0x25, 0x68, 0xd1, 0x16, 0x9c, 0x21, 0xbe, 0xe9, 0x04, 0x36, 0x2d, 0x6c, 0x0c, 0x21, 0x40,
|
||||
0x25, 0x41, 0xcd, 0xc7, 0x6c, 0xdb, 0x5c, 0xd4, 0xeb, 0x30, 0xdd, 0xf6, 0xdd, 0x1e, 0x3b, 0x50,
|
||||
0x2b, 0x2b, 0x3c, 0xec, 0x14, 0xa3, 0xe6, 0x73, 0xe2, 0x3e, 0x72, 0xb0, 0x6f, 0x78, 0x26, 0xd9,
|
||||
0x53, 0x4a, 0x49, 0x33, 0x8c, 0xfe, 0x9e, 0x49, 0xf6, 0x68, 0xed, 0xd1, 0xee, 0xb8, 0x3b, 0x34,
|
||||
0xec, 0x46, 0xaa, 0x9e, 0x57, 0x18, 0xbd, 0xcc, 0xb9, 0xb6, 0x43, 0x85, 0xdf, 0x86, 0xb9, 0x54,
|
||||
0x94, 0x54, 0x4a, 0x41, 0x65, 0x39, 0x3c, 0x52, 0x87, 0xf7, 0x7a, 0x3b, 0xc6, 0x3e, 0x3e, 0x54,
|
||||
0xca, 0x42, 0x05, 0xaf, 0xb7, 0xf3, 0x0e, 0x66, 0xdb, 0x23, 0x22, 0xfb, 0x89, 0x29, 0x50, 0xc9,
|
||||
0x41, 0x22, 0x61, 0x46, 0xea, 0x9f, 0xb1, 0x03, 0x11, 0x0d, 0x45, 0xce, 0x19, 0x16, 0x03, 0xa7,
|
||||
0xed, 0x80, 0x87, 0x3e, 0x74, 0x1d, 0x8a, 0x66, 0x8f, 0xb8, 0x21, 0xeb, 0xf1, 0x09, 0x06, 0x28,
|
||||
0x79, 0xcc, 0x9c, 0x3c, 0xdd, 0xae, 0x8c, 0x74, 0xba, 0x7d, 0x1d, 0x8a, 0xfc, 0x71, 0x39, 0xf3,
|
||||
0xf2, 0xf1, 0xcc, 0x9c, 0x9c, 0x31, 0xbf, 0x06, 0x53, 0x7b, 0x6e, 0xc0, 0x42, 0x80, 0x4a, 0x0e,
|
||||
0x29, 0x50, 0xe2, 0x2d, 0x2b, 0x66, 0xf3, 0x44, 0xa2, 0x50, 0x61, 0xf3, 0x92, 0xc7, 0x47, 0xcc,
|
||||
0x2f, 0x6b, 0x03, 0x8f, 0x8f, 0xd8, 0x5e, 0x4f, 0x31, 0x71, 0xac, 0x87, 0xde, 0x82, 0xb2, 0x7c,
|
||||
0x20, 0x57, 0x5d, 0x61, 0xdc, 0x43, 0x0e, 0xe3, 0x4a, 0xd2, 0x61, 0x1c, 0x3a, 0x0f, 0xc5, 0x7d,
|
||||
0x7c, 0x68, 0x78, 0xa6, 0xcd, 0xec, 0x7b, 0x95, 0xef, 0x50, 0xef, 0xe3, 0xc3, 0x7b, 0xa6, 0x4d,
|
||||
0x8d, 0xf7, 0x32, 0x4c, 0x32, 0x8f, 0xa8, 0x9e, 0x53, 0x59, 0xde, 0x31, 0x52, 0xfd, 0x5f, 0x0a,
|
||||
0x51, 0xaa, 0x6a, 0x8a, 0xbd, 0x94, 0x27, 0xb9, 0xb8, 0x13, 0xdb, 0x94, 0xf9, 0x11, 0xb7, 0x29,
|
||||
0x27, 0x46, 0xdf, 0xa6, 0x9c, 0x1c, 0x67, 0x9b, 0xb2, 0x30, 0xf6, 0x36, 0xe5, 0xd4, 0x88, 0xdb,
|
||||
0x94, 0x34, 0x1b, 0x77, 0xdd, 0x9e, 0x43, 0x0c, 0xcf, 0xb5, 0x1d, 0xa2, 0x94, 0xa3, 0x80, 0x31,
|
||||
0xdc, 0xa3, 0xf4, 0xf4, 0x11, 0x38, 0xbb, 0xe8, 0x2c, 0x52, 0x4a, 0x57, 0xb3, 0x8c, 0xe5, 0x3d,
|
||||
0xce, 0x41, 0x11, 0xec, 0xda, 0x1d, 0x6c, 0x04, 0x87, 0x01, 0xc1, 0x5d, 0xa5, 0x35, 0x18, 0x50,
|
||||
0x86, 0x6d, 0x46, 0x1f, 0x6e, 0x8f, 0x14, 0x55, 0xb7, 0x47, 0xae, 0xc2, 0xb4, 0x8f, 0xbd, 0x8e,
|
||||
0xdd, 0x32, 0x07, 0xe7, 0x2e, 0x29, 0x4b, 0x86, 0xd4, 0x74, 0x59, 0xe4, 0x63, 0xd3, 0x3a, 0x34,
|
||||
0x22, 0xfe, 0x92, 0x02, 0x7f, 0x89, 0xf1, 0x34, 0x43, 0x21, 0x37, 0xa0, 0x68, 0x7a, 0xb6, 0x21,
|
||||
0x0e, 0x51, 0x94, 0x16, 0x56, 0x60, 0x7a, 0xf6, 0x43, 0x4e, 0xaf, 0xff, 0x5f, 0x0e, 0x16, 0x32,
|
||||
0x8e, 0xbe, 0x9f, 0xb4, 0x3f, 0x3d, 0x84, 0xaa, 0x74, 0x48, 0xdf, 0xb1, 0x03, 0x82, 0x1d, 0x3e,
|
||||
0xb8, 0x4a, 0x25, 0x58, 0x49, 0x72, 0xdf, 0x11, 0xcc, 0x5b, 0x16, 0x2d, 0x10, 0x24, 0xb9, 0xb4,
|
||||
0x4c, 0x56, 0xf2, 0xc2, 0xf9, 0x24, 0xdb, 0x3d, 0xd7, 0x27, 0x74, 0x21, 0x92, 0x12, 0x45, 0xeb,
|
||||
0x79, 0xd5, 0xa2, 0x71, 0x51, 0x96, 0x47, 0x59, 0xb7, 0x2c, 0xfd, 0x9f, 0x72, 0x51, 0x14, 0xbb,
|
||||
0x63, 0x3b, 0xfb, 0x4f, 0xfa, 0xcc, 0xfc, 0x0e, 0x2c, 0xe0, 0x6f, 0x12, 0xec, 0x3b, 0x66, 0xc7,
|
||||
0x48, 0x8c, 0xab, 0xa2, 0xf0, 0x33, 0x21, 0xe3, 0x66, 0xf2, 0xe8, 0x2f, 0x51, 0x08, 0x4d, 0x8c,
|
||||
0x56, 0x08, 0x45, 0x39, 0x60, 0x52, 0x3d, 0x07, 0xfc, 0xa4, 0x0c, 0x53, 0x62, 0xf8, 0x9f, 0xb3,
|
||||
0x6e, 0x83, 0x44, 0xf3, 0xd6, 0xc4, 0x49, 0x9b, 0xb7, 0x26, 0x47, 0x3b, 0x5b, 0x95, 0x56, 0x1d,
|
||||
0x85, 0x91, 0x56, 0x1d, 0x27, 0xea, 0xb2, 0xfb, 0x12, 0xcc, 0xee, 0xfa, 0xae, 0x43, 0xda, 0x6c,
|
||||
0xb1, 0x62, 0x29, 0x25, 0x82, 0x62, 0xc4, 0xc1, 0x05, 0x84, 0x33, 0xca, 0xfa, 0xf4, 0x66, 0x54,
|
||||
0x32, 0x91, 0xe0, 0x60, 0xcd, 0x9b, 0xd7, 0x60, 0x06, 0x3b, 0x16, 0x4b, 0x43, 0x81, 0x52, 0x16,
|
||||
0x88, 0xc9, 0x13, 0xcb, 0x91, 0xe2, 0xb8, 0xcb, 0x91, 0xd9, 0x13, 0x2d, 0x47, 0xee, 0xc0, 0x62,
|
||||
0xb4, 0xdf, 0xe1, 0xbb, 0x2e, 0x31, 0xcc, 0x56, 0x0b, 0x07, 0x61, 0x86, 0x18, 0x56, 0xdf, 0xa2,
|
||||
0x90, 0xaf, 0xe9, 0xba, 0xa4, 0xc1, 0xb8, 0x52, 0xae, 0x59, 0x1e, 0xcd, 0x35, 0x6f, 0x40, 0x51,
|
||||
0xac, 0x51, 0x7a, 0x3d, 0xdb, 0x52, 0x5a, 0xe1, 0x00, 0x67, 0x78, 0xd0, 0xb3, 0x2d, 0x9a, 0xe5,
|
||||
0xa2, 0x8d, 0x48, 0xae, 0x11, 0x95, 0x7d, 0xb6, 0x52, 0xb8, 0x0f, 0xc9, 0xd5, 0x71, 0x03, 0x66,
|
||||
0x43, 0x21, 0xac, 0xd8, 0x3e, 0x73, 0x6c, 0xb1, 0x5d, 0x14, 0xf4, 0xa2, 0x54, 0x4f, 0x76, 0x2e,
|
||||
0xa2, 0xd1, 0x3a, 0x17, 0x53, 0x8b, 0x84, 0x85, 0x71, 0x16, 0x09, 0x8b, 0x23, 0x2d, 0x12, 0x6e,
|
||||
0xc3, 0x9c, 0x69, 0x59, 0xcc, 0x2c, 0xcc, 0x8e, 0x61, 0x3b, 0xbb, 0xae, 0x58, 0xdf, 0x1c, 0xb3,
|
||||
0xaa, 0x8b, 0x99, 0xb6, 0x9c, 0x5d, 0x37, 0xac, 0x68, 0x2a, 0xaa, 0x15, 0xcd, 0xcb, 0x30, 0x69,
|
||||
0xe1, 0x9d, 0x5e, 0x7b, 0xe0, 0x92, 0x26, 0xd1, 0xbf, 0xc2, 0x08, 0xa3, 0x1e, 0xcc, 0xaa, 0x72,
|
||||
0x5f, 0x71, 0x56, 0x07, 0xd0, 0xd9, 0xf1, 0xfb, 0x15, 0x6b, 0xe3, 0xf7, 0x2b, 0xae, 0x9c, 0x46,
|
||||
0xbf, 0xe2, 0xea, 0xe9, 0xf6, 0x2b, 0x9e, 0x1b, 0xab, 0x5f, 0x31, 0x4e, 0xae, 0xe7, 0xd5, 0x93,
|
||||
0xeb, 0x6f, 0x15, 0xe2, 0x3e, 0xe7, 0x11, 0xdb, 0xa4, 0x96, 0xa2, 0xe4, 0x26, 0x3a, 0x8e, 0x78,
|
||||
0xfa, 0x3a, 0x27, 0xa5, 0x2f, 0x7e, 0x86, 0x98, 0x48, 0x50, 0x95, 0x28, 0xe4, 0xf2, 0x83, 0xec,
|
||||
0x30, 0xa8, 0x9e, 0x93, 0x7c, 0x97, 0xb7, 0x17, 0x24, 0xbc, 0xf3, 0x42, 0x2a, 0xcf, 0xf0, 0x26,
|
||||
0x71, 0x29, 0x93, 0x0c, 0x28, 0x73, 0xa6, 0x4e, 0x56, 0xe6, 0x44, 0x2f, 0x20, 0x4c, 0x67, 0xbf,
|
||||
0x80, 0x30, 0xd3, 0xf7, 0x02, 0x02, 0x36, 0xfd, 0xd6, 0x9e, 0xf1, 0xc8, 0xf5, 0x2d, 0xb5, 0xc5,
|
||||
0x08, 0x67, 0x78, 0xdf, 0xf5, 0x2d, 0xf4, 0x3a, 0x4c, 0x07, 0xae, 0x4f, 0xd8, 0x8e, 0x8c, 0x4a,
|
||||
0x26, 0x9a, 0xa2, 0xd4, 0xef, 0xe0, 0x43, 0x74, 0x05, 0xa6, 0x7c, 0x4c, 0x95, 0x1b, 0x1e, 0xfb,
|
||||
0x0c, 0xf3, 0xe2, 0x90, 0x94, 0x3e, 0x1b, 0x37, 0x94, 0x12, 0x9f, 0x38, 0xf6, 0xa3, 0x2f, 0x13,
|
||||
0xab, 0xe4, 0x0f, 0x29, 0x13, 0x5f, 0x87, 0xe2, 0x23, 0x9b, 0xec, 0x19, 0x16, 0x26, 0xa6, 0xdd,
|
||||
0x11, 0x19, 0x64, 0xe8, 0x1e, 0x0d, 0x25, 0xbf, 0xc5, 0xa8, 0xd9, 0xe8, 0x2c, 0x9e, 0x5a, 0x86,
|
||||
0x65, 0x12, 0xac, 0xb4, 0x3d, 0x26, 0x02, 0xb6, 0x75, 0xcb, 0x24, 0x18, 0xbd, 0x00, 0x73, 0x96,
|
||||
0x1d, 0x78, 0x1d, 0xf3, 0xd0, 0x68, 0xb9, 0x9d, 0x5e, 0xd7, 0x09, 0xaa, 0x67, 0xd8, 0xe3, 0x95,
|
||||
0xc5, 0xe5, 0x4d, 0x7e, 0x35, 0x7a, 0xa1, 0x03, 0xc5, 0x2f, 0x74, 0xe8, 0xdf, 0x80, 0x6a, 0xbf,
|
||||
0x17, 0xa8, 0xb6, 0xfb, 0x5f, 0x81, 0x50, 0x0d, 0x89, 0x7e, 0xec, 0xcc, 0x3e, 0xee, 0xd0, 0x9f,
|
||||
0xb6, 0x31, 0xd1, 0x7f, 0x9a, 0x87, 0x5a, 0x38, 0x66, 0xc3, 0xf3, 0xd2, 0xce, 0xb7, 0x94, 0xe8,
|
||||
0xfb, 0x4f, 0x78, 0x57, 0xec, 0x3e, 0x39, 0xc9, 0x7d, 0x22, 0x73, 0xcd, 0x67, 0x9b, 0xeb, 0xc4,
|
||||
0x30, 0x73, 0x9d, 0x1c, 0xc3, 0x5c, 0x0b, 0x27, 0x34, 0xd7, 0xa9, 0x13, 0x98, 0xeb, 0x74, 0xd2,
|
||||
0x5c, 0x53, 0xd6, 0x36, 0x33, 0x96, 0xb5, 0xc1, 0x29, 0x58, 0x5b, 0x31, 0xcb, 0xda, 0x74, 0x02,
|
||||
0x2b, 0x99, 0xb3, 0xfc, 0x78, 0x8d, 0xeb, 0xfb, 0xf9, 0x78, 0xd8, 0x27, 0xd7, 0x83, 0x13, 0x1b,
|
||||
0x67, 0x3e, 0xdb, 0x38, 0x27, 0xb2, 0x8d, 0x73, 0x72, 0x98, 0x71, 0x16, 0xc6, 0x30, 0xce, 0xa9,
|
||||
0x13, 0x1a, 0xe7, 0xf4, 0x09, 0x8c, 0x73, 0x26, 0x69, 0x9c, 0x19, 0xe6, 0x01, 0x99, 0xe6, 0xf1,
|
||||
0xb1, 0x06, 0xab, 0xd9, 0x13, 0xa5, 0x6a, 0x20, 0xe3, 0xbf, 0x12, 0xa2, 0xff, 0x3a, 0x2c, 0x6c,
|
||||
0x13, 0xd7, 0x7b, 0x2c, 0x6d, 0xd2, 0xfa, 0x1d, 0x58, 0x94, 0x85, 0x8f, 0xd5, 0xcf, 0xfc, 0x21,
|
||||
0x95, 0x66, 0xfa, 0xe4, 0xf1, 0x60, 0xbd, 0x0b, 0x4b, 0x29, 0xe9, 0x63, 0x81, 0xfd, 0x2a, 0x54,
|
||||
0x9a, 0xb8, 0xe5, 0x1e, 0x60, 0xff, 0xf1, 0xc0, 0x7d, 0x0f, 0x96, 0xfb, 0xe4, 0x8f, 0x05, 0xf8,
|
||||
0x47, 0x1a, 0x2c, 0x6e, 0x62, 0x33, 0xf8, 0x79, 0xea, 0x98, 0xbf, 0x0b, 0x4b, 0x29, 0xc8, 0x63,
|
||||
0xa9, 0xe0, 0x1c, 0xac, 0xbc, 0x8d, 0x43, 0x03, 0xa0, 0xcb, 0x52, 0x3b, 0x20, 0x76, 0x2b, 0x54,
|
||||
0x84, 0xfe, 0xb3, 0x09, 0x58, 0xcd, 0xbe, 0x2f, 0x46, 0x0d, 0x60, 0xa9, 0x63, 0x06, 0xc4, 0x20,
|
||||
0x8f, 0x5c, 0xe3, 0x11, 0xc6, 0xfb, 0x86, 0xc8, 0x1a, 0xe2, 0xc5, 0x87, 0xb7, 0x92, 0x3e, 0x39,
|
||||
0x4c, 0xd0, 0xfa, 0x1d, 0x33, 0x20, 0xf7, 0x1f, 0xb9, 0xef, 0x63, 0xbc, 0xcf, 0xdf, 0x62, 0xb3,
|
||||
0x6e, 0x3b, 0xc4, 0x3f, 0x6c, 0xa2, 0x4e, 0xdf, 0x0d, 0xb4, 0x0b, 0xf3, 0xc4, 0xf5, 0x0c, 0x82,
|
||||
0x1d, 0x43, 0x94, 0xcc, 0x81, 0x88, 0x01, 0x6f, 0x2a, 0x8f, 0x77, 0xdf, 0xf5, 0xee, 0x63, 0xa7,
|
||||
0x29, 0xd8, 0xf9, 0x58, 0x65, 0x22, 0x5d, 0x44, 0x17, 0xa3, 0x97, 0x96, 0x13, 0xdd, 0xac, 0xa5,
|
||||
0xe6, 0x6c, 0xb4, 0xca, 0xa1, 0x01, 0xe9, 0x22, 0x94, 0xc2, 0x4a, 0x9e, 0x13, 0xf1, 0x49, 0x9b,
|
||||
0x15, 0x17, 0x39, 0xd1, 0x07, 0x30, 0x1b, 0x22, 0x36, 0x3d, 0x2f, 0x10, 0x6f, 0x7e, 0x5d, 0x1d,
|
||||
0x11, 0x6d, 0xc3, 0xf3, 0x04, 0x52, 0x20, 0xd1, 0x85, 0xda, 0x6d, 0x58, 0x1e, 0xa0, 0x3c, 0x34,
|
||||
0x0f, 0x79, 0x9a, 0x17, 0x68, 0x14, 0x9d, 0x69, 0xd2, 0x7f, 0x69, 0xfc, 0x3e, 0xa0, 0x16, 0x17,
|
||||
0xbe, 0x68, 0xcc, 0x7e, 0x5c, 0xcb, 0x5d, 0xd5, 0x6a, 0x0d, 0x58, 0xc8, 0xd0, 0xc9, 0x48, 0x22,
|
||||
0x6e, 0xc0, 0x5c, 0x0a, 0xe8, 0x28, 0xec, 0xfa, 0xff, 0xe6, 0x61, 0xea, 0x1d, 0x7e, 0x7e, 0x86,
|
||||
0xde, 0x94, 0x4f, 0xd7, 0x94, 0x52, 0x76, 0x7c, 0xf6, 0xf6, 0xe4, 0xb7, 0x3e, 0x13, 0x67, 0xcc,
|
||||
0x13, 0x23, 0x9c, 0x31, 0xcb, 0x5b, 0x58, 0x93, 0xa3, 0x6d, 0x61, 0xa5, 0xb6, 0x70, 0x0a, 0xe3,
|
||||
0x6c, 0xe1, 0x4c, 0x8d, 0xb4, 0x85, 0x93, 0x28, 0x89, 0xa6, 0xa5, 0x92, 0xe8, 0x72, 0x5c, 0x1e,
|
||||
0x28, 0xaf, 0xc9, 0xff, 0x59, 0x0b, 0xdf, 0x05, 0x16, 0x93, 0x1f, 0x46, 0xe1, 0x70, 0x16, 0xb5,
|
||||
0x93, 0xce, 0x62, 0x6e, 0x8c, 0x59, 0xcc, 0xab, 0xcf, 0xa2, 0xfe, 0x20, 0x7c, 0xf3, 0x36, 0x7a,
|
||||
0x00, 0x11, 0x1d, 0xc7, 0xb2, 0x62, 0xfd, 0xef, 0xf2, 0xf1, 0x66, 0x85, 0x90, 0x1c, 0x65, 0xa8,
|
||||
0x5f, 0x10, 0xff, 0x58, 0x8c, 0x0f, 0x50, 0x12, 0xe5, 0xe6, 0x98, 0x25, 0x73, 0x54, 0x9f, 0x4f,
|
||||
0x65, 0xd7, 0xe7, 0xd3, 0x52, 0x7d, 0x9e, 0x51, 0xdb, 0xce, 0x64, 0xd6, 0xb6, 0x7e, 0xbc, 0xa8,
|
||||
0x8e, 0x67, 0x4b, 0xb5, 0xac, 0x7d, 0x0d, 0x66, 0xa3, 0xf9, 0x1c, 0xb0, 0xf0, 0x09, 0x8d, 0x0b,
|
||||
0xc4, 0x3c, 0xd2, 0x52, 0xf6, 0xf5, 0xf0, 0x9d, 0xbf, 0xb4, 0x7d, 0x9c, 0x4f, 0xdb, 0x87, 0xdc,
|
||||
0x9d, 0xa0, 0x5f, 0x0d, 0x5f, 0xbc, 0xeb, 0x83, 0x7a, 0x1c, 0xe7, 0x3d, 0x58, 0x6a, 0x10, 0x62,
|
||||
0xb6, 0xf6, 0x46, 0x1c, 0x72, 0xe0, 0x3a, 0x4a, 0xdf, 0x80, 0x4a, 0x5a, 0xa2, 0xc0, 0x12, 0x17,
|
||||
0x2d, 0x5a, 0xb2, 0x68, 0xb9, 0x47, 0x9f, 0xfa, 0xb4, 0x21, 0xa4, 0x25, 0x0e, 0x87, 0xf0, 0xb1,
|
||||
0x06, 0x45, 0xba, 0x9e, 0x08, 0xf3, 0xd5, 0x09, 0x9b, 0x0a, 0x53, 0x6e, 0x9c, 0x1b, 0x2d, 0x40,
|
||||
0x3c, 0x60, 0xef, 0xfc, 0x24, 0x60, 0x24, 0x16, 0xbc, 0x25, 0x06, 0x27, 0x14, 0x9e, 0xf5, 0x1e,
|
||||
0x6a, 0x82, 0xaf, 0x59, 0x74, 0xe2, 0x1f, 0xfa, 0x59, 0xf6, 0x72, 0x8d, 0x2c, 0x96, 0x6b, 0x43,
|
||||
0xff, 0x4a, 0xf8, 0xa6, 0xcb, 0xa9, 0x0f, 0xba, 0x1a, 0xbe, 0xa8, 0x92, 0x35, 0xee, 0xe5, 0x3f,
|
||||
0xff, 0x02, 0x94, 0x45, 0x75, 0x74, 0xd7, 0x74, 0xcc, 0x36, 0xf6, 0xd1, 0x07, 0x30, 0x97, 0x42,
|
||||
0x89, 0xf4, 0xe4, 0x48, 0xd9, 0x9a, 0xa9, 0x5d, 0x1c, 0x4a, 0x23, 0x26, 0xbd, 0x05, 0xa8, 0x1f,
|
||||
0x0c, 0x7a, 0x2e, 0xc9, 0x3a, 0x50, 0x0d, 0xb5, 0xe7, 0x8f, 0x23, 0x13, 0x83, 0x7c, 0x5b, 0x83,
|
||||
0x92, 0x94, 0x36, 0x50, 0x5d, 0x5a, 0xc1, 0x66, 0xa4, 0xc4, 0xda, 0x85, 0x21, 0x14, 0x62, 0x8a,
|
||||
0x5e, 0x3b, 0x6a, 0x9c, 0x41, 0x73, 0xfc, 0x5e, 0x7d, 0x1f, 0x1f, 0xd6, 0xe9, 0x54, 0x7c, 0xfc,
|
||||
0x9f, 0x3f, 0xfd, 0x83, 0xdc, 0x8a, 0x5e, 0xd9, 0x38, 0x78, 0x65, 0x43, 0x54, 0xaf, 0xc1, 0x46,
|
||||
0x38, 0x4f, 0xc1, 0x35, 0xed, 0x45, 0xf4, 0x33, 0x0d, 0xe6, 0xd3, 0xe1, 0x0b, 0x5d, 0x94, 0x1f,
|
||||
0x25, 0x33, 0x15, 0xd5, 0x9e, 0x1d, 0x4e, 0x24, 0x60, 0x7d, 0x4b, 0x3b, 0x6a, 0xd8, 0xa8, 0xfd,
|
||||
0x36, 0x26, 0x11, 0xa8, 0x60, 0xad, 0x2e, 0x3a, 0x84, 0xeb, 0xbb, 0x76, 0x87, 0x60, 0xbf, 0xfe,
|
||||
0xc8, 0x26, 0x7b, 0x75, 0xb2, 0x87, 0x03, 0x5c, 0xdf, 0xb5, 0x71, 0xc7, 0x0a, 0x2e, 0x25, 0xbc,
|
||||
0x63, 0xad, 0x4e, 0x33, 0xd1, 0x5a, 0x9d, 0xe5, 0x80, 0x5f, 0x5a, 0xab, 0x5b, 0x78, 0xd7, 0xec,
|
||||
0x75, 0x48, 0xdd, 0xc7, 0xa4, 0xe7, 0x3b, 0x75, 0xb3, 0xd3, 0x89, 0x25, 0xb3, 0xe7, 0xad, 0xa2,
|
||||
0x01, 0xcf, 0x8b, 0xfe, 0x50, 0x83, 0xb2, 0x1c, 0xfe, 0xd0, 0x85, 0xfe, 0x59, 0x4b, 0x3f, 0xa8,
|
||||
0x3e, 0x8c, 0x44, 0x3c, 0xe6, 0x9b, 0x47, 0x8d, 0x2a, 0xaa, 0xdc, 0x34, 0x49, 0x6b, 0xaf, 0xce,
|
||||
0x9b, 0xea, 0x53, 0xa0, 0x56, 0x5e, 0x1c, 0x32, 0x09, 0x7f, 0xa5, 0x41, 0x59, 0x0e, 0x85, 0x32,
|
||||
0xae, 0xcc, 0xc0, 0x2b, 0xe3, 0xca, 0x8e, 0xa4, 0xfa, 0xaf, 0x1e, 0x35, 0xea, 0xe8, 0x3c, 0xc7,
|
||||
0x65, 0x32, 0x92, 0x18, 0x57, 0x9d, 0xb8, 0x75, 0xea, 0x8a, 0x0c, 0xdf, 0x05, 0x7d, 0x35, 0x13,
|
||||
0xdf, 0x06, 0xe7, 0xa2, 0x28, 0xff, 0x9a, 0x69, 0x6f, 0x30, 0xca, 0xcc, 0xd8, 0x9c, 0xd6, 0x5e,
|
||||
0x26, 0xca, 0x3b, 0x47, 0x0d, 0x1d, 0xd5, 0x43, 0xed, 0xa5, 0x50, 0xee, 0xfa, 0x6e, 0x57, 0x01,
|
||||
0x27, 0xe7, 0xa3, 0x38, 0x7f, 0x47, 0x83, 0xb9, 0xd4, 0x47, 0x6d, 0x90, 0x9e, 0x65, 0xac, 0xf2,
|
||||
0x97, 0x9c, 0x6a, 0x17, 0x87, 0xd2, 0x08, 0xa8, 0x6b, 0x47, 0x8d, 0x12, 0x2a, 0x52, 0x73, 0xe6,
|
||||
0x1d, 0x05, 0x7c, 0x76, 0x2b, 0x68, 0x51, 0x42, 0x25, 0xee, 0xa1, 0xdf, 0x8e, 0x7c, 0x3d, 0x6c,
|
||||
0xed, 0xc8, 0xf0, 0x75, 0xf9, 0x0d, 0xd8, 0x2c, 0x5f, 0x4f, 0xbd, 0x67, 0xaa, 0xbf, 0x72, 0xd4,
|
||||
0x98, 0x47, 0x65, 0xe1, 0xeb, 0x62, 0x50, 0x6e, 0xfa, 0xfa, 0x82, 0x84, 0x83, 0x17, 0xfe, 0x54,
|
||||
0x29, 0xdf, 0xd3, 0x00, 0x71, 0x86, 0x5b, 0x78, 0xa7, 0xd7, 0x3e, 0x55, 0x38, 0x37, 0x8e, 0x1a,
|
||||
0x15, 0x24, 0x6a, 0xf9, 0x3a, 0x3b, 0x43, 0x95, 0x40, 0x9d, 0xd7, 0xcf, 0x52, 0x50, 0xec, 0x86,
|
||||
0x91, 0x01, 0xed, 0x3e, 0x94, 0xa4, 0x8f, 0x37, 0xc8, 0xa0, 0xb2, 0xbe, 0x27, 0x23, 0x83, 0xca,
|
||||
0xfe, 0x7a, 0xc9, 0xd7, 0xe0, 0x4c, 0xdf, 0x27, 0x21, 0xd0, 0xb3, 0x03, 0xf9, 0x12, 0xdf, 0x27,
|
||||
0xa9, 0x3d, 0x77, 0x0c, 0x95, 0x18, 0xe1, 0x87, 0x1a, 0x2c, 0x0f, 0xf8, 0xca, 0x06, 0x7a, 0x71,
|
||||
0xa0, 0x88, 0xbe, 0xaf, 0x64, 0xd4, 0xbe, 0xa0, 0x44, 0x1b, 0x07, 0x9a, 0x15, 0x24, 0x3e, 0x81,
|
||||
0x12, 0x6a, 0x99, 0x7a, 0xb6, 0xa0, 0xcb, 0xb4, 0x82, 0x2e, 0xa3, 0xa6, 0xaa, 0xfe, 0x37, 0x0d,
|
||||
0x56, 0x86, 0x7c, 0x28, 0x03, 0xad, 0x0f, 0x7d, 0xf2, 0x7e, 0xe8, 0x1b, 0xca, 0xf4, 0x02, 0xfe,
|
||||
0xbb, 0x47, 0x8d, 0x17, 0xd0, 0x73, 0x02, 0x3e, 0x75, 0xea, 0x04, 0xf6, 0xba, 0xed, 0xd0, 0x24,
|
||||
0x90, 0x65, 0x3b, 0xa9, 0x47, 0x61, 0x5b, 0xc0, 0x2c, 0x72, 0xbe, 0x0f, 0x8b, 0x59, 0x9f, 0xe6,
|
||||
0x40, 0x2f, 0xa4, 0xd2, 0xfd, 0xa0, 0xef, 0x6a, 0xd4, 0x2a, 0x7d, 0x45, 0xd7, 0xed, 0xae, 0x47,
|
||||
0x0e, 0xd1, 0x6f, 0xd0, 0x35, 0x58, 0xe6, 0x17, 0x39, 0xe4, 0xb9, 0x1d, 0xfe, 0xd9, 0x8e, 0x81,
|
||||
0xe2, 0xbf, 0x1b, 0x65, 0xa2, 0x70, 0x43, 0x2f, 0x2b, 0x13, 0xa5, 0xf6, 0x27, 0xb3, 0x32, 0x51,
|
||||
0x7a, 0x3f, 0x50, 0xbf, 0x7a, 0xd4, 0x58, 0x46, 0x4b, 0x52, 0x26, 0x0a, 0xb5, 0x97, 0x69, 0x1c,
|
||||
0x9c, 0x86, 0xea, 0xf2, 0x3b, 0x1a, 0x94, 0xe5, 0x2f, 0x51, 0xc8, 0x98, 0x32, 0x3f, 0xb0, 0x21,
|
||||
0x63, 0xca, 0xfe, 0x90, 0x85, 0xfe, 0x2a, 0xab, 0x4d, 0xc4, 0x4d, 0x69, 0x7e, 0xcf, 0xea, 0x72,
|
||||
0xe0, 0x14, 0x7d, 0x2e, 0x14, 0xce, 0x77, 0x35, 0x98, 0x4b, 0x7d, 0x0d, 0x42, 0x0e, 0xe3, 0xd9,
|
||||
0x5f, 0xaa, 0x90, 0xc3, 0xf8, 0x80, 0xcf, 0x49, 0xd0, 0x6a, 0x09, 0xa1, 0xf9, 0xf0, 0xae, 0x04,
|
||||
0xa9, 0xa6, 0x2f, 0x49, 0x90, 0x7c, 0x41, 0x44, 0x31, 0xd1, 0x78, 0x2e, 0xbd, 0xfa, 0x2f, 0xc7,
|
||||
0xaa, 0xac, 0x2f, 0x1a, 0xc8, 0xb1, 0x2a, 0xf3, 0xbb, 0x01, 0x22, 0x9e, 0xf3, 0x7b, 0x43, 0xe3,
|
||||
0xb9, 0xcf, 0x48, 0x28, 0x92, 0x3f, 0xd3, 0x58, 0x1d, 0x2c, 0x19, 0x66, 0xba, 0x0e, 0xce, 0x32,
|
||||
0xc8, 0x8b, 0x43, 0x69, 0x04, 0x9e, 0xb7, 0x8e, 0x1a, 0xab, 0xa8, 0x26, 0xaa, 0x06, 0xcb, 0x62,
|
||||
0x8e, 0xca, 0xca, 0x85, 0x24, 0xb6, 0x74, 0x59, 0x69, 0x5a, 0x56, 0xec, 0x97, 0x9f, 0x68, 0x61,
|
||||
0x29, 0x2d, 0x21, 0x7c, 0x6e, 0xa0, 0x01, 0x4b, 0x20, 0x9f, 0x3f, 0x8e, 0x4c, 0xe0, 0xfc, 0xf2,
|
||||
0x51, 0xe3, 0x02, 0x7a, 0x46, 0xb2, 0x75, 0x0e, 0x95, 0xd5, 0x0c, 0xc3, 0xe2, 0x88, 0x78, 0x6b,
|
||||
0x32, 0xc2, 0xfb, 0xa7, 0x1a, 0xcc, 0xa7, 0xdf, 0xf7, 0x96, 0xcb, 0xe0, 0x01, 0x6f, 0xaf, 0xcb,
|
||||
0x65, 0xf0, 0xa0, 0x57, 0xc6, 0x69, 0xd8, 0x5e, 0x46, 0x4b, 0xfc, 0x76, 0x1d, 0x3b, 0x07, 0x75,
|
||||
0x77, 0x57, 0xc2, 0xb7, 0x7a, 0x79, 0x39, 0xe5, 0x07, 0x94, 0xd2, 0xc0, 0xce, 0x01, 0x45, 0xf7,
|
||||
0xc7, 0xb9, 0xb8, 0x48, 0x8f, 0xe2, 0x45, 0x66, 0xb9, 0x92, 0x8e, 0x18, 0xcf, 0x0e, 0x27, 0x12,
|
||||
0xe8, 0x3e, 0xd3, 0x8e, 0x1a, 0x7f, 0xa9, 0xa1, 0xbf, 0xd0, 0x68, 0x5d, 0x13, 0x62, 0x58, 0xab,
|
||||
0xb7, 0x4c, 0x67, 0x70, 0x85, 0x1e, 0x1f, 0x3a, 0xac, 0xd5, 0xf9, 0x11, 0xfe, 0x5a, 0x3d, 0xee,
|
||||
0x88, 0x59, 0xab, 0xf3, 0x6d, 0xc3, 0xb5, 0x7a, 0xdc, 0xee, 0xb2, 0x56, 0x4f, 0xf6, 0xb6, 0x88,
|
||||
0x82, 0x7e, 0xad, 0x9e, 0xec, 0xc6, 0xc8, 0x2e, 0xef, 0xa5, 0xf8, 0x55, 0x46, 0xb3, 0x49, 0x4d,
|
||||
0xa1, 0x1f, 0xe6, 0x60, 0x29, 0x7c, 0xb0, 0x64, 0x69, 0x73, 0xaa, 0x0a, 0xfa, 0x57, 0xed, 0xa8,
|
||||
0xf1, 0x89, 0x86, 0xfe, 0x96, 0x29, 0x48, 0xaa, 0x70, 0x3e, 0x47, 0x6a, 0x92, 0x71, 0x31, 0x65,
|
||||
0x2d, 0x22, 0xd4, 0x5f, 0x7a, 0xa1, 0xbf, 0xcf, 0xc1, 0x42, 0xc6, 0x69, 0x3d, 0x7a, 0x3e, 0x4b,
|
||||
0x17, 0xfd, 0x4d, 0x1b, 0xb5, 0x17, 0x8e, 0xa5, 0x13, 0x6a, 0xfb, 0xb1, 0x76, 0xd4, 0xf8, 0x1b,
|
||||
0x0d, 0x7d, 0x9f, 0xa9, 0xcd, 0xf4, 0xbc, 0xcf, 0xa1, 0xd2, 0x92, 0xa8, 0x98, 0xca, 0x16, 0xd0,
|
||||
0x19, 0x39, 0xac, 0x79, 0x5e, 0x80, 0x7e, 0x9c, 0x8b, 0x37, 0xf9, 0x98, 0x91, 0x3d, 0x56, 0xb5,
|
||||
0xfd, 0x97, 0x76, 0xd4, 0xf8, 0x07, 0x0d, 0x7d, 0x9a, 0xb0, 0xb6, 0xcf, 0xa7, 0xf2, 0xfa, 0xb1,
|
||||
0xf1, 0xa4, 0x8e, 0x96, 0x33, 0x0a, 0x7e, 0xa6, 0xc8, 0xff, 0xd6, 0x60, 0x31, 0xab, 0x11, 0x00,
|
||||
0xbd, 0x30, 0xc4, 0x0f, 0xa5, 0xdc, 0x70, 0xe9, 0x78, 0x42, 0xa1, 0xc6, 0xde, 0x51, 0xe3, 0x2b,
|
||||
0xe8, 0x21, 0xd5, 0x21, 0x4f, 0x0a, 0xb6, 0x13, 0xc2, 0x1c, 0x41, 0x83, 0x62, 0x77, 0x2f, 0x56,
|
||||
0x1b, 0xdf, 0x86, 0x48, 0x7a, 0x57, 0xf4, 0x84, 0x6c, 0x18, 0x5a, 0x23, 0xcc, 0x26, 0x5b, 0x01,
|
||||
0x90, 0xd4, 0xe9, 0x98, 0xd1, 0x81, 0x50, 0xab, 0x0f, 0x26, 0x10, 0x8f, 0x72, 0xe5, 0xa8, 0xb1,
|
||||
0x84, 0x16, 0x78, 0xa2, 0x0b, 0x88, 0x9b, 0xd2, 0x77, 0x45, 0x97, 0x4d, 0x96, 0x52, 0x88, 0x82,
|
||||
0xae, 0x24, 0x1d, 0xf4, 0xa3, 0xd4, 0x48, 0xfd, 0x1d, 0x06, 0x72, 0xb5, 0x92, 0xd9, 0x25, 0xa0,
|
||||
0x7f, 0x91, 0x2d, 0xf7, 0x42, 0x30, 0xa6, 0x4f, 0x64, 0x34, 0xcb, 0x3a, 0x4a, 0xa1, 0x31, 0x7d,
|
||||
0x42, 0xe1, 0xfc, 0x11, 0x2d, 0xe8, 0xe4, 0x83, 0xfc, 0x54, 0x41, 0x97, 0xd9, 0x45, 0x90, 0x2a,
|
||||
0xe8, 0xb2, 0x3b, 0x01, 0xf4, 0x6b, 0x89, 0x0d, 0x18, 0x9f, 0xd3, 0xa4, 0x8c, 0x32, 0x55, 0x69,
|
||||
0x0a, 0xa2, 0x50, 0x4f, 0xd2, 0xe1, 0x7a, 0x6a, 0x59, 0x9c, 0xd1, 0x2a, 0x90, 0x5a, 0x16, 0x67,
|
||||
0x9d, 0xcc, 0x4b, 0x7a, 0x6a, 0x51, 0x8a, 0xe1, 0x7a, 0x62, 0x24, 0x14, 0xce, 0x0f, 0x34, 0x58,
|
||||
0xcc, 0x3a, 0x15, 0x96, 0x7d, 0x64, 0xc8, 0xf1, 0xbd, 0xec, 0x23, 0xc3, 0x0e, 0x98, 0xe9, 0xd2,
|
||||
0x7d, 0x05, 0x9d, 0x65, 0xdb, 0x19, 0xd1, 0xcd, 0x74, 0x6d, 0x22, 0xdc, 0x39, 0x39, 0xa1, 0x82,
|
||||
0xf2, 0xe6, 0xc4, 0x07, 0x39, 0x6f, 0x67, 0xa7, 0xc0, 0x16, 0x37, 0xaf, 0xfe, 0x7f, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0x66, 0xed, 0xd7, 0x45, 0xeb, 0x5b, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
||||
298
vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.go
generated
vendored
298
vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.go
generated
vendored
@@ -130,8 +130,6 @@ type ListReleasesRequest struct {
|
||||
ReleaseName *wrappers.StringValue `protobuf:"bytes,2,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"`
|
||||
Namespace *wrappers.StringValue `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
Status *wrappers.StringValue `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
|
||||
Limit uint32 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"`
|
||||
Offset uint32 `protobuf:"varint,6,opt,name=offset,proto3" json:"offset,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -190,23 +188,8 @@ func (m *ListReleasesRequest) GetStatus() *wrappers.StringValue {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *ListReleasesRequest) GetLimit() uint32 {
|
||||
if m != nil {
|
||||
return m.Limit
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *ListReleasesRequest) GetOffset() uint32 {
|
||||
if m != nil {
|
||||
return m.Offset
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type ListReleaseResponse struct {
|
||||
TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
|
||||
ReleaseSet []*Release `protobuf:"bytes,2,rep,name=release_set,json=releaseSet,proto3" json:"release_set,omitempty"`
|
||||
ReleaseSet []*Release `protobuf:"bytes,1,rep,name=release_set,json=releaseSet,proto3" json:"release_set,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -237,13 +220,6 @@ func (m *ListReleaseResponse) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_ListReleaseResponse proto.InternalMessageInfo
|
||||
|
||||
func (m *ListReleaseResponse) GetTotalCount() uint32 {
|
||||
if m != nil {
|
||||
return m.TotalCount
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *ListReleaseResponse) GetReleaseSet() []*Release {
|
||||
if m != nil {
|
||||
return m.ReleaseSet
|
||||
@@ -251,100 +227,6 @@ func (m *ListReleaseResponse) GetReleaseSet() []*Release {
|
||||
return nil
|
||||
}
|
||||
|
||||
type DescribeReleaseRequest struct {
|
||||
ReleaseName *wrappers.StringValue `protobuf:"bytes,1,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"`
|
||||
Status *wrappers.StringValue `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
|
||||
RuntimeId *wrappers.StringValue `protobuf:"bytes,3,opt,name=runtime_id,json=runtimeId,proto3" json:"runtime_id,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *DescribeReleaseRequest) Reset() { *m = DescribeReleaseRequest{} }
|
||||
func (m *DescribeReleaseRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*DescribeReleaseRequest) ProtoMessage() {}
|
||||
func (*DescribeReleaseRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{3}
|
||||
}
|
||||
|
||||
func (m *DescribeReleaseRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DescribeReleaseRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DescribeReleaseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DescribeReleaseRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *DescribeReleaseRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DescribeReleaseRequest.Merge(m, src)
|
||||
}
|
||||
func (m *DescribeReleaseRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_DescribeReleaseRequest.Size(m)
|
||||
}
|
||||
func (m *DescribeReleaseRequest) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_DescribeReleaseRequest.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_DescribeReleaseRequest proto.InternalMessageInfo
|
||||
|
||||
func (m *DescribeReleaseRequest) GetReleaseName() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.ReleaseName
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *DescribeReleaseRequest) GetStatus() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.Status
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *DescribeReleaseRequest) GetRuntimeId() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.RuntimeId
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type DescribeReleaseResponse struct {
|
||||
Workload map[string]string `protobuf:"bytes,1,rep,name=workload,proto3" json:"workload,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *DescribeReleaseResponse) Reset() { *m = DescribeReleaseResponse{} }
|
||||
func (m *DescribeReleaseResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*DescribeReleaseResponse) ProtoMessage() {}
|
||||
func (*DescribeReleaseResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{4}
|
||||
}
|
||||
|
||||
func (m *DescribeReleaseResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DescribeReleaseResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DescribeReleaseResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DescribeReleaseResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *DescribeReleaseResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DescribeReleaseResponse.Merge(m, src)
|
||||
}
|
||||
func (m *DescribeReleaseResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_DescribeReleaseResponse.Size(m)
|
||||
}
|
||||
func (m *DescribeReleaseResponse) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_DescribeReleaseResponse.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_DescribeReleaseResponse proto.InternalMessageInfo
|
||||
|
||||
func (m *DescribeReleaseResponse) GetWorkload() map[string]string {
|
||||
if m != nil {
|
||||
return m.Workload
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type CreateReleaseRequest struct {
|
||||
// required, id of app to run in cluster
|
||||
AppId *wrappers.StringValue `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
|
||||
@@ -355,9 +237,7 @@ type CreateReleaseRequest struct {
|
||||
// release name
|
||||
ReleaseName *wrappers.StringValue `protobuf:"bytes,4,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"`
|
||||
// namespace
|
||||
Namespace *wrappers.StringValue `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
// custom value
|
||||
Values *wrappers.StringValue `protobuf:"bytes,6,opt,name=values,proto3" json:"values,omitempty"`
|
||||
Namespace *wrappers.StringValue `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -367,7 +247,7 @@ func (m *CreateReleaseRequest) Reset() { *m = CreateReleaseRequest{} }
|
||||
func (m *CreateReleaseRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*CreateReleaseRequest) ProtoMessage() {}
|
||||
func (*CreateReleaseRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{5}
|
||||
return fileDescriptor_141ba45979af1a8e, []int{3}
|
||||
}
|
||||
|
||||
func (m *CreateReleaseRequest) XXX_Unmarshal(b []byte) error {
|
||||
@@ -423,13 +303,6 @@ func (m *CreateReleaseRequest) GetNamespace() *wrappers.StringValue {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *CreateReleaseRequest) GetValues() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.Values
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type CreateReleaseResponse struct {
|
||||
ReleaseName *wrappers.StringValue `protobuf:"bytes,1,opt,name=release_name,json=releaseName,proto3" json:"release_name,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
@@ -441,7 +314,7 @@ func (m *CreateReleaseResponse) Reset() { *m = CreateReleaseResponse{} }
|
||||
func (m *CreateReleaseResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*CreateReleaseResponse) ProtoMessage() {}
|
||||
func (*CreateReleaseResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{6}
|
||||
return fileDescriptor_141ba45979af1a8e, []int{4}
|
||||
}
|
||||
|
||||
func (m *CreateReleaseResponse) XXX_Unmarshal(b []byte) error {
|
||||
@@ -482,7 +355,7 @@ func (m *UpgradeReleaseRequest) Reset() { *m = UpgradeReleaseRequest{} }
|
||||
func (m *UpgradeReleaseRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpgradeReleaseRequest) ProtoMessage() {}
|
||||
func (*UpgradeReleaseRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{7}
|
||||
return fileDescriptor_141ba45979af1a8e, []int{5}
|
||||
}
|
||||
|
||||
func (m *UpgradeReleaseRequest) XXX_Unmarshal(b []byte) error {
|
||||
@@ -535,7 +408,7 @@ func (m *UpgradeReleaseResponse) Reset() { *m = UpgradeReleaseResponse{}
|
||||
func (m *UpgradeReleaseResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpgradeReleaseResponse) ProtoMessage() {}
|
||||
func (*UpgradeReleaseResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{8}
|
||||
return fileDescriptor_141ba45979af1a8e, []int{6}
|
||||
}
|
||||
|
||||
func (m *UpgradeReleaseResponse) XXX_Unmarshal(b []byte) error {
|
||||
@@ -576,7 +449,7 @@ func (m *RollbackReleaseRequest) Reset() { *m = RollbackReleaseRequest{}
|
||||
func (m *RollbackReleaseRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*RollbackReleaseRequest) ProtoMessage() {}
|
||||
func (*RollbackReleaseRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{9}
|
||||
return fileDescriptor_141ba45979af1a8e, []int{7}
|
||||
}
|
||||
|
||||
func (m *RollbackReleaseRequest) XXX_Unmarshal(b []byte) error {
|
||||
@@ -630,7 +503,7 @@ func (m *RollbackReleaseResponse) Reset() { *m = RollbackReleaseResponse
|
||||
func (m *RollbackReleaseResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*RollbackReleaseResponse) ProtoMessage() {}
|
||||
func (*RollbackReleaseResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{10}
|
||||
return fileDescriptor_141ba45979af1a8e, []int{8}
|
||||
}
|
||||
|
||||
func (m *RollbackReleaseResponse) XXX_Unmarshal(b []byte) error {
|
||||
@@ -678,7 +551,7 @@ func (m *DeleteReleaseRequest) Reset() { *m = DeleteReleaseRequest{} }
|
||||
func (m *DeleteReleaseRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*DeleteReleaseRequest) ProtoMessage() {}
|
||||
func (*DeleteReleaseRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{11}
|
||||
return fileDescriptor_141ba45979af1a8e, []int{9}
|
||||
}
|
||||
|
||||
func (m *DeleteReleaseRequest) XXX_Unmarshal(b []byte) error {
|
||||
@@ -731,7 +604,7 @@ func (m *DeleteReleaseResponse) Reset() { *m = DeleteReleaseResponse{} }
|
||||
func (m *DeleteReleaseResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*DeleteReleaseResponse) ProtoMessage() {}
|
||||
func (*DeleteReleaseResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_141ba45979af1a8e, []int{12}
|
||||
return fileDescriptor_141ba45979af1a8e, []int{10}
|
||||
}
|
||||
|
||||
func (m *DeleteReleaseResponse) XXX_Unmarshal(b []byte) error {
|
||||
@@ -763,9 +636,6 @@ func init() {
|
||||
proto.RegisterType((*Release)(nil), "openpitrix.Release")
|
||||
proto.RegisterType((*ListReleasesRequest)(nil), "openpitrix.ListReleasesRequest")
|
||||
proto.RegisterType((*ListReleaseResponse)(nil), "openpitrix.ListReleaseResponse")
|
||||
proto.RegisterType((*DescribeReleaseRequest)(nil), "openpitrix.DescribeReleaseRequest")
|
||||
proto.RegisterType((*DescribeReleaseResponse)(nil), "openpitrix.DescribeReleaseResponse")
|
||||
proto.RegisterMapType((map[string]string)(nil), "openpitrix.DescribeReleaseResponse.WorkloadEntry")
|
||||
proto.RegisterType((*CreateReleaseRequest)(nil), "openpitrix.CreateReleaseRequest")
|
||||
proto.RegisterType((*CreateReleaseResponse)(nil), "openpitrix.CreateReleaseResponse")
|
||||
proto.RegisterType((*UpgradeReleaseRequest)(nil), "openpitrix.UpgradeReleaseRequest")
|
||||
@@ -779,68 +649,56 @@ func init() {
|
||||
func init() { proto.RegisterFile("helm.proto", fileDescriptor_141ba45979af1a8e) }
|
||||
|
||||
var fileDescriptor_141ba45979af1a8e = []byte{
|
||||
// 966 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x4f, 0x6f, 0x1b, 0x45,
|
||||
0x14, 0xd7, 0xae, 0x63, 0xa7, 0x7e, 0x8e, 0xf3, 0x67, 0x92, 0xa6, 0x96, 0x5b, 0x11, 0xb3, 0x48,
|
||||
0x28, 0x0a, 0xad, 0x4d, 0x9d, 0x22, 0xa1, 0x54, 0x80, 0xd2, 0x06, 0x89, 0x20, 0xca, 0x61, 0xcb,
|
||||
0xff, 0x8b, 0x35, 0xb6, 0x27, 0xcb, 0x2a, 0xeb, 0x9d, 0x61, 0x66, 0x9c, 0x34, 0x37, 0x84, 0x38,
|
||||
0xf4, 0x8a, 0xf9, 0x0c, 0x1c, 0x38, 0xf3, 0x1d, 0x38, 0xc1, 0x05, 0xbe, 0x02, 0x1f, 0x82, 0x23,
|
||||
0x9a, 0xd9, 0xd9, 0xc6, 0xb3, 0xeb, 0x24, 0x76, 0x13, 0xd1, 0x9c, 0xec, 0x9d, 0xf7, 0x7b, 0x6f,
|
||||
0xde, 0xfc, 0xde, 0xef, 0xbd, 0x19, 0x80, 0x6f, 0x49, 0x34, 0x68, 0x32, 0x4e, 0x25, 0x45, 0x40,
|
||||
0x19, 0x89, 0x59, 0x28, 0x79, 0xf8, 0xac, 0x7e, 0x3b, 0xa0, 0x34, 0x88, 0x48, 0x4b, 0x5b, 0xba,
|
||||
0xc3, 0x83, 0x16, 0x19, 0x30, 0x79, 0x92, 0x00, 0xeb, 0xaf, 0x65, 0x8d, 0xc7, 0x1c, 0x33, 0x46,
|
||||
0xb8, 0x30, 0xf6, 0x8d, 0xac, 0x5d, 0x86, 0x03, 0x22, 0x24, 0x1e, 0x30, 0x03, 0xb8, 0x63, 0x00,
|
||||
0x98, 0x85, 0x2d, 0x1c, 0xc7, 0x54, 0x62, 0x19, 0xd2, 0x38, 0x75, 0xbf, 0xab, 0x7f, 0x7a, 0xf7,
|
||||
0x02, 0x12, 0xdf, 0x13, 0xc7, 0x38, 0x08, 0x08, 0x6f, 0x51, 0xa6, 0x11, 0x79, 0xb4, 0xf7, 0x7c,
|
||||
0x0e, 0xe6, 0x7d, 0x12, 0x11, 0x2c, 0x08, 0xfa, 0x00, 0x16, 0x78, 0xf2, 0xb7, 0x13, 0xe3, 0x01,
|
||||
0xa9, 0x39, 0x0d, 0x67, 0xb3, 0xd2, 0xbe, 0xd3, 0x4c, 0xb6, 0x6b, 0xa6, 0xf9, 0x34, 0x9f, 0x4a,
|
||||
0x1e, 0xc6, 0xc1, 0x17, 0x38, 0x1a, 0x12, 0xbf, 0x62, 0x3c, 0x3e, 0xc5, 0x03, 0x82, 0xde, 0x81,
|
||||
0xf9, 0x23, 0xc2, 0x45, 0x48, 0xe3, 0x9a, 0xab, 0x7d, 0x6f, 0xe7, 0x7c, 0xf7, 0x63, 0xb9, 0xdd,
|
||||
0x4e, 0x5c, 0x53, 0x2c, 0xda, 0x81, 0xb2, 0xda, 0x4f, 0x30, 0xdc, 0x23, 0xb5, 0xc2, 0x14, 0x9b,
|
||||
0x9e, 0xc2, 0xd1, 0x03, 0x28, 0x09, 0x89, 0xe5, 0x50, 0xd4, 0xe6, 0xa6, 0x70, 0x34, 0x58, 0xf4,
|
||||
0x3e, 0x54, 0xfa, 0x44, 0xf4, 0x78, 0xa8, 0x79, 0xa9, 0x15, 0xa7, 0x39, 0xe8, 0x98, 0x03, 0xfa,
|
||||
0x18, 0x56, 0x0f, 0x42, 0x2e, 0x64, 0xa7, 0x4f, 0x58, 0x44, 0x4f, 0x48, 0xbf, 0xa3, 0x6a, 0x54,
|
||||
0x2b, 0xe9, 0x38, 0xf5, 0x5c, 0x9c, 0xcf, 0xd2, 0x02, 0xfa, 0x2b, 0xda, 0x6d, 0xcf, 0x78, 0xa9,
|
||||
0x75, 0xf4, 0x11, 0xa0, 0x08, 0xe7, 0x42, 0xcd, 0x5f, 0x18, 0x6a, 0x59, 0x79, 0x59, 0x91, 0xde,
|
||||
0x83, 0x85, 0x3e, 0x89, 0x88, 0x4c, 0x63, 0xdc, 0xb8, 0x30, 0x46, 0xc5, 0xe0, 0xd5, 0x8a, 0xf7,
|
||||
0x9b, 0x0b, 0xab, 0x9f, 0x84, 0x42, 0x1a, 0x39, 0x08, 0x9f, 0x7c, 0x37, 0x24, 0x42, 0xa2, 0x87,
|
||||
0x00, 0x7c, 0x18, 0xab, 0x88, 0x9d, 0xb0, 0x3f, 0x95, 0x28, 0xca, 0x06, 0xbf, 0xdf, 0xcf, 0x69,
|
||||
0xca, 0x9d, 0x55, 0x53, 0xff, 0xbf, 0x38, 0xd6, 0xa0, 0x18, 0x85, 0x83, 0x50, 0x6a, 0x59, 0x54,
|
||||
0xfd, 0xe4, 0x03, 0xad, 0x43, 0x89, 0x1e, 0x1c, 0x08, 0x22, 0x75, 0x95, 0xab, 0xbe, 0xf9, 0xf2,
|
||||
0x22, 0x8b, 0x34, 0x9f, 0x08, 0x46, 0x63, 0x41, 0xd0, 0x06, 0x54, 0x24, 0x95, 0x38, 0xea, 0xf4,
|
||||
0xe8, 0x30, 0x96, 0x9a, 0xb5, 0xaa, 0x0f, 0x7a, 0xe9, 0xb1, 0x5a, 0x41, 0x0f, 0x20, 0x3d, 0x66,
|
||||
0x47, 0x05, 0x75, 0x1b, 0x85, 0xcd, 0x4a, 0x7b, 0xb5, 0x79, 0x3a, 0x44, 0x9a, 0x69, 0x48, 0x30,
|
||||
0xb8, 0xa7, 0x44, 0x7a, 0x7f, 0x38, 0xb0, 0xbe, 0xa7, 0x85, 0xd8, 0x25, 0x2f, 0xb6, 0x4c, 0xca,
|
||||
0x74, 0xe9, 0xee, 0x3d, 0x65, 0xcb, 0x9d, 0x81, 0x2d, 0x5b, 0x1d, 0x85, 0x99, 0xd4, 0xe1, 0xfd,
|
||||
0xe2, 0xc0, 0xad, 0xdc, 0x71, 0x0c, 0x83, 0x4f, 0xe0, 0xc6, 0x31, 0xe5, 0x87, 0x11, 0xc5, 0x4a,
|
||||
0x74, 0x8a, 0x9d, 0xfb, 0xe3, 0xec, 0x9c, 0xe1, 0xd6, 0xfc, 0xd2, 0xf8, 0x7c, 0x18, 0x4b, 0x7e,
|
||||
0xe2, 0xbf, 0x08, 0x51, 0x7f, 0x08, 0x55, 0xcb, 0x84, 0x96, 0xa1, 0x70, 0x48, 0x4e, 0x34, 0x4d,
|
||||
0x65, 0x5f, 0xfd, 0x55, 0x85, 0x3f, 0x52, 0x19, 0xea, 0xf3, 0x97, 0xfd, 0xe4, 0x63, 0xc7, 0x7d,
|
||||
0xd7, 0xf1, 0xfe, 0x75, 0x61, 0xed, 0x31, 0x27, 0x58, 0x66, 0x49, 0xdf, 0x86, 0x12, 0x66, 0x6c,
|
||||
0xda, 0xbe, 0x28, 0x62, 0xc6, 0xf6, 0xfb, 0x8a, 0x32, 0x33, 0xfa, 0x94, 0xe3, 0x34, 0x64, 0x97,
|
||||
0x0d, 0x3e, 0x71, 0x7e, 0x69, 0xbe, 0x73, 0x1a, 0x99, 0xbb, 0x54, 0x37, 0x16, 0x67, 0xee, 0x46,
|
||||
0xcd, 0xa8, 0x30, 0x73, 0xf2, 0x02, 0x7d, 0x25, 0x58, 0xef, 0x2b, 0xb8, 0x99, 0x61, 0xde, 0xe8,
|
||||
0xe3, 0xb2, 0x7a, 0xf7, 0xfe, 0x72, 0xe0, 0xe6, 0xe7, 0x2c, 0xe0, 0xb8, 0x9f, 0xad, 0xea, 0xab,
|
||||
0x9d, 0x78, 0xb6, 0x3c, 0x0a, 0x33, 0xc9, 0xc3, 0xfb, 0x1a, 0xd6, 0xb3, 0x67, 0xba, 0x2a, 0xbe,
|
||||
0xfe, 0x74, 0x60, 0xdd, 0xa7, 0x51, 0xd4, 0xc5, 0xbd, 0xc3, 0x6b, 0x45, 0xd8, 0xd8, 0xb3, 0xa3,
|
||||
0x30, 0xfd, 0xb3, 0xc3, 0xfb, 0xc9, 0x81, 0x5b, 0xb9, 0xf3, 0x5c, 0x11, 0x59, 0x2f, 0xf9, 0x14,
|
||||
0xf2, 0x7e, 0x77, 0x60, 0x6d, 0x4f, 0xdf, 0xc9, 0xd7, 0x8a, 0xe1, 0xb7, 0xa1, 0xc8, 0x86, 0x3c,
|
||||
0x48, 0x2f, 0xe0, 0xfc, 0x93, 0xe2, 0x11, 0xa5, 0x91, 0x99, 0x71, 0x1a, 0xa8, 0xda, 0x36, 0x73,
|
||||
0x8e, 0x2b, 0x62, 0xb6, 0xfd, 0x6b, 0x09, 0x16, 0x4d, 0xd0, 0x27, 0x38, 0xc6, 0x01, 0xe1, 0xe8,
|
||||
0x19, 0x2c, 0x8c, 0x3f, 0x5c, 0xd0, 0xc6, 0xf8, 0x45, 0x31, 0xe1, 0x49, 0x53, 0x3f, 0x0b, 0x90,
|
||||
0x66, 0xe9, 0xbd, 0x39, 0xda, 0x5d, 0x42, 0x55, 0x65, 0x69, 0x98, 0xbd, 0xc5, 0x0f, 0x7f, 0xff,
|
||||
0xf3, 0xb3, 0xbb, 0x88, 0x16, 0x5a, 0x47, 0xf7, 0x5b, 0xe9, 0x1a, 0xfa, 0xd1, 0x81, 0xa5, 0xcc,
|
||||
0x4d, 0x84, 0xbc, 0x73, 0xaf, 0xa9, 0x24, 0x81, 0x37, 0xa6, 0xb8, 0xca, 0xbc, 0xcd, 0xd1, 0x2e,
|
||||
0x42, 0xcb, 0xa9, 0x35, 0x4d, 0x44, 0xe7, 0x51, 0x45, 0x95, 0xb1, 0x3c, 0xd0, 0xf7, 0x0e, 0x54,
|
||||
0xad, 0x29, 0x89, 0x1a, 0xe3, 0x1b, 0x4c, 0xba, 0xba, 0xea, 0xaf, 0x9f, 0x83, 0x30, 0x09, 0x6c,
|
||||
0x8d, 0x76, 0x97, 0xd1, 0x62, 0x62, 0x6b, 0xf8, 0x63, 0xdb, 0xaf, 0xd4, 0x2d, 0x1a, 0x76, 0x9c,
|
||||
0x2d, 0xc5, 0xc4, 0xa2, 0x3d, 0x79, 0x90, 0xb5, 0xc3, 0xc4, 0x49, 0x5b, 0xf7, 0xce, 0x83, 0x98,
|
||||
0x2c, 0xde, 0x1a, 0xed, 0xae, 0xa0, 0x25, 0x63, 0xb4, 0xd3, 0x68, 0xe7, 0xd2, 0x78, 0xee, 0xc0,
|
||||
0x52, 0xa6, 0xa9, 0xed, 0x82, 0x4c, 0x9e, 0x60, 0x76, 0x41, 0xce, 0x98, 0x0a, 0xde, 0x5d, 0x5d,
|
||||
0x90, 0xd4, 0x6a, 0xa7, 0xe2, 0xe5, 0x52, 0x51, 0x45, 0xb1, 0x7a, 0xc0, 0x2e, 0xca, 0xa4, 0x36,
|
||||
0xb7, 0x8b, 0x32, 0xb1, 0x81, 0x4c, 0x51, 0x12, 0x9b, 0x9d, 0xc2, 0x56, 0x36, 0x85, 0x47, 0x73,
|
||||
0xdf, 0xb8, 0xac, 0xdb, 0x2d, 0xe9, 0xa6, 0xda, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xfa, 0xa8,
|
||||
0xa4, 0x63, 0xae, 0x0e, 0x00, 0x00,
|
||||
// 773 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xcd, 0x6e, 0xd3, 0x40,
|
||||
0x10, 0x96, 0xf3, 0x57, 0x3a, 0x09, 0x69, 0xbb, 0xfd, 0x21, 0x72, 0x2b, 0x1a, 0x8c, 0x90, 0xaa,
|
||||
0xd2, 0x26, 0x90, 0xc2, 0xa5, 0x08, 0x50, 0x4a, 0x0f, 0x94, 0xbf, 0x43, 0x0a, 0x08, 0xb8, 0x44,
|
||||
0x9b, 0x78, 0x6b, 0x2c, 0x1c, 0x7b, 0xd9, 0xdd, 0xb4, 0xf4, 0x86, 0x10, 0x48, 0xbd, 0x12, 0x9e,
|
||||
0x80, 0x57, 0xe1, 0xc0, 0x8d, 0x0b, 0xbc, 0x02, 0x0f, 0x82, 0x6c, 0xaf, 0x69, 0xd6, 0x0e, 0x6d,
|
||||
0x4a, 0x2b, 0xe8, 0x29, 0x91, 0xe7, 0xfb, 0xbe, 0x99, 0x9d, 0x6f, 0x76, 0x16, 0xe0, 0x25, 0x71,
|
||||
0x3a, 0x15, 0xca, 0x3c, 0xe1, 0x21, 0xf0, 0x28, 0x71, 0xa9, 0x2d, 0x98, 0xfd, 0x46, 0x9f, 0xb5,
|
||||
0x3c, 0xcf, 0x72, 0x48, 0x35, 0x88, 0xb4, 0xba, 0x5b, 0x55, 0xd2, 0xa1, 0x62, 0x37, 0x04, 0xea,
|
||||
0xe7, 0xe3, 0xc1, 0x1d, 0x86, 0x29, 0x25, 0x8c, 0xcb, 0xf8, 0x7c, 0x3c, 0x2e, 0xec, 0x0e, 0xe1,
|
||||
0x02, 0x77, 0xa8, 0x04, 0xcc, 0x49, 0x00, 0xa6, 0x76, 0x15, 0xbb, 0xae, 0x27, 0xb0, 0xb0, 0x3d,
|
||||
0x37, 0xa2, 0x2f, 0x05, 0x3f, 0xed, 0x65, 0x8b, 0xb8, 0xcb, 0x7c, 0x07, 0x5b, 0x16, 0x61, 0x55,
|
||||
0x8f, 0x06, 0x88, 0x24, 0xda, 0xd8, 0xcb, 0xc0, 0x48, 0x83, 0x38, 0x04, 0x73, 0x82, 0x6e, 0x43,
|
||||
0x81, 0x85, 0x7f, 0x9b, 0x2e, 0xee, 0x90, 0x92, 0x56, 0xd6, 0x16, 0xf2, 0xb5, 0xb9, 0x4a, 0x98,
|
||||
0xae, 0x12, 0xd5, 0x53, 0xd9, 0x14, 0xcc, 0x76, 0xad, 0xa7, 0xd8, 0xe9, 0x92, 0x46, 0x5e, 0x32,
|
||||
0x1e, 0xe1, 0x0e, 0x41, 0xd7, 0x61, 0x64, 0x9b, 0x30, 0x6e, 0x7b, 0x6e, 0x29, 0x15, 0x70, 0x67,
|
||||
0x13, 0xdc, 0x0d, 0x57, 0xac, 0xd4, 0x42, 0x6a, 0x84, 0x45, 0xab, 0x30, 0xea, 0xe7, 0xe3, 0x14,
|
||||
0xb7, 0x49, 0x29, 0x3d, 0x44, 0xd2, 0x7d, 0x38, 0xba, 0x06, 0x39, 0x2e, 0xb0, 0xe8, 0xf2, 0x52,
|
||||
0x66, 0x08, 0xa2, 0xc4, 0xa2, 0x5b, 0x90, 0x37, 0x09, 0x6f, 0x33, 0x3b, 0xe8, 0x4b, 0x29, 0x3b,
|
||||
0xcc, 0x41, 0xfb, 0x08, 0xe8, 0x1e, 0x4c, 0x6e, 0xd9, 0x8c, 0x8b, 0xa6, 0x49, 0xa8, 0xe3, 0xed,
|
||||
0x12, 0xb3, 0xe9, 0x7b, 0x54, 0xca, 0x05, 0x3a, 0x7a, 0x42, 0xe7, 0x71, 0x64, 0x60, 0x63, 0x22,
|
||||
0xa0, 0xad, 0x4b, 0x96, 0xff, 0x1d, 0xdd, 0x05, 0xe4, 0xe0, 0x84, 0xd4, 0xc8, 0xa1, 0x52, 0xe3,
|
||||
0x3e, 0x4b, 0x51, 0xba, 0x09, 0x05, 0x93, 0x38, 0x44, 0x44, 0x1a, 0x67, 0x0e, 0xd5, 0xc8, 0x4b,
|
||||
0xbc, 0xff, 0xc5, 0xf8, 0x90, 0x82, 0xc9, 0x07, 0x36, 0x17, 0x72, 0x1c, 0x78, 0x83, 0xbc, 0xee,
|
||||
0x12, 0x2e, 0xd0, 0x0d, 0x00, 0xd6, 0x75, 0x7d, 0xc5, 0xa6, 0x6d, 0x0e, 0x35, 0x14, 0xa3, 0x12,
|
||||
0xbf, 0x61, 0x26, 0x66, 0x2a, 0x75, 0xd4, 0x99, 0xfa, 0xe7, 0xc3, 0x61, 0xdc, 0x57, 0xda, 0xd0,
|
||||
0x20, 0x9c, 0x7a, 0x2e, 0xf7, 0xc5, 0xa2, 0xba, 0x9a, 0x9c, 0x88, 0x92, 0x56, 0x4e, 0x2f, 0xe4,
|
||||
0x6b, 0x93, 0x95, 0xfd, 0x5b, 0x5f, 0x89, 0x18, 0x20, 0x71, 0x9b, 0x44, 0x18, 0x5f, 0x52, 0x30,
|
||||
0x75, 0x87, 0x11, 0x2c, 0xc8, 0x6f, 0xbd, 0xb0, 0xab, 0x2b, 0x90, 0xc3, 0x94, 0x0e, 0xdb, 0xd1,
|
||||
0x2c, 0xa6, 0x74, 0xc3, 0xf4, 0xad, 0x90, 0x97, 0xc6, 0x27, 0x0e, 0xd3, 0xcb, 0x51, 0x89, 0x0f,
|
||||
0xc9, 0x7d, 0x3e, 0xa6, 0x8f, 0xe7, 0x63, 0xe6, 0x58, 0x3e, 0x66, 0x8f, 0xe4, 0xa3, 0xf1, 0x0c,
|
||||
0xa6, 0x63, 0x3d, 0x94, 0x9e, 0x1c, 0x77, 0x63, 0x19, 0xdf, 0x35, 0x98, 0x7e, 0x42, 0x2d, 0x86,
|
||||
0xcd, 0xb8, 0x3f, 0xff, 0x77, 0xea, 0x55, 0xa3, 0xd3, 0x47, 0x32, 0xda, 0x78, 0x0e, 0x33, 0xf1,
|
||||
0x33, 0x9d, 0x54, 0xbf, 0xbe, 0x69, 0x30, 0xd3, 0xf0, 0x1c, 0xa7, 0x85, 0xdb, 0xaf, 0x4e, 0x55,
|
||||
0xc3, 0xfa, 0x9e, 0x9e, 0xf4, 0xf0, 0x4f, 0x8f, 0xf1, 0x51, 0x83, 0x73, 0x89, 0xf3, 0x9c, 0x50,
|
||||
0xb3, 0xfe, 0xf2, 0x39, 0x34, 0xbe, 0x6a, 0x30, 0xb5, 0x1e, 0xec, 0xe5, 0x53, 0xd5, 0xe1, 0x2b,
|
||||
0x90, 0xa5, 0x5d, 0x66, 0x45, 0x4b, 0x38, 0xf9, 0xac, 0xac, 0x79, 0x9e, 0x23, 0xb7, 0x55, 0x00,
|
||||
0xf4, 0xaf, 0x6d, 0xec, 0x1c, 0x27, 0xd4, 0xd9, 0xda, 0xe7, 0x2c, 0x14, 0xa5, 0xe8, 0x43, 0xec,
|
||||
0x62, 0x8b, 0x30, 0xb4, 0x03, 0x85, 0xfe, 0xc7, 0x0b, 0xcd, 0xf7, 0x6f, 0xe6, 0x01, 0xcf, 0x9a,
|
||||
0xfe, 0x27, 0x40, 0x54, 0xa5, 0x71, 0xa9, 0x57, 0x2f, 0xa2, 0x40, 0xb4, 0x2c, 0x43, 0xef, 0x7e,
|
||||
0xfc, 0xfc, 0x94, 0x2a, 0xa2, 0x42, 0x75, 0xfb, 0x6a, 0x95, 0x45, 0x89, 0xde, 0x6a, 0x70, 0x56,
|
||||
0xd9, 0x4e, 0xa8, 0xdc, 0xaf, 0x3c, 0x68, 0xf9, 0xeb, 0x17, 0x0e, 0x40, 0xc8, 0xec, 0x8b, 0xbd,
|
||||
0xfa, 0x38, 0x2a, 0x86, 0x31, 0x25, 0xff, 0x84, 0xae, 0xe4, 0x5f, 0xd5, 0x16, 0xd1, 0x7b, 0x0d,
|
||||
0x8a, 0xea, 0x8d, 0x47, 0x4a, 0x86, 0x81, 0x1b, 0x4e, 0x37, 0x0e, 0x82, 0xc8, 0x2a, 0x2e, 0xf7,
|
||||
0xea, 0x13, 0x68, 0x4c, 0x06, 0xd5, 0x32, 0x6a, 0x89, 0x32, 0xf6, 0x34, 0x18, 0x8b, 0x5d, 0x26,
|
||||
0xa4, 0x24, 0x19, 0xbc, 0x39, 0xf4, 0x8b, 0x07, 0x62, 0x64, 0x25, 0x4b, 0xbd, 0x3a, 0x42, 0xe3,
|
||||
0x51, 0x54, 0x2d, 0xc5, 0x48, 0x94, 0xe2, 0x9b, 0xa2, 0xcc, 0x9e, 0x6a, 0xca, 0xa0, 0xeb, 0xa5,
|
||||
0x9a, 0x32, 0x70, 0x70, 0xa5, 0x29, 0x61, 0x4c, 0x2d, 0x61, 0x31, 0x5e, 0xc2, 0x5a, 0xe6, 0x45,
|
||||
0x8a, 0xb6, 0x5a, 0xb9, 0x60, 0x98, 0x57, 0x7e, 0x05, 0x00, 0x00, 0xff, 0xff, 0x0a, 0xf9, 0x10,
|
||||
0xa6, 0x2a, 0x0c, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@@ -856,7 +714,6 @@ const _ = grpc.SupportPackageIsVersion4
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
|
||||
type ReleaseManagerClient interface {
|
||||
ListReleases(ctx context.Context, in *ListReleasesRequest, opts ...grpc.CallOption) (*ListReleaseResponse, error)
|
||||
DescribeRelease(ctx context.Context, in *DescribeReleaseRequest, opts ...grpc.CallOption) (*DescribeReleaseResponse, error)
|
||||
CreateRelease(ctx context.Context, in *CreateReleaseRequest, opts ...grpc.CallOption) (*CreateReleaseResponse, error)
|
||||
UpgradeRelease(ctx context.Context, in *UpgradeReleaseRequest, opts ...grpc.CallOption) (*UpgradeReleaseResponse, error)
|
||||
RollbackRelease(ctx context.Context, in *RollbackReleaseRequest, opts ...grpc.CallOption) (*RollbackReleaseResponse, error)
|
||||
@@ -880,15 +737,6 @@ func (c *releaseManagerClient) ListReleases(ctx context.Context, in *ListRelease
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *releaseManagerClient) DescribeRelease(ctx context.Context, in *DescribeReleaseRequest, opts ...grpc.CallOption) (*DescribeReleaseResponse, error) {
|
||||
out := new(DescribeReleaseResponse)
|
||||
err := c.cc.Invoke(ctx, "/openpitrix.ReleaseManager/DescribeRelease", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *releaseManagerClient) CreateRelease(ctx context.Context, in *CreateReleaseRequest, opts ...grpc.CallOption) (*CreateReleaseResponse, error) {
|
||||
out := new(CreateReleaseResponse)
|
||||
err := c.cc.Invoke(ctx, "/openpitrix.ReleaseManager/CreateRelease", in, out, opts...)
|
||||
@@ -928,7 +776,6 @@ func (c *releaseManagerClient) DeleteRelease(ctx context.Context, in *DeleteRele
|
||||
// ReleaseManagerServer is the server API for ReleaseManager service.
|
||||
type ReleaseManagerServer interface {
|
||||
ListReleases(context.Context, *ListReleasesRequest) (*ListReleaseResponse, error)
|
||||
DescribeRelease(context.Context, *DescribeReleaseRequest) (*DescribeReleaseResponse, error)
|
||||
CreateRelease(context.Context, *CreateReleaseRequest) (*CreateReleaseResponse, error)
|
||||
UpgradeRelease(context.Context, *UpgradeReleaseRequest) (*UpgradeReleaseResponse, error)
|
||||
RollbackRelease(context.Context, *RollbackReleaseRequest) (*RollbackReleaseResponse, error)
|
||||
@@ -942,9 +789,6 @@ type UnimplementedReleaseManagerServer struct {
|
||||
func (*UnimplementedReleaseManagerServer) ListReleases(ctx context.Context, req *ListReleasesRequest) (*ListReleaseResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListReleases not implemented")
|
||||
}
|
||||
func (*UnimplementedReleaseManagerServer) DescribeRelease(ctx context.Context, req *DescribeReleaseRequest) (*DescribeReleaseResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DescribeRelease not implemented")
|
||||
}
|
||||
func (*UnimplementedReleaseManagerServer) CreateRelease(ctx context.Context, req *CreateReleaseRequest) (*CreateReleaseResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method CreateRelease not implemented")
|
||||
}
|
||||
@@ -980,24 +824,6 @@ func _ReleaseManager_ListReleases_Handler(srv interface{}, ctx context.Context,
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _ReleaseManager_DescribeRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(DescribeReleaseRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(ReleaseManagerServer).DescribeRelease(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/openpitrix.ReleaseManager/DescribeRelease",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(ReleaseManagerServer).DescribeRelease(ctx, req.(*DescribeReleaseRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _ReleaseManager_CreateRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(CreateReleaseRequest)
|
||||
if err := dec(in); err != nil {
|
||||
@@ -1078,10 +904,6 @@ var _ReleaseManager_serviceDesc = grpc.ServiceDesc{
|
||||
MethodName: "ListReleases",
|
||||
Handler: _ReleaseManager_ListReleases_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DescribeRelease",
|
||||
Handler: _ReleaseManager_DescribeRelease_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "CreateRelease",
|
||||
Handler: _ReleaseManager_CreateRelease_Handler,
|
||||
|
||||
77
vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.gw.go
generated
vendored
77
vendor/openpitrix.io/openpitrix/pkg/pb/helm.pb.gw.go
generated
vendored
@@ -64,39 +64,6 @@ func local_request_ReleaseManager_ListReleases_0(ctx context.Context, marshaler
|
||||
|
||||
}
|
||||
|
||||
var (
|
||||
filter_ReleaseManager_DescribeRelease_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
|
||||
)
|
||||
|
||||
func request_ReleaseManager_DescribeRelease_0(ctx context.Context, marshaler runtime.Marshaler, client ReleaseManagerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq DescribeReleaseRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
|
||||
if err := req.ParseForm(); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ReleaseManager_DescribeRelease_0); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
msg, err := client.DescribeRelease(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
|
||||
}
|
||||
|
||||
func local_request_ReleaseManager_DescribeRelease_0(ctx context.Context, marshaler runtime.Marshaler, server ReleaseManagerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq DescribeReleaseRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
|
||||
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ReleaseManager_DescribeRelease_0); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
msg, err := server.DescribeRelease(ctx, &protoReq)
|
||||
return msg, metadata, err
|
||||
|
||||
}
|
||||
|
||||
func request_ReleaseManager_CreateRelease_0(ctx context.Context, marshaler runtime.Marshaler, client ReleaseManagerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq CreateReleaseRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
@@ -258,26 +225,6 @@ func RegisterReleaseManagerHandlerServer(ctx context.Context, mux *runtime.Serve
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("GET", pattern_ReleaseManager_DescribeRelease_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := local_request_ReleaseManager_DescribeRelease_0(rctx, inboundMarshaler, server, req, pathParams)
|
||||
ctx = runtime.NewServerMetadataContext(ctx, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
|
||||
forward_ReleaseManager_DescribeRelease_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("PUT", pattern_ReleaseManager_CreateRelease_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
@@ -419,26 +366,6 @@ func RegisterReleaseManagerHandlerClient(ctx context.Context, mux *runtime.Serve
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("GET", pattern_ReleaseManager_DescribeRelease_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateContext(ctx, mux, req)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_ReleaseManager_DescribeRelease_0(rctx, inboundMarshaler, client, req, pathParams)
|
||||
ctx = runtime.NewServerMetadataContext(ctx, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
|
||||
forward_ReleaseManager_DescribeRelease_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("PUT", pattern_ReleaseManager_CreateRelease_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
@@ -525,8 +452,6 @@ func RegisterReleaseManagerHandlerClient(ctx context.Context, mux *runtime.Serve
|
||||
var (
|
||||
pattern_ReleaseManager_ListReleases_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "releases"}, "", runtime.AssumeColonVerbOpt(true)))
|
||||
|
||||
pattern_ReleaseManager_DescribeRelease_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "release"}, "", runtime.AssumeColonVerbOpt(true)))
|
||||
|
||||
pattern_ReleaseManager_CreateRelease_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "releases"}, "", runtime.AssumeColonVerbOpt(true)))
|
||||
|
||||
pattern_ReleaseManager_UpgradeRelease_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "releases"}, "", runtime.AssumeColonVerbOpt(true)))
|
||||
@@ -539,8 +464,6 @@ var (
|
||||
var (
|
||||
forward_ReleaseManager_ListReleases_0 = runtime.ForwardResponseMessage
|
||||
|
||||
forward_ReleaseManager_DescribeRelease_0 = runtime.ForwardResponseMessage
|
||||
|
||||
forward_ReleaseManager_CreateRelease_0 = runtime.ForwardResponseMessage
|
||||
|
||||
forward_ReleaseManager_UpgradeRelease_0 = runtime.ForwardResponseMessage
|
||||
|
||||
154
vendor/openpitrix.io/openpitrix/pkg/pb/runtime_provider.pb.go
generated
vendored
154
vendor/openpitrix.io/openpitrix/pkg/pb/runtime_provider.pb.go
generated
vendored
@@ -126,12 +126,10 @@ type ParseClusterConfRequest struct {
|
||||
// required, configure
|
||||
Conf *wrappers.StringValue `protobuf:"bytes,3,opt,name=conf,proto3" json:"conf,omitempty"`
|
||||
// cluster in the runtime
|
||||
Cluster *Cluster `protobuf:"bytes,4,opt,name=cluster,proto3" json:"cluster,omitempty"`
|
||||
// kubernetes namespace
|
||||
Namespace *wrappers.StringValue `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
Cluster *Cluster `protobuf:"bytes,4,opt,name=cluster,proto3" json:"cluster,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *ParseClusterConfRequest) Reset() { *m = ParseClusterConfRequest{} }
|
||||
@@ -187,13 +185,6 @@ func (m *ParseClusterConfRequest) GetCluster() *Cluster {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *ParseClusterConfRequest) GetNamespace() *wrappers.StringValue {
|
||||
if m != nil {
|
||||
return m.Namespace
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type ParseClusterConfResponse struct {
|
||||
// cluster
|
||||
Cluster *Cluster `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
|
||||
@@ -1153,75 +1144,74 @@ func init() {
|
||||
func init() { proto.RegisterFile("runtime_provider.proto", fileDescriptor_2998074df425fa49) }
|
||||
|
||||
var fileDescriptor_2998074df425fa49 = []byte{
|
||||
// 1073 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x4f, 0xdc, 0x46,
|
||||
0x14, 0x96, 0x77, 0x81, 0xb0, 0x0f, 0xa1, 0xc0, 0xf0, 0xcb, 0xb5, 0x12, 0x7e, 0x38, 0xa9, 0x94,
|
||||
0xd2, 0xb2, 0x44, 0xa1, 0x87, 0xa8, 0xa8, 0x3d, 0x64, 0x83, 0xd4, 0x8d, 0x92, 0x14, 0x19, 0x44,
|
||||
0x25, 0xa4, 0x8a, 0x8e, 0xed, 0x61, 0x3b, 0x61, 0x99, 0x99, 0xce, 0xcc, 0x42, 0x93, 0x63, 0x0f,
|
||||
0xbd, 0xf4, 0x52, 0xf5, 0xd4, 0x53, 0xae, 0xbd, 0xf6, 0x4f, 0xac, 0xc6, 0x1e, 0x83, 0xed, 0xf5,
|
||||
0x6e, 0x5c, 0x8a, 0xda, 0x13, 0xac, 0xdf, 0xf7, 0xbd, 0xf9, 0xde, 0x9b, 0x99, 0x6f, 0x1e, 0x2c,
|
||||
0xcb, 0x01, 0xd3, 0xf4, 0x9c, 0x9c, 0x08, 0xc9, 0x2f, 0x68, 0x4c, 0x64, 0x5b, 0x48, 0xae, 0x39,
|
||||
0x02, 0x2e, 0x08, 0x13, 0x54, 0x4b, 0xfa, 0x93, 0xb7, 0xda, 0xe3, 0xbc, 0xd7, 0x27, 0xdb, 0x49,
|
||||
0x24, 0x1c, 0x9c, 0x6e, 0x5f, 0x4a, 0x2c, 0x04, 0x91, 0x2a, 0xc5, 0x7a, 0x6b, 0xe5, 0xb8, 0x49,
|
||||
0xa8, 0x34, 0x3e, 0x17, 0x16, 0x70, 0xcf, 0x02, 0xb0, 0xa0, 0xdb, 0x98, 0x31, 0xae, 0xb1, 0xa6,
|
||||
0x9c, 0x65, 0xf4, 0xcf, 0x92, 0x3f, 0xd1, 0x56, 0x8f, 0xb0, 0x2d, 0x75, 0x89, 0x7b, 0x3d, 0x22,
|
||||
0xb7, 0xb9, 0x48, 0x10, 0x15, 0xe8, 0xd9, 0xa8, 0x3f, 0x50, 0x3a, 0xd3, 0xe9, 0xcd, 0x5a, 0xfd,
|
||||
0xf6, 0x67, 0xeb, 0x0d, 0x0f, 0xed, 0xbf, 0xa0, 0xb1, 0x3a, 0x4b, 0xff, 0xf7, 0x7f, 0x73, 0x60,
|
||||
0x35, 0x20, 0x3d, 0x6a, 0x88, 0x41, 0x4a, 0xd8, 0xb7, 0xf5, 0x06, 0xe4, 0xc7, 0x01, 0x51, 0x1a,
|
||||
0x3d, 0x85, 0xe9, 0xac, 0x05, 0xae, 0xb3, 0xee, 0x3c, 0x9a, 0x79, 0x72, 0xaf, 0x9d, 0xca, 0x6e,
|
||||
0x67, 0x75, 0xb5, 0x0f, 0xb4, 0xa4, 0xac, 0x77, 0x84, 0xfb, 0x03, 0x12, 0x5c, 0xa1, 0xd1, 0xe7,
|
||||
0x30, 0x15, 0x71, 0x76, 0x4a, 0x7b, 0x6e, 0xa3, 0x06, 0xcf, 0x62, 0xfd, 0x57, 0xb0, 0x36, 0x52,
|
||||
0x91, 0x12, 0x9c, 0x29, 0x82, 0x36, 0xa1, 0xc1, 0xcf, 0xac, 0x18, 0x6f, 0x28, 0xe9, 0x33, 0xce,
|
||||
0xfb, 0x69, 0xca, 0x06, 0x3f, 0xf3, 0xff, 0x6a, 0xc0, 0xca, 0x3e, 0x96, 0x8a, 0x74, 0xd2, 0xf6,
|
||||
0x74, 0x38, 0x3b, 0xcd, 0x4a, 0xdb, 0x05, 0xc8, 0x76, 0x99, 0xc6, 0xb5, 0x8a, 0x6b, 0x59, 0x7c,
|
||||
0x37, 0x36, 0xe4, 0x0b, 0x22, 0x15, 0xe5, 0xcc, 0x90, 0xeb, 0x54, 0xd8, 0xb2, 0xf8, 0x6e, 0x8c,
|
||||
0x1e, 0xc3, 0x84, 0x29, 0xd7, 0x6d, 0xd6, 0xa0, 0x25, 0x48, 0xb4, 0x05, 0x77, 0xec, 0x06, 0xbb,
|
||||
0x13, 0x09, 0x69, 0xa1, 0x7d, 0x7d, 0x12, 0xdb, 0xb6, 0xb8, 0x20, 0xc3, 0xa0, 0x2f, 0xa0, 0xc5,
|
||||
0xf0, 0x39, 0x51, 0x02, 0x47, 0xc4, 0x9d, 0xac, 0x23, 0xee, 0x0a, 0xee, 0x77, 0xc1, 0x1d, 0xee,
|
||||
0x98, 0x6d, 0x7d, 0x4e, 0x86, 0xf3, 0x61, 0x19, 0xfe, 0x3b, 0x70, 0x0f, 0x44, 0x9f, 0xea, 0x17,
|
||||
0x3c, 0xec, 0x32, 0xcd, 0x0f, 0xb1, 0x3a, 0x53, 0xb7, 0xd2, 0xfd, 0x0d, 0x68, 0xbe, 0xe1, 0xa1,
|
||||
0x6d, 0xfb, 0xdd, 0xbc, 0x86, 0x17, 0x3c, 0x0c, 0x4c, 0xcc, 0xdf, 0x87, 0x8f, 0x2a, 0xd6, 0xb6,
|
||||
0x75, 0xec, 0x40, 0xcb, 0x5c, 0x83, 0x97, 0xf8, 0xed, 0x55, 0x25, 0x4b, 0xf9, 0x2c, 0x87, 0x59,
|
||||
0x30, 0xb8, 0xc6, 0xf9, 0x6f, 0x61, 0xf1, 0x6b, 0xcc, 0xe2, 0x3e, 0x39, 0x18, 0x84, 0xe6, 0xeb,
|
||||
0xad, 0x54, 0xf2, 0x10, 0x26, 0x4c, 0x2e, 0x5b, 0xca, 0x5c, 0x59, 0x44, 0x90, 0x44, 0xfd, 0x2f,
|
||||
0x61, 0xa9, 0xb4, 0xb4, 0x2d, 0x24, 0xa3, 0x3b, 0x63, 0xe9, 0x97, 0x80, 0xbe, 0xc5, 0x54, 0xff,
|
||||
0xf7, 0xba, 0x77, 0x61, 0xa1, 0xb0, 0xf0, 0x3f, 0x52, 0xfd, 0xb3, 0x03, 0x8b, 0x9d, 0x1f, 0x48,
|
||||
0x64, 0x78, 0x7c, 0x20, 0x23, 0x72, 0x2b, 0xc2, 0x73, 0x47, 0xb8, 0x51, 0xe3, 0x08, 0x77, 0x60,
|
||||
0xa9, 0xa4, 0xe1, 0x06, 0x2e, 0xf4, 0x8b, 0x03, 0xe8, 0x39, 0x51, 0x91, 0xa4, 0x21, 0x39, 0x12,
|
||||
0xd1, 0xad, 0xd4, 0xb1, 0x03, 0x53, 0x17, 0x22, 0xaa, 0x6b, 0x3e, 0x93, 0x17, 0x22, 0xea, 0xc6,
|
||||
0xfe, 0x7b, 0x07, 0x9a, 0x7b, 0x54, 0x18, 0x32, 0xa1, 0xa2, 0xee, 0xaa, 0x93, 0x84, 0x8a, 0xd4,
|
||||
0xb5, 0x8c, 0x4b, 0xd4, 0x5a, 0x2f, 0x41, 0x1a, 0x06, 0x8e, 0x63, 0x59, 0xcf, 0xe7, 0x0c, 0xd2,
|
||||
0xff, 0xb3, 0x09, 0xcd, 0x23, 0x11, 0xe5, 0xaa, 0x73, 0x6a, 0x57, 0x77, 0x03, 0x81, 0xbb, 0x30,
|
||||
0x13, 0x49, 0x82, 0x35, 0x39, 0x31, 0x5d, 0xb5, 0x3a, 0x87, 0x77, 0xf3, 0x30, 0x7b, 0xb8, 0x03,
|
||||
0x48, 0xe1, 0xe6, 0x03, 0xfa, 0x0a, 0x66, 0xe2, 0x64, 0x53, 0x93, 0x47, 0xd9, 0xfa, 0xf2, 0xf8,
|
||||
0x55, 0xf3, 0x04, 0xf3, 0x40, 0x2a, 0x8d, 0xf5, 0x40, 0xd5, 0x72, 0x68, 0x8b, 0x45, 0x5d, 0x98,
|
||||
0xd7, 0x12, 0x33, 0x45, 0x4d, 0x8e, 0x13, 0x9b, 0x60, 0xaa, 0x46, 0x82, 0xb9, 0x6b, 0xda, 0x41,
|
||||
0x9a, 0xca, 0x85, 0x3b, 0x6a, 0x10, 0x32, 0xa2, 0x95, 0x7b, 0x67, 0xbd, 0xf9, 0xa8, 0x15, 0x64,
|
||||
0x3f, 0x8d, 0xbf, 0x12, 0x2a, 0xdc, 0xe9, 0x61, 0x7f, 0xdd, 0xa3, 0x22, 0x30, 0x31, 0xff, 0x29,
|
||||
0x2c, 0x14, 0x8e, 0xb4, 0xbd, 0x16, 0x1b, 0xd0, 0xbc, 0x10, 0x91, 0xdd, 0xb5, 0x02, 0xd3, 0xa0,
|
||||
0x4c, 0xcc, 0xff, 0xd5, 0x81, 0xfb, 0x19, 0xd5, 0xde, 0xb7, 0xe7, 0x44, 0x63, 0xda, 0x57, 0xff,
|
||||
0xc7, 0x05, 0xff, 0x06, 0x56, 0x47, 0x89, 0xb9, 0xd9, 0xa3, 0xf7, 0x7b, 0x03, 0x96, 0x8f, 0x70,
|
||||
0x9f, 0xc6, 0x58, 0x13, 0x3b, 0xc2, 0xdc, 0x4a, 0x5d, 0x8f, 0x61, 0xe2, 0x1d, 0x67, 0x35, 0x4f,
|
||||
0xb7, 0x41, 0xa2, 0x97, 0x80, 0xb2, 0xe5, 0x22, 0x49, 0x62, 0xc2, 0x34, 0xc5, 0x7d, 0x7b, 0xc8,
|
||||
0xef, 0xe7, 0x6b, 0xb0, 0x32, 0x3b, 0x57, 0xa0, 0x60, 0x5e, 0x96, 0x3f, 0x99, 0xbb, 0xc2, 0x08,
|
||||
0x89, 0x4f, 0xd2, 0x1b, 0x60, 0x8f, 0xfb, 0x38, 0xe7, 0x03, 0x03, 0xef, 0x24, 0x68, 0x7f, 0x0f,
|
||||
0x56, 0x86, 0x7a, 0x72, 0x03, 0x23, 0x7d, 0xef, 0xc0, 0x62, 0xb6, 0x5b, 0xc7, 0x9c, 0x11, 0xf5,
|
||||
0xef, 0xc7, 0xd4, 0xea, 0x26, 0x35, 0x6e, 0xd6, 0x24, 0x7f, 0x0b, 0x96, 0x4a, 0xfa, 0x6c, 0x95,
|
||||
0x8b, 0x30, 0x69, 0xf6, 0x44, 0xb9, 0x4e, 0x72, 0xd3, 0xd2, 0x1f, 0x4f, 0xfe, 0x98, 0x86, 0xe5,
|
||||
0xd2, 0x98, 0xfb, 0x0a, 0x33, 0xdc, 0x23, 0x12, 0x49, 0x58, 0x19, 0x31, 0x08, 0xa3, 0xcd, 0x82,
|
||||
0xac, 0xb1, 0xf3, 0xbb, 0xf7, 0x69, 0x2d, 0xac, 0x15, 0xf9, 0x1d, 0xcc, 0x95, 0x47, 0x3f, 0xf4,
|
||||
0x20, 0x9f, 0x60, 0xc4, 0x28, 0xed, 0x3d, 0x1c, 0x0f, 0xb2, 0xe9, 0xbf, 0x87, 0xf9, 0xa1, 0x91,
|
||||
0x0c, 0x15, 0xa8, 0xa3, 0xa6, 0x45, 0xef, 0xe3, 0x0f, 0xa0, 0xec, 0x0a, 0x87, 0x30, 0x5b, 0x98,
|
||||
0x93, 0xd0, 0x7a, 0x9e, 0x57, 0x35, 0xbd, 0x79, 0x1b, 0x63, 0x10, 0x36, 0xeb, 0x6b, 0x98, 0xc9,
|
||||
0x4d, 0x31, 0x68, 0x35, 0xcf, 0x18, 0x9e, 0xab, 0xbc, 0xb5, 0x91, 0x71, 0x9b, 0xef, 0x18, 0xee,
|
||||
0x66, 0x87, 0xe4, 0xc0, 0x1a, 0xae, 0x9f, 0xe7, 0x94, 0x82, 0x59, 0xde, 0x07, 0x63, 0x31, 0xd7,
|
||||
0x1d, 0x28, 0xcc, 0x2b, 0xc5, 0x0e, 0x54, 0x8d, 0x53, 0xc5, 0x0e, 0x54, 0x0f, 0x3b, 0xaf, 0x61,
|
||||
0x26, 0x67, 0xf6, 0xc5, 0x0e, 0x0c, 0x0f, 0x36, 0xc5, 0x0e, 0x54, 0xbd, 0x12, 0x1c, 0x96, 0xab,
|
||||
0x4d, 0x17, 0x7d, 0x52, 0x45, 0xad, 0x7c, 0x25, 0xbc, 0xcd, 0x3a, 0xd0, 0xeb, 0x96, 0x97, 0xfc,
|
||||
0xa7, 0xd8, 0xf2, 0x6a, 0xc3, 0x2e, 0xb6, 0x7c, 0x94, 0x81, 0x1d, 0xc2, 0x6c, 0xe1, 0xce, 0x17,
|
||||
0x5b, 0x5e, 0x65, 0x57, 0xc5, 0x96, 0x57, 0x1a, 0xc6, 0xb3, 0x89, 0xe3, 0x86, 0x08, 0xc3, 0xa9,
|
||||
0xc4, 0xbd, 0x76, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x78, 0x6c, 0xff, 0xcb, 0x90, 0x10, 0x00,
|
||||
0x00,
|
||||
// 1059 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x6f, 0xdb, 0x36,
|
||||
0x14, 0x86, 0xec, 0xfc, 0x7c, 0x41, 0xd0, 0x44, 0xf9, 0xa5, 0x09, 0x6d, 0x7e, 0xa8, 0x1d, 0xd0,
|
||||
0x65, 0x8b, 0x53, 0x34, 0x3b, 0x14, 0x08, 0xb6, 0x43, 0xdd, 0x00, 0x73, 0xd1, 0x76, 0x81, 0x62,
|
||||
0x64, 0x40, 0x80, 0x21, 0xa3, 0x24, 0xc6, 0x63, 0xe3, 0x90, 0x1c, 0x49, 0x3b, 0x6b, 0x8f, 0x3b,
|
||||
0xec, 0xb2, 0xcb, 0xb0, 0xd3, 0x4e, 0xbd, 0xee, 0x1f, 0xdc, 0x1f, 0x30, 0x50, 0xa2, 0x62, 0x49,
|
||||
0x96, 0x3d, 0xcd, 0x33, 0xb6, 0x53, 0x62, 0xf1, 0xfb, 0x1e, 0xdf, 0xf7, 0xf1, 0xf1, 0xf1, 0xc1,
|
||||
0xa6, 0xe8, 0x51, 0x45, 0x6e, 0xf0, 0x25, 0x17, 0xac, 0x4f, 0x22, 0x2c, 0x1a, 0x5c, 0x30, 0xc5,
|
||||
0x6c, 0x60, 0x1c, 0x53, 0x4e, 0x94, 0x20, 0x3f, 0xba, 0xdb, 0x1d, 0xc6, 0x3a, 0x5d, 0x7c, 0x18,
|
||||
0xaf, 0x04, 0xbd, 0xab, 0xc3, 0x5b, 0x81, 0x38, 0xc7, 0x42, 0x26, 0x58, 0x77, 0xa7, 0xb8, 0xae,
|
||||
0x03, 0x4a, 0x85, 0x6e, 0xb8, 0x01, 0xdc, 0x37, 0x00, 0xc4, 0xc9, 0x21, 0xa2, 0x94, 0x29, 0xa4,
|
||||
0x08, 0xa3, 0x29, 0xfd, 0xb3, 0xf8, 0x4f, 0x78, 0xd0, 0xc1, 0xf4, 0x40, 0xde, 0xa2, 0x4e, 0x07,
|
||||
0x8b, 0x43, 0xc6, 0x63, 0x44, 0x09, 0x7a, 0x39, 0xec, 0xf6, 0xa4, 0x4a, 0xf3, 0x74, 0x97, 0x4d,
|
||||
0xfe, 0xe6, 0xe7, 0xe2, 0x5b, 0x16, 0x98, 0x7f, 0x41, 0x21, 0x79, 0x9d, 0xfc, 0xef, 0xfd, 0x6a,
|
||||
0xc1, 0xb6, 0x8f, 0x3b, 0x44, 0x13, 0xfd, 0x84, 0x70, 0x6a, 0xf4, 0xfa, 0xf8, 0x87, 0x1e, 0x96,
|
||||
0xca, 0x7e, 0x06, 0x0b, 0xa9, 0x05, 0x8e, 0xb5, 0x6b, 0x3d, 0x5e, 0x7a, 0x7a, 0xbf, 0x91, 0xa4,
|
||||
0xdd, 0x48, 0x75, 0x35, 0xce, 0x94, 0x20, 0xb4, 0x73, 0x8e, 0xba, 0x3d, 0xec, 0xdf, 0xa1, 0xed,
|
||||
0xcf, 0x61, 0x2e, 0x64, 0xf4, 0x8a, 0x74, 0x9c, 0x5a, 0x05, 0x9e, 0xc1, 0x7a, 0xaf, 0x61, 0x67,
|
||||
0x64, 0x46, 0x92, 0x33, 0x2a, 0xb1, 0xbd, 0x0f, 0x35, 0x76, 0x6d, 0x92, 0x71, 0x87, 0x82, 0x3e,
|
||||
0x67, 0xac, 0x9b, 0x84, 0xac, 0xb1, 0x6b, 0xef, 0x4f, 0x0b, 0xb6, 0x4e, 0x91, 0x90, 0xb8, 0x99,
|
||||
0xd8, 0xd3, 0x64, 0xf4, 0x2a, 0x95, 0x76, 0x0c, 0x90, 0x9e, 0x32, 0x89, 0x2a, 0x89, 0x5b, 0x34,
|
||||
0xf8, 0x56, 0xa4, 0xc9, 0x7d, 0x2c, 0x24, 0x61, 0x54, 0x93, 0xab, 0x28, 0x5c, 0x34, 0xf8, 0x56,
|
||||
0x64, 0x3f, 0x81, 0x19, 0x2d, 0xd7, 0xa9, 0x57, 0xa0, 0xc5, 0x48, 0xfb, 0x00, 0xe6, 0xcd, 0x01,
|
||||
0x3b, 0x33, 0x31, 0x69, 0xad, 0x31, 0xa8, 0xc4, 0x86, 0x11, 0xe7, 0xa7, 0x18, 0xaf, 0x05, 0xce,
|
||||
0xb0, 0x6a, 0x63, 0x5f, 0x26, 0x94, 0x55, 0x21, 0xd4, 0x7b, 0x70, 0xce, 0x78, 0x97, 0xa8, 0x97,
|
||||
0x2c, 0x68, 0x51, 0xc5, 0xda, 0x48, 0x5e, 0xcb, 0xa9, 0x38, 0xb8, 0x07, 0xf5, 0xb7, 0x2c, 0x30,
|
||||
0xd6, 0xdd, 0xcb, 0xe6, 0xf0, 0x92, 0x05, 0xbe, 0x5e, 0xf3, 0x4e, 0xe1, 0xa3, 0x92, 0xbd, 0x8d,
|
||||
0x8e, 0x23, 0x58, 0xd4, 0xa5, 0xfc, 0x0a, 0xbd, 0xbb, 0x53, 0xb2, 0x91, 0x8d, 0xd2, 0x4e, 0x17,
|
||||
0xfd, 0x01, 0xce, 0x7b, 0x07, 0xeb, 0x5f, 0x21, 0x1a, 0x75, 0xf1, 0x59, 0x2f, 0xd0, 0x5f, 0xa7,
|
||||
0xa2, 0xe4, 0x11, 0xcc, 0xe8, 0x58, 0x46, 0xca, 0x4a, 0x31, 0x09, 0x3f, 0x5e, 0xf5, 0xbe, 0x80,
|
||||
0x8d, 0xc2, 0xd6, 0x46, 0x48, 0x4a, 0xb7, 0xc6, 0xd2, 0x6f, 0xc1, 0xfe, 0x06, 0x11, 0xf5, 0xdf,
|
||||
0xe7, 0x7d, 0x0c, 0x6b, 0xb9, 0x8d, 0xff, 0x51, 0xd6, 0x3f, 0x59, 0xb0, 0xde, 0xfc, 0x1e, 0x87,
|
||||
0x9a, 0xc7, 0x7a, 0x22, 0xc4, 0x53, 0x49, 0x3c, 0x53, 0xc2, 0xb5, 0x0a, 0x25, 0xdc, 0x84, 0x8d,
|
||||
0x42, 0x0e, 0x13, 0x74, 0x92, 0x9f, 0x2d, 0xb0, 0x5f, 0x60, 0x19, 0x0a, 0x12, 0xe0, 0x73, 0x1e,
|
||||
0x4e, 0x45, 0xc7, 0x11, 0xcc, 0xf5, 0x79, 0x58, 0xb5, 0x81, 0xcc, 0xf6, 0x79, 0xd8, 0x8a, 0xbc,
|
||||
0x0f, 0x16, 0xd4, 0x4f, 0x08, 0xd7, 0x64, 0x4c, 0x78, 0xd5, 0x5d, 0x67, 0x31, 0xe1, 0x49, 0xe7,
|
||||
0xa1, 0xe8, 0x06, 0x57, 0xda, 0x2f, 0x46, 0x6a, 0x06, 0x8a, 0x22, 0x51, 0xad, 0x57, 0x69, 0xa4,
|
||||
0xf7, 0x47, 0x1d, 0xea, 0xe7, 0x3c, 0xcc, 0xa8, 0xb3, 0x2a, 0xab, 0x9b, 0x20, 0xc1, 0x63, 0x58,
|
||||
0x0a, 0x05, 0x46, 0x0a, 0x5f, 0x6a, 0x57, 0x4d, 0x9e, 0xc3, 0xa7, 0xd9, 0x4e, 0x1f, 0x5f, 0x1f,
|
||||
0x12, 0xb8, 0xfe, 0x60, 0x7f, 0x09, 0x4b, 0x51, 0x7c, 0xa8, 0xf1, 0xc3, 0x6a, 0x7a, 0xeb, 0xf8,
|
||||
0x5d, 0xb3, 0x04, 0xfd, 0xc8, 0x49, 0x85, 0x54, 0x4f, 0x3a, 0xb3, 0x55, 0x1e, 0xb9, 0x04, 0x6b,
|
||||
0xb7, 0x60, 0x55, 0x09, 0x44, 0x25, 0xd1, 0x31, 0x2e, 0x4d, 0x80, 0xb9, 0x0a, 0x01, 0x56, 0x06,
|
||||
0xb4, 0xb3, 0x24, 0x94, 0x03, 0xf3, 0xb2, 0x17, 0x50, 0xac, 0xa4, 0x33, 0xbf, 0x5b, 0x7f, 0xbc,
|
||||
0xe8, 0xa7, 0x3f, 0x75, 0x7f, 0xc5, 0x84, 0x3b, 0x0b, 0xc3, 0xfd, 0xf5, 0x84, 0x70, 0x5f, 0xaf,
|
||||
0x79, 0xcf, 0x60, 0x2d, 0x57, 0xd2, 0xe6, 0x5a, 0xec, 0x41, 0xbd, 0xcf, 0x43, 0x73, 0x6a, 0x39,
|
||||
0xa6, 0x46, 0xe9, 0x35, 0xef, 0x17, 0x0b, 0x1e, 0xa4, 0x54, 0x73, 0xdf, 0x5e, 0x60, 0x85, 0x48,
|
||||
0x57, 0xfe, 0x1f, 0x17, 0xfc, 0x6b, 0xd8, 0x1e, 0x95, 0xcc, 0x64, 0x8f, 0xde, 0x6f, 0x35, 0xd8,
|
||||
0x3c, 0x47, 0x5d, 0x12, 0x21, 0x85, 0xcd, 0x18, 0x32, 0x15, 0x5d, 0x4f, 0x60, 0xe6, 0x3d, 0xa3,
|
||||
0x15, 0xab, 0x5b, 0x23, 0xed, 0x57, 0x60, 0xa7, 0xdb, 0x85, 0x02, 0x47, 0x98, 0x2a, 0x82, 0xba,
|
||||
0xa6, 0xc8, 0x1f, 0x64, 0x35, 0x98, 0x34, 0x9b, 0x77, 0x20, 0x7f, 0x55, 0x14, 0x3f, 0xe9, 0xbb,
|
||||
0x42, 0x31, 0x8e, 0x2e, 0x93, 0x1b, 0x60, 0xca, 0x7d, 0x5c, 0xe7, 0x03, 0x0d, 0x6f, 0xc6, 0x68,
|
||||
0xef, 0x04, 0xb6, 0x86, 0x3c, 0x99, 0xa0, 0x91, 0x7e, 0xb0, 0x60, 0x3d, 0x3d, 0xad, 0x0b, 0x46,
|
||||
0xb1, 0xfc, 0xf7, 0xa3, 0x66, 0xb9, 0x49, 0xb5, 0xc9, 0x4c, 0xf2, 0x0e, 0x60, 0xa3, 0x90, 0x9f,
|
||||
0x51, 0xb9, 0x0e, 0xb3, 0xfa, 0x4c, 0xa4, 0x63, 0xc5, 0x37, 0x2d, 0xf9, 0xf1, 0xf4, 0xf7, 0x05,
|
||||
0xd8, 0x2c, 0x8c, 0xaa, 0xaf, 0x11, 0x45, 0x1d, 0x2c, 0x6c, 0x01, 0x5b, 0x23, 0x86, 0x59, 0x7b,
|
||||
0x3f, 0x97, 0xd6, 0xd8, 0x19, 0xdc, 0xfd, 0xb4, 0x12, 0xd6, 0x24, 0xf9, 0x2d, 0xac, 0x14, 0x47,
|
||||
0x3f, 0xfb, 0x61, 0x36, 0xc0, 0x88, 0x71, 0xd8, 0x7d, 0x34, 0x1e, 0x64, 0xc2, 0x7f, 0x07, 0xab,
|
||||
0x43, 0x23, 0x99, 0x9d, 0xa3, 0x8e, 0x9a, 0x16, 0xdd, 0x8f, 0xff, 0x06, 0x65, 0x76, 0x68, 0xc3,
|
||||
0x72, 0x6e, 0x4e, 0xb2, 0x77, 0xb3, 0xbc, 0xb2, 0xe9, 0xcd, 0xdd, 0x1b, 0x83, 0x30, 0x51, 0xdf,
|
||||
0xc0, 0x52, 0x66, 0x8a, 0xb1, 0xb7, 0xb3, 0x8c, 0xe1, 0xb9, 0xca, 0xdd, 0x19, 0xb9, 0x6e, 0xe2,
|
||||
0x5d, 0xc0, 0xbd, 0xb4, 0x48, 0xce, 0x4c, 0xc3, 0xf5, 0xb2, 0x9c, 0xc2, 0x62, 0x1a, 0xf7, 0xe1,
|
||||
0x58, 0xcc, 0xc0, 0x81, 0xdc, 0xbc, 0x92, 0x77, 0xa0, 0x6c, 0x9c, 0xca, 0x3b, 0x50, 0x3e, 0xec,
|
||||
0xbc, 0x81, 0xa5, 0x4c, 0xb3, 0xcf, 0x3b, 0x30, 0x3c, 0xd8, 0xe4, 0x1d, 0x28, 0x7b, 0x25, 0x18,
|
||||
0x6c, 0x96, 0x37, 0x5d, 0xfb, 0x93, 0x32, 0x6a, 0xe9, 0x2b, 0xe1, 0xee, 0x57, 0x81, 0x0e, 0x2c,
|
||||
0x2f, 0xf4, 0x9f, 0xbc, 0xe5, 0xe5, 0x0d, 0x3b, 0x6f, 0xf9, 0xa8, 0x06, 0xd6, 0x86, 0xe5, 0xdc,
|
||||
0x9d, 0xcf, 0x5b, 0x5e, 0xd6, 0xae, 0xf2, 0x96, 0x97, 0x36, 0x8c, 0xe7, 0x33, 0x17, 0x35, 0x1e,
|
||||
0x04, 0x73, 0x71, 0xf7, 0x3a, 0xfa, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x66, 0xae, 0xc1, 0x8e, 0x54,
|
||||
0x10, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
||||
74
vendor/openpitrix.io/openpitrix/pkg/version/gen_helper.go
generated
vendored
74
vendor/openpitrix.io/openpitrix/pkg/version/gen_helper.go
generated
vendored
@@ -1,74 +0,0 @@
|
||||
// Copyright 2018 The OpenPitrix Authors. All rights reserved.
|
||||
// Use of this source code is governed by a Apache license
|
||||
// that can be found in the LICENSE file.
|
||||
|
||||
// +build ignore
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os/exec"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func main() {
|
||||
version, gitSha1Version := getAppVersion()
|
||||
buildTime := time.Now().Format("2006-01-02 15:04:05")
|
||||
|
||||
data := make_update_version_go_file(version, gitSha1Version, buildTime)
|
||||
|
||||
err := ioutil.WriteFile("./z_update_version.go", []byte(data), 0666)
|
||||
if err != nil {
|
||||
log.Fatalf("ioutil.WriteFile: err = %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("%s (%s)\n", version, gitSha1Version)
|
||||
fmt.Println(buildTime)
|
||||
}
|
||||
|
||||
func make_update_version_go_file(version, gitSha1Version, buildTime string) string {
|
||||
return fmt.Sprintf(`// Copyright 2018 The OpenPitrix Authors. All rights reserved.
|
||||
// Use of this source code is governed by a Apache license
|
||||
// that can be found in the LICENSE file.
|
||||
|
||||
// Auto generated by 'go run gen_helper.go', DO NOT EDIT.
|
||||
|
||||
package version
|
||||
|
||||
func init() {
|
||||
ShortVersion = "%s"
|
||||
GitSha1Version = "%s"
|
||||
BuildDate = "%s"
|
||||
}
|
||||
`,
|
||||
version,
|
||||
gitSha1Version,
|
||||
buildTime,
|
||||
)
|
||||
}
|
||||
|
||||
func getAppVersion() (version, gitSha1Version string) {
|
||||
// VERSION=`git describe --tags --always --dirty="-dev"`
|
||||
versionData, err := exec.Command(
|
||||
`git`, `describe`, `--tags`, `--always`, `--dirty=-dev`,
|
||||
).CombinedOutput()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// GIT_SHA1=`git show --quiet --pretty=format:%H`
|
||||
gitSha1VersionData, err := exec.Command(
|
||||
`git`, `show`, `--quiet`, `--pretty=format:%H`,
|
||||
).CombinedOutput()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
version = strings.TrimSpace(string(versionData))
|
||||
gitSha1Version = strings.TrimSpace(string(gitSha1VersionData))
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user