From bc48ec07a8cb85c43a8794b8780c7f732af010d1 Mon Sep 17 00:00:00 2001 From: Hiddify <114227601+hiddify-com@users.noreply.github.com> Date: Fri, 31 May 2024 13:08:55 +0200 Subject: [PATCH] add warp in warp & reserved & more more --- build_windows.bat | 2 +- cmd/cmd_config.go | 32 +++-- cmd/cmd_run.go | 12 +- cmd/cmd_warp.go | 36 +----- config/config.go | 25 +++- config/outbound.go | 58 +-------- config/parser.go | 2 +- config/warp.go | 83 ++++++++++-- config/warp_account.go | 4 +- custom/custom.go | 1 + go.mod | 3 +- go.sum | 6 +- hiddifyrpc/hiddify.pb.go | 263 ++++++++++++++++++++------------------ hiddifyrpc/hiddify.proto | 1 + mobile/mobile.go | 7 + v2/custom.go | 6 + v2/example_server/main.go | 2 +- v2/standalone.go | 7 +- v2/warp.go | 1 + 19 files changed, 288 insertions(+), 263 deletions(-) diff --git a/build_windows.bat b/build_windows.bat index 1604054..153248a 100644 --- a/build_windows.bat +++ b/build_windows.bat @@ -10,7 +10,7 @@ go build -trimpath -tags with_gvisor,with_quic,with_wireguard,with_ech,with_utls go get github.com/akavel/rsrc go install github.com/akavel/rsrc -rsrc -ico .\assets\images\hiddify-cli.ico -o cli\bydll\cli.syso +rsrc -ico .\assets\hiddify-cli.ico -o cli\bydll\cli.syso copy bin\libcore.dll . set CGO_LDFLAGS="libcore.dll" diff --git a/cmd/cmd_config.go b/cmd/cmd_config.go index 8e5b64f..adea138 100644 --- a/cmd/cmd_config.go +++ b/cmd/cmd_config.go @@ -14,19 +14,19 @@ import ( "github.com/spf13/cobra" ) -var defaultConfigs config.ConfigOptions -var commandBuildOutputPath string +var ( + hiddifySettingPath string + configPath string + defaultConfigs config.ConfigOptions = *config.DefaultConfigOptions() + commandBuildOutputPath string +) var commandBuild = &cobra.Command{ Use: "build", Short: "Build configuration", - Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - var optionsPath string - if len(args) > 1 { - optionsPath = args[1] - } - err := build(args[0], optionsPath) + + err := build(configPath, hiddifySettingPath) if err != nil { log.Fatal(err) } @@ -36,9 +36,8 @@ var commandBuild = &cobra.Command{ var commandCheck = &cobra.Command{ Use: "check", Short: "Check configuration", - Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { - err := check(args[0]) + err := check(configPath) if err != nil { log.Fatal(err) } @@ -139,11 +138,21 @@ func readConfigOptionsAt(path string) (*config.ConfigOptions, error) { return nil, err } } + if options.Warp2.WireguardConfigStr != "" { + err := json.Unmarshal([]byte(options.Warp2.WireguardConfigStr), &options.Warp2.WireguardConfig) + if err != nil { + return nil, err + } + } return &options, nil } func addHConfigFlags(commandRun *cobra.Command) { + + commandRun.Flags().StringVarP(&configPath, "config", "c", "", "proxy config path or url") + commandRun.MarkFlagRequired("config") + commandRun.Flags().StringVarP(&hiddifySettingPath, "hiddify", "d", "", "Hiddify Setting JSON Path") commandRun.Flags().BoolVar(&defaultConfigs.EnableFullConfig, "full-config", false, "allows including tags other than output") commandRun.Flags().StringVar(&defaultConfigs.LogLevel, "log", "warn", "log level") commandRun.Flags().BoolVar(&defaultConfigs.InboundOptions.EnableTun, "tun", false, "Enable Tun") @@ -161,5 +170,6 @@ func addHConfigFlags(commandRun *cobra.Command) { commandRun.Flags().StringVar(&defaultConfigs.RemoteDnsAddress, "dns-remote", "1.1.1.1", "RemoteDNS (1.1.1.1, https://1.1.1.1/dns-query)") commandRun.Flags().StringVar(&defaultConfigs.DirectDnsAddress, "dns-direct", "1.1.1.1", "DirectDNS (1.1.1.1, https://1.1.1.1/dns-query)") - + commandRun.Flags().StringVar(&defaultConfigs.ClashApiSecret, "web-secret", "", "Web Server Secret") + commandRun.Flags().Uint16Var(&defaultConfigs.ClashApiPort, "web-port", 6756, "Web Server Port") } diff --git a/cmd/cmd_run.go b/cmd/cmd_run.go index a8d5425..e71f8c5 100644 --- a/cmd/cmd_run.go +++ b/cmd/cmd_run.go @@ -6,11 +6,6 @@ import ( "github.com/spf13/cobra" ) -var ( - hiddifySettingPath string - configPath string -) - var commandRun = &cobra.Command{ Use: "run", Short: "run", @@ -19,11 +14,10 @@ var commandRun = &cobra.Command{ } func init() { - commandRun.PersistentFlags().BoolP("help", "", false, "help for this command") - commandRun.Flags().StringVarP(&hiddifySettingPath, "hiddify", "h", "", "Hiddify Setting JSON Path") - commandRun.Flags().StringVarP(&configPath, "config", "c", "", "proxy config path or url") + // commandRun.PersistentFlags().BoolP("help", "", false, "help for this command") + // commandRun.Flags().StringVarP(&hiddifySettingPath, "hiddify", "d", "", "Hiddify Setting JSON Path") + addHConfigFlags(commandRun) - commandRun.MarkFlagRequired("config") mainCommand.AddCommand(commandRun) } diff --git a/cmd/cmd_warp.go b/cmd/cmd_warp.go index 718449d..e300300 100644 --- a/cmd/cmd_warp.go +++ b/cmd/cmd_warp.go @@ -4,7 +4,7 @@ import ( "bufio" "encoding/json" "fmt" - "net/netip" + "os" "strings" @@ -62,40 +62,6 @@ type SingboxConfig struct { MTU int `json:"mtu"` } -func wireGuardToSingbox(wgConfig WireGuardConfig, server string, port uint16) (*T.Outbound, error) { - // splt := strings.Split(wgConfig.Peer.Endpoint, ":") - // port, err := strconv.Atoi(splt[1]) - // if err != nil { - // fmt.Printf("%v", err) - // return nil - // } - out := T.Outbound{ - Type: "wireguard", - Tag: "WARP", - WireGuardOptions: T.WireGuardOutboundOptions{ - ServerOptions: T.ServerOptions{ - Server: server, - ServerPort: port, - }, - - PrivateKey: wgConfig.Interface.PrivateKey, - PeerPublicKey: wgConfig.Peer.PublicKey, - Reserved: []uint8{0, 0, 0}, - MTU: 1280, - }, - } - - for _, addr := range wgConfig.Interface.Address { - prefix, err := netip.ParsePrefix(addr) - if err != nil { - return nil, err // Handle the error appropriately - } - out.WireGuardOptions.LocalAddress = append(out.WireGuardOptions.LocalAddress, prefix) - - } - - return &out, nil -} func readWireGuardConfig(filePath string) (WireGuardConfig, error) { file, err := os.Open(filePath) if err != nil { diff --git a/config/config.go b/config/config.go index 7011fdd..9703281 100644 --- a/config/config.go +++ b/config/config.go @@ -219,8 +219,8 @@ func BuildConfig(opt ConfigOptions, input option.Options) (*option.Options, erro Listen: option.NewListenAddress(netip.MustParseAddr(bind)), ListenPort: opt.LocalDnsPort, }, - OverrideAddress: "1.1.1.1", - OverridePort: 53, + // OverrideAddress: "1.1.1.1", + // OverridePort: 53, }, }, ) @@ -406,9 +406,24 @@ func BuildConfig(opt ConfigOptions, input option.Options) (*option.Options, erro OutboundMainProxyTag = OutboundSelectTag //inbound==warp over proxies //outbound==proxies over warp - fmt.Printf("opt.Warp=%+v\n", opt.Warp) + if opt.Warp.EnableWarp { + for _, out := range input.Outbounds { + if out.Type == C.TypeCustom { + if warp, ok := out.CustomOptions["warp"].(map[string]interface{}); ok { + key, _ := warp["key"].(string) + if key == "p1" { + opt.Warp.EnableWarp = false + break + } + } + } + if out.Type == C.TypeWireGuard && (out.WireGuardOptions.PrivateKey == opt.Warp.WireguardConfig.PrivateKey || out.WireGuardOptions.PrivateKey == "p1") { + opt.Warp.EnableWarp = false + break + } + } + } if opt.Warp.EnableWarp && (opt.Warp.Mode == "warp_over_proxy" || opt.Warp.Mode == "proxy_over_warp") { - out, err := GenerateWarpSingbox(opt.Warp.WireguardConfig, opt.Warp.CleanIP, opt.Warp.CleanPort, opt.Warp.FakePackets, opt.Warp.FakePacketSize, opt.Warp.FakePacketDelay) if err != nil { return nil, fmt.Errorf("failed to generate warp config: %v", err) @@ -420,7 +435,7 @@ func BuildConfig(opt ConfigOptions, input option.Options) (*option.Options, erro } else { out.WireGuardOptions.Detour = OutboundDirectTag } - patchWarp(out, &opt) + patchWarp(out, &opt, true) outbounds = append(outbounds, *out) // tags = append(tags, out.Tag) } diff --git a/config/outbound.go b/config/outbound.go index 8e9b28b..80522c0 100644 --- a/config/outbound.go +++ b/config/outbound.go @@ -5,10 +5,8 @@ import ( "fmt" "net" - "github.com/bepass-org/warp-plus/warp" C "github.com/sagernet/sing-box/constant" "github.com/sagernet/sing-box/option" - T "github.com/sagernet/sing-box/option" ) type outboundMap map[string]interface{} @@ -124,7 +122,7 @@ func patchOutbound(base option.Outbound, configOpt ConfigOptions) (*option.Outbo formatErr := func(err error) error { return fmt.Errorf("error patching outbound[%s][%s]: %w", base.Tag, base.Type, err) } - err := patchWarp(&base, &configOpt) + err := patchWarp(&base, &configOpt, true) if err != nil { return nil, "", formatErr(err) } @@ -167,60 +165,6 @@ func patchOutbound(base option.Outbound, configOpt ConfigOptions) (*option.Outbo return &outbound, serverDomain, nil } -func patchWarp(base *option.Outbound, configOpt *ConfigOptions) error { - if base.Type == C.TypeWireGuard { - host := base.WireGuardOptions.Server - - if host == "default" || host == "random" || host == "auto" || isBlockedDomain(host) { - randomIpPort, _ := warp.RandomWarpEndpoint(true, false) - base.WireGuardOptions.Server = randomIpPort.Addr().String() - } - if base.WireGuardOptions.ServerPort == 0 { - port := warp.RandomWarpPort() - base.WireGuardOptions.ServerPort = port - } - // if base.WireGuardOptions.Detour == "" { - // base.WireGuardOptions.GSO = runtime.GOOS != "windows" - // } - } - if base.Type == C.TypeCustom { - if warp, ok := base.CustomOptions["warp"].(map[string]interface{}); ok { - key, _ := warp["key"].(string) - host, _ := warp["host"].(string) - port, _ := warp["port"].(float64) - detour, _ := warp["detour"].(string) - fakePackets, _ := warp["fake_packets"].(string) - fakePacketsSize, _ := warp["fake_packets_size"].(string) - fakePacketsDelay, _ := warp["fake_packets_delay"].(string) - var warpConfig *T.Outbound - var err error - if configOpt != nil && (key == "p1" || key == "p2") { - warpConfig = base - } else { - warpConfig, err = generateWarp(key, host, uint16(port), fakePackets, fakePacketsSize, fakePacketsDelay) - } - if err != nil { - fmt.Printf("Error generating warp config: %v", err) - return err - } - - base.Type = C.TypeWireGuard - warpConfig.WireGuardOptions.Detour = detour - if detour != "" { - if warpConfig.WireGuardOptions.MTU > 1000 { - warpConfig.WireGuardOptions.MTU -= 50 - } - warpConfig.WireGuardOptions.FakePackets = "" - } - base.WireGuardOptions = warpConfig.WireGuardOptions - - } - - } - - return nil -} - // func (o outboundMap) transportType() string { // if transport, ok := o["transport"].(map[string]interface{}); ok { // if transportType, ok := transport["type"].(string); ok { diff --git a/config/parser.go b/config/parser.go index c367c3b..2d72404 100644 --- a/config/parser.go +++ b/config/parser.go @@ -95,7 +95,7 @@ func patchConfig(content []byte, name string, configOpt *ConfigOptions) ([]byte, for _, base := range options.Outbounds { out := base b.Go(base.Tag, func() (*option.Outbound, error) { - err := patchWarp(&out, configOpt) + err := patchWarp(&out, configOpt, false) if err != nil { return nil, fmt.Errorf("[Warp] patch warp error: %w", err) } diff --git a/config/warp.go b/config/warp.go index fe3e032..c2c07fb 100644 --- a/config/warp.go +++ b/config/warp.go @@ -7,10 +7,12 @@ import ( "os" "github.com/bepass-org/warp-plus/warp" + C "github.com/sagernet/sing-box/constant" // "github.com/bepass-org/wireguard-go/warp" "log/slog" + "github.com/sagernet/sing-box/option" T "github.com/sagernet/sing-box/option" ) @@ -27,14 +29,10 @@ type SingboxConfig struct { } func wireGuardToSingbox(wgConfig WarpWireguardConfig, server string, port uint16) (*T.Outbound, error) { - // splt := strings.Split(wgConfig.Peer.Endpoint, ":") - // port, err := strconv.Atoi(splt[1]) - // if err != nil { - // fmt.Printf("%v", err) - // return nil - // } clientID, _ := base64.StdEncoding.DecodeString(wgConfig.ClientID) - + if len(clientID) < 2 { + clientID = []byte{0, 0, 0} + } out := T.Outbound{ Type: "wireguard", Tag: "WARP", @@ -47,11 +45,12 @@ func wireGuardToSingbox(wgConfig WarpWireguardConfig, server string, port uint16 PrivateKey: wgConfig.PrivateKey, PeerPublicKey: wgConfig.PeerPublicKey, Reserved: []uint8{clientID[0], clientID[1], clientID[2]}, - MTU: 1330, + // Reserved: []uint8{0, 0, 0}, + MTU: 1330, }, } - ips := []string{wgConfig.LocalAddressIPv4 + "/24", wgConfig.LocalAddressIPv6 + "/128"} + for _, addr := range ips { if addr == "" { continue @@ -83,7 +82,6 @@ func generateWarp(license string, host string, port uint16, fakePackets string, if wgConfig == nil { return nil, fmt.Errorf("invalid warp config") } - fmt.Printf("%v", wgConfig) return GenerateWarpSingbox(*wgConfig, host, port, fakePackets, fakePacketsSize, fakePacketsDelay) } @@ -144,3 +142,68 @@ func GenerateWarpInfo(license string, oldAccountId string, oldAccessToken string return &identity, res, &warpcfg, err } + +func patchWarp(base *option.Outbound, configOpt *ConfigOptions, final bool) error { + if base.Type == C.TypeCustom { + if warp, ok := base.CustomOptions["warp"].(map[string]interface{}); ok { + key, _ := warp["key"].(string) + host, _ := warp["host"].(string) + port, _ := warp["port"].(uint16) + detour, _ := warp["detour"].(string) + fakePackets, _ := warp["fake_packets"].(string) + fakePacketsSize, _ := warp["fake_packets_size"].(string) + fakePacketsDelay, _ := warp["fake_packets_delay"].(string) + var warpConfig *T.Outbound + var err error + + if configOpt == nil && (key == "p1" || key == "p2") { + warpConfig = base + return nil + } else if key == "p1" { + warpConfig, err = GenerateWarpSingbox(configOpt.Warp.WireguardConfig, host, port, fakePackets, fakePacketsSize, fakePacketsDelay) + } else if key == "p2" { + warpConfig, err = GenerateWarpSingbox(configOpt.Warp2.WireguardConfig, host, port, fakePackets, fakePacketsSize, fakePacketsDelay) + } else { + warpConfig, err = generateWarp(key, host, uint16(port), fakePackets, fakePacketsSize, fakePacketsDelay) + } + if err != nil { + fmt.Printf("Error generating warp config: %v", err) + return err + } + warpConfig.WireGuardOptions.Detour = detour + + base.Type = C.TypeWireGuard + + base.WireGuardOptions = warpConfig.WireGuardOptions + + } + + } + + if final && base.Type == C.TypeWireGuard { + host := base.WireGuardOptions.Server + + if host == "default" || host == "random" || host == "auto" || isBlockedDomain(host) { + randomIpPort, _ := warp.RandomWarpEndpoint(true, false) + base.WireGuardOptions.Server = randomIpPort.Addr().String() + } + if base.WireGuardOptions.ServerPort == 0 { + port := warp.RandomWarpPort() + base.WireGuardOptions.ServerPort = port + } + + if base.WireGuardOptions.Detour != "" { + if base.WireGuardOptions.MTU > 1000 { + base.WireGuardOptions.MTU -= 50 + } + base.WireGuardOptions.FakePackets = "" + base.WireGuardOptions.FakePacketsDelay = "" + base.WireGuardOptions.FakePacketsSize = "" + } + // if base.WireGuardOptions.Detour == "" { + // base.WireGuardOptions.GSO = runtime.GOOS != "windows" + // } + } + + return nil +} diff --git a/config/warp_account.go b/config/warp_account.go index 8944126..2578e35 100644 --- a/config/warp_account.go +++ b/config/warp_account.go @@ -2,7 +2,6 @@ package config import ( "encoding/json" - ) type WarpAccount struct { @@ -15,7 +14,7 @@ type WarpWireguardConfig struct { LocalAddressIPv4 string `json:"local-address-ipv4"` LocalAddressIPv6 string `json:"local-address-ipv6"` PeerPublicKey string `json:"peer-public-key"` - ClientID string `json:"ClientID"` + ClientID string `json:"client-id"` } type WarpGenerationResponse struct { @@ -39,6 +38,7 @@ func GenerateWarpAccount(licenseKey string, accountId string, accessToken string LocalAddressIPv4: wg.LocalAddressIPv4, LocalAddressIPv6: wg.LocalAddressIPv6, PeerPublicKey: wg.PeerPublicKey, + ClientID: wg.ClientID, } response := WarpGenerationResponse{warpAccount, log, warpConfig} diff --git a/custom/custom.go b/custom/custom.go index 12c4820..07fef74 100644 --- a/custom/custom.go +++ b/custom/custom.go @@ -151,6 +151,7 @@ func generateWarpConfig(licenseKey *C.char, accountId *C.char, accessToken *C.ch LocalAddressIPv4: res.Config.LocalAddressIpv4, LocalAddressIPv6: res.Config.LocalAddressIpv6, PeerPublicKey: res.Config.PeerPublicKey, + ClientID: res.Config.ClientId, } log := res.Log response := &config.WarpGenerationResponse{ diff --git a/go.mod b/go.mod index ddb7053..113762d 100644 --- a/go.mod +++ b/go.mod @@ -26,6 +26,7 @@ require ( require ( berty.tech/go-libtor v1.0.385 // indirect github.com/ajg/form v1.5.1 // indirect + github.com/akavel/rsrc v0.10.2 // indirect github.com/andybalholm/brotli v1.0.6 // indirect github.com/caddyserver/certmagic v0.20.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect @@ -109,7 +110,7 @@ require ( lukechampine.com/blake3 v1.2.1 // indirect ) -replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.8.9-0.20240529100042-aa8d1d4a3fb1 +replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.8.9-0.20240531082845-3d21ef6b62d1 replace github.com/sagernet/wireguard-go => github.com/hiddify/wireguard-go v0.0.0-20240302132803-629b7c39b487 diff --git a/go.sum b/go.sum index 1bc8309..7cd3f25 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ berty.tech/go-libtor v1.0.385 h1:RWK94C3hZj6Z2GdvePpHJLnWYobFr3bY/OdUJ5aoEXw= berty.tech/go-libtor v1.0.385/go.mod h1:9swOOQVb+kmvuAlsgWUK/4c52pm69AdbJsxLzk+fJEw= github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/akavel/rsrc v0.10.2 h1:Zxm8V5eI1hW4gGaYsJQUhxpjkENuG91ki8B4zCrvEsw= +github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/caddyserver/certmagic v0.20.0 h1:bTw7LcEZAh9ucYCRXyCpIrSAGplplI0vGYJ4BpCQ/Fc= @@ -49,8 +51,8 @@ github.com/google/pprof v0.0.0-20231101202521-4ca4178f5c7a h1:fEBsGL/sjAuJrgah5X github.com/google/pprof v0.0.0-20231101202521-4ca4178f5c7a/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/hiddify/hiddify-sing-box v1.8.9-0.20240529100042-aa8d1d4a3fb1 h1:Z03mhdoyz66BNICoIOpdKiJ3r87/l34lOx2amcsvmYk= -github.com/hiddify/hiddify-sing-box v1.8.9-0.20240529100042-aa8d1d4a3fb1/go.mod h1:udjEmPgtJynwSqJ1aQFLqP1dRzS5oegGecxX6GGsElk= +github.com/hiddify/hiddify-sing-box v1.8.9-0.20240531082845-3d21ef6b62d1 h1:G4L1CN7UbqAjG2fhQccd6/fEppOJNn/l55zhAxOwxik= +github.com/hiddify/hiddify-sing-box v1.8.9-0.20240531082845-3d21ef6b62d1/go.mod h1:udjEmPgtJynwSqJ1aQFLqP1dRzS5oegGecxX6GGsElk= github.com/hiddify/ray2sing v0.0.0-20240319101544-08daaf978197 h1:DeSFnFifp/bd83rvX4RYUwOOlCZkUGk+REuMTXBaBHk= github.com/hiddify/ray2sing v0.0.0-20240319101544-08daaf978197/go.mod h1:UYYahiWAtp1PfWAnhZQv+GyYSLms5/foB63q3ACYryE= github.com/hiddify/warp-plus v0.0.0-20240529120935-6c534fdb70b1 h1:QUaQZYHtWfrfoJxdT3MpQkNGbRM11pb4QsGTzJycVQ4= diff --git a/hiddifyrpc/hiddify.pb.go b/hiddifyrpc/hiddify.pb.go index 027f328..16aabe2 100644 --- a/hiddifyrpc/hiddify.pb.go +++ b/hiddifyrpc/hiddify.pb.go @@ -864,6 +864,7 @@ type WarpWireguardConfig struct { LocalAddressIpv4 string `protobuf:"bytes,2,opt,name=local_address_ipv4,json=localAddressIpv4,proto3" json:"local_address_ipv4,omitempty"` LocalAddressIpv6 string `protobuf:"bytes,3,opt,name=local_address_ipv6,json=localAddressIpv6,proto3" json:"local_address_ipv6,omitempty"` PeerPublicKey string `protobuf:"bytes,4,opt,name=peer_public_key,json=peerPublicKey,proto3" json:"peer_public_key,omitempty"` + ClientId string `protobuf:"bytes,5,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -922,6 +923,13 @@ func (m *WarpWireguardConfig) GetPeerPublicKey() string { return "" } +func (m *WarpWireguardConfig) GetClientId() string { + if m != nil { + return m.ClientId + } + return "" +} + type WarpGenerationResponse struct { Account *WarpAccount `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` Log string `protobuf:"bytes,2,opt,name=log,proto3" json:"log,omitempty"` @@ -1690,131 +1698,132 @@ func init() { func init() { proto.RegisterFile("hiddifyrpc/hiddify.proto", fileDescriptor_b52c484803f63ee3) } var fileDescriptor_b52c484803f63ee3 = []byte{ - // 2014 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xdd, 0x6e, 0xe3, 0xc6, - 0x15, 0x5e, 0xea, 0xc7, 0x92, 0x8e, 0x24, 0x2f, 0x3d, 0xf6, 0x7a, 0x65, 0x65, 0x37, 0xbb, 0x21, - 0x9a, 0xc4, 0x75, 0x53, 0x6f, 0xea, 0x6c, 0xb3, 0xfd, 0x0b, 0x16, 0xb2, 0x44, 0x3b, 0xaa, 0x65, - 0x49, 0xa0, 0xe8, 0x6e, 0xd3, 0x02, 0x25, 0x68, 0x72, 0xac, 0x65, 0x4d, 0x71, 0x58, 0x72, 0xe4, - 0x8d, 0xd0, 0xa2, 0x17, 0x2d, 0xd0, 0xeb, 0x02, 0x05, 0x7a, 0xd9, 0x07, 0x29, 0x0a, 0xf4, 0x09, - 0xfa, 0x12, 0x7d, 0x8d, 0xde, 0x14, 0xf3, 0x43, 0x89, 0x94, 0xa5, 0x75, 0x9a, 0xe6, 0x6e, 0xe6, - 0xfc, 0xf1, 0xcc, 0x37, 0x67, 0xce, 0x7c, 0x43, 0x68, 0xbc, 0xf6, 0x5c, 0xd7, 0xbb, 0x9a, 0x45, - 0xa1, 0xf3, 0x4c, 0x0e, 0x0f, 0xc3, 0x88, 0x50, 0x82, 0x60, 0xa1, 0xd1, 0xfe, 0xa6, 0x80, 0xda, - 0x26, 0x11, 0xee, 0x06, 0x57, 0xc4, 0xc0, 0x71, 0x48, 0x82, 0x18, 0xa3, 0xe7, 0x00, 0x0e, 0x89, - 0xb0, 0x15, 0x53, 0x9b, 0xe2, 0x86, 0xf2, 0x54, 0xd9, 0xdf, 0x3c, 0x7a, 0x70, 0xb8, 0xf0, 0x3a, - 0x64, 0x1e, 0x23, 0xa6, 0x34, 0x2a, 0x4e, 0x32, 0x44, 0x3f, 0x82, 0xda, 0x04, 0xc7, 0xb1, 0x3d, - 0xc6, 0x16, 0x9d, 0x85, 0xb8, 0x91, 0xe3, 0x7e, 0x0f, 0xd3, 0x7e, 0xe7, 0x42, 0x6f, 0xce, 0x42, - 0x6c, 0x54, 0x27, 0x8b, 0x09, 0x6a, 0x40, 0x49, 0x4e, 0x1b, 0xf9, 0xa7, 0xca, 0x7e, 0xc5, 0x48, - 0xa6, 0xda, 0x9f, 0x73, 0x50, 0x1b, 0x51, 0x3b, 0xa2, 0x06, 0xfe, 0xcd, 0x14, 0xc7, 0x14, 0x3d, - 0x81, 0xaa, 0x43, 0x82, 0x2b, 0x6f, 0x6c, 0x85, 0x36, 0x7d, 0xcd, 0xb3, 0xab, 0x18, 0x20, 0x44, - 0x43, 0x9b, 0xbe, 0x46, 0xef, 0xc3, 0xa6, 0x34, 0x70, 0x48, 0x40, 0x71, 0x40, 0x79, 0x26, 0x15, - 0xa3, 0x2e, 0xa4, 0x6d, 0x21, 0x44, 0x1f, 0xc3, 0x8e, 0xeb, 0xc5, 0xf6, 0xa5, 0x8f, 0xad, 0x09, - 0x9e, 0x90, 0x68, 0x66, 0xf9, 0xde, 0xc4, 0xa3, 0xfc, 0xfb, 0x65, 0x03, 0x49, 0xdd, 0x39, 0x57, - 0xf5, 0x98, 0x86, 0x7d, 0xd9, 0xc5, 0xbe, 0x3d, 0x63, 0xb8, 0x44, 0xb4, 0x51, 0xe0, 0x86, 0xc0, - 0x45, 0x3c, 0x43, 0xf4, 0x43, 0xd8, 0xc3, 0x01, 0x8f, 0x48, 0x7c, 0xd7, 0x72, 0xc8, 0x64, 0x62, - 0x07, 0xae, 0x15, 0xe3, 0xe8, 0x06, 0x47, 0x8d, 0x22, 0x37, 0xdf, 0x15, 0x06, 0x03, 0xdf, 0x6d, - 0x0b, 0xf5, 0x88, 0x6b, 0xd1, 0x01, 0x6c, 0x49, 0xd7, 0xc8, 0x7e, 0x63, 0x89, 0x4c, 0x1b, 0x1b, - 0xdc, 0xe5, 0xbe, 0x50, 0x18, 0xf6, 0x9b, 0x36, 0x17, 0x6b, 0xd7, 0x50, 0x1b, 0x61, 0x3a, 0x0d, - 0x13, 0x44, 0xde, 0x81, 0xca, 0xa5, 0x1d, 0xe3, 0x34, 0x1e, 0x65, 0x26, 0xe0, 0x68, 0xbc, 0x07, - 0xb5, 0x37, 0x24, 0xba, 0xf6, 0x02, 0x89, 0x97, 0xc0, 0xa2, 0x2a, 0x65, 0xdc, 0xe4, 0x1d, 0xa8, - 0x50, 0x3c, 0x09, 0x85, 0x5e, 0xc0, 0x5f, 0x66, 0x02, 0xa6, 0xd4, 0x1c, 0x28, 0xcf, 0xeb, 0xe2, - 0x33, 0xa8, 0x47, 0x72, 0x6c, 0x39, 0xc4, 0x4d, 0x4a, 0xa3, 0x91, 0xde, 0xe2, 0xc4, 0xb8, 0x4d, - 0x5c, 0x6c, 0xd4, 0xa2, 0xd4, 0x2c, 0xbd, 0xc9, 0xb9, 0xec, 0x26, 0x6b, 0x50, 0xfb, 0x1c, 0xfb, - 0x3e, 0x49, 0x56, 0x84, 0xa0, 0x10, 0xd8, 0x13, 0x2c, 0x17, 0xc3, 0xc7, 0xda, 0xb7, 0xa1, 0x2e, - 0x6d, 0x64, 0x36, 0xa9, 0x70, 0x4a, 0x36, 0x5c, 0x09, 0x8a, 0xfa, 0x24, 0xa4, 0x33, 0xed, 0x9f, - 0x39, 0x80, 0xd1, 0x2c, 0xa6, 0x78, 0xc2, 0xea, 0x1b, 0xed, 0xc2, 0x86, 0xd8, 0x6a, 0xee, 0x90, - 0x37, 0xe4, 0x0c, 0xbd, 0x0b, 0x30, 0x26, 0x11, 0x99, 0x52, 0x2f, 0xc0, 0x31, 0xcf, 0xad, 0x68, - 0xa4, 0x24, 0xb2, 0xa2, 0x02, 0xec, 0x50, 0x8f, 0x04, 0xb1, 0xe5, 0x05, 0x1c, 0xa5, 0x22, 0xaf, - 0xa8, 0x44, 0xda, 0x0d, 0xd0, 0x87, 0x70, 0x3f, 0x6d, 0x46, 0xa6, 0xa2, 0x46, 0x8a, 0x46, 0xda, - 0x7b, 0x30, 0xa5, 0xe8, 0x3b, 0xb0, 0x45, 0x23, 0xfb, 0xea, 0xca, 0x73, 0x2c, 0xfb, 0xc6, 0xf6, - 0x7c, 0xb6, 0xbd, 0xb2, 0x3e, 0x54, 0xa9, 0x68, 0x25, 0x72, 0x96, 0xf4, 0x34, 0xf4, 0xbd, 0xe0, - 0x9a, 0x97, 0x43, 0xde, 0x90, 0x33, 0xd4, 0x84, 0xb2, 0x4b, 0xde, 0x04, 0x5c, 0x53, 0xe2, 0x9a, - 0xf9, 0x9c, 0x6d, 0xba, 0xb0, 0xb2, 0x28, 0xa1, 0xb6, 0xdf, 0x28, 0x73, 0x7d, 0x55, 0xc8, 0x4c, - 0x26, 0x62, 0x6b, 0x4a, 0xcc, 0xa5, 0x51, 0x85, 0x1b, 0xd5, 0x13, 0x29, 0x37, 0xd3, 0xfe, 0xa8, - 0xc0, 0xd6, 0x60, 0x4a, 0x2f, 0xc9, 0x34, 0x70, 0x4f, 0x23, 0x32, 0x0d, 0xbb, 0x14, 0x4f, 0x90, - 0x0a, 0x79, 0x6a, 0x8f, 0x25, 0xec, 0x6c, 0xc8, 0x76, 0x6c, 0x7e, 0xe8, 0x2b, 0x06, 0x1f, 0x23, - 0x0d, 0xea, 0xd3, 0xc8, 0xb7, 0x28, 0x8e, 0xa9, 0x45, 0xbd, 0x89, 0x38, 0xda, 0x2c, 0x8d, 0xc8, - 0x37, 0x71, 0x4c, 0x4d, 0x6f, 0x82, 0xd1, 0xb7, 0x60, 0x73, 0x6e, 0xc3, 0x4f, 0x92, 0x84, 0xac, - 0x26, 0x8d, 0x3a, 0x4c, 0xa6, 0xfd, 0x49, 0x81, 0x7a, 0x26, 0x8b, 0xaf, 0x98, 0x41, 0x13, 0xca, - 0x31, 0xf6, 0xb1, 0x43, 0xb1, 0x9b, 0x14, 0x76, 0x32, 0x47, 0x9f, 0x40, 0xd1, 0xa3, 0x78, 0x12, - 0x37, 0x0a, 0x4f, 0xf3, 0xfb, 0xd5, 0xa3, 0xc7, 0xe9, 0x22, 0xbe, 0xb5, 0x62, 0x43, 0xd8, 0x6a, - 0x9d, 0x25, 0x34, 0x7a, 0x5e, 0x4c, 0xd1, 0xb3, 0x24, 0x92, 0xc2, 0x23, 0xed, 0xad, 0x8d, 0x94, - 0x44, 0x19, 0x40, 0xf5, 0x95, 0x1d, 0x85, 0x2d, 0xc7, 0x21, 0xd3, 0x80, 0xa2, 0xc7, 0x00, 0xb6, - 0x18, 0x5a, 0x9e, 0x2b, 0x97, 0x54, 0x91, 0x92, 0xae, 0xcb, 0x36, 0xd3, 0x76, 0x1c, 0x1c, 0xc7, - 0x16, 0x25, 0xd7, 0x38, 0x48, 0x4e, 0xb0, 0x90, 0x99, 0x4c, 0xa4, 0xfd, 0x5d, 0x81, 0x6d, 0x16, - 0xf1, 0x95, 0x17, 0xe1, 0xf1, 0xd4, 0x8e, 0x5c, 0xd1, 0x29, 0x58, 0xc7, 0x0a, 0x23, 0xef, 0xc6, - 0xa6, 0xd8, 0xba, 0xc6, 0xb3, 0xa4, 0x57, 0x4a, 0xd1, 0x19, 0x9e, 0xa1, 0x8f, 0x00, 0xf9, 0xc4, - 0xb1, 0x7d, 0xcb, 0x76, 0xdd, 0x88, 0x7d, 0xc2, 0x0b, 0x6f, 0x9e, 0xcb, 0x2f, 0xa8, 0x5c, 0xd3, - 0x12, 0x8a, 0x6e, 0x78, 0xf3, 0x7c, 0xa5, 0xf5, 0xa7, 0x12, 0xd8, 0x65, 0xeb, 0x4f, 0xd1, 0x07, - 0x70, 0x3f, 0xc4, 0x38, 0xb2, 0xc2, 0xe9, 0xa5, 0xef, 0x39, 0x3c, 0x81, 0x82, 0x68, 0xc4, 0x4c, - 0x3c, 0xe4, 0xd2, 0x33, 0x3c, 0xd3, 0xfe, 0xaa, 0xc0, 0x2e, 0x4b, 0xfe, 0x14, 0x07, 0x38, 0xb2, - 0xd9, 0x21, 0x99, 0x1f, 0xf1, 0xef, 0x41, 0x49, 0xe2, 0xc0, 0x73, 0xaf, 0x66, 0x6f, 0x93, 0x14, - 0x86, 0x46, 0x62, 0xc7, 0x0a, 0xc3, 0x27, 0x63, 0xb9, 0x04, 0x36, 0x44, 0x2f, 0x60, 0x43, 0xf6, - 0xd3, 0x3c, 0x8f, 0xf1, 0x64, 0x39, 0xc6, 0x12, 0x6a, 0x86, 0x34, 0xd7, 0xce, 0x60, 0x4b, 0x34, - 0x8f, 0x61, 0x44, 0xbe, 0x64, 0x2d, 0x9e, 0x4e, 0x63, 0xf4, 0x08, 0x2a, 0x8b, 0x33, 0xab, 0xf0, - 0x33, 0xbb, 0x10, 0xb0, 0x9e, 0x24, 0xba, 0xb5, 0xcb, 0x33, 0x28, 0x1b, 0xc9, 0x54, 0xfb, 0x1d, - 0xd4, 0x86, 0x76, 0x14, 0xe3, 0xa4, 0xc5, 0x35, 0xa0, 0x94, 0x5c, 0x4f, 0xb2, 0x7b, 0xc9, 0xe9, - 0xf2, 0x05, 0x97, 0xbb, 0x75, 0xc1, 0xbd, 0xad, 0x5f, 0xa3, 0x1d, 0x28, 0xba, 0xf8, 0x72, 0x3a, - 0x96, 0xd7, 0x93, 0x98, 0x68, 0x7f, 0x50, 0xa0, 0x2e, 0x3f, 0xff, 0x8d, 0xf5, 0xf2, 0xec, 0xed, - 0x3a, 0x4f, 0x7f, 0xfd, 0x55, 0xde, 0x83, 0x66, 0xfb, 0xb5, 0x1d, 0x8c, 0xb1, 0xc0, 0x79, 0x10, - 0xf2, 0x86, 0x98, 0x00, 0x72, 0x08, 0xdb, 0x72, 0xd9, 0x44, 0x28, 0xac, 0x5f, 0xc7, 0x24, 0x90, - 0xe0, 0x6c, 0x39, 0x69, 0x97, 0x9f, 0xc6, 0x24, 0xd0, 0x7e, 0x05, 0x0f, 0x64, 0xc5, 0xc8, 0x78, - 0xa9, 0xcb, 0x23, 0x75, 0x13, 0xf2, 0x71, 0x16, 0xb2, 0xdc, 0x3a, 0xc8, 0xf2, 0x69, 0xc8, 0x5e, - 0xc2, 0xee, 0x72, 0x7c, 0x09, 0xdd, 0x6d, 0x82, 0xa1, 0xac, 0x20, 0x18, 0xda, 0x2b, 0x78, 0x30, - 0xe2, 0xcd, 0x26, 0xe9, 0x01, 0xa9, 0xfb, 0x7a, 0xcc, 0xda, 0x81, 0xb5, 0xe8, 0x60, 0x65, 0x2e, - 0x30, 0xed, 0x31, 0x3b, 0xed, 0x44, 0xda, 0x73, 0xbd, 0x3c, 0xed, 0x89, 0xcc, 0xb4, 0xc7, 0xda, - 0x77, 0x61, 0xf3, 0x42, 0x74, 0xc7, 0xaf, 0x12, 0x51, 0xfb, 0x3d, 0xec, 0x25, 0x0b, 0x61, 0xd5, - 0x9e, 0x05, 0xeb, 0x09, 0x54, 0x7d, 0xcf, 0xc1, 0xac, 0x0a, 0x52, 0x1d, 0x42, 0x8a, 0x58, 0x87, - 0xc8, 0x36, 0xa7, 0xdc, 0x5d, 0xcd, 0x29, 0x7f, 0xbb, 0x39, 0x7d, 0x06, 0x8f, 0x46, 0x98, 0xa6, - 0x4e, 0x92, 0x2e, 0x8e, 0x44, 0x92, 0xc2, 0x63, 0x00, 0x2f, 0xb6, 0x92, 0x63, 0x23, 0x8f, 0x94, - 0x17, 0x4b, 0x2b, 0xed, 0xb7, 0x00, 0x3d, 0x32, 0x96, 0xcc, 0x11, 0x1d, 0x40, 0xd1, 0xc7, 0x37, - 0xd8, 0x97, 0xe5, 0xba, 0x93, 0x2e, 0xd7, 0x1e, 0x19, 0xf7, 0x98, 0xce, 0x10, 0x26, 0xe8, 0xc3, - 0xd4, 0x8d, 0xb0, 0x79, 0xb4, 0xbd, 0x64, 0xca, 0x49, 0xa8, 0xb8, 0x26, 0xd6, 0x97, 0x6c, 0x1d, - 0xaa, 0x23, 0x4a, 0x12, 0xa6, 0xa5, 0xfd, 0x43, 0x01, 0x64, 0x4e, 0x83, 0x00, 0xfb, 0x19, 0x4a, - 0x8a, 0xa0, 0xc0, 0x3b, 0xa1, 0xc8, 0x9d, 0x8f, 0x19, 0xb0, 0x82, 0xf8, 0x59, 0x21, 0x89, 0x68, - 0x42, 0x2a, 0x84, 0x68, 0x48, 0x22, 0xca, 0x90, 0x8b, 0x69, 0xe4, 0x39, 0xd4, 0x62, 0x3c, 0x03, - 0xcb, 0xe2, 0xab, 0x0a, 0x99, 0xc1, 0x44, 0xe8, 0x07, 0xd0, 0xc0, 0x81, 0x1b, 0x12, 0x8f, 0x81, - 0x1f, 0xb8, 0x38, 0xc4, 0x81, 0x8b, 0x03, 0x6a, 0x05, 0x76, 0xc2, 0x3e, 0x77, 0x13, 0x7d, 0x77, - 0xa1, 0xee, 0xdb, 0x94, 0x95, 0x74, 0x4c, 0x6d, 0xe7, 0x9a, 0xb3, 0x8a, 0x8a, 0x21, 0x26, 0xda, - 0x01, 0x6c, 0x8a, 0xec, 0xef, 0xe6, 0x50, 0x07, 0x1a, 0xd4, 0xd2, 0xc7, 0x1f, 0x6d, 0x40, 0x6e, - 0x70, 0xa6, 0xde, 0x43, 0x00, 0x1b, 0x27, 0xad, 0x6e, 0x4f, 0xef, 0xa8, 0xca, 0x41, 0x0b, 0x2a, - 0xf3, 0x97, 0x00, 0xaa, 0x42, 0x69, 0x64, 0x0e, 0x86, 0x43, 0xbd, 0xa3, 0xde, 0x43, 0x35, 0x28, - 0x8f, 0xcc, 0x96, 0x61, 0x76, 0xfb, 0xa7, 0xaa, 0x22, 0x54, 0x2d, 0xc3, 0xd4, 0x3b, 0x6a, 0x4e, - 0xa8, 0x06, 0xc3, 0x21, 0x53, 0xe5, 0x0f, 0xfe, 0x95, 0x83, 0x6a, 0xea, 0x55, 0x80, 0x2a, 0x50, - 0xd4, 0xcf, 0x87, 0xe6, 0x17, 0xea, 0x3d, 0xf4, 0x10, 0xb6, 0xf9, 0xd0, 0x6a, 0x0f, 0xfa, 0x27, - 0xdd, 0xd3, 0x0b, 0xa3, 0x65, 0x76, 0x07, 0x7d, 0x55, 0x41, 0x0d, 0xd8, 0xe1, 0xe1, 0xac, 0xf6, - 0xe0, 0xfc, 0xbc, 0xd5, 0xef, 0x58, 0x23, 0xdd, 0xf8, 0x99, 0x6e, 0xa8, 0x39, 0x84, 0x60, 0xb3, - 0x6d, 0xe8, 0x2d, 0x53, 0xe7, 0xa2, 0x6e, 0x5b, 0x57, 0xf3, 0x68, 0x0b, 0xea, 0xc2, 0x3a, 0x11, - 0x15, 0xd0, 0x0e, 0xa8, 0x17, 0x7d, 0xfd, 0xe7, 0x43, 0xbd, 0x6d, 0xea, 0x1d, 0x4b, 0x37, 0x8c, - 0x81, 0xa1, 0x16, 0xd1, 0x36, 0xdc, 0x6f, 0xf5, 0x0c, 0xbd, 0xd5, 0xf9, 0xc2, 0x4a, 0xb2, 0xdd, - 0xc8, 0x0a, 0xc5, 0xea, 0x4a, 0x68, 0x17, 0x50, 0xb7, 0x3f, 0x32, 0x5b, 0xfd, 0xb6, 0x6e, 0xf5, - 0x07, 0xa6, 0x75, 0x32, 0xb8, 0xe8, 0x77, 0xd4, 0x32, 0x4b, 0x2c, 0x23, 0x4f, 0x3c, 0x2a, 0x2b, - 0x34, 0xe2, 0x03, 0x80, 0xf6, 0xe0, 0x01, 0x4f, 0xc0, 0x3a, 0xbe, 0xe8, 0xf6, 0x3a, 0xdd, 0xfe, - 0xa9, 0x5c, 0xae, 0x5a, 0x65, 0x4e, 0x42, 0x35, 0x6c, 0x19, 0xa3, 0x94, 0xa6, 0xb6, 0xd0, 0xb0, - 0xcc, 0x52, 0x9a, 0xfa, 0xc1, 0x31, 0x94, 0x93, 0x63, 0xc0, 0xb0, 0xec, 0xe8, 0xc7, 0x17, 0xa7, - 0xea, 0x3d, 0x54, 0x86, 0x42, 0xb7, 0x7f, 0x32, 0x10, 0x7b, 0xf1, 0xaa, 0x65, 0xf4, 0x19, 0xfa, - 0x39, 0x8e, 0x36, 0x5f, 0x7d, 0x9e, 0x0d, 0x4f, 0x5a, 0x66, 0xab, 0xa7, 0x16, 0x0e, 0x3e, 0x82, - 0x92, 0x3c, 0x1f, 0xcc, 0xaf, 0x3d, 0x30, 0x74, 0xf5, 0x1e, 0xdf, 0x43, 0x09, 0xa0, 0xc2, 0x8a, - 0x40, 0x7e, 0x31, 0x77, 0xf4, 0x17, 0x05, 0x8a, 0x9c, 0x98, 0xa3, 0x97, 0x50, 0x1e, 0xd9, 0x33, - 0x31, 0xce, 0xdc, 0x23, 0x69, 0x6e, 0xdf, 0xdc, 0x5b, 0xa1, 0x91, 0xd5, 0xd8, 0x85, 0xcd, 0x24, - 0xc0, 0x88, 0x46, 0xd8, 0x9e, 0x7c, 0xad, 0x30, 0xfb, 0xca, 0xc7, 0xca, 0xd1, 0xbf, 0x2b, 0x50, - 0x60, 0xb5, 0x89, 0x5e, 0x42, 0x51, 0x3c, 0xce, 0x32, 0xa1, 0xd2, 0xc7, 0xb7, 0xf9, 0x68, 0xf9, - 0x69, 0x9b, 0x79, 0x0c, 0x9f, 0x2f, 0x1e, 0xc8, 0x8c, 0xed, 0xb1, 0x4e, 0x8a, 0x1e, 0x66, 0x63, - 0xcd, 0x1b, 0xc4, 0xdb, 0x43, 0xb1, 0xc4, 0xd0, 0xd9, 0x82, 0xc9, 0xc6, 0xfc, 0x51, 0xb2, 0x36, - 0xd6, 0x7a, 0x46, 0xca, 0xf2, 0xe0, 0xc1, 0x06, 0xb0, 0x75, 0x6e, 0x7b, 0xc1, 0x37, 0x17, 0xb0, - 0x03, 0xf5, 0xd3, 0xa4, 0x57, 0xbf, 0x3d, 0xd8, 0x6e, 0x46, 0x31, 0x77, 0xe0, 0x51, 0x5e, 0x40, - 0x91, 0x3f, 0x50, 0x97, 0x30, 0x4f, 0xbd, 0x59, 0x9b, 0x3b, 0xab, 0x78, 0x06, 0xfa, 0x09, 0x14, - 0x39, 0x4b, 0xc9, 0x3a, 0xa6, 0x79, 0x53, 0x76, 0xdf, 0xb3, 0x94, 0xe6, 0x97, 0xb0, 0xbd, 0x82, - 0x5f, 0xa0, 0x0f, 0x32, 0x7b, 0xb2, 0x96, 0x80, 0xdc, 0x51, 0x06, 0x27, 0xf2, 0x37, 0x04, 0x7b, - 0xaf, 0x7b, 0x0e, 0xfe, 0xda, 0xe5, 0xf4, 0x02, 0x0a, 0x0c, 0x46, 0xb4, 0x95, 0xb6, 0xe2, 0xaf, - 0xd5, 0x3b, 0x1c, 0x5b, 0x50, 0x32, 0x70, 0xfc, 0x7f, 0x95, 0x32, 0x3b, 0x5f, 0x19, 0x46, 0x82, - 0xde, 0xcb, 0x6e, 0xd0, 0x0a, 0xb6, 0xb2, 0x66, 0xa7, 0x7e, 0x0c, 0x25, 0xc9, 0x41, 0x50, 0x33, - 0x6d, 0x90, 0x25, 0x26, 0x6b, 0x9c, 0x2d, 0x40, 0xb7, 0x19, 0x09, 0x7a, 0x3f, 0x6d, 0xbb, 0x96, - 0xb1, 0x34, 0xb5, 0x65, 0xfa, 0xbe, 0xe2, 0xdd, 0xf0, 0x39, 0xec, 0x9c, 0x66, 0x28, 0x87, 0x24, - 0xef, 0x2b, 0x40, 0x7f, 0x7c, 0xbb, 0x8e, 0xd3, 0x1e, 0x9c, 0xc4, 0xad, 0x20, 0x2f, 0x68, 0x7f, - 0xa9, 0xb4, 0xd7, 0xf2, 0x9b, 0x35, 0x18, 0x1c, 0x43, 0x95, 0x35, 0xea, 0x3b, 0x3b, 0xca, 0xee, - 0x12, 0x6d, 0x91, 0x97, 0x25, 0x6f, 0x72, 0xff, 0x51, 0xa0, 0x2e, 0xe9, 0x88, 0xac, 0xca, 0x76, - 0xd2, 0xed, 0xde, 0x4d, 0xbb, 0xdd, 0xa6, 0x2c, 0xcd, 0xe6, 0x6d, 0xfd, 0x3c, 0xb5, 0xef, 0xaf, - 0x2f, 0xd1, 0xb7, 0xb9, 0xbd, 0x80, 0x8d, 0xf5, 0x30, 0xdf, 0xf1, 0x3d, 0xfd, 0x4b, 0x8f, 0xfe, - 0x8f, 0x6e, 0xc7, 0x9b, 0xbf, 0xa8, 0x1d, 0x3e, 0x5b, 0xa8, 0x2f, 0x37, 0xf8, 0xdf, 0xcd, 0x4f, - 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x2e, 0xae, 0xf7, 0x33, 0xf9, 0x14, 0x00, 0x00, + // 2025 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x5b, 0x6f, 0xe3, 0xc6, + 0x15, 0x36, 0x75, 0xb1, 0xa4, 0x23, 0xc9, 0x4b, 0x8f, 0xbd, 0x8e, 0xac, 0xdd, 0xcd, 0x6e, 0x88, + 0x26, 0x71, 0xdd, 0xd4, 0x9b, 0x3a, 0xdb, 0x6c, 0x6f, 0xc1, 0x42, 0x96, 0x68, 0x47, 0x5d, 0x59, + 0x12, 0x28, 0xba, 0xdb, 0xb4, 0x40, 0x09, 0x9a, 0x1c, 0x6b, 0x59, 0x53, 0x1c, 0x96, 0x1c, 0x79, + 0x23, 0xb4, 0xe8, 0x43, 0x0b, 0xf4, 0xb9, 0x40, 0x81, 0x3e, 0xf6, 0x97, 0x14, 0xe8, 0x2f, 0xe8, + 0x73, 0xdf, 0xfb, 0x37, 0xfa, 0x52, 0xcc, 0x85, 0x12, 0x29, 0x4b, 0xeb, 0x34, 0xcd, 0xdb, 0xcc, + 0xb9, 0xf1, 0xcc, 0x99, 0x33, 0xdf, 0x7c, 0x43, 0x68, 0xbc, 0xf6, 0x5c, 0xd7, 0xbb, 0x9a, 0x45, + 0xa1, 0xf3, 0x54, 0x0e, 0x8f, 0xc2, 0x88, 0x50, 0x82, 0x60, 0xa1, 0xd1, 0xfe, 0xa6, 0x80, 0xda, + 0x26, 0x11, 0xee, 0x06, 0x57, 0xc4, 0xc0, 0x71, 0x48, 0x82, 0x18, 0xa3, 0x67, 0x00, 0x0e, 0x89, + 0xb0, 0x15, 0x53, 0x9b, 0xe2, 0x86, 0xf2, 0x44, 0x39, 0xd8, 0x3a, 0xbe, 0x7f, 0xb4, 0xf0, 0x3a, + 0x62, 0x1e, 0x23, 0xa6, 0x34, 0x2a, 0x4e, 0x32, 0x44, 0x3f, 0x82, 0xda, 0x04, 0xc7, 0xb1, 0x3d, + 0xc6, 0x16, 0x9d, 0x85, 0xb8, 0x91, 0xe3, 0x7e, 0xef, 0xa4, 0xfd, 0xce, 0x85, 0xde, 0x9c, 0x85, + 0xd8, 0xa8, 0x4e, 0x16, 0x13, 0xd4, 0x80, 0x92, 0x9c, 0x36, 0xf2, 0x4f, 0x94, 0x83, 0x8a, 0x91, + 0x4c, 0xb5, 0x3f, 0xe7, 0xa0, 0x36, 0xa2, 0x76, 0x44, 0x0d, 0xfc, 0x9b, 0x29, 0x8e, 0x29, 0x7a, + 0x0c, 0x55, 0x87, 0x04, 0x57, 0xde, 0xd8, 0x0a, 0x6d, 0xfa, 0x9a, 0x67, 0x57, 0x31, 0x40, 0x88, + 0x86, 0x36, 0x7d, 0x8d, 0xde, 0x87, 0x2d, 0x69, 0xe0, 0x90, 0x80, 0xe2, 0x80, 0xf2, 0x4c, 0x2a, + 0x46, 0x5d, 0x48, 0xdb, 0x42, 0x88, 0x3e, 0x86, 0x5d, 0xd7, 0x8b, 0xed, 0x4b, 0x1f, 0x5b, 0x13, + 0x3c, 0x21, 0xd1, 0xcc, 0xf2, 0xbd, 0x89, 0x47, 0xf9, 0xf7, 0xcb, 0x06, 0x92, 0xba, 0x73, 0xae, + 0xea, 0x31, 0x0d, 0xfb, 0xb2, 0x8b, 0x7d, 0x7b, 0xc6, 0xea, 0x12, 0xd1, 0x46, 0x81, 0x1b, 0x02, + 0x17, 0xf1, 0x0c, 0xd1, 0x0f, 0x61, 0x1f, 0x07, 0x3c, 0x22, 0xf1, 0x5d, 0xcb, 0x21, 0x93, 0x89, + 0x1d, 0xb8, 0x56, 0x8c, 0xa3, 0x1b, 0x1c, 0x35, 0x8a, 0xdc, 0x7c, 0x4f, 0x18, 0x0c, 0x7c, 0xb7, + 0x2d, 0xd4, 0x23, 0xae, 0x45, 0x87, 0xb0, 0x2d, 0x5d, 0x23, 0xfb, 0x8d, 0x25, 0x32, 0x6d, 0x6c, + 0x72, 0x97, 0x7b, 0x42, 0x61, 0xd8, 0x6f, 0xda, 0x5c, 0xac, 0x5d, 0x43, 0x6d, 0x84, 0xe9, 0x34, + 0x4c, 0x2a, 0xf2, 0x00, 0x2a, 0x97, 0x76, 0x8c, 0xd3, 0xf5, 0x28, 0x33, 0x01, 0xaf, 0xc6, 0x7b, + 0x50, 0x7b, 0x43, 0xa2, 0x6b, 0x2f, 0x90, 0xf5, 0x12, 0xb5, 0xa8, 0x4a, 0x19, 0x37, 0x79, 0x00, + 0x15, 0x8a, 0x27, 0xa1, 0xd0, 0x8b, 0xf2, 0x97, 0x99, 0x80, 0x29, 0x35, 0x07, 0xca, 0xf3, 0xbe, + 0xf8, 0x0c, 0xea, 0x91, 0x1c, 0x5b, 0x0e, 0x71, 0x93, 0xd6, 0x68, 0xa4, 0xb7, 0x38, 0x31, 0x6e, + 0x13, 0x17, 0x1b, 0xb5, 0x28, 0x35, 0x4b, 0x6f, 0x72, 0x2e, 0xbb, 0xc9, 0x1a, 0xd4, 0x3e, 0xc7, + 0xbe, 0x4f, 0x92, 0x15, 0x21, 0x28, 0x04, 0xf6, 0x04, 0xcb, 0xc5, 0xf0, 0xb1, 0xf6, 0x6d, 0xa8, + 0x4b, 0x1b, 0x99, 0x4d, 0x2a, 0x9c, 0x92, 0x0d, 0x57, 0x82, 0xa2, 0x3e, 0x09, 0xe9, 0x4c, 0xfb, + 0x47, 0x0e, 0x60, 0x34, 0x8b, 0x29, 0x9e, 0xb0, 0xfe, 0x46, 0x7b, 0xb0, 0x29, 0xb6, 0x9a, 0x3b, + 0xe4, 0x0d, 0x39, 0x43, 0xef, 0x02, 0x8c, 0x49, 0x44, 0xa6, 0xd4, 0x0b, 0x70, 0xcc, 0x73, 0x2b, + 0x1a, 0x29, 0x89, 0xec, 0xa8, 0x00, 0x3b, 0xd4, 0x23, 0x41, 0x6c, 0x79, 0x01, 0xaf, 0x52, 0x91, + 0x77, 0x54, 0x22, 0xed, 0x06, 0xe8, 0x43, 0xb8, 0x97, 0x36, 0x23, 0x53, 0xd1, 0x23, 0x45, 0x23, + 0xed, 0x3d, 0x98, 0x52, 0xf4, 0x1d, 0xd8, 0xa6, 0x91, 0x7d, 0x75, 0xe5, 0x39, 0x96, 0x7d, 0x63, + 0x7b, 0x3e, 0xdb, 0x5e, 0xd9, 0x1f, 0xaa, 0x54, 0xb4, 0x12, 0x39, 0x4b, 0x7a, 0x1a, 0xfa, 0x5e, + 0x70, 0xcd, 0xdb, 0x21, 0x6f, 0xc8, 0x19, 0x6a, 0x42, 0xd9, 0x25, 0x6f, 0x02, 0xae, 0x29, 0x71, + 0xcd, 0x7c, 0xce, 0x36, 0x5d, 0x58, 0x59, 0x94, 0x50, 0xdb, 0x6f, 0x94, 0xb9, 0xbe, 0x2a, 0x64, + 0x26, 0x13, 0xb1, 0x35, 0x25, 0xe6, 0xd2, 0xa8, 0xc2, 0x8d, 0xea, 0x89, 0x94, 0x9b, 0x69, 0x7f, + 0x54, 0x60, 0x7b, 0x30, 0xa5, 0x97, 0x64, 0x1a, 0xb8, 0x67, 0x11, 0x99, 0x86, 0x5d, 0x8a, 0x27, + 0x48, 0x85, 0x3c, 0xb5, 0xc7, 0xb2, 0xec, 0x6c, 0xc8, 0x76, 0x6c, 0x7e, 0xe8, 0x2b, 0x06, 0x1f, + 0x23, 0x0d, 0xea, 0xd3, 0xc8, 0xb7, 0x28, 0x8e, 0xa9, 0x45, 0xbd, 0x89, 0x38, 0xda, 0x2c, 0x8d, + 0xc8, 0x37, 0x71, 0x4c, 0x4d, 0x6f, 0x82, 0xd1, 0xb7, 0x60, 0x6b, 0x6e, 0xc3, 0x4f, 0x92, 0x2c, + 0x59, 0x4d, 0x1a, 0x75, 0x98, 0x4c, 0xfb, 0x93, 0x02, 0xf5, 0x4c, 0x16, 0x5f, 0x31, 0x83, 0x26, + 0x94, 0x63, 0xec, 0x63, 0x87, 0x62, 0x37, 0x69, 0xec, 0x64, 0x8e, 0x3e, 0x81, 0xa2, 0x47, 0xf1, + 0x24, 0x6e, 0x14, 0x9e, 0xe4, 0x0f, 0xaa, 0xc7, 0x8f, 0xd2, 0x4d, 0x7c, 0x6b, 0xc5, 0x86, 0xb0, + 0xd5, 0x3a, 0x4b, 0xd5, 0xe8, 0x79, 0x31, 0x45, 0x4f, 0x93, 0x48, 0x0a, 0x8f, 0xb4, 0xbf, 0x36, + 0x52, 0x12, 0x65, 0x00, 0xd5, 0x57, 0x76, 0x14, 0xb6, 0x1c, 0x87, 0x4c, 0x03, 0x8a, 0x1e, 0x01, + 0xd8, 0x62, 0x68, 0x79, 0xae, 0x5c, 0x52, 0x45, 0x4a, 0xba, 0x2e, 0xdb, 0x4c, 0xdb, 0x71, 0x70, + 0x1c, 0x5b, 0x94, 0x5c, 0xe3, 0x20, 0x39, 0xc1, 0x42, 0x66, 0x32, 0x91, 0xf6, 0x2f, 0x05, 0x76, + 0x58, 0xc4, 0x57, 0x5e, 0x84, 0xc7, 0x53, 0x3b, 0x72, 0x05, 0x52, 0x30, 0xc4, 0x0a, 0x23, 0xef, + 0xc6, 0xa6, 0xd8, 0xba, 0xc6, 0xb3, 0x04, 0x2b, 0xa5, 0xe8, 0x25, 0x9e, 0xa1, 0x8f, 0x00, 0xf9, + 0xc4, 0xb1, 0x7d, 0xcb, 0x76, 0xdd, 0x88, 0x7d, 0xc2, 0x0b, 0x6f, 0x9e, 0xc9, 0x2f, 0xa8, 0x5c, + 0xd3, 0x12, 0x8a, 0x6e, 0x78, 0xf3, 0x6c, 0xa5, 0xf5, 0xa7, 0xb2, 0xb0, 0xcb, 0xd6, 0x9f, 0xa2, + 0x0f, 0xe0, 0x5e, 0x88, 0x71, 0x64, 0x85, 0xd3, 0x4b, 0xdf, 0x73, 0x78, 0x02, 0x05, 0x01, 0xc4, + 0x4c, 0x3c, 0xe4, 0x52, 0x96, 0xc3, 0x03, 0xa8, 0x38, 0xbe, 0x87, 0xc5, 0xea, 0x8b, 0x62, 0x97, + 0x84, 0xa0, 0xeb, 0x6a, 0x7f, 0x55, 0x60, 0x8f, 0xad, 0xec, 0x0c, 0x07, 0x38, 0xb2, 0xd9, 0x09, + 0x9a, 0x9f, 0xff, 0xef, 0x41, 0x49, 0x16, 0x89, 0x2f, 0xac, 0x9a, 0xbd, 0x6a, 0x52, 0x05, 0x36, + 0x12, 0x3b, 0xd6, 0x35, 0x3e, 0x19, 0xcb, 0xf5, 0xb1, 0x21, 0x7a, 0x0e, 0x9b, 0x12, 0x6c, 0xf3, + 0x3c, 0xc6, 0xe3, 0xe5, 0x18, 0x4b, 0x25, 0x35, 0xa4, 0xb9, 0xf6, 0x12, 0xb6, 0x05, 0xb2, 0x0c, + 0x23, 0xf2, 0x25, 0xc3, 0x7f, 0x3a, 0x8d, 0xd1, 0x43, 0xa8, 0x2c, 0x0e, 0xb4, 0xc2, 0x0f, 0xf4, + 0x42, 0xc0, 0x00, 0x4b, 0x40, 0xb9, 0xcb, 0x33, 0x28, 0x1b, 0xc9, 0x54, 0xfb, 0x1d, 0xd4, 0x86, + 0x76, 0x14, 0xe3, 0x04, 0xff, 0x1a, 0x50, 0x4a, 0xee, 0x2e, 0x09, 0x6d, 0x72, 0xba, 0x7c, 0xfb, + 0xe5, 0x6e, 0xdd, 0x7e, 0x6f, 0x03, 0x73, 0xb4, 0x0b, 0x45, 0x17, 0x5f, 0x4e, 0xc7, 0xf2, 0xee, + 0x12, 0x13, 0xed, 0x0f, 0x0a, 0xd4, 0xe5, 0xe7, 0xbf, 0x31, 0xa0, 0xcf, 0x5e, 0xbd, 0xf3, 0xf4, + 0xd7, 0xdf, 0xf3, 0x3d, 0x68, 0xb6, 0x5f, 0xdb, 0xc1, 0x18, 0x8b, 0x3a, 0x0f, 0x42, 0x8e, 0x96, + 0x49, 0x41, 0x8e, 0x60, 0x47, 0x2e, 0x9b, 0x08, 0x85, 0xf5, 0xeb, 0x98, 0x04, 0xb2, 0x38, 0xdb, + 0x4e, 0xda, 0xe5, 0xa7, 0x31, 0x09, 0xb4, 0x5f, 0xc1, 0x7d, 0xd9, 0x31, 0x32, 0x5e, 0xea, 0x66, + 0x49, 0x5d, 0x93, 0x7c, 0x9c, 0x2d, 0x59, 0x6e, 0x5d, 0xc9, 0xf2, 0xe9, 0x92, 0xbd, 0x80, 0xbd, + 0xe5, 0xf8, 0xb2, 0x74, 0xb7, 0xd9, 0x87, 0xb2, 0x82, 0x7d, 0x68, 0xaf, 0xe0, 0xfe, 0x88, 0x23, + 0x51, 0x02, 0x10, 0xa9, 0xcb, 0x7c, 0xcc, 0xb0, 0xc2, 0x5a, 0xc0, 0x5b, 0x99, 0x0b, 0x4c, 0x7b, + 0xcc, 0xa0, 0x80, 0x48, 0x7b, 0xae, 0x97, 0x50, 0x90, 0xc8, 0x4c, 0x7b, 0xac, 0x7d, 0x17, 0xb6, + 0x2e, 0x04, 0x74, 0x7e, 0x95, 0x88, 0xda, 0xef, 0x61, 0x3f, 0x59, 0x08, 0xeb, 0xf6, 0x6c, 0xb1, + 0x1e, 0x43, 0xd5, 0xf7, 0x1c, 0xcc, 0xba, 0x20, 0x05, 0x1f, 0x52, 0xc4, 0x8e, 0x6e, 0x16, 0xb9, + 0x72, 0x77, 0x21, 0x57, 0xfe, 0x36, 0x72, 0x7d, 0x06, 0x0f, 0x47, 0x98, 0xa6, 0x4e, 0x92, 0x2e, + 0x8e, 0x44, 0x92, 0xc2, 0x23, 0x00, 0x2f, 0xb6, 0x92, 0x63, 0x23, 0x8f, 0x94, 0x17, 0x4b, 0x2b, + 0xed, 0xb7, 0x00, 0x3d, 0x32, 0x96, 0xb4, 0x12, 0x1d, 0x42, 0xd1, 0xc7, 0x37, 0xd8, 0x97, 0xed, + 0xba, 0x9b, 0x6e, 0xd7, 0x1e, 0x19, 0xf7, 0x98, 0xce, 0x10, 0x26, 0xe8, 0xc3, 0xd4, 0x75, 0xb1, + 0x75, 0xbc, 0xb3, 0x64, 0xca, 0x19, 0xaa, 0xb8, 0x43, 0xd6, 0xb7, 0x6c, 0x1d, 0xaa, 0x23, 0x4a, + 0x12, 0x1a, 0xa6, 0xfd, 0x5d, 0x01, 0x64, 0x4e, 0x83, 0x00, 0xfb, 0x19, 0xbe, 0x8a, 0xa0, 0xc0, + 0x61, 0x52, 0xe4, 0xce, 0xc7, 0xac, 0xb0, 0x82, 0x15, 0x5a, 0x21, 0x89, 0x68, 0xc2, 0x38, 0x84, + 0x68, 0x48, 0x22, 0xca, 0x2a, 0x17, 0xd3, 0xc8, 0x73, 0xa8, 0xc5, 0x48, 0x08, 0x96, 0xcd, 0x57, + 0x15, 0x32, 0x83, 0x89, 0xd0, 0x0f, 0xa0, 0x81, 0x03, 0x37, 0x24, 0x1e, 0x2b, 0x7e, 0xe0, 0xe2, + 0x10, 0x07, 0x2e, 0x03, 0xd1, 0xc0, 0x4e, 0xa8, 0xe9, 0x5e, 0xa2, 0xef, 0x2e, 0xd4, 0x7d, 0x9b, + 0xb2, 0x96, 0x8e, 0xa9, 0xed, 0x5c, 0x4b, 0xb0, 0x15, 0x13, 0xed, 0x10, 0xb6, 0x44, 0xf6, 0x77, + 0x13, 0xac, 0x43, 0x0d, 0x6a, 0xe9, 0xe3, 0x8f, 0x36, 0x21, 0x37, 0x78, 0xa9, 0x6e, 0x20, 0x80, + 0xcd, 0xd3, 0x56, 0xb7, 0xa7, 0x77, 0x54, 0xe5, 0xb0, 0x05, 0x95, 0xf9, 0x33, 0x01, 0x55, 0xa1, + 0x34, 0x32, 0x07, 0xc3, 0xa1, 0xde, 0x51, 0x37, 0x50, 0x0d, 0xca, 0x23, 0xb3, 0x65, 0x98, 0xdd, + 0xfe, 0x99, 0xaa, 0x08, 0x55, 0xcb, 0x30, 0xf5, 0x8e, 0x9a, 0x13, 0xaa, 0xc1, 0x70, 0xc8, 0x54, + 0xf9, 0xc3, 0x7f, 0xe6, 0xa0, 0x9a, 0x7a, 0x32, 0xa0, 0x0a, 0x14, 0xf5, 0xf3, 0xa1, 0xf9, 0x85, + 0xba, 0x81, 0xde, 0x81, 0x1d, 0x3e, 0xb4, 0xda, 0x83, 0xfe, 0x69, 0xf7, 0xec, 0xc2, 0x68, 0x99, + 0xdd, 0x41, 0x5f, 0x55, 0x50, 0x03, 0x76, 0x79, 0x38, 0xab, 0x3d, 0x38, 0x3f, 0x6f, 0xf5, 0x3b, + 0xd6, 0x48, 0x37, 0x7e, 0xa6, 0x1b, 0x6a, 0x0e, 0x21, 0xd8, 0x6a, 0x1b, 0x7a, 0xcb, 0xd4, 0xb9, + 0xa8, 0xdb, 0xd6, 0xd5, 0x3c, 0xda, 0x86, 0xba, 0xb0, 0x4e, 0x44, 0x05, 0xb4, 0x0b, 0xea, 0x45, + 0x5f, 0xff, 0xf9, 0x50, 0x6f, 0x9b, 0x7a, 0xc7, 0xd2, 0x0d, 0x63, 0x60, 0xa8, 0x45, 0xb4, 0x03, + 0xf7, 0x5a, 0x3d, 0x43, 0x6f, 0x75, 0xbe, 0xb0, 0x92, 0x6c, 0x37, 0xb3, 0x42, 0xb1, 0xba, 0x12, + 0xda, 0x03, 0xd4, 0xed, 0x8f, 0xcc, 0x56, 0xbf, 0xad, 0x5b, 0xfd, 0x81, 0x69, 0x9d, 0x0e, 0x2e, + 0xfa, 0x1d, 0xb5, 0xcc, 0x12, 0xcb, 0xc8, 0x13, 0x8f, 0xca, 0x0a, 0x8d, 0xf8, 0x00, 0xa0, 0x7d, + 0xb8, 0xcf, 0x13, 0xb0, 0x4e, 0x2e, 0xba, 0xbd, 0x4e, 0xb7, 0x7f, 0x26, 0x97, 0xab, 0x56, 0x99, + 0x93, 0x50, 0x0d, 0x5b, 0xc6, 0x28, 0xa5, 0xa9, 0x2d, 0x34, 0x2c, 0xb3, 0x94, 0xa6, 0x7e, 0x78, + 0x02, 0xe5, 0xe4, 0x18, 0xb0, 0x5a, 0x76, 0xf4, 0x93, 0x8b, 0x33, 0x75, 0x03, 0x95, 0xa1, 0xd0, + 0xed, 0x9f, 0x0e, 0xc4, 0x5e, 0xbc, 0x6a, 0x19, 0x7d, 0x56, 0xfd, 0x1c, 0xaf, 0x36, 0x5f, 0x7d, + 0x9e, 0x0d, 0x4f, 0x5b, 0x66, 0xab, 0xa7, 0x16, 0x0e, 0x3f, 0x82, 0x92, 0x3c, 0x1f, 0xcc, 0xaf, + 0x3d, 0x30, 0x74, 0x75, 0x83, 0xef, 0xa1, 0x2c, 0xa0, 0xc2, 0x9a, 0x40, 0x7e, 0x31, 0x77, 0xfc, + 0x17, 0x05, 0x8a, 0x9c, 0xb5, 0xa3, 0x17, 0x50, 0x1e, 0xd9, 0x33, 0x31, 0xce, 0xdc, 0x23, 0x69, + 0xe2, 0xdf, 0xdc, 0x5f, 0xa1, 0x91, 0xdd, 0xd8, 0x85, 0xad, 0x24, 0xc0, 0x88, 0x46, 0xd8, 0x9e, + 0x7c, 0xad, 0x30, 0x07, 0xca, 0xc7, 0xca, 0xf1, 0xbf, 0x2b, 0x50, 0x60, 0xbd, 0x89, 0x5e, 0x40, + 0x51, 0xbc, 0xdc, 0x32, 0xa1, 0xd2, 0xc7, 0xb7, 0xf9, 0x70, 0xf9, 0xdd, 0x9b, 0x79, 0x29, 0x9f, + 0x2f, 0x5e, 0xcf, 0x8c, 0x0a, 0x32, 0x24, 0x45, 0xef, 0x64, 0x63, 0xcd, 0x01, 0xe2, 0xed, 0xa1, + 0x58, 0x62, 0xe8, 0xe5, 0x82, 0xe6, 0xc6, 0xfc, 0xc5, 0xb2, 0x36, 0xd6, 0x7a, 0xba, 0xca, 0xf2, + 0xe0, 0xc1, 0x06, 0xb0, 0x7d, 0x6e, 0x7b, 0xc1, 0x37, 0x17, 0xb0, 0x03, 0xf5, 0xb3, 0x04, 0xab, + 0xdf, 0x1e, 0x6c, 0x2f, 0xa3, 0x98, 0x3b, 0xf0, 0x28, 0xcf, 0xa1, 0xc8, 0x5f, 0xaf, 0x4b, 0x35, + 0x4f, 0x3d, 0x68, 0x9b, 0xbb, 0xab, 0x78, 0x06, 0xfa, 0x09, 0x14, 0x39, 0x4b, 0xc9, 0x3a, 0xa6, + 0x79, 0x53, 0x76, 0xdf, 0xb3, 0x94, 0xe6, 0x97, 0xb0, 0xb3, 0x82, 0x5f, 0xa0, 0x0f, 0x32, 0x7b, + 0xb2, 0x96, 0x80, 0xdc, 0xd1, 0x06, 0xa7, 0xf2, 0x1f, 0x05, 0x7b, 0xcc, 0x7b, 0x0e, 0xfe, 0xda, + 0xed, 0xf4, 0x1c, 0x0a, 0xac, 0x8c, 0x68, 0x3b, 0x6d, 0xc5, 0x9f, 0xb2, 0x77, 0x38, 0xb6, 0xa0, + 0x64, 0xe0, 0xf8, 0xff, 0x6a, 0x65, 0x76, 0xbe, 0x32, 0x8c, 0x04, 0xbd, 0x97, 0xdd, 0xa0, 0x15, + 0x6c, 0x65, 0xcd, 0x4e, 0xfd, 0x18, 0x4a, 0x92, 0x83, 0xa0, 0x66, 0xda, 0x20, 0x4b, 0x4c, 0xd6, + 0x38, 0x5b, 0x80, 0x6e, 0x33, 0x12, 0xf4, 0x7e, 0xda, 0x76, 0x2d, 0x63, 0x69, 0x6a, 0xcb, 0xf4, + 0x7d, 0xc5, 0xbb, 0xe1, 0x73, 0xd8, 0x3d, 0xcb, 0x50, 0x0e, 0x49, 0xde, 0x57, 0x14, 0xfd, 0xd1, + 0xed, 0x3e, 0x4e, 0x7b, 0x70, 0x12, 0xb7, 0x82, 0xbc, 0xa0, 0x83, 0xa5, 0xd6, 0x5e, 0xcb, 0x6f, + 0xd6, 0xd4, 0xe0, 0x04, 0xaa, 0x0c, 0xa8, 0xef, 0x44, 0x94, 0xbd, 0x25, 0xda, 0x22, 0x2f, 0x4b, + 0x0e, 0x72, 0xff, 0x51, 0xa0, 0x2e, 0xe9, 0x88, 0xec, 0xca, 0x76, 0x82, 0x76, 0xef, 0xa6, 0xdd, + 0x6e, 0x53, 0x96, 0x66, 0xf3, 0xb6, 0x7e, 0x9e, 0xda, 0xf7, 0xd7, 0xb7, 0xe8, 0xdb, 0xdc, 0x9e, + 0xc3, 0xe6, 0xfa, 0x32, 0xdf, 0xf1, 0x3d, 0xfd, 0x4b, 0x8f, 0xfe, 0x8f, 0x6e, 0x27, 0x5b, 0xbf, + 0xa8, 0x1d, 0x3d, 0x5d, 0xa8, 0x2f, 0x37, 0xf9, 0xaf, 0xcf, 0x4f, 0xfe, 0x1b, 0x00, 0x00, 0xff, + 0xff, 0xc8, 0xaf, 0x1d, 0x85, 0x16, 0x15, 0x00, 0x00, } diff --git a/hiddifyrpc/hiddify.proto b/hiddifyrpc/hiddify.proto index 812ffd0..aed27df 100644 --- a/hiddifyrpc/hiddify.proto +++ b/hiddifyrpc/hiddify.proto @@ -111,6 +111,7 @@ message WarpWireguardConfig { string local_address_ipv4 = 2; string local_address_ipv6 = 3; string peer_public_key = 4; + string client_id=5; } message WarpGenerationResponse { diff --git a/mobile/mobile.go b/mobile/mobile.go index 0f52810..1c63c37 100644 --- a/mobile/mobile.go +++ b/mobile/mobile.go @@ -46,6 +46,13 @@ func BuildConfig(path string, configOptionsJson string) (string, error) { } } + if configOptions.Warp2.WireguardConfigStr != "" { + err := json.Unmarshal([]byte(configOptions.Warp2.WireguardConfigStr), &configOptions.Warp2.WireguardConfig) + if err != nil { + return "", err + } + } + return config.BuildConfigJson(*configOptions, options) } diff --git a/v2/custom.go b/v2/custom.go index 0b7c8ee..6598717 100644 --- a/v2/custom.go +++ b/v2/custom.go @@ -213,6 +213,12 @@ func ChangeConfigOptions(in *pb.ChangeConfigOptionsRequest) (*pb.CoreInfoRespons return nil, err } } + if configOptions.Warp2.WireguardConfigStr != "" { + err := json.Unmarshal([]byte(configOptions.Warp2.WireguardConfigStr), &configOptions.Warp2.WireguardConfig) + if err != nil { + return nil, err + } + } return &pb.CoreInfoResponse{}, nil } func (s *CoreService) GenerateConfig(ctx context.Context, in *pb.GenerateConfigRequest) (*pb.GenerateConfigResponse, error) { diff --git a/v2/example_server/main.go b/v2/example_server/main.go index f0f41d5..f1b73c6 100644 --- a/v2/example_server/main.go +++ b/v2/example_server/main.go @@ -11,7 +11,7 @@ import ( func main() { // defer C.free(unsafe.Pointer(port)) - v2.StartGrpcServer("127.0.0.1:50051") + v2.StartGrpcServer("127.0.0.1:50051", "hello") sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM) <-sigChan diff --git a/v2/standalone.go b/v2/standalone.go index 8102641..756a490 100644 --- a/v2/standalone.go +++ b/v2/standalone.go @@ -239,6 +239,11 @@ func readConfigOptionsAt(path string) (*config.ConfigOptions, error) { return nil, err } } - + if options.Warp2.WireguardConfigStr != "" { + err := json.Unmarshal([]byte(options.Warp2.WireguardConfigStr), &options.Warp2.WireguardConfig) + if err != nil { + return nil, err + } + } return &options, nil } diff --git a/v2/warp.go b/v2/warp.go index 1996e7d..145a246 100644 --- a/v2/warp.go +++ b/v2/warp.go @@ -25,6 +25,7 @@ func GenerateWarpConfig(in *pb.GenerateWarpConfigRequest) (*pb.WarpGenerationRes LocalAddressIpv4: wg.LocalAddressIPv4, LocalAddressIpv6: wg.LocalAddressIPv6, PeerPublicKey: wg.PeerPublicKey, + ClientId: wg.ClientID, }, Log: log, }, nil