gitextract_x2sy_bia/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── bug_report_zh.yml │ │ └── config.yml │ ├── build/ │ │ └── friendly-filenames.json │ ├── dependabot.yml │ ├── docker/ │ │ ├── Dockerfile │ │ └── Dockerfile.usa │ └── workflows/ │ ├── docker.yml │ ├── release-win7.yml │ ├── release.yml │ ├── scheduled-assets-update.yml │ └── test.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── SECURITY.md ├── app/ │ ├── app.go │ ├── commander/ │ │ ├── commander.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── outbound.go │ │ └── service.go │ ├── dispatcher/ │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── default.go │ │ ├── dispatcher.go │ │ ├── fakednssniffer.go │ │ ├── sniffer.go │ │ ├── stats.go │ │ └── stats_test.go │ ├── dns/ │ │ ├── cache_controller.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── dns.go │ │ ├── dns_test.go │ │ ├── dnscommon.go │ │ ├── dnscommon_test.go │ │ ├── fakedns/ │ │ │ ├── fake.go │ │ │ ├── fakedns.go │ │ │ ├── fakedns.pb.go │ │ │ ├── fakedns.proto │ │ │ └── fakedns_test.go │ │ ├── hosts.go │ │ ├── hosts_test.go │ │ ├── nameserver.go │ │ ├── nameserver_cached.go │ │ ├── nameserver_doh.go │ │ ├── nameserver_doh_test.go │ │ ├── nameserver_fakedns.go │ │ ├── nameserver_local.go │ │ ├── nameserver_local_test.go │ │ ├── nameserver_quic.go │ │ ├── nameserver_quic_test.go │ │ ├── nameserver_tcp.go │ │ ├── nameserver_tcp_test.go │ │ └── nameserver_udp.go │ ├── log/ │ │ ├── command/ │ │ │ ├── command.go │ │ │ ├── command_test.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ └── config_grpc.pb.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── log.go │ │ ├── log_creator.go │ │ └── log_test.go │ ├── metrics/ │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── metrics.go │ │ └── outbound.go │ ├── observatory/ │ │ ├── burst/ │ │ │ ├── burst.go │ │ │ ├── burstobserver.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ ├── healthping.go │ │ │ ├── healthping_result.go │ │ │ ├── healthping_result_test.go │ │ │ └── ping.go │ │ ├── command/ │ │ │ ├── command.go │ │ │ ├── command.pb.go │ │ │ ├── command.proto │ │ │ └── command_grpc.pb.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── explainErrors.go │ │ ├── observatory.go │ │ └── observer.go │ ├── policy/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── manager.go │ │ ├── manager_test.go │ │ └── policy.go │ ├── proxyman/ │ │ ├── command/ │ │ │ ├── command.go │ │ │ ├── command.pb.go │ │ │ ├── command.proto │ │ │ ├── command_grpc.pb.go │ │ │ └── doc.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── inbound/ │ │ │ ├── always.go │ │ │ ├── inbound.go │ │ │ └── worker.go │ │ └── outbound/ │ │ ├── handler.go │ │ ├── handler_test.go │ │ ├── outbound.go │ │ └── uot.go │ ├── reverse/ │ │ ├── bridge.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── portal.go │ │ ├── portal_test.go │ │ └── reverse.go │ ├── router/ │ │ ├── balancing.go │ │ ├── balancing_override.go │ │ ├── command/ │ │ │ ├── command.go │ │ │ ├── command.pb.go │ │ │ ├── command.proto │ │ │ ├── command_grpc.pb.go │ │ │ ├── command_test.go │ │ │ └── config.go │ │ ├── condition.go │ │ ├── condition_geoip.go │ │ ├── condition_geoip_test.go │ │ ├── condition_serialize_test.go │ │ ├── condition_test.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── geosite_compact.go │ │ ├── router.go │ │ ├── router_test.go │ │ ├── strategy_leastload.go │ │ ├── strategy_leastload_test.go │ │ ├── strategy_leastping.go │ │ ├── strategy_random.go │ │ ├── webhook.go │ │ ├── weight.go │ │ └── weight_test.go │ ├── stats/ │ │ ├── channel.go │ │ ├── channel_test.go │ │ ├── command/ │ │ │ ├── command.go │ │ │ ├── command.pb.go │ │ │ ├── command.proto │ │ │ ├── command_grpc.pb.go │ │ │ └── command_test.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── counter.go │ │ ├── counter_test.go │ │ ├── online_map.go │ │ ├── stats.go │ │ └── stats_test.go │ └── version/ │ ├── config.pb.go │ ├── config.proto │ └── version.go ├── common/ │ ├── antireplay/ │ │ ├── antireplay_test.go │ │ └── mapfilter.go │ ├── bitmask/ │ │ ├── byte.go │ │ └── byte_test.go │ ├── buf/ │ │ ├── buf.go │ │ ├── buffer.go │ │ ├── buffer_test.go │ │ ├── copy.go │ │ ├── copy_test.go │ │ ├── io.go │ │ ├── io_test.go │ │ ├── multi_buffer.go │ │ ├── multi_buffer_test.go │ │ ├── override.go │ │ ├── reader.go │ │ ├── reader_test.go │ │ ├── readv_posix.go │ │ ├── readv_reader.go │ │ ├── readv_reader_wasm.go │ │ ├── readv_test.go │ │ ├── readv_unix.go │ │ ├── readv_windows.go │ │ ├── writer.go │ │ └── writer_test.go │ ├── bytespool/ │ │ └── pool.go │ ├── cache/ │ │ ├── lru.go │ │ └── lru_test.go │ ├── cmdarg/ │ │ └── cmdarg.go │ ├── common.go │ ├── common_test.go │ ├── crypto/ │ │ ├── aes.go │ │ ├── auth.go │ │ ├── auth_test.go │ │ ├── benchmark_test.go │ │ ├── chacha20.go │ │ ├── chacha20_test.go │ │ ├── chunk.go │ │ ├── chunk_test.go │ │ ├── crypto.go │ │ ├── internal/ │ │ │ ├── chacha.go │ │ │ ├── chacha_core.generated.go │ │ │ └── chacha_core_gen.go │ │ └── io.go │ ├── ctx/ │ │ └── context.go │ ├── dice/ │ │ ├── dice.go │ │ └── dice_test.go │ ├── drain/ │ │ ├── drain.go │ │ └── drainer.go │ ├── errors/ │ │ ├── errors.go │ │ ├── errors_test.go │ │ ├── feature_errors.go │ │ └── multi_error.go │ ├── interfaces.go │ ├── log/ │ │ ├── access.go │ │ ├── dns.go │ │ ├── log.go │ │ ├── log.pb.go │ │ ├── log.proto │ │ ├── log_test.go │ │ ├── logger.go │ │ └── logger_test.go │ ├── mux/ │ │ ├── client.go │ │ ├── client_test.go │ │ ├── frame.go │ │ ├── frame_test.go │ │ ├── mux.go │ │ ├── mux_test.go │ │ ├── reader.go │ │ ├── server.go │ │ ├── server_test.go │ │ ├── session.go │ │ ├── session_test.go │ │ └── writer.go │ ├── net/ │ │ ├── address.go │ │ ├── address.pb.go │ │ ├── address.proto │ │ ├── address_test.go │ │ ├── cnc/ │ │ │ └── connection.go │ │ ├── destination.go │ │ ├── destination.pb.go │ │ ├── destination.proto │ │ ├── destination_test.go │ │ ├── find_process_linux.go │ │ ├── find_process_others.go │ │ ├── find_process_windows.go │ │ ├── net.go │ │ ├── network.go │ │ ├── network.pb.go │ │ ├── network.proto │ │ ├── port.go │ │ ├── port.pb.go │ │ ├── port.proto │ │ ├── port_test.go │ │ └── system.go │ ├── ocsp/ │ │ └── ocsp.go │ ├── peer/ │ │ ├── latency.go │ │ └── peer.go │ ├── platform/ │ │ ├── filesystem/ │ │ │ └── file.go │ │ ├── others.go │ │ ├── platform.go │ │ ├── platform_test.go │ │ └── windows.go │ ├── protocol/ │ │ ├── account.go │ │ ├── address.go │ │ ├── address_test.go │ │ ├── bittorrent/ │ │ │ └── bittorrent.go │ │ ├── context.go │ │ ├── dns/ │ │ │ └── io.go │ │ ├── headers.go │ │ ├── headers.pb.go │ │ ├── headers.proto │ │ ├── http/ │ │ │ ├── headers.go │ │ │ ├── headers_test.go │ │ │ ├── sniff.go │ │ │ └── sniff_test.go │ │ ├── id.go │ │ ├── id_test.go │ │ ├── payload.go │ │ ├── protocol.go │ │ ├── quic/ │ │ │ ├── qtls_go118.go │ │ │ ├── sniff.go │ │ │ └── sniff_test.go │ │ ├── server_spec.go │ │ ├── server_spec.pb.go │ │ ├── server_spec.proto │ │ ├── time.go │ │ ├── time_test.go │ │ ├── tls/ │ │ │ ├── cert/ │ │ │ │ ├── cert.go │ │ │ │ ├── cert_test.go │ │ │ │ └── privateKey.go │ │ │ ├── sniff.go │ │ │ └── sniff_test.go │ │ ├── udp/ │ │ │ ├── packet.go │ │ │ └── udp.go │ │ ├── user.go │ │ ├── user.pb.go │ │ └── user.proto │ ├── reflect/ │ │ ├── marshal.go │ │ └── marshal_test.go │ ├── retry/ │ │ ├── retry.go │ │ └── retry_test.go │ ├── serial/ │ │ ├── serial.go │ │ ├── serial_test.go │ │ ├── string.go │ │ ├── string_test.go │ │ ├── typed_message.go │ │ ├── typed_message.pb.go │ │ ├── typed_message.proto │ │ └── typed_message_test.go │ ├── session/ │ │ ├── context.go │ │ └── session.go │ ├── signal/ │ │ ├── done/ │ │ │ └── done.go │ │ ├── notifier.go │ │ ├── notifier_test.go │ │ ├── pubsub/ │ │ │ ├── pubsub.go │ │ │ └── pubsub_test.go │ │ ├── semaphore/ │ │ │ └── semaphore.go │ │ ├── timer.go │ │ └── timer_test.go │ ├── singbridge/ │ │ ├── destination.go │ │ ├── dialer.go │ │ ├── error.go │ │ ├── handler.go │ │ ├── logger.go │ │ ├── packet.go │ │ ├── pipe.go │ │ └── reader.go │ ├── strmatcher/ │ │ ├── ac_automaton_matcher.go │ │ ├── benchmark_test.go │ │ ├── domain_matcher.go │ │ ├── domain_matcher_test.go │ │ ├── full_matcher.go │ │ ├── full_matcher_test.go │ │ ├── matchers.go │ │ ├── matchers_test.go │ │ ├── mph_matcher.go │ │ ├── mph_matcher_compact.go │ │ ├── strmatcher.go │ │ └── strmatcher_test.go │ ├── task/ │ │ ├── common.go │ │ ├── periodic.go │ │ ├── periodic_test.go │ │ ├── task.go │ │ └── task_test.go │ ├── type.go │ ├── type_test.go │ ├── units/ │ │ ├── bytesize.go │ │ └── bytesize_test.go │ ├── utils/ │ │ ├── access_field.go │ │ ├── browser.go │ │ ├── padding.go │ │ └── typed_sync_map.go │ ├── uuid/ │ │ ├── uuid.go │ │ └── uuid_test.go │ └── xudp/ │ ├── xudp.go │ └── xudp_test.go ├── core/ │ ├── annotations.go │ ├── config.go │ ├── config.pb.go │ ├── config.proto │ ├── context.go │ ├── context_test.go │ ├── core.go │ ├── format.go │ ├── functions.go │ ├── functions_test.go │ ├── mocks.go │ ├── proto.go │ ├── xray.go │ └── xray_test.go ├── features/ │ ├── dns/ │ │ ├── client.go │ │ ├── fakedns.go │ │ └── localdns/ │ │ └── client.go │ ├── extension/ │ │ ├── contextreceiver.go │ │ └── observatory.go │ ├── feature.go │ ├── inbound/ │ │ └── inbound.go │ ├── outbound/ │ │ └── outbound.go │ ├── policy/ │ │ ├── default.go │ │ └── policy.go │ ├── routing/ │ │ ├── balancer.go │ │ ├── context.go │ │ ├── dispatcher.go │ │ ├── dns/ │ │ │ └── context.go │ │ ├── router.go │ │ └── session/ │ │ └── context.go │ └── stats/ │ └── stats.go ├── go.mod ├── go.sum ├── infra/ │ ├── conf/ │ │ ├── api.go │ │ ├── blackhole.go │ │ ├── blackhole_test.go │ │ ├── buildable.go │ │ ├── cfgcommon/ │ │ │ └── duration/ │ │ │ ├── duration.go │ │ │ └── duration_test.go │ │ ├── common.go │ │ ├── common_test.go │ │ ├── conf.go │ │ ├── dns.go │ │ ├── dns_proxy.go │ │ ├── dns_proxy_test.go │ │ ├── dns_test.go │ │ ├── dokodemo.go │ │ ├── dokodemo_test.go │ │ ├── fakedns.go │ │ ├── freedom.go │ │ ├── freedom_test.go │ │ ├── general_test.go │ │ ├── grpc.go │ │ ├── http.go │ │ ├── http_test.go │ │ ├── hysteria.go │ │ ├── init.go │ │ ├── json/ │ │ │ ├── reader.go │ │ │ └── reader_test.go │ │ ├── lint.go │ │ ├── loader.go │ │ ├── log.go │ │ ├── loopback.go │ │ ├── metrics.go │ │ ├── observatory.go │ │ ├── policy.go │ │ ├── policy_test.go │ │ ├── reverse.go │ │ ├── reverse_test.go │ │ ├── router.go │ │ ├── router_strategy.go │ │ ├── router_test.go │ │ ├── serial/ │ │ │ ├── builder.go │ │ │ ├── loader.go │ │ │ ├── loader_test.go │ │ │ └── serial.go │ │ ├── shadowsocks.go │ │ ├── shadowsocks_test.go │ │ ├── socks.go │ │ ├── socks_test.go │ │ ├── transport_authenticators.go │ │ ├── transport_internet.go │ │ ├── transport_test.go │ │ ├── trojan.go │ │ ├── tun.go │ │ ├── version.go │ │ ├── vless.go │ │ ├── vless_test.go │ │ ├── vmess.go │ │ ├── vmess_test.go │ │ ├── wireguard.go │ │ ├── wireguard_test.go │ │ ├── xray.go │ │ └── xray_test.go │ └── vformat/ │ └── main.go ├── main/ │ ├── commands/ │ │ ├── all/ │ │ │ ├── api/ │ │ │ │ ├── api.go │ │ │ │ ├── balancer_info.go │ │ │ │ ├── balancer_override.go │ │ │ │ ├── inbound_user.go │ │ │ │ ├── inbound_user_add.go │ │ │ │ ├── inbound_user_count.go │ │ │ │ ├── inbound_user_remove.go │ │ │ │ ├── inbounds_add.go │ │ │ │ ├── inbounds_list.go │ │ │ │ ├── inbounds_remove.go │ │ │ │ ├── logger_restart.go │ │ │ │ ├── outbounds_add.go │ │ │ │ ├── outbounds_list.go │ │ │ │ ├── outbounds_remove.go │ │ │ │ ├── rules_add.go │ │ │ │ ├── rules_list.go │ │ │ │ ├── rules_remove.go │ │ │ │ ├── shared.go │ │ │ │ ├── source_ip_block.go │ │ │ │ ├── stats_get.go │ │ │ │ ├── stats_get_all_online_users.go │ │ │ │ ├── stats_online.go │ │ │ │ ├── stats_online_ip_list.go │ │ │ │ ├── stats_query.go │ │ │ │ └── stats_sys.go │ │ │ ├── buildmphcache.go │ │ │ ├── commands.go │ │ │ ├── convert/ │ │ │ │ ├── convert.go │ │ │ │ ├── json.go │ │ │ │ └── protobuf.go │ │ │ ├── curve25519.go │ │ │ ├── mldsa65.go │ │ │ ├── mlkem768.go │ │ │ ├── tls/ │ │ │ │ ├── cert.go │ │ │ │ ├── ech.go │ │ │ │ ├── hash.go │ │ │ │ ├── ping.go │ │ │ │ └── tls.go │ │ │ ├── uuid.go │ │ │ ├── vlessenc.go │ │ │ ├── wg.go │ │ │ └── x25519.go │ │ └── base/ │ │ ├── command.go │ │ ├── env.go │ │ ├── execute.go │ │ ├── help.go │ │ └── root.go │ ├── confloader/ │ │ ├── confloader.go │ │ └── external/ │ │ └── external.go │ ├── distro/ │ │ └── all/ │ │ └── all.go │ ├── json/ │ │ └── json.go │ ├── main.go │ ├── main_test.go │ ├── run.go │ ├── toml/ │ │ └── toml.go │ ├── version.go │ └── yaml/ │ └── yaml.go ├── proxy/ │ ├── blackhole/ │ │ ├── blackhole.go │ │ ├── blackhole_test.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ └── config_test.go │ ├── dns/ │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── dns.go │ │ └── dns_test.go │ ├── dokodemo/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── dokodemo.go │ │ ├── fakeudp_linux.go │ │ └── fakeudp_other.go │ ├── freedom/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ └── freedom.go │ ├── http/ │ │ ├── client.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── http.go │ │ └── server.go │ ├── hysteria/ │ │ ├── account/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ └── config.proto │ │ ├── client.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── ctx/ │ │ │ └── ctx.go │ │ ├── frag.go │ │ ├── protocol.go │ │ └── server.go │ ├── loopback/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ └── loopback.go │ ├── proxy.go │ ├── shadowsocks/ │ │ ├── client.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── config_test.go │ │ ├── protocol.go │ │ ├── protocol_test.go │ │ ├── server.go │ │ ├── shadowsocks.go │ │ └── validator.go │ ├── shadowsocks_2022/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── inbound.go │ │ ├── inbound_multi.go │ │ ├── inbound_relay.go │ │ ├── outbound.go │ │ └── shadowsocks_2022.go │ ├── socks/ │ │ ├── client.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── protocol.go │ │ ├── protocol_test.go │ │ ├── server.go │ │ ├── socks.go │ │ └── udpfilter.go │ ├── trojan/ │ │ ├── client.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── protocol.go │ │ ├── protocol_test.go │ │ ├── server.go │ │ ├── trojan.go │ │ └── validator.go │ ├── tun/ │ │ ├── README.md │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── handler.go │ │ ├── stack.go │ │ ├── stack_gvisor.go │ │ ├── stack_gvisor_endpoint.go │ │ ├── tun.go │ │ ├── tun_android.go │ │ ├── tun_darwin.go │ │ ├── tun_default.go │ │ ├── tun_linux.go │ │ ├── tun_windows.go │ │ └── udp_fullcone.go │ ├── vless/ │ │ ├── account.go │ │ ├── account.pb.go │ │ ├── account.proto │ │ ├── encoding/ │ │ │ ├── addons.go │ │ │ ├── addons.pb.go │ │ │ ├── addons.proto │ │ │ ├── encoding.go │ │ │ └── encoding_test.go │ │ ├── encryption/ │ │ │ ├── client.go │ │ │ ├── common.go │ │ │ ├── server.go │ │ │ └── xor.go │ │ ├── inbound/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ └── inbound.go │ │ ├── outbound/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ └── outbound.go │ │ ├── validator.go │ │ └── vless.go │ ├── vmess/ │ │ ├── account.go │ │ ├── account.pb.go │ │ ├── account.proto │ │ ├── aead/ │ │ │ ├── authid.go │ │ │ ├── authid_test.go │ │ │ ├── consts.go │ │ │ ├── encrypt.go │ │ │ ├── encrypt_test.go │ │ │ └── kdf.go │ │ ├── encoding/ │ │ │ ├── auth.go │ │ │ ├── client.go │ │ │ ├── commands.go │ │ │ ├── encoding.go │ │ │ ├── encoding_test.go │ │ │ └── server.go │ │ ├── inbound/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ └── inbound.go │ │ ├── outbound/ │ │ │ ├── command.go │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ └── outbound.go │ │ ├── validator.go │ │ ├── validator_test.go │ │ └── vmess.go │ └── wireguard/ │ ├── bind.go │ ├── client.go │ ├── config.go │ ├── config.pb.go │ ├── config.proto │ ├── gvisortun/ │ │ └── tun.go │ ├── server.go │ ├── server_test.go │ ├── tun.go │ ├── tun_default.go │ ├── tun_linux.go │ └── wireguard.go ├── testing/ │ ├── coverage/ │ │ ├── coverall │ │ └── coverall2 │ ├── mocks/ │ │ ├── dns.go │ │ ├── io.go │ │ ├── log.go │ │ ├── mux.go │ │ ├── outbound.go │ │ └── proxy.go │ ├── scenarios/ │ │ ├── command_test.go │ │ ├── common.go │ │ ├── common_coverage.go │ │ ├── common_regular.go │ │ ├── dns_test.go │ │ ├── dokodemo_test.go │ │ ├── feature_test.go │ │ ├── http_test.go │ │ ├── main_test.go │ │ ├── metrics_test.go │ │ ├── policy_test.go │ │ ├── reverse_test.go │ │ ├── shadowsocks_2022_test.go │ │ ├── shadowsocks_test.go │ │ ├── socks_test.go │ │ ├── tls_test.go │ │ ├── transport_test.go │ │ ├── vless_test.go │ │ ├── vmess_test.go │ │ └── wireguard_test.go │ └── servers/ │ ├── http/ │ │ └── http.go │ ├── tcp/ │ │ ├── port.go │ │ └── tcp.go │ └── udp/ │ ├── port.go │ └── udp.go └── transport/ ├── internet/ │ ├── browser_dialer/ │ │ ├── dialer.go │ │ └── dialer.html │ ├── config.go │ ├── config.pb.go │ ├── config.proto │ ├── dialer.go │ ├── dialer_test.go │ ├── filelocker.go │ ├── filelocker_other.go │ ├── filelocker_windows.go │ ├── finalmask/ │ │ ├── finalmask.go │ │ ├── fragment/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ └── conn.go │ │ ├── header/ │ │ │ ├── custom/ │ │ │ │ ├── config.go │ │ │ │ ├── config.pb.go │ │ │ │ ├── config.proto │ │ │ │ ├── tcp.go │ │ │ │ └── udp.go │ │ │ ├── dns/ │ │ │ │ ├── config.go │ │ │ │ ├── config.pb.go │ │ │ │ ├── config.proto │ │ │ │ └── conn.go │ │ │ ├── dtls/ │ │ │ │ ├── config.go │ │ │ │ ├── config.pb.go │ │ │ │ ├── config.proto │ │ │ │ └── conn.go │ │ │ ├── srtp/ │ │ │ │ ├── config.go │ │ │ │ ├── config.pb.go │ │ │ │ ├── config.proto │ │ │ │ └── conn.go │ │ │ ├── utp/ │ │ │ │ ├── config.go │ │ │ │ ├── config.pb.go │ │ │ │ ├── config.proto │ │ │ │ └── conn.go │ │ │ ├── wechat/ │ │ │ │ ├── config.go │ │ │ │ ├── config.pb.go │ │ │ │ ├── config.proto │ │ │ │ └── conn.go │ │ │ └── wireguard/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ └── conn.go │ │ ├── mkcp/ │ │ │ ├── aes128gcm/ │ │ │ │ ├── aes128gcm_test.go │ │ │ │ ├── config.go │ │ │ │ ├── config.pb.go │ │ │ │ ├── config.proto │ │ │ │ └── conn.go │ │ │ └── original/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ ├── conn.go │ │ │ ├── simple_test.go │ │ │ ├── xor.go │ │ │ ├── xor_amd64.go │ │ │ └── xor_amd64.s │ │ ├── noise/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ └── conn.go │ │ ├── salamander/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ ├── conn.go │ │ │ ├── salamander.go │ │ │ └── salamander_test.go │ │ ├── sudoku/ │ │ │ ├── codec.go │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ ├── conn_tcp.go │ │ │ ├── conn_tcp_packed.go │ │ │ ├── conn_udp.go │ │ │ ├── sudoku_test.go │ │ │ └── table.go │ │ ├── tcp_test.go │ │ ├── udp_test.go │ │ ├── xdns/ │ │ │ ├── client.go │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ ├── dns.go │ │ │ ├── dns_test.go │ │ │ └── server.go │ │ └── xicmp/ │ │ ├── client.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── server.go │ │ └── xicmp_test.go │ ├── grpc/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── config_test.go │ │ ├── dial.go │ │ ├── encoding/ │ │ │ ├── customSeviceName.go │ │ │ ├── encoding.go │ │ │ ├── hunkconn.go │ │ │ ├── multiconn.go │ │ │ ├── stream.pb.go │ │ │ ├── stream.proto │ │ │ └── stream_grpc.pb.go │ │ ├── grpc.go │ │ └── hub.go │ ├── happy_eyeballs.go │ ├── header.go │ ├── headers/ │ │ ├── http/ │ │ │ ├── config.go │ │ │ ├── config.pb.go │ │ │ ├── config.proto │ │ │ ├── http.go │ │ │ ├── http_test.go │ │ │ ├── linkedreadRequest.go │ │ │ └── resp.go │ │ └── noop/ │ │ ├── config.pb.go │ │ ├── config.proto │ │ └── noop.go │ ├── httpupgrade/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── connection.go │ │ ├── dialer.go │ │ ├── httpupgrade.go │ │ ├── httpupgrade_test.go │ │ └── hub.go │ ├── hysteria/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── congestion/ │ │ │ ├── bbr/ │ │ │ │ ├── bandwidth.go │ │ │ │ ├── bandwidth_sampler.go │ │ │ │ ├── bbr_sender.go │ │ │ │ ├── clock.go │ │ │ │ ├── packet_number_indexed_queue.go │ │ │ │ ├── ringbuffer.go │ │ │ │ └── windowed_filter.go │ │ │ ├── brutal/ │ │ │ │ └── brutal.go │ │ │ ├── common/ │ │ │ │ └── pacer.go │ │ │ └── utils.go │ │ ├── conn.go │ │ ├── dialer.go │ │ ├── hub.go │ │ ├── padding/ │ │ │ └── padding.go │ │ └── udphop/ │ │ ├── addr.go │ │ └── conn.go │ ├── internet.go │ ├── kcp/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── connection.go │ │ ├── connection_test.go │ │ ├── dialer.go │ │ ├── io.go │ │ ├── io_test.go │ │ ├── kcp.go │ │ ├── kcp_test.go │ │ ├── listener.go │ │ ├── output.go │ │ ├── receiving.go │ │ ├── segment.go │ │ ├── segment_test.go │ │ └── sending.go │ ├── memory_settings.go │ ├── reality/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ └── reality.go │ ├── sockopt.go │ ├── sockopt_darwin.go │ ├── sockopt_freebsd.go │ ├── sockopt_linux.go │ ├── sockopt_linux_test.go │ ├── sockopt_other.go │ ├── sockopt_test.go │ ├── sockopt_windows.go │ ├── splithttp/ │ │ ├── browser_client.go │ │ ├── client.go │ │ ├── common.go │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── config_test.go │ │ ├── connection.go │ │ ├── dialer.go │ │ ├── h1_conn.go │ │ ├── hub.go │ │ ├── mux.go │ │ ├── mux_test.go │ │ ├── splithttp.go │ │ ├── splithttp_test.go │ │ ├── upload_queue.go │ │ ├── upload_queue_test.go │ │ └── xpadding.go │ ├── stat/ │ │ └── connection.go │ ├── system_dialer.go │ ├── system_listener.go │ ├── system_listener_test.go │ ├── tagged/ │ │ ├── tagged.go │ │ └── taggedimpl/ │ │ ├── impl.go │ │ └── taggedimpl.go │ ├── tcp/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── dialer.go │ │ ├── hub.go │ │ ├── sockopt_darwin.go │ │ ├── sockopt_freebsd.go │ │ ├── sockopt_linux.go │ │ ├── sockopt_linux_test.go │ │ ├── sockopt_other.go │ │ └── tcp.go │ ├── tcp_hub.go │ ├── tls/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── config_other.go │ │ ├── config_test.go │ │ ├── config_windows.go │ │ ├── ech.go │ │ ├── ech_test.go │ │ ├── grpc.go │ │ ├── pin.go │ │ ├── pin_test.go │ │ ├── tls.go │ │ └── unsafe.go │ ├── udp/ │ │ ├── config.go │ │ ├── config.pb.go │ │ ├── config.proto │ │ ├── dialer.go │ │ ├── dispatcher.go │ │ ├── dispatcher_test.go │ │ ├── hub.go │ │ ├── hub_darwin.go │ │ ├── hub_freebsd.go │ │ ├── hub_linux.go │ │ ├── hub_other.go │ │ └── udp.go │ └── websocket/ │ ├── config.go │ ├── config.pb.go │ ├── config.proto │ ├── connection.go │ ├── dialer.go │ ├── hub.go │ ├── ws.go │ └── ws_test.go ├── link.go └── pipe/ ├── impl.go ├── pipe.go ├── pipe_test.go ├── reader.go └── writer.go