diff --git a/.DS_Store b/.DS_Store index 5bd136e..092a4aa 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index e0cc2ce..85b6924 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ UserInterfaceState.xcuserstate xcuserdata/ DerivedData/ build/ +.build/ *.mode1v3 *.mode2v3 *.moved-aside diff --git a/EasyTier/.DS_Store b/EasyTier/.DS_Store deleted file mode 100644 index 8f7af22..0000000 Binary files a/EasyTier/.DS_Store and /dev/null differ diff --git a/EasyTier/CliClient.swift b/EasyTier/CliClient.swift deleted file mode 100644 index 94636ea..0000000 --- a/EasyTier/CliClient.swift +++ /dev/null @@ -1,275 +0,0 @@ -import Foundation -import AppKit - -struct PeerInfo: Identifiable, Equatable { - // 使用 sessionID 加上业务字段组合成唯一 ID - // 这样每次启动生成新 sessionID 时,ID 都会变,从而强制触发 SwiftUI 的滑动进入动画 - let sessionID: UUID - let ipv4: String - let hostname: String - let cost: String - let latency: String - let loss: String - let rx: String - let tx: String - let tunnel: String - let nat: String - let version: String - - // 扩展字段:存储完整 JSON 信息中的所有键值对 - var extraInfo: [String: String] = [:] - - // 便捷访问器 (基于 Rust 常见命名惯例 snake_case) - var nodeId: String? { extraInfo["id"] } // JSON key is 'id' - var instanceId: String? { extraInfo["instance_id"] } - // Route info (prefixed with route_) - var nextHopHostname: String? { extraInfo["route_next_hop_hostname"] } - var nextHopLatency: String? { extraInfo["route_next_hop_lat"] } - var pathLen: String? { extraInfo["route_path_len"] } - // Add more as needed based on observation - - // 针对远程节点的完整数据信息 - var fullData: EasyTierStatus.PeerRoutePair? = nil - // 针对“本机”节点的完整信息 - var myNodeData: EasyTierStatus.NodeInfo? = nil - - // 运行中必须保证稳定且唯一的 id:否则 SwiftUI 会把同一节点当成“删除+新增”,或出现跳格/错位 - // 优先使用 route.peerId(数值通常最稳定、且唯一),再降级到 instId / nodeId,最后兜底 hostname+ipv4。 - private var stableKey: String { - if let pid = fullData?.route.peerId { - return "peerId:\(pid)" - } - if let inst = (fullData?.route.instId ?? instanceId), !inst.isEmpty { - return "inst:\(inst)" - } - if let nid = nodeId, !nid.isEmpty { - return "id:\(nid)" - } - // 兜底也要尽量唯一 - return "host:\(hostname)|ip:\(ipv4)|cost:\(cost)" - } - - var id: String { stableKey } - - static func == (lhs: PeerInfo, rhs: PeerInfo) -> Bool { - return lhs.ipv4 == rhs.ipv4 && - lhs.hostname == rhs.hostname && - lhs.latency == rhs.latency && - lhs.rx == rhs.rx && - lhs.tx == rhs.tx && - lhs.loss == rhs.loss && - lhs.cost == rhs.cost && - lhs.tunnel == rhs.tunnel && - lhs.nat == rhs.nat && - lhs.version == rhs.version && - lhs.extraInfo == rhs.extraInfo && - lhs.fullData == rhs.fullData && - lhs.myNodeData == rhs.myNodeData - } -} - -actor CliClient { - private let rpcPort: String - private var cachedBinaryPath: String? - - init(rpcPort: String) { - self.rpcPort = rpcPort - } - - /// 获取节点列表,必须传入当前运行周期的 sessionID - func fetchPeers(sessionID: UUID) async -> [PeerInfo] { - // 1. 尝试通过 JSON 获取完整信息 (优先) - // 使用 -o json peer - if let peerJson = runCLI(arguments: ["-o", "json", "peer"]), - let parsedPeers = parseCLIJSON(peerJson, sessionID: sessionID), !parsedPeers.isEmpty { - - var peers = parsedPeers - - // 尝试获取路由信息并合并 - if let routeJson = runCLI(arguments: ["-o", "json", "route"]), - let data = routeJson.data(using: .utf8), - let routes = try? JSONSerialization.jsonObject(with: data) as? [[String: Any]] { - - var routeMap: [String: [String: Any]] = [:] - for r in routes { - if let h = r["hostname"] as? String { routeMap[h] = r } - } - - for i in 0.. String? { - guard let cliBin = getBinaryPath(name: "easytier-cli") else { return nil } - - let task = Process() - task.executableURL = URL(fileURLWithPath: cliBin) - task.arguments = arguments - - let pipe = Pipe() - task.standardOutput = pipe - - do { - try task.run() - let data = pipe.fileHandleForReading.readDataToEndOfFile() - return String(data: data, encoding: .utf8) - } catch { - return nil - } - } - - private func parseCLITable(_ output: String, sessionID: UUID) -> [PeerInfo] { - let lines = output.components(separatedBy: .newlines) - var peers: [PeerInfo] = [] - - for line in lines { - let trimmed = line.trimmingCharacters(in: .whitespaces) - // 过滤掉表头和空行 - guard trimmed.hasPrefix("|"), trimmed.contains("|") else { continue } - if trimmed.localizedCaseInsensitiveContains("ipv4") || trimmed.hasPrefix("|---") { continue } - - var cols = trimmed.components(separatedBy: "|") - .map { $0.trimmingCharacters(in: .whitespaces) } - - // 处理表格边界切分出的多余空元素 - if !cols.isEmpty { cols.removeFirst() } - if !cols.isEmpty { cols.removeLast() } - - // 清理不间断空格 - cols = cols.map { $0.replacingOccurrences(of: "\u{00A0}", with: " ") } - - // 确保表格列数足够 - guard cols.count >= 10 else { continue } - - let ipv4 = cols[0] - let hostname = cols[1] - let finalIPv4 = ipv4.isEmpty ? "Public Peer" : ipv4 - - let peer = PeerInfo( - sessionID: sessionID, - ipv4: finalIPv4, - hostname: hostname, - cost: cols[2], - latency: cols[3], - loss: cols[4], - rx: cols[5], - tx: cols[6], - tunnel: cols[7], - nat: cols[8], - version: cols[9] - ) - peers.append(peer) - } - return peers - } - - private func parseCLIJSON(_ jsonString: String, sessionID: UUID) -> [PeerInfo]? { - guard let data = jsonString.data(using: .utf8) else { return nil } - - do { - if let array = try JSONSerialization.jsonObject(with: data) as? [[String: Any]] { - return array.compactMap { dict in - // Extract basic fields based on actual CLI JSON output - let rawIPv4 = (dict["ipv4"] as? String) ?? "" - let ipv4 = rawIPv4.isEmpty ? "Public Peer" : rawIPv4 - let hostname = (dict["hostname"] as? String) ?? "" - let cost = anyToString(dict["cost"]) - let latency = anyToString(dict["lat_ms"]) - let loss = anyToString(dict["loss_rate"]) - let rx = anyToString(dict["rx_bytes"]) - let tx = anyToString(dict["tx_bytes"]) - let tunnel = (dict["tunnel_proto"] as? String) ?? "" - let nat = (dict["nat_type"] as? String) ?? "" - let version = (dict["version"] as? String) ?? "" - - // Fallback keys check if primary guess fails - // ... This is tricky without schema. best effort. - - // Create basic info - var extra: [String: String] = [:] - for (k, v) in dict { - extra[k] = anyToString(v) - } - - // Refined parsing from extra if direct dict access failed or to normalize units? - // Table parser deals with "10 ms" strings. JSON might be raw numbers (ms, bytes). - // If JSON returns raw numbers, we might need to format them (e.g. bytes to KB). - // For now, store raw. UI might need update if format changes. - - return PeerInfo( - sessionID: sessionID, - ipv4: ipv4, - hostname: hostname, - cost: cost, - latency: latency, - loss: loss, - rx: rx, - tx: tx, - tunnel: tunnel, - nat: nat, - version: version, - extraInfo: extra - ) - } - } - } catch { - print("JSON Parse Error: \(error)") - } - return nil - } - - private func anyToString(_ value: Any?) -> String { - guard let v = value else { return "" } - if let str = v as? String { return str } - if let num = v as? NSNumber { return num.stringValue } - return String(describing: v) - } - - private func getBinaryPath(name: String) -> String? { - if name == "easytier-cli", let cached = cachedBinaryPath { - return cached - } - - // 1. Check Application Support - if let appSupport = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first { - let customPath = appSupport.appendingPathComponent("Swiftier/bin/\(name)").path - if FileManager.default.fileExists(atPath: customPath) { - if name == "easytier-cli" { cachedBinaryPath = customPath } - return customPath - } - } - - let bundlePath = Bundle.main.executableURL? - .deletingLastPathComponent() - .appendingPathComponent(name).path - - if let path = bundlePath, FileManager.default.fileExists(atPath: path) { - if name == "easytier-cli" { cachedBinaryPath = path } - return path - } - - return bundlePath - } -} diff --git a/EasyTier/ConfigGeneratorView.swift b/EasyTier/ConfigGeneratorView.swift deleted file mode 100644 index 54fb16c..0000000 --- a/EasyTier/ConfigGeneratorView.swift +++ /dev/null @@ -1,1622 +0,0 @@ -import SwiftUI -import AppKit - -// MARK: - Configuration Models - -struct PortForwardRule: Identifiable, Equatable { - let id = UUID() - var protocolType: String = "TCP" // TCP/UDP - var bindIp: String = "0.0.0.0" - var bindPort: String = "" - var targetIp: String = "10.126.126.1" - var targetPort: String = "" -} - -struct EasyTierConfigModel: Equatable { - var instanceName: String = Host.current().localizedName ?? "swiftier-node" - var instanceId: String = UUID().uuidString.lowercased() - - mutating func regenerateInstanceId() { - instanceId = UUID().uuidString.lowercased() - } - - var dhcp: Bool = true - var ipv4: String = "10.126.126.4" - var cidr: String = "24" - var mtu: Int = 1380 - - var networkName: String = "easytier" - var networkSecret: String = "" - - var peerMode: PeerMode = .publicServer - var manualPeers: [String] = [ - "tcp://public.easytier.top:11010" - ] - - var listeners: [String] = [ - "tcp://0.0.0.0:11010", - "udp://0.0.0.0:11010", - "wg://0.0.0.0:11011" - ] - - var portForwards: [PortForwardRule] = [] - - // Flags - var latencyFirst: Bool = false - var enableIPv6: Bool = true - var enableEncryption: Bool = true - var useSmoltcp: Bool = false - var noTun: Bool = false - // var privateMode: Bool = false // Removed as not clearly in latest screenshot or redundant - var disableP2P: Bool = false - var disableUdpHolePunching: Bool = false - var enableExitNode: Bool = false - var enableKcpProxy: Bool = false - var enableQuicProxy: Bool = false - var rpcPort: Int = 15888 - - // New Flags from Screenshot - var disableKcpInput: Bool = false - var disableQuicInput: Bool = false - var disableUdp: Bool = false - var relayAllPeerRpc: Bool = false - var disableEntryNode: Bool = false // 禁用入口节点 - var enableSocks5: Bool = false // SOCKS5 - var socks5Port: Int = 1080 - var foreignNetworkWhitelist: String = "" // 网络白名单? Toggle only for now - - // MARK: - Advanced Features (Missing from previous version) - - // VPN Portal - var enableVpnPortal: Bool = false - var vpnPortalClientCidr: String = "10.14.14.0/24" // Default - var vpnPortalListenPort: Int = 22022 - - // Proxy Networks (Subnet Proxy) - struct ProxySubnet: Identifiable, Equatable { - let id = UUID() - var cidr: String = "192.168.1.0/24" - } - var proxySubnets: [ProxySubnet] = [] - - // Manual Routes - var enableManualRoutes: Bool = false - var manualRoutes: [String] = [] - - // Exit Nodes (Use explicit nodes) - var exitNodes: [String] = [] - - // Relay Network Whitelist - var enableRelayNetworkWhitelist: Bool = false - var relayNetworkWhitelist: [String] = [] - - // Listener Mappings - var mappedListeners: [String] = [] - - // DNS - var enableOverrideDns: Bool = false - var overrideDns: [String] = [] - - // Flags - var bindDevice: Bool = false - var multiThread: Bool = true - var proxyForwardBySystem: Bool = false - var disableSymHolePunching: Bool = false - var enableMagicDns: Bool = false - var enablePrivateMode: Bool = false - var onlyP2P: Bool = false -} - -extension EasyTierConfigModel { - var vpnPortalIpBinding: String { - get { - let parts = vpnPortalClientCidr.split(separator: "/") - return parts.count > 0 ? String(parts[0]) : "" - } - set { - let cidr = vpnPortalCidrBinding - vpnPortalClientCidr = "\(newValue)/\(cidr)" - } - } - - var vpnPortalCidrBinding: String { - get { - let parts = vpnPortalClientCidr.split(separator: "/") - return parts.count > 1 ? String(parts[1]) : "24" - } - set { - let ip = vpnPortalIpBinding - vpnPortalClientCidr = "\(ip)/\(newValue)" - } - } -} - -enum PeerMode: String, CaseIterable, Identifiable { - case publicServer = "公共服务器" - case manual = "手动" - case standalone = "独立" - var id: String { rawValue } - - var localizedTitle: LocalizedStringKey { - LocalizedStringKey(rawValue) - } -} -// MARK: - Draft Manager -class ConfigDraftManager { - static let shared = ConfigDraftManager() - - // Support multiple drafts for different files - // Key nil represents "New Config" draft - private var drafts: [URL?: EasyTierConfigModel] = [:] - - func getDraft(for url: URL?) -> EasyTierConfigModel? { - return drafts[url] - } - - func saveDraft(for url: URL?, model: EasyTierConfigModel) { - drafts[url] = model - } - - func clearDraft(for url: URL? = nil) { - // If specific URL provided, clear that. - // NOTE: Our previous usage was clearDraft() implying current. - // We should update call sites to pass URL or handle "current" context if needed. - // But wait, clearDraft is called after save. We know the URL there. - // So we should change the signature to require URL or context. - // However, to keep it simple and compatible with the single-draft thought process: - // Actually, let's just make it clear specific draft. - if let url = url { - drafts.removeValue(forKey: url) - } else { - // If nil passed, clear "New Config" draft (key nil) - drafts.removeValue(forKey: nil) - } - } - - // Helper to clear all if needed (optional) - func clearAll() { - drafts.removeAll() - } -} - -enum ConfigScreen { - case main - case advanced - case portForwarding -} - -struct ConfigGeneratorView: View { - @Binding var isPresented: Bool - var editingFileURL: URL? = nil // 支持传入文件进行编辑 - var onSave: () -> Void - - @State private var model = EasyTierConfigModel() - - // Track if we've already loaded to avoid resetting user edits - @State private var hasLoadedInitially = false - @State private var lastLoadedURL: URL? = nil - - // Alerts - @State private var saveMessage: String? - @State private var showSaveError = false - - // Navigation - @State private var path: [ConfigScreen] = [.main] - - var body: some View { - ZStack { - mainView - .zIndex(0) - .allowsHitTesting(path.last == .main) - - if let screen = path.last, screen != .main { - - Group { - switch screen { - case .advanced: advancedView - case .portForwarding: portForwardingView - default: EmptyView() - } - } - .background(Color(nsColor: .windowBackgroundColor)) - .zIndex(1) - .transition(.move(edge: .trailing)) - } - } - .animation(.default, value: path.last) - .animation(.default, value: path.last) - .animation(.default, value: path.last) - .onAppear { - // Initial load (e.g. preview or first render) - // If already visible, don't force reset unless necessary logic dictates - if isPresented && !hasLoadedInitially { - loadContent(forceReset: true) - hasLoadedInitially = true - } - } - .onChange(of: editingFileURL) { _ in - // File changed underneath (unlikely in modal) but handle it - loadContent(forceReset: true) - } - .onChange(of: isPresented) { presented in - if presented { - // Fresh session: Always clear old drafts and load from disk/new - loadContent(forceReset: true) - } - } - // Save draft on every change - .onChange(of: model) { newModel in - if isPresented { - ConfigDraftManager.shared.saveDraft(for: editingFileURL, model: newModel) - } - } - } - - private func loadContent(forceReset: Bool = false) { - if forceReset { - ConfigDraftManager.shared.clearDraft(for: editingFileURL) - self.lastLoadedURL = nil // Force reload check - } - - // 1. Try to restore draft (memory cache) - if !forceReset, let draft = ConfigDraftManager.shared.getDraft(for: editingFileURL) { - // Only restore if our current model is different - if model != draft { - self.model = draft - } - self.lastLoadedURL = editingFileURL - return - } - - // 2. If no draft, load from file if needed - // We load if: - // - We haven't loaded this URL yet (lastLoadedURL != editingFileURL) - // - Or editingFileURL is nil (New Config) AND we want to ensure fresh start if no draft - if editingFileURL != lastLoadedURL { - if editingFileURL == nil { - // New file without draft -> Reset - model = EasyTierConfigModel() - } else { - loadFromFile() - } - lastLoadedURL = editingFileURL - } - } - - // MARK: - Advanced View - var advancedView: some View { - VStack(spacing: 0) { - header(title: LocalizedStringKey("高级设置"), leftBtn: LocalizedStringKey("返回"), leftRole: .cancel) { pop() } - - Form { - // 1. 通用 (General) - SwiftUI.Section(header: Text(LocalizedStringKey("通用"))) { - HStack { - Text(LocalizedStringKey("主机名称")) - TextField(LocalizedStringKey("默认"), text: $model.instanceName) - .multilineTextAlignment(.trailing) - .textFieldStyle(.plain) - .labelsHidden() - .textContentType(.none) - .disableAutocorrection(true) - } - - HStack { - Text("实例 ID") - .fixedSize() - Spacer() - Text(model.instanceId) - .foregroundColor(.secondary) - .lineLimit(1) - .truncationMode(.middle) - .monospaced() - - Button { - model.regenerateInstanceId() - } label: { - Image(systemName: "arrow.triangle.2.circlepath") - } - .buttonStyle(.plain) - .help("重新生成 UUID") - } - - HStack { - Text("MTU") - Spacer() - TextField("默认", value: Binding( - get: { self.model.mtu == 1380 ? nil : self.model.mtu }, - set: { self.model.mtu = $0 ?? 1380 } - ), format: .number.grouping(.never)) - .multilineTextAlignment(.trailing) - .frame(width: 80) - .textFieldStyle(.plain) - .labelsHidden() - .textContentType(.none) - } - } - - // 2. 覆盖 DNS (Override DNS) - SwiftUI.Section(header: Text("覆盖 DNS"), footer: Text("覆盖系统 DNS。如果也同时启用了魔法 DNS,需要手动添加。")) { - Toggle("启用", isOn: $model.enableOverrideDns) - if model.enableOverrideDns { - ForEach($model.overrideDns.indices, id: \.self) { i in - HStack { - Text("地址") - Spacer() - IPv4Field(ip: Binding( - get: { - if i < model.overrideDns.count { return model.overrideDns[i] } - return "" - }, - set: { val in - if i < model.overrideDns.count { model.overrideDns[i] = val } - } - )) - .fixedSize() - - Button { - if model.overrideDns.indices.contains(i) { - model.overrideDns.remove(at: i) - } - } label: { - Image(systemName: "minus.circle.fill") - .foregroundColor(.red) - } - .buttonStyle(.plain) - } - } - - Button { - model.overrideDns.append("") - } label: { - HStack { - Image(systemName: "plus.circle.fill") - Text("添加 DNS") - } - .foregroundColor(.blue) - } - .buttonStyle(.plain) - } - } - - // 3. 代理网段 (Proxy CIDR) - SwiftUI.Section(header: Text(LocalizedStringKey("代理网段"))) { - ForEach($model.proxySubnets) { $subnet in - HStack { - Text(LocalizedStringKey("代理:")) - .foregroundColor(.secondary) - Spacer() - IPv4CidrField(ip: Binding( - get: { subnet.cidr.split(separator: "/").first.map(String.init) ?? "" }, - set: { - let oldCidr = subnet.cidr.split(separator: "/").last.map(String.init) ?? "0" - subnet.cidr = "\($0)/\(oldCidr)" - } - ), cidr: Binding( - get: { subnet.cidr.split(separator: "/").last.map(String.init) ?? "" }, - set: { - let oldIp = subnet.cidr.split(separator: "/").first.map(String.init) ?? "" - subnet.cidr = "\(oldIp)/\($0)" - } - )) - .fixedSize() - - Button { - if let idx = model.proxySubnets.firstIndex(of: subnet) { - model.proxySubnets.remove(at: idx) - } - } label: { - Image(systemName: "minus.circle.fill") - .foregroundColor(.red) - } - .buttonStyle(.plain) - } - } - Button { model.proxySubnets.append(EasyTierConfigModel.ProxySubnet(cidr: "0.0.0.0/0")) } label: { - HStack { - Image(systemName: "plus.circle.fill") - Text("添加代理网段") - } - .foregroundColor(.blue) - }.buttonStyle(.plain) - } - - // 4. VPN 门户配置 (VPN Portal) - SwiftUI.Section("VPN 门户配置") { - Toggle("启用", isOn: $model.enableVpnPortal) - if model.enableVpnPortal { - HStack { - Text("客户端网段") - Spacer() - IPv4CidrField(ip: $model.vpnPortalIpBinding, cidr: $model.vpnPortalCidrBinding) - .fixedSize() - } - HStack { - Text("监听端口") - Spacer() - TextField("22022", value: $model.vpnPortalListenPort, format: .number.grouping(.never)) - .multilineTextAlignment(.trailing) - .frame(width: 80) - .labelsHidden() - .textContentType(.none) - } - } - } - - // 5. 监听地址 (Listening Addresses) - // 5. 监听地址 (Listening Addresses) - SwiftUI.Section("监听地址") { - ForEach($model.listeners.indices, id: \.self) { i in - HStack { - TextField("如:tcp://1.1.1.1:11010", text: Binding( - get: { model.listeners[i] }, - set: { model.listeners[i] = $0 } - )) - .textFieldStyle(.plain) - .labelsHidden() - .textContentType(.none) - .disableAutocorrection(true) - - Spacer() - - Button { - model.listeners.remove(at: i) - } label: { - Image(systemName: "minus.circle.fill") - .foregroundColor(.red) - } - .buttonStyle(.plain) - } - } - Button { model.listeners.append("") } label: { - HStack { - Image(systemName: "plus.circle.fill") - Text("添加监听地址") - } - .foregroundColor(.blue) - }.buttonStyle(.plain) - } - - // 6. 网络白名单 (Network Whitelist) - SwiftUI.Section(header: Text("网络白名单"), footer: Text("仅转发白名单网络的流量,支持通配符字符串。多个网络名称间可以使用英文空格间隔。如果该参数为空,则禁用转发。默认允许所有网络。例如:* (所有网络), def* (以 def 为前缀的网络), net1 net2 (只允许 net1 和 net2)。")) { - Toggle("启用", isOn: $model.enableRelayNetworkWhitelist) - if model.enableRelayNetworkWhitelist { - stringListSection(list: $model.relayNetworkWhitelist, placeholder: "CIDR (e.g. 10.0.0.0/24)") - } - } - - // 7. 自定义路由 (Custom Routes) - SwiftUI.Section(header: Text("自定义路由"), footer: Text("手动分配路由 CIDR,将禁用子网代理和从对等节点传播的 wireguard 路由。例如:192.168.0.0/16")) { - Toggle("启用", isOn: $model.enableManualRoutes) - if model.enableManualRoutes { - ForEach($model.manualRoutes.indices, id: \.self) { i in - HStack { - Text("路由:") - .foregroundColor(.secondary) - Spacer() - IPv4CidrField(ip: Binding( - get: { model.manualRoutes[i].split(separator: "/").first.map(String.init) ?? "" }, - set: { - let oldCidr = model.manualRoutes[i].split(separator: "/").last.map(String.init) ?? "24" - model.manualRoutes[i] = "\($0)/\(oldCidr)" - } - ), cidr: Binding( - get: { model.manualRoutes[i].split(separator: "/").last.map(String.init) ?? "24" }, - set: { - let oldIp = model.manualRoutes[i].split(separator: "/").first.map(String.init) ?? "" - model.manualRoutes[i] = "\(oldIp)/\($0)" - } - )) - .fixedSize() - - Button { - model.manualRoutes.remove(at: i) - } label: { - Image(systemName: "minus.circle.fill") - .foregroundColor(.red) - } - .buttonStyle(.plain) - } - } - Button { model.manualRoutes.append("0.0.0.0/0") } label: { - HStack { - Image(systemName: "plus.circle.fill") - Text("添加路由") - } - .foregroundColor(.blue) - }.buttonStyle(.plain) - } - } - - // 8. SOCKS5 服务器 (SOCKS5 Server) - SwiftUI.Section(header: Text(LocalizedStringKey("SOCKS5 服务器")), footer: Text(LocalizedStringKey("开启 SOCKS5 代理功能,Surge 等外部程序可通过此端口连接 EasyTier 网络。"))) { - Toggle(LocalizedStringKey("启用"), isOn: $model.enableSocks5) - if model.enableSocks5 { - HStack { - Text(LocalizedStringKey("监听端口")) - Spacer() - TextField("", value: $model.socks5Port, format: .number.grouping(.never)) - .multilineTextAlignment(.trailing) - .frame(width: 80) - .textContentType(.none) - } - } - } - - // 9. 出口节点列表 (Exit Nodes) - SwiftUI.Section(header: Text(LocalizedStringKey("出口节点列表")), footer: Text(LocalizedStringKey("转发所有流量的出口节点,虚拟 IPv4 地址,优先级由列表顺序决定。"))) { - ForEach($model.exitNodes.indices, id: \.self) { i in - HStack { - Text(LocalizedStringKey("节点:")) - .foregroundColor(.secondary) - Spacer() - IPv4Field(ip: Binding( - get: { model.exitNodes[i] }, - set: { model.exitNodes[i] = $0 } - )) - .fixedSize() - - Button { - model.exitNodes.remove(at: i) - } label: { - Image(systemName: "minus.circle.fill") - .foregroundColor(.red) - } - .buttonStyle(.plain) - } - } - Button { model.exitNodes.append("") } label: { - HStack { - Image(systemName: "plus.circle.fill") - Text(LocalizedStringKey("添加出口节点")) - } - .foregroundColor(.blue) - }.buttonStyle(.plain) - } - - // 10. 监听映射 (Listener Mapping) - SwiftUI.Section(header: Text(LocalizedStringKey("监听映射")), footer: Text(LocalizedStringKey("手动指定监听器的公网地址,其他节点可以使用该地址连接到本节点。例如:tcp://123.123.123.123:11223,可以指定多个。"))) { - stringListSection(list: $model.mappedListeners, placeholder: "URI (e.g. tcp://...)") - } - - // 11. 功能开关 (Feature Toggles) - SwiftUI.Section(header: Text(LocalizedStringKey("功能开关"))) { - toggleRow("延迟优先模式", "忽略中转跳数,选择总延迟最低的路径。", isOn: $model.latencyFirst) - toggleRow("使用用户态协议栈", "使用用户态 TCP/IP 协议栈,避免操作系统防火墙问题导致无法子网代理 / KCP 代理。", isOn: $model.useSmoltcp) - - toggleRow("禁用 IPv6", "禁用此节点的 IPv6 功能,仅使用 IPv4 进行网络通信。", isOn: Binding( - get: { !self.model.enableIPv6 }, - set: { self.model.enableIPv6 = !$0 } - )) - - toggleRow("启用 KCP 代理", "将 TCP 流量转为 KCP 流量,降低传输延迟,提升传输速度。", isOn: $model.enableKcpProxy) - toggleRow("禁用 KCP 输入", "禁用 KCP 入站流量,其他开启 KCP 代理的节点仍然使用 TCP 连接到本节点。", isOn: $model.disableKcpInput) - toggleRow("启用 QUIC 代理", "将 TCP 流量转为 QUIC 流量,降低传输延迟,提升传输速度。", isOn: $model.enableQuicProxy) - toggleRow("禁用 QUIC 输入", "禁用 QUIC 入站流量,其他开启 QUIC 代理的节点仍然使用 TCP 连接到本节点。", isOn: $model.disableQuicInput) - - toggleRow("禁用 P2P", "禁用 P2P 模式,所有流量通过手动指定的服务器中转。", isOn: $model.disableP2P) - toggleRow("仅 P2P", "仅与已经建立 P2P 连接的对等节点通信,不通过其他节点中转。", isOn: $model.onlyP2P) - - toggleRow("仅使用物理网卡", "仅使用物理网卡,避免 EasyTier 通过其他虚拟网建立连接。", isOn: $model.bindDevice) - toggleRow("无 TUN 模式", "不使用 TUN 网卡,适合无管理员权限时使用。本节点仅允许被访问。访问其他节点需要使用 SOCKS5。", isOn: $model.noTun) - - toggleRow("启用出口节点", "允许此节点成为出口节点。", isOn: $model.enableExitNode) - - toggleRow("转发 RPC 包", "允许转发所有对等节点的 RPC 数据包,即使对等节点不在转发网络白名单中。这可以帮助白名单外网络中的对等节点建立 P2P 连接。", isOn: $model.relayAllPeerRpc) - - toggleRow("启用多线程", "使用多线程运行时。", isOn: $model.multiThread) - toggleRow("系统转发", "通过系统内核转发子网代理数据包,禁用内置 NAT。", isOn: $model.proxyForwardBySystem) - - toggleRow("禁用加密", "禁用对等节点通信的加密,默认为 false,必须与对等节点相同。", isOn: Binding( - get: { !self.model.enableEncryption }, - set: { self.model.enableEncryption = !$0 } - )) - - toggleRow("禁用 UDP 打洞", "禁用 UDP 打洞功能。", isOn: $model.disableUdpHolePunching) - toggleRow("禁用对称 NAT 打洞", "禁用对标 NAT 的打洞 (生日攻击),将对称 NAT 视为锥形 NAT 处理。", isOn: $model.disableSymHolePunching) - - toggleRow("启用 Magic DNS", "启用魔法 DNS,允许通过 EasyTier 的 DNS 服务器访问其他节点的虚拟 IPv4 地址,例如:node1.et.net。", isOn: $model.enableMagicDns) - toggleRow("启用私有模式", "启用私有模式,则不允许使用了与本网络不同的网络名称和密码的节点通过本节点进行握手或中转。", isOn: $model.enablePrivateMode) - } - } - .formStyle(.grouped) - .scrollContentBackground(.hidden) - } - } - - // Helper for List Sections - private func stringListSection(list: Binding<[String]>, placeholder: String) -> some View { - Group { - ForEach(list.wrappedValue.indices, id: \.self) { i in - HStack { - TextField(placeholder, text: Binding( - get: { - if i < list.wrappedValue.count { return list.wrappedValue[i] } - return "" - }, - set: { - if i < list.wrappedValue.count { list.wrappedValue[i] = $0 } - } - )) - .textFieldStyle(.plain) - .labelsHidden() - .textContentType(.none) - .disableAutocorrection(true) - - Spacer() - - Button { - if list.wrappedValue.indices.contains(i) { - list.wrappedValue.remove(at: i) - } - } label: { - Image(systemName: "minus.circle.fill") - .foregroundColor(.red) - } - .buttonStyle(.plain) - } - } - Button { list.wrappedValue.append("") } label: { - Label(LocalizedStringKey("添加"), systemImage: "plus.circle.fill").foregroundColor(.blue) - }.buttonStyle(.plain) - } - } - - private func toggleRow(_ title: LocalizedStringKey, _ subtitle: LocalizedStringKey, isOn: Binding) -> some View { - VStack(alignment: .leading, spacing: 4) { - Toggle(title, isOn: isOn) - Text(subtitle) - .font(.caption) - .foregroundColor(.secondary) - .fixedSize(horizontal: false, vertical: true) - } - .padding(.vertical, 4) - } - - // 安全绑定:防止删除操作导致的越界崩溃 - private func safePeerBinding(at index: Int) -> Binding { - Binding( - get: { - if index >= 0 && index < model.manualPeers.count { - return model.manualPeers[index] - } - return "" - }, - set: { - if index >= 0 && index < model.manualPeers.count { - model.manualPeers[index] = $0 - } - } - ) - } - - // MARK: - Main View - var mainView: some View { - VStack(spacing: 0) { - header(title: LocalizedStringKey("配置生成器"), leftBtn: LocalizedStringKey("取消"), leftRole: .destructive, rightBtn: LocalizedStringKey("生成")) { - // Clear draft on cancel so next open reads from disk - ConfigDraftManager.shared.clearDraft(for: editingFileURL) - withAnimation { isPresented = false } - } rightAction: { - generateAndSave() - } - - Form { - // Section 1: Virtual IPv4 - Section(header: Text(LocalizedStringKey("虚拟 IPv4 地址"))) { - Toggle(LocalizedStringKey("DHCP"), isOn: $model.dhcp) - - if !model.dhcp { - HStack(spacing: 0) { - Text(LocalizedStringKey("地址")) - Spacer() - IPv4CidrField(ip: $model.ipv4, cidr: $model.cidr) - .fixedSize() // 关键:使用固有尺寸,防止被拉伸,确保 Spacer 能将其推至最右 - } - } - } - - // Section 2: Network & Peers (Merged as per screenshot) - Section(header: Text(LocalizedStringKey("网络"))) { - HStack { - Text(LocalizedStringKey("名称")) - TextField("easytier", text: $model.networkName) - .multilineTextAlignment(.trailing) - .labelsHidden() - .frame(maxWidth: .infinity) - .textContentType(.none) - .disableAutocorrection(true) - } - - HStack { - Text(LocalizedStringKey("密码")) - TextField(LocalizedStringKey("选填"), text: $model.networkSecret) - .multilineTextAlignment(.trailing) - .labelsHidden() - .frame(maxWidth: .infinity) - .textContentType(.none) - .disableAutocorrection(true) - } - - Picker(LocalizedStringKey("节点模式"), selection: $model.peerMode) { - ForEach(PeerMode.allCases) { mode in - Text(mode.localizedTitle).tag(mode) - } - } - .pickerStyle(.segmented) - .padding(.vertical, 4) - - // Inline Peers List (Image 2 style) - if model.peerMode == .manual { - ForEach(model.manualPeers.indices, id: \.self) { i in - HStack { - TextField("tcp://...", text: safePeerBinding(at: i)) - .textFieldStyle(.plain) - .labelsHidden() - .textContentType(.none) - .disableAutocorrection(true) - - Spacer() - - Button { - if model.manualPeers.indices.contains(i) { - model.manualPeers.remove(at: i) - } - } label: { - Image(systemName: "minus.circle.fill") - .foregroundColor(.red) - } - .buttonStyle(.plain) - } - } - - Button { - model.manualPeers.append("tcp://") - } label: { - HStack { - Image(systemName: "plus.circle.fill") - Text(LocalizedStringKey("添加节点")) - } - .foregroundColor(.blue) - } - .buttonStyle(.plain) - - } else if model.peerMode == .publicServer { - HStack { - Text(LocalizedStringKey("服务器")) - Spacer() - Text("tcp://public.easytier.top:11010") - .foregroundColor(.secondary) - .font(.caption) - } - } - } - - // Section 3: Navigation Entries - Section { - Button { push(.advanced) } label: { - HStack { - Text(LocalizedStringKey("高级设置")) - Spacer() - Image(systemName: "chevron.right") - .foregroundColor(.secondary) - .font(.caption) - } - .contentShape(Rectangle()) // Make entire row clickable - } - .buttonStyle(.plain) - - Button { push(.portForwarding) } label: { - HStack { - Text(LocalizedStringKey("端口转发")) - Spacer() - Image(systemName: "chevron.right") - .foregroundColor(.secondary) - .font(.caption) - } - .contentShape(Rectangle()) // Make entire row clickable - } - .buttonStyle(.plain) - } - } - .formStyle(.grouped) - .scrollContentBackground(.hidden) - } - .background(Color(nsColor: .windowBackgroundColor)) - } - - // MARK: - Port Forwarding (Image 1) - var portForwardingView: some View { - VStack(spacing: 0) { - header(title: LocalizedStringKey("端口转发"), leftBtn: LocalizedStringKey("返回"), leftRole: .cancel) { pop() } - - Form { - ForEach($model.portForwards) { $rule in - Section { - VStack(spacing: 12) { - // Protocol Row - HStack { - Text(LocalizedStringKey("协议")) - Spacer() - Picker("", selection: $rule.protocolType) { - Text("TCP").tag("TCP") - Text("UDP").tag("UDP") - } - .pickerStyle(.segmented) - .frame(width: 120) - } - - Divider() - - // Bind Row - HStack { - Text(LocalizedStringKey("绑定地址")) - Spacer() - IPv4Field(ip: $rule.bindIp) - .fixedSize() - Text(":") - TextField("0", text: $rule.bindPort) - .frame(width: 50) - } - .textFieldStyle(.plain) - .labelsHidden() - - // Arrow - HStack { - Spacer() - Image(systemName: "arrow.down") - .font(.caption) - .foregroundColor(.secondary) - Text(LocalizedStringKey("转发到")) - .font(.caption) - .foregroundColor(.secondary) - Spacer() - } - - // Target Row - HStack { - Text(LocalizedStringKey("目标地址")) - Spacer() - IPv4Field(ip: $rule.targetIp) - .fixedSize() - Text(":") - TextField("0", text: $rule.targetPort) - .frame(width: 50) - } - .textFieldStyle(.plain) - .labelsHidden() - } - .padding(.vertical, 4) - } header: { - HStack { - Spacer() - Button("删除") { - if let idx = model.portForwards.firstIndex(of: rule) { - model.portForwards.remove(at: idx) - } - } - .font(.caption) - .foregroundColor(.red) - .buttonStyle(.plain) - } - } - } - - Section { - Button { - model.portForwards.append(PortForwardRule()) - } label: { - HStack { - Image(systemName: "plus.circle.fill") - Text(LocalizedStringKey("添加端口转发")) - } - .foregroundColor(.blue) - } - .buttonStyle(.plain) - } - } - .formStyle(.grouped) - .scrollContentBackground(.hidden) - } - } - - - - // MARK: - Components - - private func header(title: LocalizedStringKey, leftBtn: LocalizedStringKey, leftRole: ButtonRole? = .cancel, rightBtn: LocalizedStringKey? = nil, leftAction: @escaping () -> Void, rightAction: (() -> Void)? = nil) -> some View { - UnifiedHeader(title: title) { - Button(leftBtn, role: leftRole, action: leftAction) - .buttonStyle(.bordered) - } right: { - if let rightBtn = rightBtn, let rightAction = rightAction { - Button(rightBtn, action: rightAction) - .buttonStyle(.borderedProminent) - .disabled(model.networkName.isEmpty) - } else { - Button(leftBtn) {}.buttonStyle(.bordered).hidden() - } - } - } - - // MARK: - Logic - - private func push(_ screen: ConfigScreen) { - // No animation block here, the state change triggers body animation - path.append(screen) - } - - private func pop() { - _ = path.popLast() - } - - private func generateAndSave() { - let fileURL: URL - if let editing = editingFileURL { - fileURL = editing - } else { - // Should not happen as we pass URL for new files too in ContentView, - // but just in case: - guard let cur = ConfigManager.shared.currentDirectory else { return } - let name = model.instanceName.isEmpty ? "easytier.toml" : "\(model.instanceName).toml" - fileURL = cur.appendingPathComponent(name) - } - - // Prepare peers based on mode - var peersToSave = model.manualPeers - if model.peerMode == .publicServer { peersToSave = ["tcp://public.easytier.top:11010"] } - else if model.peerMode == .standalone { peersToSave = [] } - - let content = generateTOML(peers: peersToSave) - - do { - try content.write(to: fileURL, atomically: true, encoding: .utf8) - - // Clear draft on successful save, so next open reads from file (which is now same as draft) - ConfigDraftManager.shared.clearDraft(for: editingFileURL) - - onSave() - isPresented = false - } catch { - saveMessage = "保存失败: \(error.localizedDescription)" - showSaveError = true - } - } - - private func loadFromFile() { - guard let url = editingFileURL else { return } - guard let content = try? String(contentsOf: url) else { return } - self.model = parseTOML(content) - } - - private func parseTOML(_ content: String) -> EasyTierConfigModel { - var m = EasyTierConfigModel() - let lines = content.components(separatedBy: .newlines) - var currentSection = "" - - m.manualPeers = [] - m.listeners = [] - m.mappedListeners = [] - m.relayNetworkWhitelist = [] - - for line in lines { - let trimmed = line.trimmingCharacters(in: .whitespaces) - if trimmed.isEmpty || trimmed.hasPrefix("#") { continue } - - if trimmed.hasPrefix("[") { - if trimmed.hasPrefix("[[") { - currentSection = String(trimmed.dropFirst(2).dropLast(2)) - if currentSection == "proxy_network" { m.proxySubnets.append(EasyTierConfigModel.ProxySubnet()) } - if currentSection == "port_forward" { m.portForwards.append(PortForwardRule()) } - } else { - currentSection = String(trimmed.dropFirst(1).dropLast(1)) - if currentSection == "vpn_portal_config" { m.enableVpnPortal = true } - } - continue - } - - let parts = trimmed.split(separator: "=", maxSplits: 1).map(String.init) - if parts.count != 2 { continue } - let key = parts[0].trimmingCharacters(in: .whitespaces) - var val = parts[1].trimmingCharacters(in: .whitespaces) - if val.hasPrefix("\"") && val.hasSuffix("\"") { val = String(val.dropFirst().dropLast()) } - - // Root & Sections - if currentSection == "" || currentSection == "network_identity" || currentSection == "flags" { - switch key { - case "instance_name": m.instanceName = val - case "instance_id": m.instanceId = val - case "ipv4": - let c = val.split(separator: "/") - if c.count == 2 { m.ipv4 = String(c[0]); m.cidr = String(c[1]) } - case "dhcp": m.dhcp = (val == "true") - case "mtu": m.mtu = Int(val) ?? 1380 - case "network_name": m.networkName = val - case "network_secret": m.networkSecret = val - case "listeners": - if val.hasPrefix("[") && val.hasSuffix("]") { - let inner = val.dropFirst().dropLast() - m.listeners = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "\"", with: "") } - } - case "mapped_listeners": - if val.hasPrefix("[") && val.hasSuffix("]") { - let inner = val.dropFirst().dropLast() - m.mappedListeners = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "\"", with: "") } - } - case "socks5_proxy": - m.enableSocks5 = true - if let portStr = val.split(separator: ":").last, let p = Int(portStr) { - m.socks5Port = p - } - case "exit_nodes": - if val.hasPrefix("[") && val.hasSuffix("]") { - let inner = val.dropFirst().dropLast() - m.exitNodes = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "\"", with: "") } - } - case "routes": - m.enableManualRoutes = true - if val.hasPrefix("[") && val.hasSuffix("]") { - let inner = val.dropFirst().dropLast() - m.manualRoutes = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "\"", with: "") } - } - - // Flags - case "latency_first": m.latencyFirst = (val == "true") - case "disable_ipv6": m.enableIPv6 = (val != "true") - case "disable_encryption": m.enableEncryption = (val != "true") - case "use_smoltcp": m.useSmoltcp = (val == "true") - case "no_tun": m.noTun = (val == "true") - case "disable_p2p": m.disableP2P = (val == "true") - case "p2p_only": m.onlyP2P = (val == "true") - case "disable_udp_hole_punching": m.disableUdpHolePunching = (val == "true") - case "enable_exit_node": m.enableExitNode = (val == "true") - case "bind_device": m.bindDevice = (val == "true") - case "enable_kcp_proxy": m.enableKcpProxy = (val == "true") - case "disable_kcp_input": m.disableKcpInput = (val == "true") - case "enable_quic_proxy": m.enableQuicProxy = (val == "true") - case "disable_quic_input": m.disableQuicInput = (val == "true") - case "relay_all_peer_rpc": m.relayAllPeerRpc = (val == "true") - - case "multi_thread": m.multiThread = (val == "true") - case "proxy_forward_by_system": m.proxyForwardBySystem = (val == "true") - case "disable_sym_hole_punching": m.disableSymHolePunching = (val == "true") - case "enable_magic_dns": m.enableMagicDns = (val == "true") - case "enable_private_mode": m.enablePrivateMode = (val == "true") - - case "relay_network_whitelist": - m.enableRelayNetworkWhitelist = true - m.relayNetworkWhitelist = val.replacingOccurrences(of: "\"", with: "").components(separatedBy: " ").filter{!$0.isEmpty} - - default: break - } - } else if currentSection == "peer" { - if key == "uri" { m.manualPeers.append(val); m.peerMode = .manual } - } else if currentSection == "vpn_portal_config" { - if key == "client_cidr" { m.vpnPortalClientCidr = val } - if key == "wireguard_listen" { - let p = val.split(separator: ":").last - if let p = p, let post = Int(p) { m.vpnPortalListenPort = post } - } - } else if currentSection == "proxy_network" { - if !m.proxySubnets.isEmpty { - var last = m.proxySubnets.removeLast() - if key == "cidr" { last.cidr = val } - m.proxySubnets.append(last) - } - } else if currentSection == "port_forward" { - if !m.portForwards.isEmpty { - var last = m.portForwards.removeLast() - if key == "proto" { last.protocolType = val.uppercased() } - if key == "bind_addr" { - let parts = val.split(separator: ":") - if parts.count >= 2 { - last.bindPort = String(parts.last!) - last.bindIp = parts.dropLast().joined(separator: ":") - } - } - if key == "dst_addr" { - let parts = val.split(separator: ":") - if parts.count >= 2 { - last.targetPort = String(parts.last!) - last.targetIp = parts.dropLast().joined(separator: ":") - } - } - m.portForwards.append(last) - } - } - } - if m.listeners.isEmpty { m.listeners = ["tcp://0.0.0.0:11010", "udp://0.0.0.0:11010", "wg://0.0.0.0:11011"] } - return m - } - - private func generateTOML(peers: [String]) -> String { - var toml = """ - instance_name = "\(model.instanceName)" - instance_id = "\(model.instanceId)" - dhcp = \(model.dhcp) - """ - // Listeners - if !model.listeners.isEmpty { - let lList = model.listeners.filter{!$0.isEmpty}.map { "\"\($0)\"" }.joined(separator: ", ") - toml += "\nlisteners = [\(lList)]" - } - - // Mapped Listeners - if !model.mappedListeners.isEmpty { - let mlList = model.mappedListeners.filter{!$0.isEmpty}.map { "\"\($0)\"" }.joined(separator: ", ") - toml += "\nmapped_listeners = [\(mlList)]" - } - - if !model.dhcp && !model.ipv4.isEmpty { - // FIX: Key should be 'ipv4', not 'ipv4_cidr' - toml += "\nipv4 = \"\(model.ipv4)/\(model.cidr)\"" - } - - if model.enableSocks5 { - toml += "\nsocks5_proxy = \"socks5://0.0.0.0:\(model.socks5Port)\"" - } - - // Exit Nodes - if !model.exitNodes.isEmpty { - let exits = model.exitNodes.filter{!$0.isEmpty}.map { "\"\($0)\"" }.joined(separator: ", ") - if !exits.isEmpty { - toml += "\nexit_nodes = [\(exits)]" - } - } - - // Manual Routes - if model.enableManualRoutes && !model.manualRoutes.isEmpty { - let rts = model.manualRoutes.filter{!$0.isEmpty}.map { "\"\($0)\"" }.joined(separator: ", ") - if !rts.isEmpty { - toml += "\nroutes = [\(rts)]" - } - } - toml += """ - - [network_identity] - network_name = "\(model.networkName)" - network_secret = "\(model.networkSecret)" - """ - for peer in peers { - if !peer.isEmpty { - toml += "\n\n[[peer]]\nuri = \"\(peer)\"" - } - } - - - - // Flags - var flags = "" - flags += "\nmtu = \(model.mtu)" - - if model.latencyFirst { flags += "\nlatency_first = true" } - // Logic inversion for disable flags (default false means enabled) - if !model.enableIPv6 { flags += "\ndisable_ipv6 = true" } - if !model.enableEncryption { flags += "\ndisable_encryption = true" } - - if model.useSmoltcp { flags += "\nuse_smoltcp = true" } - if model.noTun { flags += "\nno_tun = true" } - if model.disableP2P { flags += "\ndisable_p2p = true" } - if model.onlyP2P { flags += "\np2p_only = true" } - - if model.disableUdpHolePunching { flags += "\ndisable_udp_hole_punching = true" } - if model.enableExitNode { flags += "\nenable_exit_node = true" } - - if model.enableKcpProxy { flags += "\nenable_kcp_proxy = true" } - if model.disableKcpInput { flags += "\ndisable_kcp_input = true" } - if model.enableQuicProxy { flags += "\nenable_quic_proxy = true" } - if model.disableQuicInput { flags += "\ndisable_quic_input = true" } - - if model.relayAllPeerRpc { flags += "\nrelay_all_peer_rpc = true" } - - // New Flags - if model.bindDevice { flags += "\nbind_device = true" } - if !model.multiThread { flags += "\nmulti_thread = false" } // Default true? - // Wait, current Model says `multiThread: Bool = true`. - // If default is true, we write false if model is false. - // If user wants to FORCE turn it on (if core default is false), we write true. - // Let's assume default is false in Core (to be safe) or simply write it if true. - // iOS: `init() { multiThread = true }`. So default is true. - // So we write `multi_thread = true` if it is true, or `multi_thread = false` if false? - // Let's write it if it deviates from a "False" default? Or write explicit? - // Let's stick to "Write if True" for safety unless we know strict defaults. - // Actually, if iOS defaults to true, and user toggles it off, we must write `multi_thread = false`. - // But if user keeps it true, and core default is false, we must write `multi_thread = true`. - // Suggestion: Write `multi_thread = true` since model defaults to true. - if model.multiThread { flags += "\nmulti_thread = true" } - - if model.proxyForwardBySystem { flags += "\nproxy_forward_by_system = true" } - if model.disableSymHolePunching { flags += "\ndisable_sym_hole_punching = true" } - if model.enableMagicDns { flags += "\nenable_magic_dns = true" } - if model.enablePrivateMode { flags += "\nenable_private_mode = true" } - - if model.enableRelayNetworkWhitelist && !model.relayNetworkWhitelist.isEmpty { - let wl = model.relayNetworkWhitelist.joined(separator: " ") - flags += "\nrelay_network_whitelist = \"\(wl)\"" - } - - if !flags.isEmpty { - toml += "\n\n[flags]" + flags - } - - // VPN Portal - if model.enableVpnPortal { - toml += """ - - [vpn_portal_config] - client_cidr = "\(model.vpnPortalClientCidr)" - wireguard_listen = "0.0.0.0:\(model.vpnPortalListenPort)" - """ - } - - // Proxy Networks (Subnet Proxy) - for subnet in model.proxySubnets { - if !subnet.cidr.isEmpty { - toml += """ - - [[proxy_network]] - cidr = "\(subnet.cidr)" - """ - } - } - - // Port Forwarding (Port Forward) - for rule in model.portForwards { - if !rule.bindPort.isEmpty && !rule.targetPort.isEmpty { - toml += """ - - [[port_forward]] - proto = "\(rule.protocolType.lowercased())" - bind_addr = "\(rule.bindIp.isEmpty ? "0.0.0.0" : rule.bindIp):\(rule.bindPort)" - dst_addr = "\(rule.targetIp):\(rule.targetPort)" - """ - } - } - - return toml - } - - - // MARK: - Native IPv4 + CIDR Input (NSViewRepresentable) - - struct IPv4CidrField: NSViewRepresentable { - @Binding var ip: String - @Binding var cidr: String - - func makeNSView(context: Context) -> NSStackView { - let stack = NSStackView() - stack.orientation = .horizontal - stack.spacing = 1 - stack.alignment = .centerY - stack.distribution = .fill // 改回默认 fill,因为我们希望它尽量紧凑 - - // 关键:让 StackView 尽可能收缩宽度,不要被拉伸,这样 Spacer 才能把它推到右边 - stack.setHuggingPriority(.required, for: .horizontal) - - // --- 4 Octets --- - for i in 0..<4 { - let tf = MacOctetTextField() - tf.tag = i // 0, 1, 2, 3 - tf.placeholderString = "0" - tf.isBordered = false - tf.drawsBackground = false - tf.focusRingType = .none - tf.alignment = .center - tf.font = NSFont.monospacedDigitSystemFont(ofSize: 13, weight: .regular) - tf.delegate = context.coordinator - tf.backspaceDelegate = context.coordinator - - // 增加宽度以容纳 3 位数字。固定宽度 36pt 比较稳妥且整齐。 - tf.widthAnchor.constraint(equalToConstant: 36).isActive = true - - stack.addArrangedSubview(tf) - - // Dot separator - if i < 3 { - let dot = NSTextField(labelWithString: ".") - dot.textColor = .secondaryLabelColor - dot.font = NSFont.systemFont(ofSize: 13) - stack.addArrangedSubview(dot) - } - } - - // --- Divider --- - let slash = NSTextField(labelWithString: " / ") - slash.textColor = .secondaryLabelColor - slash.font = NSFont.systemFont(ofSize: 13) - stack.addArrangedSubview(slash) - - // --- CIDR Menu --- - let popup = NSPopUpButton() - popup.bezelStyle = .inline - popup.isBordered = false - popup.font = NSFont.monospacedDigitSystemFont(ofSize: 13, weight: .regular) - popup.addItems(withTitles: ["0", "8", "16", "24", "32"]) - popup.target = context.coordinator - popup.action = #selector(Coordinator.cidrChanged(_:)) - - stack.addArrangedSubview(popup) - - context.coordinator.stackView = stack - return stack - } - - func updateNSView(_ nsView: NSStackView, context: Context) { - context.coordinator.updateFields(from: ip, cidr: cidr) - } - - func makeCoordinator() -> Coordinator { - Coordinator(parent: self) - } - - // MARK: - Coordinator - class Coordinator: NSObject, NSTextFieldDelegate, OctetTextFieldDelegate { - var parent: IPv4CidrField - weak var stackView: NSStackView? - var isInternalUpdate = false - - init(parent: IPv4CidrField) { - self.parent = parent - } - - // Sync Data -> View - func updateFields(from ip: String, cidr: String) { - guard !isInternalUpdate, let stack = stackView else { return } - - let parts = ip.split(separator: ".", omittingEmptySubsequences: false).map(String.init) - var tfIndex = 0 - - for view in stack.arrangedSubviews { - if let tf = view as? NSTextField, view is MacOctetTextField { - let val = tfIndex < parts.count ? parts[tfIndex] : "" - if tf.stringValue != val { - tf.stringValue = val - } - tfIndex += 1 - } else if let popup = view as? NSPopUpButton { - let title = cidr.isEmpty ? "24" : cidr - if popup.titleOfSelectedItem != title { - popup.selectItem(withTitle: title) - } - } - } - } - - // Sync View -> Data - func syncToModel() { - guard let stack = stackView else { return } - isInternalUpdate = true - - var parts = [String]() - for view in stack.arrangedSubviews { - if let tf = view as? MacOctetTextField { - parts.append(tf.stringValue) - } - } - // 补齐 4 位,避免 "10.." 导致数组越界或格式错误 - while parts.count < 4 { parts.append("") } - - parent.ip = parts.joined(separator: ".") - - // 稍微延迟重置标志,以防 SwiftUI updateNSView 立即触发 - DispatchQueue.main.async { - self.isInternalUpdate = false - } - } - - @objc func cidrChanged(_ sender: NSPopUpButton) { - parent.cidr = sender.titleOfSelectedItem ?? "24" - } - - // MARK: - Field Edit Logic - - func controlTextDidChange(_ obj: Notification) { - guard let tf = obj.object as? MacOctetTextField else { return } - - // 1. 过滤非数字 - let filtered = tf.stringValue.filter { "0123456789".contains($0) } - if filtered != tf.stringValue { - tf.stringValue = filtered - } - - // 2. 限制长度 3 位 - if tf.stringValue.count > 3 { - tf.stringValue = String(tf.stringValue.prefix(3)) - } - - // 3. 范围限制 0-255 (可选:如果想允许用户输入过程中暂存大于255的值,可以等 end editing 再校验。但为了体验,这里做实时截断或校验) - if let num = Int(tf.stringValue), num > 255 { - tf.stringValue = "255" - } - - syncToModel() - - // 4. 自动跳转:输入满 3 位且不是最后一个框 -> 跳下一个 - if tf.stringValue.count == 3 { - focusField(at: tf.tag + 1) - } - } - - // Handle Backspace on Empty Field - func didPressBackspaceOnEmpty(in textField: MacOctetTextField) { - let prevIndex = textField.tag - 1 - if prevIndex >= 0 { - focusField(at: prevIndex, placeCursorAtEnd: true, deleteLastChar: true) - } - } - - // MARK: - Focus Helper - func focusField(at index: Int, placeCursorAtEnd: Bool = false, deleteLastChar: Bool = false) { - guard let stack = stackView, index >= 0 && index < 4 else { return } - - // 找到对应的 TextField - let targetView = stack.arrangedSubviews.compactMap { $0 as? MacOctetTextField }.first { $0.tag == index } - - if let tf = targetView { - tf.window?.makeFirstResponder(tf) - - if deleteLastChar && !tf.stringValue.isEmpty { - tf.stringValue = String(tf.stringValue.dropLast()) - syncToModel() - } - - // 关键修复:防止全选。将光标移动到末尾。 - if let editor = tf.currentEditor() { - let length = tf.stringValue.count - editor.selectedRange = NSRange(location: length, length: 0) - } - } - } - - // MARK: - NSTextFieldDelegate (Handle Special Keys) - func control(_ control: NSControl, textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool { - if commandSelector == #selector(NSStandardKeyBindingResponding.deleteBackward(_:)) { - if let tf = control as? MacOctetTextField, tf.stringValue.isEmpty { - didPressBackspaceOnEmpty(in: tf) - return true // Consume event - } - } - return false - } - } - } - - // MARK: - Native IPv4 Input (No CIDR) - struct IPv4Field: NSViewRepresentable { - @Binding var ip: String - - func makeNSView(context: Context) -> NSStackView { - let stack = NSStackView() - stack.orientation = .horizontal - stack.spacing = 1 - stack.alignment = .centerY - stack.distribution = .fill - stack.setHuggingPriority(.required, for: .horizontal) - - for i in 0..<4 { - let tf = MacOctetTextField() - tf.tag = i - tf.placeholderString = "0" - tf.isBordered = false - tf.drawsBackground = false - tf.focusRingType = .none - tf.alignment = .center - tf.font = NSFont.monospacedDigitSystemFont(ofSize: 13, weight: .regular) - tf.delegate = context.coordinator - tf.backspaceDelegate = context.coordinator - tf.widthAnchor.constraint(equalToConstant: 36).isActive = true - stack.addArrangedSubview(tf) - - if i < 3 { - let dot = NSTextField(labelWithString: ".") - dot.textColor = .secondaryLabelColor - dot.font = NSFont.systemFont(ofSize: 13) - stack.addArrangedSubview(dot) - } - } - - context.coordinator.stackView = stack - return stack - } - - func updateNSView(_ nsView: NSStackView, context: Context) { - context.coordinator.updateFields(from: ip) - } - - func makeCoordinator() -> Coordinator { - Coordinator(parent: self) - } - - class Coordinator: NSObject, NSTextFieldDelegate, OctetTextFieldDelegate { - var parent: IPv4Field - weak var stackView: NSStackView? - var isInternalUpdate = false - - init(parent: IPv4Field) { - self.parent = parent - } - - func updateFields(from ip: String) { - guard !isInternalUpdate, let stack = stackView else { return } - let parts = ip.split(separator: ".", omittingEmptySubsequences: false).map(String.init) - var tfIndex = 0 - for view in stack.arrangedSubviews { - if let tf = view as? NSTextField, view is MacOctetTextField { - let val = tfIndex < parts.count ? parts[tfIndex] : "" - if tf.stringValue != val { tf.stringValue = val } - tfIndex += 1 - } - } - } - - func syncToModel() { - guard let stack = stackView else { return } - isInternalUpdate = true - var parts = [String]() - for view in stack.arrangedSubviews { - if let tf = view as? MacOctetTextField { - parts.append(tf.stringValue) - } - } - while parts.count < 4 { parts.append("") } - parent.ip = parts.joined(separator: ".") - DispatchQueue.main.async { self.isInternalUpdate = false } - } - - func controlTextDidChange(_ obj: Notification) { - guard let tf = obj.object as? MacOctetTextField else { return } - let filtered = tf.stringValue.filter { "0123456789".contains($0) } - if filtered != tf.stringValue { tf.stringValue = filtered } - if tf.stringValue.count > 3 { tf.stringValue = String(tf.stringValue.prefix(3)) } - if let num = Int(tf.stringValue), num > 255 { tf.stringValue = "255" } - syncToModel() - if tf.stringValue.count == 3 { focusField(at: tf.tag + 1) } - } - - func didPressBackspaceOnEmpty(in textField: MacOctetTextField) { - let prevIndex = textField.tag - 1 - if prevIndex >= 0 { focusField(at: prevIndex, placeCursorAtEnd: true, deleteLastChar: true) } - } - - func focusField(at index: Int, placeCursorAtEnd: Bool = false, deleteLastChar: Bool = false) { - guard let stack = stackView, index >= 0 && index < 4 else { return } - let targetView = stack.arrangedSubviews.compactMap { $0 as? MacOctetTextField }.first { $0.tag == index } - if let tf = targetView { - tf.window?.makeFirstResponder(tf) - if deleteLastChar && !tf.stringValue.isEmpty { - tf.stringValue = String(tf.stringValue.dropLast()) - syncToModel() - } - if let editor = tf.currentEditor() { - let length = tf.stringValue.count - editor.selectedRange = NSRange(location: length, length: 0) - } - } - } - - func control(_ control: NSControl, textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool { - if commandSelector == #selector(NSStandardKeyBindingResponding.deleteBackward(_:)) { - if let tf = control as? MacOctetTextField, tf.stringValue.isEmpty { - didPressBackspaceOnEmpty(in: tf) - return true - } - } - return false - } - } - } - - // 代理协议:用于传递 Backspace 事件 - protocol OctetTextFieldDelegate: AnyObject { - func didPressBackspaceOnEmpty(in textField: MacOctetTextField) - } - - // 自定义 NSTextField 捕获 Backspace - class MacOctetTextField: NSTextField { - weak var backspaceDelegate: OctetTextFieldDelegate? - // Delegate handles doCommandBy for backspace - } - -} - - diff --git a/EasyTier/ConfigManager.swift b/EasyTier/ConfigManager.swift deleted file mode 100644 index 56b5224..0000000 --- a/EasyTier/ConfigManager.swift +++ /dev/null @@ -1,174 +0,0 @@ -import Foundation -import Combine -import SwiftUI -import AppKit - -class ConfigManager: ObservableObject { - static let shared = ConfigManager() - - @Published var configFiles: [URL] = [] - @AppStorage("custom_config_path") var customPathString: String = "" - @AppStorage("custom_config_bookmark") var customPathBookmark: Data? - - var currentDirectory: URL? { - if let bookmark = customPathBookmark { - var isStale = false - if let url = try? URL(resolvingBookmarkData: bookmark, options: .withSecurityScope, relativeTo: nil, bookmarkDataIsStale: &isStale) { - if isStale { - // Update stale bookmark if needed - if let newBookmark = try? url.bookmarkData(options: .withSecurityScope, includingResourceValuesForKeys: nil, relativeTo: nil) { - DispatchQueue.main.async { self.customPathBookmark = newBookmark } - } - } - return url - } - } - - if !customPathString.isEmpty { - return URL(fileURLWithPath: customPathString) - } - - // 自动探测 iCloud 路径作为默认值 - if let drive = iCloudDriveURL { - let targetDir = drive.appendingPathComponent("Swiftier") - // 确保目录存在 - if !FileManager.default.fileExists(atPath: targetDir.path) { - try? FileManager.default.createDirectory(at: targetDir, withIntermediateDirectories: true) - } - return targetDir - } - - return nil - } - - private init() { - // 首次运行或未设置路径时,自动尝试初始化 iCloud - if customPathString.isEmpty { - if let drive = iCloudDriveURL { - let targetDir = drive.appendingPathComponent("Swiftier") - if !FileManager.default.fileExists(atPath: targetDir.path) { - try? FileManager.default.createDirectory(at: targetDir, withIntermediateDirectories: true) - } - // 自动将 iCloud 路径设为默认路径 - self.customPathString = targetDir.path - } - } - refreshConfigs() - } - - func selectCustomFolder() { - let panel = NSOpenPanel() - panel.canChooseFiles = false - panel.canChooseDirectories = true - panel.allowsMultipleSelection = false - if panel.runModal() == .OK { - if let url = panel.url { - self.customPathString = url.path - - // 沙盒适配:保存安全域书签 (Security Scoped Bookmark) - if let bookmark = try? url.bookmarkData(options: .withSecurityScope, includingResourceValuesForKeys: nil, relativeTo: nil) { - self.customPathBookmark = bookmark - } - - self.refreshConfigs() - } - } - } - - func openiCloudFolder() { - guard let url = currentDirectory else { return } - NSWorkspace.shared.open(url) - } - - func editConfigFile(url: URL) { - NSWorkspace.shared.open(url) - } - - // 尝试获取 iCloud Drive 路径 - private var iCloudDriveURL: URL? { - // 尝试标准路径 (适用于带有 iCloud 权限的 App) - if let url = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("Documents") { - return url - } - // 尝试用户目录路径 (适用于非沙盒 App 或调试) - let home = FileManager.default.homeDirectoryForCurrentUser - let drive = home.appendingPathComponent("Library/Mobile Documents/com~apple~CloudDocs") - if FileManager.default.fileExists(atPath: drive.path) { - return drive - } - return nil - } - - func migrateToiCloud() { - guard let drive = iCloudDriveURL else { - // TODO: 可以添加回调通知 UI 显示错误,这里暂时打印 - print("未找到 iCloud Drive,请确保已登录 iCloud。") - return - } - - let targetDir = drive.appendingPathComponent("Swiftier") - let oldDir = drive.appendingPathComponent("EasyTier") - - do { - // 0. 自动迁移旧 EasyTier 文件夹(如果存在且新 Swiftier 不存在) - if FileManager.default.fileExists(atPath: oldDir.path) && - !FileManager.default.fileExists(atPath: targetDir.path) { - try FileManager.default.moveItem(at: oldDir, to: targetDir) - print("已将旧 EasyTier 文件夹迁移到 Swiftier") - } - - // 1. 创建目标目录 - if !FileManager.default.fileExists(atPath: targetDir.path) { - try FileManager.default.createDirectory(at: targetDir, withIntermediateDirectories: true) - } - - // 2. 复制当前配置文件 - if let currentDir = currentDirectory { - let items = try FileManager.default.contentsOfDirectory(at: currentDir, includingPropertiesForKeys: nil) - let configs = items.filter { $0.pathExtension == "toml" } - - for file in configs { - let destUrl = targetDir.appendingPathComponent(file.lastPathComponent) - if !FileManager.default.fileExists(atPath: destUrl.path) { - try FileManager.default.copyItem(at: file, to: destUrl) - } - } - } - - // 3. 切换目录并刷新 - DispatchQueue.main.async { - self.customPathString = targetDir.path - self.refreshConfigs() - // 打开 Finder 确认 - NSWorkspace.shared.open(targetDir) - } - - } catch { - print("迁移到 iCloud 失败: \(error)") - } - } - - @discardableResult - func refreshConfigs() -> [URL] { - guard let url = currentDirectory else { - DispatchQueue.main.async { self.configFiles = [] } - return [] - } - - let isScoped = url.startAccessingSecurityScopedResource() - defer { if isScoped { url.stopAccessingSecurityScopedResource() } } - - do { - let items = try FileManager.default.contentsOfDirectory(at: url, includingPropertiesForKeys: nil) - let tomlFiles = items.filter { $0.pathExtension == "toml" }.sorted(by: { $0.lastPathComponent < $1.lastPathComponent }) - - DispatchQueue.main.async { - self.configFiles = tomlFiles - } - return tomlFiles - } catch { - print("读取文件夹失败: \(error)") - return [] - } - } -} diff --git a/EasyTier/ContentView.swift b/EasyTier/ContentView.swift deleted file mode 100644 index b23a218..0000000 --- a/EasyTier/ContentView.swift +++ /dev/null @@ -1,855 +0,0 @@ -import SwiftUI -import Combine - -struct ContentView: View { - - // 性能优化:不再直接观察整个 runner,避免 uptime/speed 变化触发全量 Diff - // 改为手动监听核心状态 - private var runner = EasyTierRunner.shared - @State private var isRunning = false - @State private var isWindowVisible = true - @State private var sessionID = UUID() - @StateObject private var configManager = ConfigManager.shared - - @StateObject private var permissionManager = PermissionManager.shared - - @State private var selectedConfig: URL? - @State private var showLogView = false - @State private var showSettingsView = false - @State private var showConfigGenerator = false - @State private var editingConfigURL: URL? - @State private var showCreatePrompt = false - @State private var showFDAOverlay = false - @State private var newConfigName = "" - @State private var createConfigError: String? - - private let windowWidth: CGFloat = 420 - private let windowHeight: CGFloat = 520 - - // 逻辑:判断当前是否有全屏覆盖层显示 - private var isAnyOverlayShown: Bool { - showLogView || showSettingsView || showConfigGenerator || editingConfigURL != nil - } - - var body: some View { - ZStack { - // 不再手动设置背景,利用 MenuBarExtra 原生窗口的 Vibrancy - - // 主内容层 - if isWindowVisible { - VStack(spacing: 0) { - headerView - - ZStack { - if !isAnyOverlayShown { - contentArea - } else { - // 覆盖层显示时,用透明占位保持几何结构稳固 - Color.clear - } - } - .frame(maxWidth: .infinity, maxHeight: .infinity) - } - .frame(width: windowWidth, height: windowHeight, alignment: .top) - .background(Color(nsColor: .windowBackgroundColor).opacity(0.01)) // 确保点击区域 - } else { - Color.clear - .frame(width: windowWidth, height: windowHeight) - } - - // Generator and Editor overlays - Removed from isWindowVisible check to preserve state - // 日志全屏覆盖层 - if showLogView { - LogView(isPresented: $showLogView) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(.regularMaterial) - .compositingGroup() - .zIndex(100) - .transition(.move(edge: .bottom)) - } - - // 设置全屏覆盖层 - if showSettingsView { - SettingsView(isPresented: $showSettingsView) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(.regularMaterial) - .zIndex(101) - .transition(.move(edge: .bottom)) - } - - // 编辑器全屏覆盖层 - if let url = editingConfigURL { - ConfigEditorView( - isPresented: Binding( - get: { true }, - set: { if !$0 { editingConfigURL = nil } } - ), - fileURL: url - ) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(.regularMaterial) - .zIndex(102) - .transition(.move(edge: .bottom)) - } - - // 生成器全屏覆盖层 - if showConfigGenerator { - ConfigGeneratorView( - isPresented: $showConfigGenerator, - editingFileURL: selectedConfig, - onSave: { configManager.refreshConfigs() } - ) - .id(selectedConfig) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .zIndex(103) - .transition(.move(edge: .bottom)) - } - - // 新建配置弹窗 - if showCreatePrompt { - Color.black.opacity(0.3).zIndex(104) - .onTapGesture { withAnimation { showCreatePrompt = false } } - - VStack(spacing: 20) { - Text(LocalizedStringKey("创建新网络")) - .font(.headline) - - if let error = createConfigError { - Text(error) - .font(.caption) - .foregroundColor(.red) - .multilineTextAlignment(.center) - .padding(.horizontal) - } - - VStack(alignment: .leading, spacing: 8) { - Text(LocalizedStringKey("配置文件名:")) - TextField(LocalizedStringKey("例如: my-network"), text: $newConfigName) - .textFieldStyle(.roundedBorder) - .textContentType(.none) - .disableAutocorrection(true) - .onSubmit { createConfig() } - Text(LocalizedStringKey("将自动添加 .toml 后缀")) - .font(.caption) - .foregroundColor(.secondary) - } - .padding(.horizontal) - - HStack { - Button(LocalizedStringKey("取消")) { - withAnimation { - showCreatePrompt = false - createConfigError = nil - } - } - Button(LocalizedStringKey("创建")) { createConfig() } - .buttonStyle(.borderedProminent) - .disabled(newConfigName.isEmpty) - } - } - .padding() - .frame(width: 300) - .background(RoundedRectangle(cornerRadius: 12).fill(Color(nsColor: .windowBackgroundColor))) - .shadow(radius: 20) - .zIndex(105) - .transition(.scale.combined(with: .opacity)) - } - - - - // FDA Permission Guide - if showFDAOverlay && !permissionManager.isFDAGranted { - FDAGuideView(isPresented: $showFDAOverlay) - .zIndex(1000) - } - } - .onChange(of: configManager.configFiles) { newFiles in - // 如果列表不为空,且当前没选中的,或者选中的不在新列表里 -> 选第一个 - if !newFiles.isEmpty { - if selectedConfig == nil || !newFiles.contains(selectedConfig!) { - selectedConfig = newFiles.first - } - } else { - selectedConfig = nil - } - } - // 移除了 onChange(of: selectedConfig) 的自动连接逻辑 - .onAppear { - // 检查权限 - permissionManager.checkFullDiskAccess() - if !permissionManager.isFDAGranted { - showFDAOverlay = true - } - - // 初始启动时刷新一次列表 - configManager.refreshConfigs() - - // 刷新后立刻尝试选中 - if !configManager.configFiles.isEmpty && selectedConfig == nil { - selectedConfig = configManager.configFiles.first - } - - // 设置窗口可见,开始动画 - runner.isWindowVisible = true - } - .onDisappear { - runner.isWindowVisible = false - } - .onReceive(runner.$isRunning) { self.isRunning = $0 } - .onReceive(runner.$isWindowVisible) { self.isWindowVisible = $0 } - .onReceive(runner.$sessionID) { self.sessionID = $0 } - .lockVerticalScroll() // 🔒 Global Lock: Prevents the entire window container from bouncing - } - - // MARK: - Header - - // MARK: - Header - - private var headerView: some View { - HStack { - Menu { - Section("配置文件") { - if configManager.configFiles.isEmpty { - Button("未发现配置") { } - .disabled(true) - } else { - ForEach(configManager.configFiles, id: \.self) { url in - Button(action: { selectedConfig = url }) { - HStack { - Text(url.deletingPathExtension().lastPathComponent) - if selectedConfig == url { - Image(systemName: "checkmark") - } - } - } - } - } - } - - Divider() - - Button("创建新网络") { - newConfigName = "" - createConfigError = nil - withAnimation { showCreatePrompt = true } - } - - Button("编辑配置") { - withAnimation { showConfigGenerator = true } - } - .disabled(selectedConfig == nil) - - Button("编辑配置为文件") { - withAnimation { - editingConfigURL = selectedConfig - } - } - .disabled(selectedConfig == nil) - - Divider() - - Button("存储到 iCloud") { configManager.migrateToiCloud() } - Button("选择文件夹") { configManager.selectCustomFolder() } - Button("在 Finder 中打开") { configManager.openiCloudFolder() } - - - Divider() - - Button(role: .destructive) { deleteSelectedConfig() } label: { - Text(LocalizedStringKey("删除选中的配置")) - .foregroundColor(.red) - } - .disabled(selectedConfig == nil) - } label: { - HStack { - Image(systemName: "point.3.connected.trianglepath.dotted") - Text(selectedConfig?.deletingPathExtension().lastPathComponent ?? NSLocalizedString("请选择配置", comment: "")) - .lineLimit(1) - } - .padding(.horizontal, 8) - .padding(.vertical, 4) - .cornerRadius(6) - } - .menuStyle(.borderlessButton) - - Spacer() - - // 右侧按钮组:日志、设置、退出 - HStack(spacing: 6) { // 极简间距 - // 日志按钮 - Button(action: { - withAnimation { - showLogView = true - } - }) { - Image(systemName: "doc.text") - .font(.system(size: 14)) - .padding(5) - .contentShape(Rectangle()) - } - .buttonStyle(.plain) - - // 设置按钮 - Button(action: { - withAnimation { - showSettingsView = true - } - }) { - Image(systemName: "gearshape") - .font(.system(size: 14)) - .padding(5) - .contentShape(Rectangle()) - } - .buttonStyle(.plain) - - // 退出按钮 - Button(action: { - // 退出逻辑:根据 exitBehavior 设置决定行为 - let behavior = UserDefaults.standard.string(forKey: "exitBehavior") ?? "stopCore" - - switch behavior { - case "keepRunning": - // 保持连接运行,直接退出 UI - NSApplication.shared.terminate(nil) - - case "stopCore": - // 断开连接,但保留 Helper - CoreService.shared.stop { _ in - DispatchQueue.main.async { - NSApplication.shared.terminate(nil) - } - } - - case "stopAll": - // 完全退出(停止 Helper + Core) - if #available(macOS 13.0, *) { - CoreService.shared.quitHelper { - DispatchQueue.main.async { - NSApplication.shared.terminate(nil) - } - } - } else { - CoreService.shared.stop() - NSApplication.shared.terminate(nil) - } - - default: - NSApplication.shared.terminate(nil) - } - }) { - Image(systemName: "power") - .font(.system(size: 14)) // 恢复默认粗细 - .foregroundColor(.red) - .padding(5) - .contentShape(Rectangle()) - } - .buttonStyle(.plain) - } - // 移除了 .padding(.trailing, 12),让左右边距一致(由外层 padding 控制) - } - .padding(12) - .zIndex(200) // 确保 Header 在最上层,防止点击被下方内容遮挡 - } - - private var contentArea: some View { - GeometryReader { geo in - ZStack { - // 1) 水波纹层 (放在最底层) - UIKit 高性能实现 - if isRunning && isWindowVisible { - RippleRingsView(isVisible: true, duration: 4.0, maxScale: 5.5) - .frame(width: 500, height: 500) - .position(x: geo.size.width / 2, y: buttonCenterY(in: geo.size.height)) - .allowsHitTesting(false) - .transition(.opacity) // Fade in - .zIndex(0) - } - - // 2) 节点列表区域 - 使用独立组件隔离刷新 - if isRunning && isWindowVisible && !isAnyOverlayShown { - PeerListArea() - .id(sessionID) - .frame(width: geo.size.width, height: geo.size.height) - .transition(.move(edge: .bottom).combined(with: .opacity)) - .zIndex(1) - } - - // 3) 启动按钮与网速仪表盘层 - 使用独立组件隔离刷新 - if isWindowVisible { - SpeedDashboard( - selectedConfigPath: selectedConfig?.path ?? configManager.configFiles.first?.path ?? "", - geoSize: geo.size, - buttonCenterY: buttonCenterY(in: geo.size.height), - isPaused: isAnyOverlayShown - ) - .zIndex(10) - } - } - .animation(.spring(response: 1.0, dampingFraction: 0.8), value: isRunning) - .animation(.spring(response: 0.55, dampingFraction: 0.8), value: showLogView) - .blur(radius: isAnyOverlayShown ? 10 : 0) - .opacity(isAnyOverlayShown ? 0.3 : 1.0) - } - } - - private func buttonCenterY(in contentHeight: CGFloat) -> CGFloat { - isRunning ? 133 : (contentHeight / 2) // Centered between duration (Y=20) and peer cards (Y=234) - } - - // MARK: - SpeedCard Component - struct SpeedCard: View, Equatable { - let title: String - let value: String // e.g. "133.3 KB/s" - let icon: String - let color: Color - let history: [Double] - let maxVal: Double - let isVisible: Bool - let isPaused: Bool - - // 性能关键:手动实现 Equatable 避开不必要的重绘 - static func == (lhs: SpeedCard, rhs: SpeedCard) -> Bool { - lhs.value == rhs.value && - lhs.history == rhs.history && - lhs.maxVal == rhs.maxVal && - lhs.isVisible == rhs.isVisible && - lhs.isPaused == rhs.isPaused - } - - // Helper to split value and unit - private var splitValue: (number: String, unit: String) { - let components = value.components(separatedBy: " ") - if components.count >= 2 { - return (components[0], components[1]) - } - return (value, "") - } - - var body: some View { - ZStack(alignment: .bottom) { - // Sparkline (Background layer) - UIKit 高性能实现 - // 当整体可见时,传入 paused=false - SmartSparklineView(data: history, color: color, maxScale: maxVal, paused: isPaused) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .padding(.top, 24) - .zIndex(0) - .allowsHitTesting(false) - - // Content (Foreground layer - Floating above sparkline) - VStack(alignment: .leading, spacing: 2) { - // Title (Left Aligned) - HStack(spacing: 4) { - Image(systemName: icon) - .foregroundColor(color) - .font(.system(size: 10, weight: .bold)) - Text(title) - .font(.system(size: 9, weight: .bold)) - .foregroundColor(color.opacity(0.8)) - } - .padding(.top, 10) - - Spacer() - - // Value (Split style - Centered) - HStack(alignment: .firstTextBaseline, spacing: 3) { - Text(splitValue.number) - .font(.system(size: 24, weight: .bold, design: .monospaced)) - Text(splitValue.unit) - .font(.system(size: 11, weight: .bold, design: .monospaced)) - } - .frame(maxWidth: .infinity, alignment: .center) - - Spacer() - - Color.clear.frame(height: 12) - } - .padding(.horizontal, 12) - .zIndex(20) - } - .frame(maxWidth: .infinity) - .frame(height: 85) - .background( - RoundedRectangle(cornerRadius: 12) - .fill(Color(nsColor: .windowBackgroundColor).opacity(0.6)) - ) - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(color.opacity(0.2), lineWidth: 1) - ) - } - } - - // MARK: - 速度仪表盘(独立组件,隔离频繁刷新) - struct SpeedDashboard: View { - let selectedConfigPath: String - let geoSize: CGSize - let buttonCenterY: CGFloat - let isPaused: Bool // 新增:是否暂停 - - // 直接订阅 runner,只有这个组件会被频繁刷新 - @ObservedObject private var runner = EasyTierRunner.shared - - var body: some View { - let maxSpeed = runner.maxHistorySpeed // 直接使用缓存,不再遍历数组 - - HStack(spacing: -6) { - if runner.isRunning && runner.isWindowVisible { - SpeedCard( - title: "DOWNLOAD", - value: runner.downloadSpeed, - icon: "arrow.down.square.fill", - color: .blue, - history: runner.downloadHistory, - maxVal: maxSpeed, - isVisible: true, - isPaused: isPaused - ) - .equatable() - .transition(.move(edge: .bottom).combined(with: .opacity)) - } - - Button { - if !runner.isRunning { - LogParser.shared.resetForNewCoreSession() - } - runner.toggleService(configPath: selectedConfigPath) - } label: { - StartStopButtonCore(isRunning: runner.isRunning, uptimeText: runner.uptimeText) - } - .buttonStyle(.plain) - .zIndex(20) - - if runner.isRunning && runner.isWindowVisible { - SpeedCard( - title: "UPLOAD", - value: runner.uploadSpeed, - icon: "arrow.up.square.fill", - color: .orange, - history: runner.uploadHistory, - maxVal: maxSpeed, - isVisible: true, - isPaused: isPaused - ) - .equatable() - .transition(.move(edge: .bottom).combined(with: .opacity)) - } - } - .padding(.horizontal, 16) - .frame(width: geoSize.width) - .position(x: geoSize.width / 2, y: buttonCenterY) - } - } - - // MARK: - 节点列表区域(独立组件,隔离 peers 刷新) - struct PeerListArea: View { - @StateObject private var runner = EasyTierRunner.shared - - // 定义两行网格布局,自适应宽度 - private let gridRows = [ - GridItem(.fixed(105), spacing: 12), - GridItem(.fixed(105), spacing: 12) - ] - - var body: some View { - let peerIDs = runner.peers.map(\.id) - - return VStack { - Spacer() - - ZStack { - // 1) Grid 永远存在:保证后续插入/删除是“对已有容器的增删”,让 transition 生效 - ScrollView(.horizontal, showsIndicators: false) { - LazyHGrid(rows: gridRows, spacing: 12) { - ForEach(runner.peers) { peer in - PeerCard(peer: peer) - .equatable() - .frame(width: 188) - .clipShape(RoundedRectangle(cornerRadius: 12)) - .transition( - .asymmetric( - insertion: .move(edge: .bottom).combined(with: .opacity), - removal: .opacity - ) - ) - } - } - .padding(.horizontal, 16) - .contentShape(Rectangle()) - } - .preventVerticalBounce() - .frame(height: 222) - - // 2) Loading 仅作为覆盖层,不控制 Grid 的创建/销毁(避免“只有第一张动、后面闪现”) - if runner.isRunning && runner.peers.isEmpty { - VStack(spacing: 20) { - ProgressView().scaleEffect(1.2).controlSize(.large) - Text(LocalizedStringKey("节点加载中")) - .font(.title3.bold()) - .foregroundColor(.secondary) - } - .frame(maxWidth: .infinity) - .frame(height: 222) - .transition(.opacity) - } - } - .frame(maxWidth: .infinity) - .frame(height: 222) - .padding(.bottom, 16) - } - .frame(maxWidth: .infinity) - // 只对「ID 列表」绑定动画:增/减/重排会动画,纯数值刷新不会每秒抖动 - .animation(.spring(response: 0.5, dampingFraction: 0.82), value: peerIDs) - } - } - - // MARK: - Sparkline Component (Wrapper for External Implementation) - struct Sparkline: View { - let data: [Double] - let color: Color - let maxScale: Double - let paused: Bool - - var body: some View { - SmartSparklineView(data: data, color: color, maxScale: maxScale, paused: paused) - } - } - - // MARK: - Helper Functions - - private func createConfig() { - let name = newConfigName.trimmingCharacters(in: .whitespacesAndNewlines) - let safeName = name.isEmpty ? "new-network" : name - let filename = "\(safeName).toml" - - let header = """ - instance_name = "\(safeName)" - instance_id = "\(UUID().uuidString.lowercased())" - dhcp = true - listeners = ["tcp://0.0.0.0:11010", "udp://0.0.0.0:11010", "wg://0.0.0.0:11011"] - - [network_identity] - network_name = "easytier" - network_secret = "" - - [[peer]] - uri = "tcp://public.easytier.top:11010" - - [flags] - mtu = 1380 - disable_ipv6 = false - disable_encryption = false - """ - - guard let currentDir = configManager.currentDirectory else { - createConfigError = "请先在菜单中选择配置文件夹" - return - } - let fileURL = currentDir.appendingPathComponent(filename) - - if FileManager.default.fileExists(atPath: fileURL.path) { - createConfigError = "文件已存在: \(filename)" - return - } - - do { - try header.write(to: fileURL, atomically: true, encoding: .utf8) - let updatedFiles = configManager.refreshConfigs() - - // Find and select - if let newURL = updatedFiles.first(where: { $0.lastPathComponent == filename }) { - selectedConfig = newURL - // Open Editor - withAnimation { - showCreatePrompt = false - showConfigGenerator = true - } - } else { - withAnimation { showCreatePrompt = false } - } - } catch { - createConfigError = "创建失败: \(error.localizedDescription)" - print("Failed to create file: \(error)") - } - } - - private func deleteSelectedConfig() { - guard let url = selectedConfig else { return } - try? FileManager.default.removeItem(at: url) - configManager.refreshConfigs() - - // Auto select next if available is handled by onChange - } -} - - -// MARK: - Start/Stop Button 核心视图 - -struct StartStopButtonCore: View { - let isRunning: Bool - let uptimeText: String - - var body: some View { - ZStack { - // 圆按钮背景 - Circle() - // 启动前:保持原样(蓝色或逻辑原色) - // 启动后:变为 0.9 透明度的白色 - .fill(isRunning ? Color.white : Color.blue) - .frame(width: 84, height: 84) - .shadow(color: .black.opacity(isRunning ? 0.12 : 0.25), radius: 10, y: 4) - - Image(systemName: "power") - .font(.system(size: 28, weight: .regular)) - // 启动后图标为黑色,启动前为白色 - .foregroundStyle(isRunning ? Color.black : Color.white) - - if isRunning { - Text(uptimeText) - .font(.system(size: 22, weight: .bold, design: .monospaced)) // Increased size & weight - .foregroundColor(.primary) - .frame(width: 140) - .lineLimit(1) - .minimumScaleFactor(0.7) - .offset(y: -113) // Restored to top position (133 - 113 = 20) to match original layout while centering button below it - } - } - .frame(width: 84, height: 84) - .padding(.vertical, 6) - } -} - - - - -struct FDAGuideView: View { - @Binding var isPresented: Bool - @ObservedObject var permissionManager = PermissionManager.shared - - var body: some View { - ZStack { - Rectangle().fill(.ultraThinMaterial) - - VStack(spacing: 24) { - Image(systemName: "lock.shield.fill") - .font(.system(size: 60)) - .foregroundColor(.orange) - - VStack(spacing: 12) { - Text("需要完全磁盘访问权限") - .font(.title2.bold()) - - Text("为了能够读取您选择的任意文件夹及配置文件,Swiftier 需要“完全磁盘访问权限”。\n这不会泄露您的私有数据,仅用于解除系统文件夹读取限制。") - .multilineTextAlignment(.center) - .foregroundColor(.secondary) - .padding(.horizontal) - - VStack(alignment: .leading, spacing: 10) { - guideStep(number: "1", text: "点击“去开启”,进入系统设置") - guideStep(number: "2", text: "Swiftier 应该已自动出现在列表中") - guideStep(number: "3", text: "只需打开旁边的开关即可") - } - .padding(.vertical) - - VStack(spacing: 12) { - HStack(spacing: 15) { - Button("在 Finder 中显示") { - permissionManager.revealAppInFinder() - } - .buttonStyle(.bordered) - - Button("立即去开启") { - permissionManager.openFullDiskAccessSettings() - } - .buttonStyle(.borderedProminent) - } - - Button("以后再说") { - withAnimation { isPresented = false } - } - .buttonStyle(.plain) - .foregroundColor(.secondary) - } - } - } - .padding(30) - .background(RoundedRectangle(cornerRadius: 16).fill(Color(nsColor: .windowBackgroundColor))) - .shadow(radius: 20) - .frame(width: 380) - } - .frame(maxWidth: .infinity, maxHeight: .infinity) - .onReceive(NotificationCenter.default.publisher(for: NSApplication.didBecomeActiveNotification)) { _ in - // 当用户从系统设置返回时,自动重新检查 - permissionManager.checkFullDiskAccess() - } - } - - private func guideStep(number: String, text: String) -> some View { - HStack(alignment: .top, spacing: 10) { - Text(number) - .font(.caption.bold()) - .foregroundColor(.white) - .frame(width: 20, height: 20) - .background(Circle().fill(Color.orange)) - - Text(text) - .font(.subheadline) - } - } -} - -// MARK: - Native Horizontal Scroller (Fixes SwiftUI vertical bounce bug on Mac) -// MARK: - Native Horizontal Scroller (The Nuclear Option) -class HorizontalOnlyScrollView: NSScrollView { - override func scrollWheel(with event: NSEvent) { - // Logic: Swallow vertical-dominant events to prevent bounce propagation. - // Allow horizontal events to pass through naturally. - - if abs(event.scrollingDeltaY) > abs(event.scrollingDeltaX) { - // Dominantly vertical: Swallow the event. - // Do NOT call super. This stops scrolling AND stops bounce propagation upwards. - } else { - // Dominantly horizontal (or zero/stationary): Pass it to the scroll view to handle. - super.scrollWheel(with: event) - } - } -} - -struct NativeHorizontalScroller: NSViewRepresentable { - let content: Content - init(@ViewBuilder content: @escaping () -> Content) { self.content = content() } - - func makeNSView(context: Context) -> NSScrollView { - let scroller = HorizontalOnlyScrollView() // Use our subclass - scroller.hasHorizontalScroller = false - scroller.hasVerticalScroller = false - scroller.drawsBackground = false - scroller.autohidesScrollers = true - scroller.horizontalScrollElasticity = .allowed - scroller.verticalScrollElasticity = .none // The Holy Grail - - let hostingView = NSHostingView(rootView: content) - hostingView.translatesAutoresizingMaskIntoConstraints = false - scroller.documentView = hostingView - - if let doc = scroller.documentView { - // 🚫 CRITICAL FIX: Only anchor Top and Left. - // Do NOT anchor Bottom. This allows content (218pt) to be smaller than View (222pt). - // When content < viewport, macOS physically cannot rubber-band vertically. - doc.topAnchor.constraint(equalTo: scroller.contentView.topAnchor).isActive = true - doc.leadingAnchor.constraint(equalTo: scroller.contentView.leadingAnchor).isActive = true - // We DO need to ensure the hosting view takes its own intrinsic size - } - return scroller - } - - func updateNSView(_ nsView: NSScrollView, context: Context) { - if let host = nsView.documentView as? NSHostingView { - host.rootView = content - - // 确保同步更新尺寸以适应内容变化,这能让 SwiftUI 内部的 transition 更稳定 - let fittingSize = host.fittingSize - if host.frame.size != fittingSize { - host.frame.size = fittingSize - } - } - } -} diff --git a/EasyTier/CoreService.swift b/EasyTier/CoreService.swift deleted file mode 100644 index 4a1d2de..0000000 --- a/EasyTier/CoreService.swift +++ /dev/null @@ -1,74 +0,0 @@ -import Foundation -import AppKit - -final class CoreService { - - static let shared = CoreService() - - private init() {} - - // MARK: - Public API - - func start(configPath: String, completion: @escaping (Bool) -> Void) { - if #available(macOS 13.0, *) { - let logLevel = UserDefaults.standard.string(forKey: "logLevel")?.lowercased() ?? "info" - HelperManager.shared.startCore(configPath: configPath, consoleLevel: logLevel) { success, error in - if !success { - print("CoreService start failed: \(error ?? "Unknown")") - } - completion(success) - } - } else { - print("CoreService: Unsupported macOS version") - completion(false) - } - } - - func stop(completion: @escaping (Bool) -> Void = { _ in }) { - if #available(macOS 13.0, *) { - HelperManager.shared.stopCore { success in - completion(success) - } - } else { - completion(true) - } - } - - /// Get core running status - func getStatus(completion: @escaping (Bool, Int32) -> Void) { - if #available(macOS 13.0, *) { - HelperManager.shared.getCoreStatus { pid in - completion(pid > 0, pid) - } - } else { - completion(false, 0) - } - } - - // MARK: - Helper Management (macOS 13+) - - @available(macOS 13.0, *) - func installHelper(completion: @escaping (Bool, String?) -> Void) { - HelperManager.shared.installHelper(completion: completion) - } - - @available(macOS 13.0, *) - func uninstallHelper(completion: @escaping (Bool, String?) -> Void) { - HelperManager.shared.uninstallHelper(completion: completion) - } - - @available(macOS 13.0, *) - var isHelperInstalled: Bool { - return HelperManager.shared.isHelperInstalled - } - - @available(macOS 13.0, *) - var helperStatus: String { - return HelperManager.shared.serviceStatus - } - - @available(macOS 13.0, *) - func quitHelper(completion: @escaping () -> Void) { - HelperManager.shared.quitHelper(completion: completion) - } -} diff --git a/EasyTier/EasyTierControlApp.swift b/EasyTier/EasyTierControlApp.swift deleted file mode 100644 index 0f147ad..0000000 --- a/EasyTier/EasyTierControlApp.swift +++ /dev/null @@ -1,149 +0,0 @@ -import SwiftUI -import AppKit -import Combine - -@main -struct EasyTierControlApp: App { - @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate - @StateObject private var runner = EasyTierRunner.shared - @StateObject private var iconState = MenuBarIconState.shared - @AppStorage("breathEffect") private var breathEffect: Bool = true - - var body: some Scene { - MenuBarExtra { - ContentView() - } label: { - MenuBarLabelView(iconState: iconState) - } - .menuBarExtraStyle(.window) - } -} - -// 优化:将 Label 提取为独立 View 隔离刷新 -struct MenuBarLabelView: View { - @ObservedObject var iconState: MenuBarIconState - - var body: some View { - HStack(spacing: 4) { - Image(systemName: iconState.currentIcon) - } - } -} - -// 菜单栏图标状态管理 -class MenuBarIconState: ObservableObject { - static let shared = MenuBarIconState() - - @Published var currentIcon: String = "point.3.connected.trianglepath.dotted" - - private let iconOutline = "point.3.connected.trianglepath.dotted" - private let iconFilled = "point.3.filled.connected.trianglepath.dotted" - private var isShowingFilled = true - private var animationTimer: Timer? - private var cancellables = Set() - - private init() { - // 优化:监听运行状态变化,按需启停 Timer - EasyTierRunner.shared.$isRunning - .receive(on: DispatchQueue.main) - .sink { [weak self] isRunning in - self?.handleRunningStateChange(isRunning: isRunning) - } - .store(in: &cancellables) - - // 监听 breathEffect 设置变化 - NotificationCenter.default.publisher(for: UserDefaults.didChangeNotification) - .receive(on: DispatchQueue.main) - .sink { [weak self] _ in - self?.updateTimerState() - } - .store(in: &cancellables) - } - - private func handleRunningStateChange(isRunning: Bool) { - updateIcon(isRunning: isRunning) - updateTimerState() - } - - private func updateTimerState() { - let isRunning = EasyTierRunner.shared.isRunning - let blinkEnabled = (UserDefaults.standard.object(forKey: "breathEffect") as? Bool) ?? true - - if isRunning && blinkEnabled { - startTimer() - } else { - stopTimer() - } - } - - private func startTimer() { - // 优化:避免重复启动 - guard animationTimer == nil else { return } - - animationTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in - guard let self = self else { return } - // 呼吸效果:切换实心/空心 - self.isShowingFilled.toggle() - self.currentIcon = self.isShowingFilled ? self.iconFilled : self.iconOutline - } - } - - private func stopTimer() { - animationTimer?.invalidate() - animationTimer = nil - } - - private func updateIcon(isRunning: Bool) { - if isRunning { - currentIcon = iconFilled - isShowingFilled = true - } else { - currentIcon = iconOutline - isShowingFilled = true - } - } -} - -class AppDelegate: NSObject, NSApplicationDelegate { - private var cancellables = Set() - - func applicationDidFinishLaunching(_ notification: Notification) { - NSApp.setActivationPolicy(.accessory) - - // 自动连接 - checkAndAutoConnect() - } - - // MARK: - Lifecycle - - func applicationWillTerminate(_ notification: Notification) { - // 退出行为由 ContentView 的退出按钮处理 - // 这里只处理意外关闭的情况 - } - - // MARK: - Auto Connect - - private func checkAndAutoConnect() { - // Default true, key match SettingsView - let autoConnect = (UserDefaults.standard.object(forKey: "connectOnStart") as? Bool) ?? true - guard autoConnect else { return } - - // 先检查 Core 是否已经在运行 - CoreService.shared.getStatus { running, _ in - if running { - // 已经在运行,同步状态即可 - print("Core already running, syncing state...") - EasyTierRunner.shared.syncWithCoreState() - } else { - // 未运行,执行自动连接 - DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { - let configs = ConfigManager.shared.refreshConfigs() - if let config = configs.first { - print("Auto-connecting with config: \(config.lastPathComponent)") - EasyTierRunner.shared.toggleService(configPath: config.path) - } - } - } - } - } -} diff --git a/EasyTier/EasyTierRunner.swift b/EasyTier/EasyTierRunner.swift deleted file mode 100644 index 62280e1..0000000 --- a/EasyTier/EasyTierRunner.swift +++ /dev/null @@ -1,593 +0,0 @@ -import Foundation -import Combine -import AppKit -import SwiftUI - -final class EasyTierRunner: ObservableObject { - static let shared = EasyTierRunner() - - @Published var isRunning = false - @Published var peers: [PeerInfo] = [] - @Published var peerCount: String = "0" - @Published var downloadSpeed: String = "0 KB/s" - @Published var uploadSpeed: String = "0 KB/s" - @Published var maxHistorySpeed: Double = 1_048_576.0 // 缓存最大网速计算结果 - // 优化:窗口可见性变化时自动管理 Timer - - @Published var isWindowVisible = true - - @Published var uptimeText: String = "00:00:00" - - // 公开最后一次数据更新的时间戳,供 UI 层做动画相位对齐 - @Published private(set) var lastDataTime: Date = Date.distantPast - - private var startedAt: Date? - - private var timer: AnyCancellable? - - @Published private(set) var sessionID = UUID() - - private var currentSessionID = UUID() - private var lastConfigPath: String? - - // Speed calculation - private var lastTotalRx: Int = 0 - private var lastTotalTx: Int = 0 - private var lastPollTime: Date? - private var lastProcessingTime: Date = .distantPast // 用于频率限制 - - // Peer-level speed tracking - private var lastPeerStats: [Int: (rx: Int, tx: Int, time: Date)] = [:] - private let jsonDecoder = JSONDecoder() - - // 最小化解码结构,用于后台静默模式以极速解析字节数 - private struct MinimalStatus: Codable { - struct Pair: Codable { - struct Peer: Codable { - struct Conn: Codable { - struct Stats: Codable { - let rx_bytes: Int - let tx_bytes: Int - } - let stats: Stats? - } - let conns: [Conn]? - } - let peer: Peer? - } - let peer_route_pairs: [Pair]? - } - - @Published var virtualIP: String = "-" - - // Speed history for graphs - @Published var downloadHistory: [Double] = Array(repeating: 0.0, count: 20) - @Published var uploadHistory: [Double] = Array(repeating: 0.0, count: 20) - - // Subscriber & Polling Control - private var subscriberCount = 0 - private var isAppActive = true - private var pollingTimer: AnyCancellable? - private let activeInterval: TimeInterval = 1.0 - private let lowPowerInterval: TimeInterval = 5.0 - - private init() { - // App Lifecycle Monitoring - NotificationCenter.default.addObserver(self, selector: #selector(handleAppDidBecomeActive), name: NSApplication.didBecomeActiveNotification, object: nil) - NotificationCenter.default.addObserver(self, selector: #selector(handleAppWillResignActive), name: NSApplication.willResignActiveNotification, object: nil) - - syncWithCoreState() - } - - @objc private func handleAppDidBecomeActive() { - print("[Runner] App Active -> High Perf Mode") - isAppActive = true - updatePollingMode() - } - - @objc private func handleAppWillResignActive() { - print("[Runner] App Background -> Low Power Mode") - isAppActive = false - updatePollingMode() - } - - func addSubscriber() { - subscriberCount += 1 - updatePollingMode() - } - - func removeSubscriber() { - subscriberCount = max(0, subscriberCount - 1) - updatePollingMode() - } - - private func updatePollingMode() { - guard isRunning else { - pollingTimer?.cancel() - return - } - - // Relaxed Logic: If ANY view is subscribed (Window is open), run at high speed. - // Don't care if App is backgrounded/inactive (user might be looking at it while typing elsewhere). - let interval: TimeInterval - if subscriberCount > 0 { - interval = activeInterval - } else { - interval = lowPowerInterval - } - - // Restart timer only if interval changed or timer stopped - pollingTimer?.cancel() - - if #available(macOS 13.0, *) { - // Re-implement Timer logic for both versions to control interval strictly - pollingTimer = Timer.publish(every: interval, on: .main, in: .common) - .autoconnect() - .sink { [weak self] _ in - self?.refreshPeersOnce() - } - } else { - // MacOS 12 Logic - pollingTimer = Timer.publish(every: interval, on: .main, in: .common) - .autoconnect() - .sink { [weak self] _ in - self?.refreshPeersOnce() - } - } - } - - // ... syncWithCoreState ... - - func syncWithCoreState(completion: ((Bool) -> Void)? = nil) { - let wasAlreadyRunning = self.isRunning - print("[Runner] Syncing with core state (current: \(wasAlreadyRunning))...") - - CoreService.shared.getStatus { [weak self] running, pid in - guard let self = self else { - completion?(false) - return - } - - let isDiscovery = running && pid > 0 - - if isDiscovery { - // Core 正在后台运行,获取真实启动时间 - if #available(macOS 13.0, *) { - HelperManager.shared.getCoreStartTime { [weak self] timestamp in - guard let self = self else { return } - DispatchQueue.main.async { - // 只有状态改变才触发 UI 更新,防止循环刷新 - if !self.isRunning { - self.isRunning = true - } - - if timestamp > 0 { - self.startedAt = Date(timeIntervalSince1970: timestamp) - } else if self.startedAt == nil { - self.startedAt = Date() - } - - // 只有在之前认定为停止的情况下,才重新初始化监控逻辑 - if !wasAlreadyRunning { - print("[Runner] Inheriting running core state, initializing monitoring...") - self.currentSessionID = UUID() - self.resetSpeedCounters() - self.startUptimeTimer() - self.startMonitoring() - } - - print("[Runner] Core detected (PID: \(pid)). Sync complete.") - completion?(true) - } - } - } else { - // 旧系统 fallback - DispatchQueue.main.async { - if !self.isRunning { self.isRunning = true } - if !wasAlreadyRunning { - self.startedAt = Date() - self.currentSessionID = UUID() - self.startUptimeTimer() - self.startMonitoring() - } - completion?(true) - } - } - } else { - // Core 未运行 - DispatchQueue.main.async { - if self.isRunning { - self.isRunning = false - } - self.startedAt = nil - - // 自动连接逻辑:仅在 App 刚启动、且发现 Core 未跑、且开启了开关时触发一次 - if !wasAlreadyRunning && UserDefaults.standard.bool(forKey: "connectOnStart") { - print("[Runner] Initial sync: Core not running, auto-connecting...") - if let lastConfig = ConfigManager.shared.configFiles.first?.path { - self.toggleService(configPath: lastConfig) - } - } - - self.uptimeText = "00:00:00" - self.peers = [] - self.downloadHistory = Array(repeating: 0.0, count: 20) - self.uploadHistory = Array(repeating: 0.0, count: 20) - if wasAlreadyRunning { - print("[Runner] Core process disappeared.") - } - completion?(false) - } - } - } - } - - // --- 保留功能:磁盘访问权限检查 --- - var hasFullDiskAccess: Bool { - let path = "/Library/Application Support/com.apple.TCC/TCC.db" - return FileManager.default.isReadableFile(atPath: path) - } - - func showPermissionAlert() { - DispatchQueue.main.async { - let alert = NSAlert() - alert.messageText = "需要完整磁盘访问权限" - alert.informativeText = "Swiftier 需要该权限来读取受保护文件夹中的配置文件。\n\n请在『系统设置 -> 隐私与安全性 -> 完整磁盘访问权限』中手动勾选此 App。" - alert.addButton(withTitle: "去设置") - alert.addButton(withTitle: "取消") - alert.window.level = .floating - if alert.runModal() == .alertFirstButtonReturn { - if let url = URL(string: "x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles") { - NSWorkspace.shared.open(url) - } - } - } - } - - @Published var isProcessing = false - - func toggleService(configPath: String) { - if isProcessing { return } - isProcessing = true - - let targetState = !isRunning - - withAnimation(.spring(response: 1.0, dampingFraction: 0.8)) { - self.isRunning = targetState - if !targetState { self.peers = [] } - } - - if !targetState { - // STOP - self.startedAt = nil - self.uptimeText = "00:00:00" - self.stopUptimeTimer() - self.timer?.cancel() - - CoreService.shared.stop { [weak self] _ in - DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { - self?.isProcessing = false - } - } - } else { - // START - self.startedAt = Date() - self.uptimeText = "00:00:00" - self.startUptimeTimer() - - let newSessionID = UUID() - self.sessionID = newSessionID - self.currentSessionID = newSessionID - self.lastConfigPath = configPath - - print("[Runner] Optimistic start. Background cleanup initiated...") - - CoreService.shared.stop { [weak self] _ in - DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) { - self?.performStart(configPath: configPath, newSessionID: newSessionID) - } - } - } - } - - private func performStart(configPath: String, newSessionID: UUID, retryCount: Int = 1) { - CoreService.shared.start(configPath: configPath) { [weak self] success in - DispatchQueue.main.async { - guard let self = self else { return } - - if success { - self.isRunning = true - // 避免启动流程中重复重置 startedAt,导致计时器“走两秒又归零” - if self.startedAt == nil { - self.startedAt = Date() - } - self.startUptimeTimer() - - print("[Runner] Service started successfully. Starting monitoring.") - self.startMonitoring() - self.isProcessing = false - } else { - if retryCount > 0 { - print("[Runner] Start failed, retrying in 1.5s...") - DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) { - self.performStart(configPath: configPath, newSessionID: newSessionID, retryCount: retryCount - 1) - } - } else { - self.isProcessing = false - self.syncWithCoreState() - } - } - } - } - } - - func restartService() { - guard let path = lastConfigPath, isRunning else { return } - if isProcessing { return } - isProcessing = true - - CoreService.shared.stop { [weak self] _ in - DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) { - guard let self = self else { return } - let newSessionID = UUID() - self.sessionID = newSessionID - self.currentSessionID = newSessionID - self.performStart(configPath: path, newSessionID: newSessionID) - } - } - } - - func openLogFile() { - let logPath = "/var/log/swiftier-helper.log" - if FileManager.default.fileExists(atPath: logPath) { - NSWorkspace.shared.open(URL(fileURLWithPath: logPath)) - } - } - - private func startMonitoring() { - resetSpeedCounters() - // We now rely on the unified polling timer which respects app state - updatePollingMode() - - // Initial fetch - refreshPeersOnce() - } - - private func resetSpeedCounters() { - lastTotalRx = 0 - lastTotalTx = 0 - lastPollTime = nil - lastPeerStats = [:] - downloadHistory = Array(repeating: 0.0, count: 20) - uploadHistory = Array(repeating: 0.0, count: 20) - } - - private func refreshPeersOnce() { - guard #available(macOS 13.0, *) else { return } - HelperManager.shared.getRunningInfo { [weak self] jsonStr in - if let str = jsonStr { - self?.processRunningInfo(str) - } - } - } - - private var throttleInterval: TimeInterval = 0.8 - - // 开启/关闭高频刷新模式(用于启动时的丝滑动画) - func setWarmUpMode(_ enabled: Bool) { - // 0.05s 允许最高 20FPS - self.throttleInterval = enabled ? 0.05 : 0.8 - print("[Runner] WarmUp Mode: \(enabled)") - } - - // 公开的手动刷新接口 - func forceRefresh() { - refreshPeersOnce() - } - - private func processRunningInfo(_ jsonStr: String) { - let now = Date() - // 动态频率限制 - guard now.timeIntervalSince(lastProcessingTime) >= throttleInterval else { - return - } - - // 静默模式检查已移除:后台也要持续计算流量历史,保证开窗即用,数据连贯。 - // SwiftUI 会自动处理 View 的渲染暂停,所以纯数据处理 CPU 开销极低。 - // guard isWindowVisible else { ... } - - lastProcessingTime = now - guard let data = jsonStr.data(using: .utf8) else { return } - - var totalRx = 0 - var totalTx = 0 - var fetchedPeers: [PeerInfo] = [] - - // --- 活跃模式:全量解析并更新 UI --- - guard let status = try? jsonDecoder.decode(EasyTierStatus.self, from: data) else { return } - - // 1. IP & 事件更新 (不直接触发 UI 刷新) - LogParser.shared.updateEventsFromRunningInfo(status.events) - if let myIp = status.myNodeInfo?.virtualIPv4?.description, self.virtualIP != myIp { - DispatchQueue.main.async { self.virtualIP = myIp } - } - - // 2. 统计流量 & 构建节点列表 - for pair in status.peerRoutePairs { - if let peer = pair.peer { - for conn in peer.conns { - if let stats = conn.stats { - totalRx += stats.rxBytes - totalTx += stats.txBytes - } - } - } - } - - // 3. 构建本地节点卡片 - if let myNode = status.myNodeInfo { - fetchedPeers.append(PeerInfo( - sessionID: self.currentSessionID, - ipv4: myNode.virtualIPv4?.description ?? "-", - hostname: myNode.hostname, - cost: "本机", - latency: "0", - loss: "0.0%", - rx: self.formatBytes(totalRx), - tx: self.formatBytes(totalTx), - tunnel: "LOCAL", - nat: myNode.stunInfo?.udpNATType.description ?? "Unknown", - version: myNode.version, - myNodeData: myNode - )) - } - - // 4. 构建远程节点列表 - for pair in status.peerRoutePairs { - var rxVal = "0 B", txVal = "0 B", latencyVal = "", lossVal = "", tunnelVal = "" - - if let peer = pair.peer { - var cRx = 0, cTx = 0, latSum = 0, latCount = 0, lossSum = 0.0, lossCount = 0, tunnels = Set() - for conn in peer.conns { - if let s = conn.stats { - latSum += s.latencyUs; latCount += 1 - cRx += s.rxBytes; cTx += s.txBytes - } - - lossSum += conn.lossRate - lossCount += 1 - - if let t = conn.tunnel?.tunnelType { tunnels.insert(t.uppercased()) } - } - rxVal = formatBytes(cRx); txVal = formatBytes(cTx) - if latCount > 0 { latencyVal = String(format: "%.1f", Double(latSum)/Double(latCount)/1000.0) } - if lossCount > 0 { lossVal = String(format: "%.1f%%", (lossSum/Double(lossCount))*100.0) } - tunnelVal = tunnels.sorted().joined(separator: "&") - } else if let pathLat = pair.route.pathLatency as Int?, pathLat > 0 { - latencyVal = String(format: "%.1f", Double(pathLat) / 1000.0) - } - - fetchedPeers.append(PeerInfo( - sessionID: self.currentSessionID, - ipv4: pair.route.ipv4Addr?.description ?? "", - hostname: pair.route.hostname, - cost: pair.route.cost == 1 ? "P2P" : "Relay(\(pair.route.cost))", - latency: latencyVal, loss: lossVal, rx: rxVal, tx: txVal, tunnel: tunnelVal, - nat: pair.route.stunInfo?.udpNATType.description ?? "Unknown", - version: pair.route.version, - fullData: pair - )) - } - - // --- 流量更新 --- - if let lastT = lastPollTime { - let d = now.timeIntervalSince(lastT) - if d > 0.1 { - let rSpeed = max(0, Double(totalRx - lastTotalRx) / d) - let tSpeed = max(0, Double(totalTx - lastTotalTx) / d) - DispatchQueue.main.async { - self.downloadSpeed = self.formatSpeed(rSpeed) - self.uploadSpeed = self.formatSpeed(tSpeed) - self.downloadHistory.removeFirst(); self.downloadHistory.append(rSpeed) - self.uploadHistory.removeFirst(); self.uploadHistory.append(tSpeed) - - // 性能优化:在此处预计算最大值,避免 View body 每秒计算多次 - self.maxHistorySpeed = max( - (self.downloadHistory.max() ?? 0.0), - (self.uploadHistory.max() ?? 0.0), - 1_048_576.0 - ) - } - } - } - self.lastTotalRx = totalRx - self.lastTotalTx = totalTx - self.lastPollTime = now - // Update public timestamp for UI phase sync - DispatchQueue.main.async { - self.lastDataTime = now - } - - // 5. 排序并发布 UI 列表 - let sorted = fetchedPeers.sorted { p1, p2 in - // 优先级 1: 本机始终第一 - let is1L = p1.cost == "本机"; let is2L = p2.cost == "本机" - if is1L != is2L { return is1L } - - // 优先级 2: 有虚拟 IP 的排前面,Public (IP 为空) 的排后面 - let is1Empty = p1.ipv4.isEmpty; let is2Empty = p2.ipv4.isEmpty - if is1Empty != is2Empty { return !is1Empty } - - // 优先级 3: 正常的按 IP 排序 - return p1.ipv4.localizedStandardCompare(p2.ipv4) == .orderedAscending - } - - DispatchQueue.main.async { - let oldIDs = self.peers.map(\.id) - let newIDs = sorted.map(\.id) - - // Debug: duplicate IDs will cause LazyHGrid to “跳格/错位” - let uniqueCount = Set(newIDs).count - if uniqueCount != newIDs.count { - var counts: [String: Int] = [:] - for id in newIDs { counts[id, default: 0] += 1 } - let dups = counts.filter { $0.value > 1 }.map { "\($0.key) x\($0.value)" }.joined(separator: ", ") - print("[Runner] WARNING: Duplicate PeerInfo.id detected: \(dups)") - } - - if oldIDs != newIDs { - withAnimation(.spring(response: 0.5, dampingFraction: 0.82)) { - self.peers = sorted - } - } else { - self.peers = sorted - } - - self.peerCount = "\(sorted.count)" - } - } - - private func formatSpeed(_ bytesPerSec: Double) -> String { - if bytesPerSec < 1024 { return String(format: "%.0f B/s", bytesPerSec) } - let kb = bytesPerSec / 1024.0 - if kb < 1024 { return String(format: "%.1f KB/s", kb) } - let mb = kb / 1024.0 - return String(format: "%.1f MB/s", mb) - } - - // REMOVED: private func natTypeString - - private func formatBytes(_ bytes: Int) -> String { - if bytes < 1024 { return "\(bytes) B" } - let kb = Double(bytes) / 1024.0 - if kb < 1024 { return String(format: "%.1f KB", kb) } - let mb = kb / 1024.0 - if mb < 1024 { return String(format: "%.1f MB", mb) } - return String(format: "%.2f GB", mb / 1024.0) - } - - private var uptimeTimer: Timer? - - private func startUptimeTimer() { - guard uptimeTimer == nil else { return } - updateUptimeText() - let t = Timer(timeInterval: 1.0, repeats: true) { [weak self] _ in - self?.updateUptimeText() - } - RunLoop.main.add(t, forMode: .common) - uptimeTimer = t - } - - private func stopUptimeTimer() { - uptimeTimer?.invalidate() - uptimeTimer = nil - } - - private func updateUptimeText() { - guard let sAt = startedAt else { return } - let interval = Int(Date().timeIntervalSince(sAt)) - let h = interval / 3600; let m = (interval % 3600) / 60; let s = interval % 60 - let newText = String(format: "%02d:%02d:%02d", h, m, s) - if uptimeText != newText { uptimeText = newText } - } -} diff --git a/EasyTier/HelperManager.swift b/EasyTier/HelperManager.swift deleted file mode 100644 index 41c957b..0000000 --- a/EasyTier/HelperManager.swift +++ /dev/null @@ -1,366 +0,0 @@ -import Foundation -import ServiceManagement -import AppKit - -@available(macOS 13.0, *) -final class HelperManager { - static let shared = HelperManager() - - private let service: SMAppService - private var xpcConnection: NSXPCConnection? - private let connectionLock = NSLock() - - private init() { - self.service = SMAppService.daemon(plistName: "com.alick.swiftier.helper.plist") - } - - deinit { - invalidateConnection() - } - - // MARK: - Logging - - private func log(_ message: String) { - let timestamp = DateFormatter.localizedString(from: Date(), dateStyle: .short, timeStyle: .medium) - print("\(timestamp) [HelperManager] \(message)") - } - - // MARK: - Service Status - - var isHelperInstalled: Bool { - return service.status == .enabled - } - - var serviceStatus: String { - switch service.status { - case .notRegistered: - return "未注册" - case .enabled: - return "已启用" - case .requiresApproval: - return "需要用户授权" - case .notFound: - return "未找到" - @unknown default: - return "未知状态" - } - } - - // MARK: - XPC Connection Management - - private func getConnection() -> NSXPCConnection { - connectionLock.lock() - defer { connectionLock.unlock() } - - if let connection = xpcConnection { - return connection - } - - // 关键修复:恢复 .privileged 选项。 - // 对于通过 SMAppService.daemon 注册的系统级守护进程,必须使用 .privileged 选项, - // 否则由于权限不足,主程序无法与特权 Helper 通信。 - let connection = NSXPCConnection(machServiceName: kHelperMachServiceName, options: .privileged) - - // --- 双向通信配置 --- - connection.exportedInterface = NSXPCInterface(with: HelperClientListener.self) - connection.exportedObject = ClientListener(manager: self) - - // 设置远程对象接口(Helper 侧实现的协议) - connection.remoteObjectInterface = NSXPCInterface(with: HelperProtocol.self) - - connection.invalidationHandler = { [weak self] in - self?.log("XPC connection invalidated") - self?.connectionLock.lock() - self?.xpcConnection = nil - self?.connectionLock.unlock() - } - - connection.interruptionHandler = { [weak self] in - self?.log("XPC connection interrupted") - } - - connection.resume() - xpcConnection = connection - - return connection - } - - private func invalidateConnection() { - connectionLock.lock() - defer { connectionLock.unlock() } - - xpcConnection?.invalidate() - xpcConnection = nil - } - - private func getHelper(errorHandler: ((Error) -> Void)? = nil) -> HelperProtocol? { - let connection = getConnection() - return connection.remoteObjectProxyWithErrorHandler { [weak self] error in - self?.log("XPC Error: \(error.localizedDescription)") - errorHandler?(error) - } as? HelperProtocol - } - - // MARK: - Public API - - /// 注册并启动 Helper daemon - func installHelper(force: Bool = false, completion: @escaping (Bool, String?) -> Void) { - log("Installing helper (force: \(force), current: \(serviceStatus))...") - log("App Path: \(Bundle.main.bundlePath)") - - Task { - // 1. Translocation Check - if Bundle.main.bundlePath.contains("/private/var/folders") { - await MainActor.run { - completion(false, "App 正在随机只读路径运行,请先将 Swiftier 移动到“应用程序”文件夹后再试。") - } - return - } - - do { - // 2. Unregister if forced - if force { - log("Forcing unregister...") - try? await service.unregister() - try? await Task.sleep(nanoseconds: 1_000_000_000) - } else if service.status == .enabled { - await MainActor.run { completion(true, nil) } - return - } - - // 3. Register - log("Calling SMAppService.register()...") - try service.register() - - // 4. Post-Registration Check - // 刷新状态以获得最准确的结果 - if service.status == .requiresApproval { - log("Status is requiresApproval. Opening settings.") - // 使用更精确的设置路径引导 - if let url = URL(string: "x-apple.systempreferences:com.apple.LoginItems-Settings.extension") { - NSWorkspace.shared.open(url) - } else { - SMAppService.openSystemSettingsLoginItems() - } - - await MainActor.run { - completion(false, "需要手动授权:请在“系统设置 -> 通用 -> 登录项”列表中,将 SwiftierHelper 的开关打开,然后重新启动服务。") - } - return - } - - // Wait for daemon launch - try? await Task.sleep(nanoseconds: 1_000_000_000) - await MainActor.run { completion(true, nil) } - - } catch { - log("SMAppService error: \(error)") - let nsError = error as NSError - if nsError.domain == "SMAppServiceErrorDomain" && nsError.code == 1 { - await MainActor.run { - completion(false, "系统拒绝注册 (Operation not permitted)。\n\n原因:通常是签名冲突或系统缓存错误。\n解决:请在终端执行 `sudo sfltool resetbtm` 后重启电脑重试。") - } - } else { - await MainActor.run { completion(false, error.localizedDescription) } - } - } - } - } - - func uninstallHelper(completion: @escaping (Bool, String?) -> Void) { - log("Uninstalling helper...") - invalidateConnection() - Task { - do { - try await service.unregister() - await MainActor.run { completion(true, nil) } - } catch { - await MainActor.run { completion(false, error.localizedDescription) } - } - } - } - - func startCore(configPath: String, consoleLevel: String, completion: @escaping (Bool, String?) -> Void) { - if service.status != .enabled { - log("Helper not enabled (\(serviceStatus)), attempting install...") - installHelper(force: false) { [weak self] success, error in - if success { - self?.startCore(configPath: configPath, consoleLevel: consoleLevel, completion: completion) - } else { - completion(false, error) - } - } - return - } - - var completionCalled = false - - // 超时保护 - let timeoutWork = DispatchWorkItem { - if !completionCalled { - self.log("startCore timed out. XPC might be hanging.") - completionCalled = true - self.invalidateConnection() - DispatchQueue.main.async { completion(false, "Helper 响应超时,请尝试重启 App。") } - } - } - DispatchQueue.main.asyncAfter(deadline: .now() + 5.0, execute: timeoutWork) - - let xpcErrorHandler: (Error) -> Void = { [weak self] error in - guard let self = self else { return } - self.log("XPC call failed: \(error.localizedDescription)") - self.invalidateConnection() - - if !completionCalled { - timeoutWork.cancel() - completionCalled = true - if self.service.status == .requiresApproval { - SMAppService.openSystemSettingsLoginItems() - completion(false, "Helper 已被系统拦截,请在“登录项”设置中允许其运行。") - } else { - completion(false, "Helper 通信异常: \(error.localizedDescription)") - } - } - } - - guard let helper = getHelper(errorHandler: xpcErrorHandler) else { - timeoutWork.cancel() - completion(false, "无法建立 XPC 连接") - return - } - - helper.getVersion { [weak self] version in - guard let self = self else { return } - if !completionCalled { - if version != kTargetHelperVersion { - timeoutWork.cancel() - completionCalled = true - self.log("Version mismatch (\(version) vs \(kTargetHelperVersion)). Updating...") - self.installHelper(force: true) { success, error in - if success { - self.startCore(configPath: configPath, consoleLevel: consoleLevel, completion: completion) - } else { - completion(false, "Helper 更新失败: \(error ?? "")") - } - } - return - } - - // Sync config to /tmp for root access - let tmpPath = "/tmp/easytier_config.toml" - try? FileManager.default.removeItem(atPath: tmpPath) - try? FileManager.default.copyItem(atPath: configPath, toPath: tmpPath) - try? FileManager.default.setAttributes([.posixPermissions: 0o644], ofItemAtPath: tmpPath) - - helper.startCore(configPath: tmpPath, corePath: "", consoleLevel: consoleLevel) { success, error in - if !completionCalled { - timeoutWork.cancel() - completionCalled = true - DispatchQueue.main.async { completion(success, error) } - } - } - } - } - } - - func stopCore(completion: @escaping (Bool) -> Void) { - log("Stopping core via XPC...") - var completionCalled = false - - let timeoutWork = DispatchWorkItem { - if !completionCalled { - self.log("stopCore timed out. Forcing completion.") - completionCalled = true - DispatchQueue.main.async { completion(false) } - self.invalidateConnection() - } - } - DispatchQueue.main.asyncAfter(deadline: .now() + 3.0, execute: timeoutWork) - - let errorHandler: (Error) -> Void = { [weak self] error in - self?.log("stopCore XPC failed: \(error.localizedDescription)") - self?.invalidateConnection() - if !completionCalled { - timeoutWork.cancel() - completionCalled = true - DispatchQueue.main.async { completion(false) } - } - } - - guard let helper = getHelper(errorHandler: errorHandler) else { - timeoutWork.cancel() - completion(false) - return - } - - helper.stopCore { success in - if !completionCalled { - timeoutWork.cancel() - completionCalled = true - DispatchQueue.main.async { completion(success) } - } - } - } - - func getCoreStatus(completion: @escaping (Int32) -> Void) { - guard let helper = getHelper(errorHandler: { _ in completion(0) }) else { - completion(0) - return - } - helper.getCoreStatus { pid in - DispatchQueue.main.async { completion(pid) } - } - } - - func getCoreStartTime(completion: @escaping (Double) -> Void) { - guard let helper = getHelper(errorHandler: { _ in completion(0) }) else { - completion(0) - return - } - helper.getCoreStartTime { ts in - DispatchQueue.main.async { completion(ts) } - } - } - - func quitHelper(completion: @escaping () -> Void) { - getHelper()?.quitHelper { _ in completion() } - } - - func getRecentEvents(sinceIndex: Int, completion: @escaping ([ProcessedEvent], Int) -> Void) { - let errorHandler: (Error) -> Void = { _ in completion([], sinceIndex) } - guard let helper = getHelper(errorHandler: errorHandler) else { - completion([], sinceIndex) - return - } - helper.getRecentEvents(sinceIndex: sinceIndex) { data, next in - let events = (try? JSONDecoder().decode([ProcessedEvent].self, from: data)) ?? [] - DispatchQueue.main.async { completion(events, next) } - } - } - - func getRunningInfo(reply: @escaping (String?) -> Void) { - let errorHandler: (Error) -> Void = { _ in reply(nil) } - guard let helper = getHelper(errorHandler: errorHandler) else { - reply(nil) - return - } - helper.getRunningInfo { info in - DispatchQueue.main.async { reply(info) } - } - } - - // MARK: - Internal - - private class ClientListener: NSObject, HelperClientListener { - weak var manager: HelperManager? - init(manager: HelperManager) { self.manager = manager } - func runningInfoUpdated(_ info: String) { manager?.handleRunningInfoUpdate(info) } - func logUpdated(_ lines: [String]) {} - } - - private var pushHandler: ((String) -> Void)? - func setPushHandler(_ handler: @escaping (String) -> Void) { self.pushHandler = handler } - private func handleRunningInfoUpdate(_ info: String) { - DispatchQueue.main.async { self.pushHandler?(info) } - } -} diff --git a/EasyTier/LogParser.swift b/EasyTier/LogParser.swift deleted file mode 100644 index 65b199b..0000000 --- a/EasyTier/LogParser.swift +++ /dev/null @@ -1,415 +0,0 @@ -import SwiftUI -import Combine - -class LogParser: ObservableObject { - static let shared = LogParser() - - @Published var logs: [LogEntry] = [] - @Published var events: [EventEntry] = [] - - var isPaused = false - private var pendingLogs: [LogEntry] = [] - - // Persistence - private var eventsFileURL: URL { - let appSupport = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first! - let dir = appSupport.appendingPathComponent("Swiftier") - try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true) - return dir.appendingPathComponent("events.json") - } - - private var fileHandle: FileHandle? - private init() { - self.events = [] - } - - private func saveEvents() { - // Disabled: We no longer persist events to disk to ensure Core-driven lifecycle. - } - - private var timer: Timer? - private var xpcEventTimer: Timer? - var xpcEventIndex: Int = 0 - private let logPath = "/var/log/swiftier-helper.log" - private var isReading = false - private var lastReadOffset: UInt64 = 0 - private var trailingRemainder = "" - - private let maxFullTextLength = 20000 - private let maxLogItems = 1000 - private let maxEventItems = 200 - - private var seenEventHashes: Set = [] - - private let iso8601Formatter: ISO8601DateFormatter = { - let formatter = ISO8601DateFormatter() - formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] - return formatter - }() - - func startMonitoring() { - // Source 1: XPC Events (Structured, Real-time) - // In Sandbox mode, we cannot read /var/log/ directly. - // We rely entirely on XPC to get logs from the Helper. - if #available(macOS 13.0, *) { - startXPCEventPolling() - } - } - - @available(macOS 13.0, *) - private func startXPCEventPolling() { - xpcEventTimer?.invalidate() - // Frequency back to 1.0s - xpcEventTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in - self?.pollXPCEvents() - } - pollXPCEvents() - } - - @available(macOS 13.0, *) - private func pollXPCEvents() { - HelperManager.shared.getRecentEvents(sinceIndex: xpcEventIndex) { [weak self] processedEvents, nextIndex in - guard let self = self else { return } - - // Core Restart Detection - if nextIndex < self.xpcEventIndex { - DispatchQueue.main.async { - self.events.removeAll() - self.logs.removeAll() - self.seenEventHashes.removeAll() - } - } - - self.xpcEventIndex = nextIndex - if processedEvents.isEmpty { return } - - let newEntries = processedEvents.map { pe -> EventEntry in - let type = EventEntry.EventType(rawValue: pe.type) ?? .unknown - return EventEntry( - id: pe.id, - timestamp: pe.timestamp, - date: pe.time, - type: type, - details: pe.details, - highlights: self.calculateHighlights(for: pe.details) - ) - } - - DispatchQueue.main.async { - self.events.append(contentsOf: newEntries) - if self.events.count > self.maxEventItems { - self.events.removeFirst(self.events.count - self.maxEventItems) - } - } - } - } - - private func startRawLogMonitoring() { - // Removed for Sandbox compatibility - } - - // MARK: - Pre-compiled Regex Cache (Optimized for performance) - private enum Regex { - static let ansi = try! NSRegularExpression(pattern: "(\\x1B\\[[0-9;]*[a-zA-Z])|(\\[[0-9;]+m)", options: []) - static let timestamp = try! NSRegularExpression(pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}[T ][0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:?[0-9]{2})?", options: []) - static let levelPrefix = try! NSRegularExpression(pattern: "^(INFO|WARN|ERROR|DEBUG|TRACE)\\b", options: [.caseInsensitive]) - static let helperPrefix = try! NSRegularExpression(pattern: "^(\\[.*?\\] )?\\[Helper\\]( Core output:)?", options: []) - - static let highlightStrings = try! NSRegularExpression(pattern: #""([^"\\]|\\.)*""#, options: []) - static let highlightKeys = try! NSRegularExpression(pattern: #"("[^"]+"|\b[a-zA-Z_][a-zA-Z0-9_]*\b)\s*:"#, options: []) - static let highlightNumbers = try! NSRegularExpression(pattern: #"\b\d+(\.\d+)?\b"#, options: []) - static let highlightKeywords = try! NSRegularExpression(pattern: #"\b(true|false|null|None|Some|Ok|Err)\b"#, options: []) - } - - private func removeAnsiCodes(_ text: String) -> String { - let range = NSRange(location: 0, length: text.utf16.count) - return Regex.ansi.stringByReplacingMatches(in: text, options: [], range: range, withTemplate: "") - } - - private func quickParseLogs(_ content: String) -> [LogEntry] { - let lines = content.components(separatedBy: .newlines).filter { !$0.isEmpty } - var result: [LogEntry] = [] - let now = ISO8601DateFormatter().string(from: Date()) - - // 获取全局设置级别 - let settingLevelStr = UserDefaults.standard.string(forKey: "logLevel") ?? "INFO" - let levelMap: [String: Int] = ["OFF": 0, "ERROR": 1, "WARN": 2, "INFO": 3, "DEBUG": 4, "TRACE": 5] - let currentLevelValue = levelMap[settingLevelStr.uppercased()] ?? 5 - - for line in lines { - let raw = removeAnsiCodes(line).replacingOccurrences(of: "\0", with: "") - if raw.isEmpty { continue } - - var content = raw - let fullRange = NSRange(location: 0, length: content.utf16.count) - if let match = Regex.helperPrefix.firstMatch(in: content, range: fullRange) { - content = (content as NSString).replacingCharacters(in: match.range, with: "").trimmingCharacters(in: .whitespaces) - } - if content.isEmpty { continue } - - var timestamp = "" - var level: LogLevel = .info - var lineLevelValue = 3 // Default INFO - - let contentRange = NSRange(location: 0, length: content.utf16.count) - if let match = Regex.timestamp.firstMatch(in: content, range: contentRange) { - timestamp = (content as NSString).substring(with: match.range) - content = (content as NSString).replacingCharacters(in: match.range, with: "").trimmingCharacters(in: .whitespaces) - } else { - timestamp = now - } - - let levelSearchArea = content.prefix(20).uppercased() - if levelSearchArea.contains("ERROR") { level = .error; lineLevelValue = 1 } - else if levelSearchArea.contains("WARN") { level = .warn; lineLevelValue = 2 } - else if levelSearchArea.contains("DEBUG") { level = .debug; lineLevelValue = 4 } - else if levelSearchArea.contains("TRACE") { level = .trace; lineLevelValue = 5 } - - // 硬性过滤:如果行级别超过了设置级别,则不显示 (注: 数值越小级别越高) - // 在我们的逻辑里,ERROR=1, WARN=2... - // 所以如果 lineLevelValue > currentLevelValue,就不应该显示 - if lineLevelValue > currentLevelValue { - continue - } - - if let match = Regex.levelPrefix.firstMatch(in: content, range: NSRange(location: 0, length: content.utf16.count)) { - content = (content as NSString).replacingCharacters(in: match.range, with: "").trimmingCharacters(in: .whitespaces) - } - - result.append(LogEntry( - timestamp: timestamp, - cleanContent: content, - fullText: raw, - level: level - )) - } - return result - } - - private struct ParseResults { - let logs: [LogEntry] - let events: [EventEntry] - let restartDetected: Bool - } - - private func readNewRawLines() { - // Removed for Sandbox compatibility - } - - func stopMonitoring() { - timer?.invalidate() - timer = nil - xpcEventTimer?.invalidate() - xpcEventTimer = nil - isReading = false - fileHandle = nil // Release handle - } - - func resetForNewCoreSession() { - stopMonitoring() - DispatchQueue.main.async { - self.events.removeAll() - self.logs.removeAll() - } - xpcEventIndex = 0 - isReading = false - } - - /// Update events from get_running_info response - func updateEventsFromRunningInfo(_ eventsAnyArray: [Any]) { - var newEvents: [EventEntry] = [] - - for item in eventsAnyArray { - guard let event = parseEventEntry(from: item) else { continue } - let dedupKey = "\(event.type.rawValue)|\(event.timestamp)|\(event.details)" - let eventHash = dedupKey.hashValue - if seenEventHashes.contains(eventHash) { continue } - seenEventHashes.insert(eventHash) - - newEvents.append(event) - } - - guard !newEvents.isEmpty else { return } - - DispatchQueue.main.async { [weak self] in - guard let self = self else { return } - self.events.append(contentsOf: newEvents) - // Sort by date (oldest first) - self.events.sort { ($0.date ?? .distantPast) < ($1.date ?? .distantPast) } - if self.events.count > self.maxEventItems { - self.events = Array(self.events.suffix(self.maxEventItems)) - } - } - } - - func flushPending() { - // Now optional as logs are simpler - } - - // MARK: - Legacy Cleanup (Keeping it tidy) - - - private func applyResults(_ results: ParseResults) { - if results.restartDetected { self.events.removeAll() } - let validLogs = results.logs.filter { !$0.cleanContent.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines).isEmpty } - if isPaused { pendingLogs.append(contentsOf: validLogs) } - else { - self.logs.append(contentsOf: validLogs) - if self.logs.count > maxLogItems { self.logs.removeFirst(self.logs.count - maxLogItems) } - } - if !results.events.isEmpty { - self.events.append(contentsOf: results.events) - if self.events.count > maxEventItems { self.events.removeFirst(self.events.count - maxEventItems) } - } - } - - private func capString(_ s: String, limit: Int) -> String { - return s.count > limit ? String(s.prefix(limit)) + "\n... [已自动截断]" : s - } - - private func cleanLogContent(_ text: String) -> String { - return text.components(separatedBy: .newlines).map { $0.trimmingCharacters(in: .whitespaces) } - .filter { !$0.isEmpty }.joined(separator: "\n") - } - - private func parseEventEntry(from input: Any) -> EventEntry? { - let json: [String: Any]? - if let dict = input as? [String: Any] { json = dict } - else if let str = input as? String, let data = str.data(using: .utf8) { json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] } - else { return nil } - guard let j = json else { return nil } - - let timeStr = j["time"] as? String ?? "" - let eventDate = iso8601Formatter.date(from: timeStr) - let displayTimestamp = timeStr.replacingOccurrences(of: "Z", with: "").replacingOccurrences(of: "T", with: " ") - guard let eventData = j["event"] else { return nil } - - let eventName: String? - let eventPayload: Any - if let eventDict = eventData as? [String: Any], eventDict.count == 1, let firstKey = eventDict.keys.first { - eventName = firstKey - eventPayload = eventDict[firstKey] ?? eventData - } else { - eventName = eventData as? String - eventPayload = eventData - } - - let type = mapEventType(eventName ?? "unknown") - let cleanedPayload = recursiveJsonClean(eventPayload, depth: 0) - let detailsStr = formatAsJson(cleanedPayload) - let highlights = calculateHighlights(for: detailsStr) - - return EventEntry(timestamp: displayTimestamp, date: eventDate, type: type, details: detailsStr, highlights: highlights) - } - - private func parseTextEvent(content: String, timestamp: String, dateParser: (String) -> Date?, into newEvents: inout [EventEntry]) { - var eventType: EventEntry.EventType? - var eventPayload: Any? - if content.contains("PeerConnAdded") { eventType = .peerConnAdded; eventPayload = ["raw": content] } - else if content.contains("PeerAdded") { eventType = .peerAdded; eventPayload = ["event": "PeerAdded", "raw": content] } - else if content.contains("PeerRemoved") { eventType = .peerRemoved; eventPayload = ["event": "PeerRemoved", "raw": content] } - else if content.contains("Connecting") { eventType = .connecting; eventPayload = ["event": "Connecting", "raw": content] } - - if let type = eventType { - let detailsStr = formatAsJson(recursiveJsonClean(eventPayload, depth: 0)) - newEvents.append(EventEntry(timestamp: timestamp, date: dateParser(timestamp), type: type, details: detailsStr, highlights: calculateHighlights(for: detailsStr))) - } - } - - private func recursiveJsonClean(_ value: Any?, depth: Int) -> Any? { - guard let value = value, depth < 5 else { return value } - if let dict = value as? [String: Any] { - var newDict = [String: Any]() - for (k, v) in dict { newDict[k] = recursiveJsonClean(v, depth: depth + 1) } - return newDict - } else if let arr = value as? [Any] { - return arr.map { recursiveJsonClean($0, depth: depth + 1) } - } - return value - } - - private func mapEventType(_ name: String) -> EventEntry.EventType { - switch name { - case "Connecting", "ConnectingTo": return .connecting - case "Connected", "ConnectionAccepted": return .connected - case "ConnectError", "ConnectionError": return .connectError - case "PeerConnAdded": return .peerConnAdded - case "PeerAdded", "NewPeer": return .peerAdded - case "PeerRemoved", "PeerLost": return .peerRemoved - case "RouteChanged", "RouteUpdate": return .routeChanged - case "TunDeviceReady": return .tunDeviceReady - case "ListenerAdded": return .listenerAdded - case "Handshake": return .handshake - default: return .unknown - } - } - - private func collapsePrettyPrintedArrays(_ input: String) -> String { - var res = input - let pattern = #"(?s)\[\s*([^\[\]{}]*?)\s*\]"# - guard let regex = try? NSRegularExpression(pattern: pattern) else { return res } - let matches = regex.matches(in: res, options: [], range: NSRange(location: 0, length: (res as NSString).length)) - for match in matches.reversed() { - let content = (res as NSString).substring(with: match.range(at: 1)) - let collapsed = "[\(content.components(separatedBy: .newlines).map { $0.trimmingCharacters(in: .whitespaces) }.filter { !$0.isEmpty }.joined(separator: ", "))]" - res = (res as NSString).replacingCharacters(in: match.range, with: collapsed) - } - return res - } - - private func formatAsJson(_ value: Any?) -> String { - guard let v = value else { return "null" } - - // JSONSerialization requires Array or Dictionary as top-level type. - // If it's a simple type, just return its string representation to avoid crash. - if !(v is [String: Any]) && !(v is [Any]) { - return "\(v)" - } - - var options: JSONSerialization.WritingOptions = [.sortedKeys] - if #available(macOS 10.13, *) { - options.insert(.prettyPrinted) - } - if #available(macOS 10.15, *) { - options.insert(.withoutEscapingSlashes) - } - - if let data = try? JSONSerialization.data(withJSONObject: v, options: options), - let str = String(data: data, encoding: .utf8) { - return collapsePrettyPrintedArrays(str) - } - return "\(v)" - } - - private func calculateHighlights(for json: String) -> [HighlightRange] { - var ranges: [HighlightRange] = [] - let nsString = json as NSString - let fullRange = NSRange(location: 0, length: nsString.length) - - // 1. Strings (Green) - if let regex = try? NSRegularExpression(pattern: #""([^"\\]|\\.)*""#) { - let matches = regex.matches(in: json, range: fullRange) - for m in matches { ranges.append(HighlightRange(start: m.range.location, length: m.range.length, color: "green", bold: false)) } - } - - // 2. Keys (Blue) - if let regex = try? NSRegularExpression(pattern: #"("[^"]+"|\b[a-zA-Z_][a-zA-Z0-9_]*\b)\s*:"#) { - let matches = regex.matches(in: json, range: fullRange) - for m in matches { ranges.append(HighlightRange(start: m.range.location, length: m.range.length, color: "blue", bold: true)) } - } - - // 3. Numbers (Orange) - if let regex = try? NSRegularExpression(pattern: #"\b\d+(\.\d+)?\b"#) { - let matches = regex.matches(in: json, range: fullRange) - for m in matches { ranges.append(HighlightRange(start: m.range.location, length: m.range.length, color: "orange", bold: false)) } - } - - // 4. Keywords (Purple) - if let regex = try? NSRegularExpression(pattern: #"\b(true|false|null|None|Some|Ok|Err)\b"#) { - let matches = regex.matches(in: json, range: fullRange) - for m in matches { ranges.append(HighlightRange(start: m.range.location, length: m.range.length, color: "purple", bold: true)) } - } - - return ranges - } -} diff --git a/EasyTier/LogView.swift b/EasyTier/LogView.swift deleted file mode 100644 index f1d4e79..0000000 --- a/EasyTier/LogView.swift +++ /dev/null @@ -1,95 +0,0 @@ -import SwiftUI - -struct LogView: View { - @Binding var isPresented: Bool - - @ObservedObject private var logParser = LogParser.shared - @State private var selectedLog: LogEntry? - @State private var viewMode: ViewMode = .events - @State private var logLevelFilter: LogLevel? = nil // nil = show all - - private let logPath = "/var/log/swiftier-helper.log" - - enum ViewMode: Int { - case events = 0 - case logs = 1 - } - - var body: some View { - VStack(spacing: 0) { - // Custom Header - VStack(spacing: 0) { - HStack { - Picker("", selection: $viewMode) { - Text(LocalizedStringKey("交互事件")).tag(ViewMode.events) - Text(LocalizedStringKey("调试日志")).tag(ViewMode.logs) - } - .pickerStyle(.segmented) - .frame(width: 200) - - Spacer() - - HStack(spacing: 12) { - if viewMode == .logs { - Picker("", selection: $logLevelFilter) { - Text("全部").tag(nil as LogLevel?) - Text("ERROR").tag(LogLevel.error as LogLevel?) - Text("WARN").tag(LogLevel.warn as LogLevel?) - Text("INFO").tag(LogLevel.info as LogLevel?) - Text("DEBUG").tag(LogLevel.debug as LogLevel?) - Text("TRACE").tag(LogLevel.trace as LogLevel?) - } - .pickerStyle(.menu) - .frame(width: 100) - } - - Button { - NSWorkspace.shared.open(URL(fileURLWithPath: logPath)) - } label: { - Image(systemName: "doc.text.magnifyingglass") - .font(.title3) - .foregroundColor(.primary) - } - .buttonStyle(.plain) - .help("在系统控制台中打开完整日志") - - Button { - withAnimation { - isPresented = false - } - } label: { - Image(systemName: "xmark.circle.fill") - .foregroundStyle(.secondary) - .font(.title2) - } - .buttonStyle(.plain) - } - } - .padding(.horizontal, 16) - .padding(.vertical, 12) - .background(Color(nsColor: .windowBackgroundColor)) - - Divider() - } - - if viewMode == .events { - EventListView(events: logParser.events) - } else { - LogListView( - logs: logParser.logs, - selectedLog: $selectedLog, - levelFilter: logLevelFilter - ) - } - } - .background(Color(nsColor: .windowBackgroundColor)) - .task { - // Delay log loading until the slide-up animation completes (0.4s) - try? await Task.sleep(nanoseconds: 400_000_000) - logParser.startMonitoring() - } - .onDisappear { - logParser.stopMonitoring() - } - } -} diff --git a/EasyTier/PeerCard.swift b/EasyTier/PeerCard.swift deleted file mode 100644 index 03dfd3f..0000000 --- a/EasyTier/PeerCard.swift +++ /dev/null @@ -1,509 +0,0 @@ -import SwiftUI - -struct PeerCard: View, Equatable { - let peer: PeerInfo - - static func == (lhs: PeerCard, rhs: PeerCard) -> Bool { - lhs.peer == rhs.peer - } - @State private var isHovering = false - @State private var showDetail = false - @Environment(\.colorScheme) var colorScheme - - private var shortVersion: String { - peer.version.split(separator: "-").first.map(String.init) ?? peer.version - } - - private func formatSpeed(_ speedStr: String) -> String { - // If it already has units (from Table output), e.g. "10.5 KB" - if speedStr.contains(" ") { - return speedStr - } - - // If it is a raw number (from JSON output), e.g. "10240" - if let bytes = Double(speedStr) { - let formatter = ByteCountFormatter() - formatter.allowedUnits = [.useKB, .useMB, .useGB, .useTB] // Adjust as needed - formatter.countStyle = .binary // 1024 - formatter.includesUnit = true - return formatter.string(fromByteCount: Int64(bytes)) - } - - return speedStr - } - - // MARK: - Helpers - - private func clean(_ text: String) -> String { - // Strip ANSI codes and whitespace - text.replacingOccurrences(of: "\\x1b\\[[0-9;]*m", with: "", options: .regularExpression) - .trimmingCharacters(in: .whitespacesAndNewlines) - } - - // MARK: - Translation & Color Helpers - - private func translateTunnel(_ raw: String) -> String { - let text = clean(raw) - let lower = text.lowercased() - - if lower == "local" { return "Local" } - if lower == "p2p" { return "P2P" } - // Remove forced replacement for p2p to allow "P2P" or "P2P(x)" to show naturally - - if lower == "relay" { return "Relay" } - // Remove forced replacement for relay - - // Capitalize first letter for other cases if needed, or return as is - if lower.starts(with: "relay") { return text.replacingOccurrences(of: "relay", with: "Relay", options: .caseInsensitive) } - - return text - } - - private func translateNAT(_ raw: String) -> String { - let text = clean(raw) - let lower = text.lowercased() - - if lower == "unknown" { return "Unknown" } - if lower == "nopat" { return "No PAT" } - - if lower.hasPrefix("openinternet") { return "Open" } - if lower.hasPrefix("fullcone") { return "Full Cone" } - if lower.hasPrefix("symmetric") { return "Symmetric" } - - if lower.contains("portrestricted") { return "Port Restricted" } - if lower.contains("restricted") { return "Restricted" } - - return text - } - - private func natColor(for text: String) -> Color { - let t = text.lowercased() - if t.contains("全锥形") || t.contains("full cone") || t.contains("开放") || t.contains("open") || t.contains("一对一") || t.contains("no pat") { return .blue } - if t.contains("对称") || t.contains("symmetric") { return .red } - if t.contains("端口受限") || t.contains("port restricted") { return .orange } - if t.contains("受限") || t.contains("restricted") { return .yellow } - return .gray - } - - private func tagColor(for text: String) -> Color { - let t = text.lowercased() - // Tunnel Colors - if t.contains("直连") || t.contains("p2p") { return .blue } - if t.contains("中转") || t.contains("relay") { return .purple } - if t.contains("本机") || t.contains("local") { return .gray } - return .gray - } - - var body: some View { - VStack(alignment: .leading, spacing: 6) { - // 1. Title - HStack(alignment: .center, spacing: 0) { - ScrollingText(text: peer.hostname.isEmpty ? "未知节点" : peer.hostname) - .frame(height: 18) - .fixedSize(horizontal: false, vertical: true) - - Spacer(minLength: 8) - - Button(action: { showDetail = true }) { - Image(systemName: "info.circle") - .foregroundColor(.secondary) - } - .buttonStyle(.plain) - .popover(isPresented: $showDetail) { - PeerDetailView(peer: peer) - .frame(width: 320, height: 450) - } - } - - // 2. IP & Latency - HStack { - Text(peer.ipv4.isEmpty ? "Public Peer" : peer.ipv4) - .font(.system(size: 11, design: .monospaced)) - .foregroundColor(.secondary) - .lineLimit(1) - Spacer() - Text(peer.latency.isEmpty || peer.latency == "-" ? "- ms" : "\(peer.latency) ms") - .font(.system(size: 11, weight: .medium, design: .monospaced)) - .foregroundColor(.green) - } - - // 3. Speed & Loss - HStack(spacing: 0) { - HStack(spacing: 1) { - Image(systemName: "arrow.down") - .font(.system(size: 8)) - Text(formatSpeed(peer.rx)) - .minimumScaleFactor(0.7) - } - .foregroundColor(.green) - .frame(maxWidth: .infinity, alignment: .leading) - - HStack(spacing: 1) { - Image(systemName: "arrow.up") - .font(.system(size: 8)) - Text(formatSpeed(peer.tx)) - .minimumScaleFactor(0.7) - } - .foregroundColor(.red) - .frame(maxWidth: .infinity, alignment: .leading) - - Text(peer.loss.isEmpty ? "0.0%" : peer.loss) - .foregroundColor(.secondary) - .frame(width: 45, alignment: .trailing) - } - .font(.system(size: 9, weight: .medium).monospacedDigit()) - .lineLimit(1) - - // 4. Tags - GeometryReader { geo in - let spacing: CGFloat = 6 - let totalWidth = geo.size.width - (spacing * 3) - - let rawTunnel = translateTunnel(peer.tunnel.isEmpty ? "-" : peer.tunnel) - let tTunnel = (rawTunnel.uppercased().contains("TCP") || rawTunnel.uppercased().contains("UDP")) ? rawTunnel : "-" - let tNat = translateNAT(peer.nat) - let tCost = translateTunnel(peer.cost) - - HStack(spacing: spacing) { - Tag(text: LocalizedStringKey(tCost), color: tagColor(for: tCost)) - .frame(width: totalWidth * 0.22) - - Tag(text: LocalizedStringKey(tTunnel), color: tagColor(for: tTunnel)) - .frame(width: totalWidth * 0.18) - - Tag(text: LocalizedStringKey(tNat), color: natColor(for: tNat)) - .frame(width: totalWidth * 0.40) - - Tag(text: LocalizedStringKey(shortVersion), color: .gray) - .frame(width: totalWidth * 0.20) - } - .fixedSize(horizontal: true, vertical: true) - } - .frame(height: 22) - .fixedSize(horizontal: false, vertical: true) - } - .padding(.horizontal, 10) - .padding(.vertical, 10) - .frame(maxWidth: .infinity, alignment: .leading) - .background(cardBackground) - } - - private var cardBackground: some View { - RoundedRectangle(cornerRadius: 12) - .fill(Color(nsColor: .windowBackgroundColor).opacity(0.6)) // Match SpeedCard background - .background(borderColor.opacity(0.05)) // Add subtle tint to match SpeedCard's visual weight - .overlay( - RoundedRectangle(cornerRadius: 12) - .stroke(borderColor.opacity(0.6), lineWidth: 1) // Increased opacity for better visibility - ) - .clipShape(RoundedRectangle(cornerRadius: 12)) // Ensure background tint is clipped - } - - // Logic to determine border color based on Peer Type - private var borderColor: Color { - // 1. Local (本机) - let tunnelLower = peer.tunnel.lowercased() - if tunnelLower == "local" || peer.ipv4.lowercased().contains("local") { - return .blue - } - - // 2. Public Peer (Public) - if peer.ipv4.isEmpty || - peer.ipv4.lowercased().contains("public") || - peer.hostname.lowercased().contains("public") { - return .red - } - - // 3. Remote (远端机器) - Changed from .yellow to .green for visibility - return .green - } -} - -// MARK: - Scrolling Text -struct ScrollingText: View { - let text: String - @State private var offset: CGFloat = 0 - @State private var isHovering = false - @State private var containerWidth: CGFloat = 0 - @State private var textWidth: CGFloat = 0 - - var body: some View { - GeometryReader { geo in - ZStack(alignment: .leading) { - Text(text) - .font(.system(size: 13, weight: .semibold)) - .fixedSize(horizontal: true, vertical: false) - .background(GeometryReader { textGeo in - Color.clear.onAppear { textWidth = textGeo.size.width } - }) - .opacity(0) - - Text(text) - .font(.system(size: 13, weight: .semibold)) - .fixedSize(horizontal: true, vertical: false) - .offset(x: offset) - .animation(shouldAnimate ? .linear(duration: Double(textWidth / 60)).repeatForever(autoreverses: true) : .default, value: offset) - } - .onAppear { containerWidth = geo.size.width } - .onChange(of: isHovering) { hovering in - if hovering && textWidth > containerWidth { - offset = -(textWidth - containerWidth + 8) - } else { - offset = 0 - } - } - } - .contentShape(Rectangle()) - .onHover { isHovering = $0 } - .clipped() - } - - private var shouldAnimate: Bool { - isHovering && textWidth > containerWidth - } -} - -struct Tag: View { - let text: LocalizedStringKey - var color: Color = .gray - - var body: some View { - Text(text) - .font(.system(size: 9)) // Reduced to 9 - .foregroundColor(color) - .lineLimit(1) - .minimumScaleFactor(0.7) - .frame(maxWidth: .infinity, alignment: .center) - .padding(.vertical, 3) - .background( - Capsule() - .fill(color.opacity(0.12)) - ) - } -} - -// MARK: - Peer Detail View -struct PeerDetailView: View { - let peer: PeerInfo - @Environment(\.presentationMode) var presentationMode - - var body: some View { - VStack(spacing: 0) { - Text(LocalizedStringKey("点击条目以复制内容")) - .font(.caption) - .foregroundColor(.secondary) - .padding(.vertical, 8) - - Form { - if let myNode = peer.myNodeData { - localNodeSections(myNode) - } else if let pair = peer.fullData { - remotePeerSections(pair) - } else { - basicSections - } - } - .formStyle(.grouped) - } - .frame(width: 320, height: 450) - } - - @ViewBuilder - private func localNodeSections(_ node: EasyTierStatus.NodeInfo) -> some View { - Section(header: Text(LocalizedStringKey("节点"))) { - DetailRow(label: LocalizedStringKey("主机名"), value: node.hostname) - DetailRow(label: LocalizedStringKey("版本"), value: node.version) - DetailRow(label: LocalizedStringKey("虚拟 IP"), value: node.virtualIPv4?.description ?? "-") - DetailRow(label: LocalizedStringKey("UDP NAT 类型"), value: node.stunInfo?.udpNATType.description ?? "-") - DetailRow(label: LocalizedStringKey("TCP NAT 类型"), value: node.stunInfo?.tcpNATType.description ?? "-") - } - - if let listeners = node.listeners, !listeners.isEmpty { - Section(header: Text(LocalizedStringKey("监听地址"))) { - ForEach(listeners.indices, id: \.self) { i in - DetailRow(label: LocalizedStringKey("监听 \(i+1)"), value: listeners[i].url) - } - } - } - } - - @ViewBuilder - private func remotePeerSections(_ pair: EasyTierStatus.PeerRoutePair) -> some View { - let route = pair.route - - Section(header: Text(LocalizedStringKey("节点"))) { - DetailRow(label: LocalizedStringKey("主机名"), value: route.hostname) - DetailRow(label: LocalizedStringKey("节点 ID"), value: "\(route.peerId)", isMonospaced: true) - DetailRow(label: LocalizedStringKey("实例 ID"), value: route.instId, isMonospaced: true) - DetailRow(label: LocalizedStringKey("版本"), value: route.version) - DetailRow(label: LocalizedStringKey("下一跳 ID"), value: "\(route.nextHopPeerId)", isMonospaced: true) - DetailRow(label: LocalizedStringKey("代价"), value: "\(route.cost)") - DetailRow(label: LocalizedStringKey("路径延迟"), value: "\(route.pathLatency/1000) ms") - - if let nhLatFirst = route.nextHopPeerIdLatencyFirst { - DetailRow(label: LocalizedStringKey("下一跳 (延迟优先)"), value: "\(nhLatFirst)", isMonospaced: true) - DetailRow(label: LocalizedStringKey("代价 (延迟优先)"), value: "\(route.costLatencyFirst ?? 0)") - DetailRow(label: LocalizedStringKey("路径延迟 (延迟优先)"), value: "\((route.pathLatencyLatencyFirst ?? 0)/1000) ms") - } - - if let flags = route.featureFlag { - DetailRow(label: LocalizedStringKey("特性标志"), value: formatFlags(flags)) - } - } - - if let pInfo = pair.peer { - Section(header: Text(LocalizedStringKey("连接状态"))) { - DetailRow(label: LocalizedStringKey("默认连接"), value: pInfo.defaultConnId?.description ?? "-") - } - - ForEach(pInfo.conns.indices, id: \.self) { i in - let conn = pInfo.conns[i] - Section(header: Text(LocalizedStringKey("连接 \(i + 1) [\(conn.tunnel?.tunnelType ?? "Unknown")]"))) { - DetailRow(label: LocalizedStringKey("角色"), value: conn.isClient ? "Client" : "Server") - DetailRow(label: LocalizedStringKey("丢包率"), value: String(format: "%.2f%%", conn.lossRate * 100)) - DetailRow(label: LocalizedStringKey("本地地址"), value: conn.tunnel?.localAddr.url ?? "-") - DetailRow(label: LocalizedStringKey("远程地址"), value: conn.tunnel?.remoteAddr.url ?? "-") - - if let s = conn.stats { - DetailRow(label: LocalizedStringKey("接收"), value: formatBytes(s.rxBytes)) - DetailRow(label: LocalizedStringKey("发送"), value: formatBytes(s.txBytes)) - DetailRow(label: LocalizedStringKey("延迟"), value: String(format: "%.1f ms", Double(s.latencyUs)/1000.0)) - } - } - } - } - } - - @ViewBuilder - private var basicSections: some View { - Section(header: Text(LocalizedStringKey("基础信息"))) { - DetailRow(label: LocalizedStringKey("主机名"), value: peer.hostname) - DetailRow(label: LocalizedStringKey("虚拟 IP"), value: peer.ipv4) - DetailRow(label: LocalizedStringKey("版本"), value: peer.version) - } - Section(header: Text(LocalizedStringKey("网络信息"))) { - DetailRow(label: LocalizedStringKey("代价"), value: peer.cost) - DetailRow(label: LocalizedStringKey("延迟"), value: peer.latency + " ms") - DetailRow(label: LocalizedStringKey("丢包率"), value: peer.loss) - DetailRow(label: LocalizedStringKey("隧道方式"), value: peer.tunnel) - } - } - - private func formatFlags(_ flags: EasyTierStatus.PeerFeatureFlag) -> String { - var parts = [String]() - if flags.isPublicServer { parts.append("public_server") } - if flags.avoidRelayData { parts.append("avoid_relay") } - if flags.kcpInput { parts.append("kcp_input") } - if flags.noRelayKcp { parts.append("no_relay_kcp") } - if flags.supportConnListSync { parts.append("conn_list_sync") } - return parts.isEmpty ? "None" : parts.joined(separator: ", ") - } - - private func formatBytes(_ bytes: Int) -> String { - if bytes < 1024 { return "\(bytes) B" } - let kb = Double(bytes) / 1024.0 - if kb < 1024 { return String(format: "%.1f KB", kb) } - let mb = kb / 1024.0 - if mb < 1024 { return String(format: "%.1f MB", mb) } - return String(format: "%.2f GB", mb / 1024.0) - } -} - -struct DetailRow: View { - let label: LocalizedStringKey - let value: String - var isMonospaced: Bool = false - - @State private var isCopied = false - - var body: some View { - HStack(alignment: .center, spacing: 0) { - Text(label) - .font(.system(size: 13)) - .foregroundColor(.primary) - .lineLimit(1) - .fixedSize(horizontal: true, vertical: false) - .layoutPriority(1) - - Spacer(minLength: 8) - - Text(LocalizedStringKey(value.isEmpty ? "-" : value)) - .font(isMonospaced ? .system(size: 13, weight: .regular, design: .monospaced) : .system(size: 13)) - .foregroundColor(.secondary) - .lineLimit(1) - .truncationMode(.tail) - .layoutPriority(0) - .opacity(isCopied ? 0.5 : 1.0) - } - .padding(.vertical, 2) - .contentShape(Rectangle()) - .onTapGesture { - copyToClipboard(value) - withAnimation(.easeInOut(duration: 0.1)) { - isCopied = true - } - DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { - withAnimation { - isCopied = false - } - } - } - .help(value) - } - - private func copyToClipboard(_ text: String) { - let pb = NSPasteboard.general - pb.clearContents() - pb.setString(text, forType: .string) - } -} - -struct ScrollingTextValue: View { - let text: String - let isMonospaced: Bool - - @State private var offset: CGFloat = 0 - @State private var isHovering = false - @State private var containerWidth: CGFloat = 0 - @State private var textWidth: CGFloat = 0 - - var body: some View { - GeometryReader { geo in - ZStack(alignment: .trailing) { - // Invisible text to measure width - Text(text) - .font(isMonospaced ? .system(size: 13, weight: .regular, design: .monospaced) : .system(size: 13)) - .fixedSize(horizontal: true, vertical: false) - .background(GeometryReader { textGeo in - Color.clear.onAppear { textWidth = textGeo.size.width } - }) - .opacity(0) - - // Visible text - Text(text) - .font(isMonospaced ? .system(size: 13, weight: .regular, design: .monospaced) : .system(size: 13)) - .foregroundColor(.secondary) - .fixedSize(horizontal: true, vertical: false) - .offset(x: offset) - .animation(shouldAnimate ? .linear(duration: Double(textWidth / 40)).repeatForever(autoreverses: true) : .default, value: offset) - } - .frame(maxWidth: .infinity, alignment: .trailing) - .onAppear { containerWidth = geo.size.width } - .onChange(of: isHovering) { hovering in - if hovering && textWidth > containerWidth { - offset = -(textWidth - containerWidth + 10) - } else { - offset = 0 - } - } - } - .frame(height: 18) - .contentShape(Rectangle()) - .onHover { isHovering = $0 } - .clipped() - } - - private var shouldAnimate: Bool { - isHovering && textWidth > containerWidth - } -} diff --git a/EasyTier/PermissionManager.swift b/EasyTier/PermissionManager.swift deleted file mode 100644 index 07a8d56..0000000 --- a/EasyTier/PermissionManager.swift +++ /dev/null @@ -1,48 +0,0 @@ -import Foundation -import AppKit -import Combine - -class PermissionManager: ObservableObject { - static let shared = PermissionManager() - - @Published var isFDAGranted: Bool - - private init() { - // Synchronous initial check to prevent UI flash - let protectedPath = "/Library/Application Support/com.apple.TCC" - var granted = false - if let _ = try? FileManager.default.contentsOfDirectory(atPath: protectedPath) { - granted = true - } - self.isFDAGranted = granted - } - - func checkFullDiskAccess() { - // 对于非沙盒应用,尝试访问 TCC 数据库是触发系统将其加入列表的最佳方式 - // 我们尝试列出这个目录,如果成功说明有权限,如果失败(Permission Denied), - // 系统也会因为这次尝试而将 APP 自动登记到“完全磁盘访问权限”列表中。 - let protectedPath = "/Library/Application Support/com.apple.TCC" - - DispatchQueue.global(qos: .userInitiated).async { - var granted = false - if let _ = try? FileManager.default.contentsOfDirectory(atPath: protectedPath) { - granted = true - } - - DispatchQueue.main.async { - if self.isFDAGranted != granted { - self.isFDAGranted = granted - } - } - } - } - - func openFullDiskAccessSettings() { - let url = URL(string: "x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles")! - NSWorkspace.shared.open(url) - } - - func revealAppInFinder() { - NSWorkspace.shared.activateFileViewerSelecting([Bundle.main.bundleURL]) - } -} diff --git a/EasyTier/SettingsView.swift b/EasyTier/SettingsView.swift deleted file mode 100644 index 7976b3a..0000000 --- a/EasyTier/SettingsView.swift +++ /dev/null @@ -1,727 +0,0 @@ -import SwiftUI -import ServiceManagement -import WebKit - -struct SettingsView: View { - @Binding var isPresented: Bool - - @AppStorage("connectOnStart") private var connectOnStart: Bool = true - @AppStorage("breathEffect") private var breathEffect: Bool = true - @AppStorage("launchAtLogin") private var launchAtLogin: Bool = false - @AppStorage("exitBehavior") private var exitBehavior: String = "stopCore" // keepRunning, stopCore, stopAll - @AppStorage("logLevel") private var logLevel: String = "INFO" - - @ObservedObject private var permissionManager = PermissionManager.shared - - - @State private var showLicense = false - - // APP Update Check - @State private var isCheckingAppUpdate = false - @State private var appUpdateStatus: String? - @State private var showAppUpdateDetail = false - @State private var appVersionInfo: (version: String, body: String, downloadURL: String, assets: [[String: Any]])? - @AppStorage("appAutoUpdate") private var appAutoUpdate: Bool = true - @AppStorage("appBetaChannel") private var appBetaChannel: Bool = false - - private let logLevels = ["OFF", "ERROR", "WARN", "INFO", "DEBUG", "TRACE"] - - var body: some View { - ZStack { - VStack(spacing: 0) { - // Header - UnifiedHeader(title: LocalizedStringKey("设置")) { - Button(LocalizedStringKey("完成")) {}.buttonStyle(.bordered).hidden() // Placeholder - } right: { - Button(LocalizedStringKey("完成")) { - withAnimation { isPresented = false } - } - .buttonStyle(.borderedProminent) - } - - // Native Form - Form { - Section(header: Text("通用")) { - // macOS 风格的更新状态卡片 - HStack(spacing: 12) { - // 状态图标 - ZStack { - RoundedRectangle(cornerRadius: 8) - .fill(appUpdateStatus == "有新版本可用" ? Color.orange : Color.green) - .frame(width: 40, height: 40) - Image(systemName: appUpdateStatus == "有新版本可用" ? "arrow.down.circle.fill" : "checkmark") - .font(.system(size: 20, weight: .semibold)) - .foregroundColor(.white) - } - - // 状态文字 - VStack(alignment: .leading, spacing: 2) { - Text(LocalizedStringKey(appUpdateStatus ?? "Swiftier 已是最新版本")) - .font(.headline) - let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown" - Text("Swiftier \(version)") - .font(.subheadline) - .foregroundColor(.secondary) - } - - Spacer() - - // 检查更新按钮 - Button(LocalizedStringKey("检查更新")) { - checkAppUpdate() - } - .disabled(isCheckingAppUpdate) - .buttonStyle(.bordered) - - if isCheckingAppUpdate { - ProgressView().controlSize(.small) - } - } - .padding(.vertical, 4) - - Toggle("自动更新", isOn: $appAutoUpdate) - Toggle("接收 Beta 版本", isOn: $appBetaChannel) - - Toggle("启动 APP 时自动连接", isOn: $connectOnStart) - Toggle("连接时图标呼吸闪烁", isOn: $breathEffect) - - // 开机自启 - Toggle("开机自动启动", isOn: $launchAtLogin) - .onChange(of: launchAtLogin) { newValue in - toggleLaunchAtLogin(enabled: newValue) - } - - HStack { - Text(LocalizedStringKey("退出 APP 时")) - Spacer() - Picker("", selection: $exitBehavior) { - Text(LocalizedStringKey("保持连接运行")).tag("keepRunning") - Text(LocalizedStringKey("仅保留 Helper 加速启动")).tag("stopCore") - Text(LocalizedStringKey("完全退出")).tag("stopAll") - } - .pickerStyle(.menu) - .labelsHidden() - .fixedSize() - } - } - - Section(header: Text("隐私")) { - HStack { - Text("完全磁盘访问权限") - Spacer() - if permissionManager.isFDAGranted { - HStack { - Image(systemName: "checkmark.circle.fill") - .foregroundColor(.green) - Text("已开启") - .foregroundColor(.secondary) - } - } else { - Button("去开启") { - permissionManager.openFullDiskAccessSettings() - } - .foregroundColor(.red) - } - } - } - - - - Section(header: Text("日志"), footer: Text("修改日志等级后,需要停止并重新启动服务才能生效。")) { - Picker(LocalizedStringKey("日志等级"), selection: $logLevel) { - ForEach(logLevels, id: \.self) { level in - Text(level).tag(level) - } - } - } - - Section(header: Text("关于")) { - HStack { - Text("开发者") - Spacer() - Text("Alick Huang") - .foregroundColor(.secondary) - } - - HStack { - Text("联系邮箱") - Spacer() - Text("minamike2007@gmail.com") - .foregroundColor(.secondary) - .textSelection(.enabled) - } - - HStack { - Text("源代码") - Spacer() - Link("GitHub 仓库", destination: URL(string: "https://github.com/AlickH/Swiftier")!) - .foregroundColor(.blue) - } - - Button(action: { - withAnimation { - showLicense = true - } - }) { - VStack(alignment: .leading, spacing: 6) { - HStack { - Text("开源声明") - .font(.body) - .foregroundColor(.primary) - Spacer() - Image(systemName: "chevron.right") - .font(.caption) - .foregroundColor(Color(nsColor: .tertiaryLabelColor)) - } - Text("本项目遵循 MIT 开源许可证。") - .font(.caption) - .foregroundColor(.secondary) - .fixedSize(horizontal: false, vertical: true) - .multilineTextAlignment(.leading) - } - .contentShape(Rectangle()) - } - .buttonStyle(.plain) - } - } - .formStyle(.grouped) // 使用系统标准的 Grouped 样式 - .scrollContentBackground(.hidden) // 让 Form 背景对齐到外部 - } // End VStack - .background(Color(nsColor: .windowBackgroundColor)) // 整体背景 - - - - // License Popup - if showLicense { - LicenseView(isPresented: $showLicense) - .transition(.move(edge: .trailing)) // Slide from right like a push - .zIndex(100) - } - - if showAppUpdateDetail, let info = appVersionInfo { - AppUpdateDetailView( - isPresented: $showAppUpdateDetail, - version: info.version, - releaseNotes: info.body, - downloadURL: info.downloadURL, - assets: info.assets - ) - .transition(.move(edge: .bottom)) - .zIndex(101) - } - } - .onAppear { - checkLaunchAtLogin() - } - } - - private func checkLaunchAtLogin() { - if #available(macOS 13.0, *) { - launchAtLogin = SMAppService.mainApp.status == .enabled - } - } - - private var exitBehaviorDescription: String { - switch exitBehavior { - case "keepRunning": - return "退出 APP 后,Swiftier 连接将保持运行,您可以随时重新打开 APP 查看状态。" - case "stopCore": - return "退出 APP 后,断开 Swiftier 连接,但保留 Helper 进程以加速下次启动。" - case "stopAll": - return "退出 APP 后,完全停止所有后台服务(包括 Helper),下次启动需要重新授权。" - default: - return "" - } - } - - - private func checkAppUpdate() { - isCheckingAppUpdate = true - appUpdateStatus = "正在检查..." - - Task { - do { - // 根据是否接收 Beta 版本选择不同的 API 端点 - let apiURL = appBetaChannel - ? "https://api.github.com/repos/AlickH/Swiftier/releases" - : "https://api.github.com/repos/AlickH/Swiftier/releases/latest" - - guard let url = URL(string: apiURL) else { - throw URLError(.badURL) - } - - var request = URLRequest(url: url) - request.setValue("application/vnd.github.v3+json", forHTTPHeaderField: "Accept") - - let (data, _) = try await URLSession.shared.data(for: request) - - var tagName: String? - var body: String? - var htmlURL: String? - - if appBetaChannel { - // Beta 模式:获取所有 releases,取第一个(包括 prerelease) - if let releases = try JSONSerialization.jsonObject(with: data) as? [[String: Any]], - let firstRelease = releases.first { - tagName = firstRelease["tag_name"] as? String - body = firstRelease["body"] as? String - htmlURL = firstRelease["html_url"] as? String - } - } else { - // 正式版模式:只获取 latest - if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] { - tagName = json["tag_name"] as? String - body = json["body"] as? String - htmlURL = json["html_url"] as? String - } - } - - guard let tag = tagName, let releaseBody = body, let downloadURL = htmlURL else { - throw NSError(domain: "ParseError", code: 0, userInfo: [NSLocalizedDescriptionKey: "无法解析版本信息"]) - } - - // 清理版本号(去掉 v 前缀) - let remoteVersion = tag.trimmingCharacters(in: CharacterSet(charactersIn: "vV")) - let currentVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "0.0.0" - - if remoteVersion.compare(currentVersion, options: .numeric) == .orderedDescending { - - // Parse assets to find the best download URL - - // For now we just pass the raw assets list, filtering logic will be in the Detail View - // However, we are parsing the RELEASE object above, so we need to get assets from it - - var releaseAssets: [[String: Any]] = [] - if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any], - let assets = json["assets"] as? [[String: Any]] { - releaseAssets = assets - } else if let releases = try JSONSerialization.jsonObject(with: data) as? [[String: Any]], - let first = releases.first, - let assets = first["assets"] as? [[String: Any]] { - releaseAssets = assets - } - - await MainActor.run { - appVersionInfo = (remoteVersion, releaseBody, downloadURL, releaseAssets) - showAppUpdateDetail = true - appUpdateStatus = "有新版本可用" - } - } else { - await MainActor.run { - appUpdateStatus = nil // 清空状态,显示默认的"已是最新版本" - } - } - } catch { - await MainActor.run { - appUpdateStatus = "检查失败" - } - } - - await MainActor.run { isCheckingAppUpdate = false } - } - } - - private func toggleLaunchAtLogin(enabled: Bool) { - if #available(macOS 13.0, *) { - do { - if enabled { - try SMAppService.mainApp.register() - } else { - try SMAppService.mainApp.unregister() - } - } catch { - print("Failed to toggle launch at login: \(error)") - launchAtLogin = !enabled - } - } - } -} - - - -struct AppUpdateDetailView: View { - @Binding var isPresented: Bool - let version: String - let releaseNotes: String - let downloadURL: String - let assets: [[String: Any]] - - @State private var isDownloading = false - @State private var downloadProgress: Double = 0 - @State private var downloadTask: URLSessionDownloadTask? - @State private var showRevealButton = false - @State private var downloadedFileURL: URL? - - var body: some View { - VStack(spacing: 0) { - // Header - UnifiedHeader(title: LocalizedStringKey("Swiftier \(version) 可用")) { - Button(LocalizedStringKey("稍后")) { - if isDownloading { - downloadTask?.cancel() - isDownloading = false - } - withAnimation { isPresented = false } - } - .buttonStyle(.bordered) - } right: { - if showRevealButton { - HStack { - Button(LocalizedStringKey("查看文件")) { - if let url = downloadedFileURL { - NSWorkspace.shared.activateFileViewerSelecting([url]) - } - } - .buttonStyle(.bordered) - - Button(LocalizedStringKey("安装并自启")) { - smartInstall() - } - .buttonStyle(.borderedProminent) - } - } else if isDownloading { - ProgressView(value: downloadProgress) - .progressViewStyle(.linear) - .frame(width: 100) - } else { - Button(LocalizedStringKey("立即下载")) { - startDownload() - } - .buttonStyle(.borderedProminent) - } - } - - // Release Notes - MarkdownWebView(markdown: releaseNotes) - } - .background(Color(nsColor: .windowBackgroundColor)) - } - - private func startDownload() { - // Find best asset (dmg > zip, arm64 vs x64 logic if needed, but usually universal or specific) - // For simplicity, find first .dmg, then .zip - // In a real scenario, check architecture - - guard let assetURL = findBestAssetURL() else { - // Fallback to opening browser - if let url = URL(string: downloadURL) { - NSWorkspace.shared.open(url) - } - return - } - - isDownloading = true - downloadProgress = 0 - - let url = URL(string: assetURL)! - let session = URLSession(configuration: .default, delegate: DownloadDelegate(progress: { p in - DispatchQueue.main.async { self.downloadProgress = p } - }, completion: { location, error in - // Must be careful to capture values before jumping to async - guard let location = location else { return } - let fileManager = FileManager.default - let downloadsURL = fileManager.urls(for: .downloadsDirectory, in: .userDomainMask).first! - let destinationURL = downloadsURL.appendingPathComponent(url.lastPathComponent) - - do { - try? fileManager.removeItem(at: destinationURL) // Overwrite - try fileManager.moveItem(at: location, to: destinationURL) - - // Force UI update on Main Thread - Task { @MainActor in - self.downloadedFileURL = destinationURL - self.showRevealButton = true - self.isDownloading = false - - // Reveal file - NSWorkspace.shared.activateFileViewerSelecting([destinationURL]) - } - } catch { - print("File move error: \(error)") - Task { @MainActor in - self.isDownloading = false - } - } - }), delegateQueue: nil) - - let task = session.downloadTask(with: url) - task.resume() - self.downloadTask = task - } - - private func smartInstall() { - guard let assetURL = downloadedFileURL else { return } - let currentAppURL = Bundle.main.bundleURL - - // Safety: Only proceed if we are a .app bundle - guard currentAppURL.pathExtension == "app" else { - NSWorkspace.shared.open(assetURL) - return - } - - let fileManager = FileManager.default - let tempScriptURL = fileManager.temporaryDirectory.appendingPathComponent("swiftier_update.sh") - - // Script Logic: - // 1. Wait for PID to close (passed as arg) - // 2. Extract/Mount - // 3. Replace - // 4. Relaunch - // 5. Self-destruct script - - let script = """ - #!/bin/bash - PID=$1 - DMG_PATH="$2" - DEST_APP="$3" - TEMP_MOUNT="/tmp/Swiftier_Update_Mount" - - # 1. Wait for parent to exit - while kill -0 $PID 2>/dev/null; do sleep 0.5; done - - echo "Starting update..." - - # 2. Extract payload - SOURCE_APP="" - - if [[ "$DMG_PATH" == *.dmg ]]; then - hdiutil attach -nobrowse "$DMG_PATH" -mountpoint "$TEMP_MOUNT" - SOURCE_APP=$(find "$TEMP_MOUNT" -maxdepth 1 -name "*.app" -print -quit) - elif [[ "$DMG_PATH" == *.zip ]]; then - unzip -o "$DMG_PATH" -d "$TEMP_MOUNT" - SOURCE_APP=$(find "$TEMP_MOUNT" -maxdepth 2 -name "*.app" -print -quit) - fi - - if [ -z "$SOURCE_APP" ]; then - echo "Failed to find app in update" - open "$DMG_PATH" - exit 1 - fi - - # 3. Replace - rm -rf "$DEST_APP" - cp -R "$SOURCE_APP" "$DEST_APP" - - # 4. Cleanup - if [[ "$DMG_PATH" == *.dmg ]]; then - hdiutil detach "$TEMP_MOUNT" - else - rm -rf "$TEMP_MOUNT" - fi - - # 5. Relaunch - open "$DEST_APP" - - # Cleanup Script - rm -- "$0" - """ - - do { - try script.write(to: tempScriptURL, atomically: true, encoding: .utf8) - try fileManager.setAttributes([.posixPermissions: 0o755], ofItemAtPath: tempScriptURL.path) - - let process = Process() - process.executableURL = URL(fileURLWithPath: "/bin/bash") - process.arguments = [tempScriptURL.path, String(ProcessInfo.processInfo.processIdentifier), assetURL.path, currentAppURL.path] - - try process.run() - - NSApplication.shared.terminate(nil) - } catch { - print("Install failed: \(error)") - NSWorkspace.shared.open(assetURL) - } - } - - private func findBestAssetURL() -> String? { - // Simple logic: prefer .dmg, then .zip - // Filter for "Swiftier" in name to avoid other assets - let validAssets = assets.filter { asset in - guard let name = asset["name"] as? String else { return false } - return name.contains("Swiftier") || name.contains("EasyTier") - } - - // Priority 1: .dmg - if let dmg = validAssets.first(where: { ($0["name"] as? String)?.hasSuffix(".dmg") ?? false }) { - return dmg["browser_download_url"] as? String - } - - // Priority 2: .zip - if let zip = validAssets.first(where: { ($0["name"] as? String)?.hasSuffix(".zip") ?? false }) { - return zip["browser_download_url"] as? String - } - - return nil - } -} - -// Delegate for progress -class DownloadDelegate: NSObject, URLSessionDownloadDelegate { - let progress: (Double) -> Void - let completion: (URL?, Error?) -> Void - - init(progress: @escaping (Double) -> Void, completion: @escaping (URL?, Error?) -> Void) { - self.progress = progress - self.completion = completion - } - - func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) { - completion(location, nil) - } - - func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) { - let p = Double(totalBytesWritten) / Double(totalBytesExpectedToWrite) - progress(p) - } - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { - if let error = error { - completion(nil, error) - } - } -} - -struct MarkdownWebView: NSViewRepresentable { - let markdown: String - - func makeNSView(context: Context) -> WKWebView { - let webView = WKWebView() - webView.setValue(false, forKey: "drawsBackground") // Transparent background - return webView - } - - func updateNSView(_ nsView: WKWebView, context: Context) { - let html = generateHTML(from: markdown) - nsView.loadHTMLString(html, baseURL: nil) - } - - func generateHTML(from markdown: String) -> String { - // Escape backticks and backslashes for JS template string - let escapedMarkdown = markdown - .replacingOccurrences(of: "\\", with: "\\\\") - .replacingOccurrences(of: "`", with: "\\`") - .replacingOccurrences(of: "$", with: "\\$") - // Ensure newlines are preserved for JS string - .replacingOccurrences(of: "\r\n", with: "\n") - .replacingOccurrences(of: "\n", with: "\\n") - - // Use marked.js for robust parsing - // Dark mode CSS - return """ - - - - - - - - -
- - - - """ - } -} - -struct LicenseView: View { - @Binding var isPresented: Bool - - private let mitLicense = """ -MIT License - -Copyright (c) 2024 Alick Huang - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -""" - - var body: some View { - VStack(spacing: 0) { - UnifiedHeader(title: "MIT License") { - Button(LocalizedStringKey("关闭")) { - withAnimation { isPresented = false } - } - .buttonStyle(.bordered) - } right: { EmptyView() } - - ScrollView { - Text(mitLicense) - .font(.system(.body, design: .monospaced)) - .padding() - .textSelection(.enabled) - } - } - .background(Color(nsColor: .windowBackgroundColor)) - } -} diff --git a/EasyTier/SharedComponents.swift b/EasyTier/SharedComponents.swift deleted file mode 100644 index 82ea34a..0000000 --- a/EasyTier/SharedComponents.swift +++ /dev/null @@ -1,39 +0,0 @@ -import SwiftUI - -// MARK: - Unified Header Component - -/// 统一风格的页面 Header 布局容器 -/// 仅负责布局结构,样式完全由内部按钮的系统 Style 决定 -struct UnifiedHeader: View { - let title: LocalizedStringKey - let leftButton: () -> LeftBtn - let rightButton: () -> RightBtn - - init(title: LocalizedStringKey, @ViewBuilder left: @escaping () -> LeftBtn, @ViewBuilder right: @escaping () -> RightBtn) { - self.title = title - self.leftButton = left - self.rightButton = right - } - - var body: some View { - VStack(spacing: 0) { - HStack { - leftButton() - - Spacer() - - Text(title) - .font(.headline) - .lineLimit(1) - - Spacer() - - rightButton() - } - .padding(12) - .background(Color(nsColor: .windowBackgroundColor)) // 保持背景一致 - - Divider() - } - } -} diff --git a/EasyTier/com.alick.swiftier.helper.plist b/EasyTier/com.alick.swiftier.helper.plist deleted file mode 100644 index 18dce1d..0000000 --- a/EasyTier/com.alick.swiftier.helper.plist +++ /dev/null @@ -1,40 +0,0 @@ - - - - - Label - com.alick.swiftier.helper - - - - BundleProgram - Contents/MacOS/SwiftierHelper - - MachServices - - - com.alick.swiftier.helper - - - - RunAtLoad - - - KeepAlive - - SuccessfulExit - - - - StandardOutPath - /var/log/swiftier-helper-stdout.log - - StandardErrorPath - /var/log/swiftier-helper-stderr.log - - AssociatedBundleIdentifiers - - com.alick.swiftier - - - diff --git a/EasyTierCore/.gitignore b/EasyTierCore/.gitignore deleted file mode 100755 index c41cc9e..0000000 --- a/EasyTierCore/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target \ No newline at end of file diff --git a/EasyTierCore/Cargo.lock b/EasyTierCore/Cargo.lock deleted file mode 100755 index 763a78c..0000000 --- a/EasyTierCore/Cargo.lock +++ /dev/null @@ -1,5587 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", -] - -[[package]] -name = "anyhow" -version = "1.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" - -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - -[[package]] -name = "arc-swap" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e" -dependencies = [ - "rustversion", -] - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "async-ringbuf" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37deacf8e605bab4b2ece2d3c05dd4dc169252fca252fe791c326a4d67029cf" -dependencies = [ - "futures-util", - "ringbuf", -] - -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "atomic-shim" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cd4b51d303cf3501c301e8125df442128d3c6d7c69f71b27833d253de47e77" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "auto_impl" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "base62" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adf9755786e27479693dedd3271691a92b5e242ab139cacb9fb8e7fb5381111" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bindgen" -version = "0.72.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.114", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "boringtun-easytier" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f09b4d1ada8affba260cb185bbdf6d5acff42f924dea1a17f938cf3e8fbe475" -dependencies = [ - "aead", - "atomic-shim", - "base64 0.13.1", - "blake2", - "chacha20poly1305", - "hex", - "hmac", - "ip_network", - "ip_network_table", - "libc", - "nix 0.25.1", - "parking_lot", - "rand_core 0.6.4", - "ring", - "tracing", - "untrusted", - "x25519-dalek", -] - -[[package]] -name = "bstr" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "bumpalo" -version = "3.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" - -[[package]] -name = "bytecodec" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf4c9d0bbf32eea58d7c0f812058138ee8edaf0f2802b6d03561b504729a325" -dependencies = [ - "byteorder", - "trackable 0.2.24", -] - -[[package]] -name = "bytecount" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" - -[[package]] -name = "bzip2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" -dependencies = [ - "libbz2-rs-sys", -] - -[[package]] -name = "c2rust-bitfields" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b43c3f07ab0ef604fa6f595aa46ec2f8a22172c975e186f6f5bf9829a3b72c41" -dependencies = [ - "c2rust-bitfields-derive", -] - -[[package]] -name = "c2rust-bitfields-derive" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3cbc102e2597c9744c8bd8c15915d554300601c91a079430d309816b0912545" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "cc" -version = "1.2.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" -dependencies = [ - "find-msvc-tools", - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chacha20" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "chacha20poly1305" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" -dependencies = [ - "aead", - "chacha20", - "cipher", - "poly1305", - "zeroize", -] - -[[package]] -name = "chrono" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-link", -] - -[[package]] -name = "cidr" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579504560394e388085d0c080ea587dfa5c15f7e251b4d5247d1e1a61d1d6928" -dependencies = [ - "serde", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", - "zeroize", -] - -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "4.5.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", - "terminal_size", - "unicase", - "unicode-width 0.2.2", -] - -[[package]] -name = "clap_complete" -version = "4.5.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "430b4dc2b5e3861848de79627b2bedc9f3342c7da5173a14eaa5d0f8dc18ae5d" -dependencies = [ - "clap", -] - -[[package]] -name = "clap_complete_nushell" -version = "4.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685bc86fd34b7467e0532a4f8435ab107960d69a243785ef0275e571b35b641a" -dependencies = [ - "clap", - "clap_complete", -] - -[[package]] -name = "clap_derive" -version = "4.5.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "clap_lex" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" - -[[package]] -name = "codepage" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f68d061bc2828ae826206326e61251aca94c1e4a5305cf52d9138639c918b4" -dependencies = [ - "encoding_rs", -] - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "typenum", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "fiat-crypto", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.114", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "data-encoding" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" - -[[package]] -name = "dbus" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b3aa68d7e7abee336255bd7248ea965cc393f3e70411135a6f6a4b651345d4" -dependencies = [ - "libc", - "libdbus-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "deflate64" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26bf8fc351c5ed29b5c2f0cbbac1b209b74f60ecd62e675a998df72c49af5204" - -[[package]] -name = "defmt" -version = "0.3.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0963443817029b2024136fc4dd07a5107eb8f977eaf18fcd1fdeb11306b64ad" -dependencies = [ - "defmt 1.0.1", -] - -[[package]] -name = "defmt" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "548d977b6da32fa1d1fda2876453da1e7df63ad0304c8b3dae4dbe7b96f39b78" -dependencies = [ - "bitflags 1.3.2", - "defmt-macros", -] - -[[package]] -name = "defmt-macros" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d4fc12a85bcf441cfe44344c4b72d58493178ce635338a3f3b78943aceb258e" -dependencies = [ - "defmt-parser", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "defmt-parser" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" -dependencies = [ - "thiserror 2.0.17", -] - -[[package]] -name = "deranged" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" -dependencies = [ - "powerfmt", -] - -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn 2.0.114", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] - -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys 0.5.0", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users 0.4.6", - "winapi", -] - -[[package]] -name = "dirs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.5.2", - "windows-sys 0.61.2", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "easytier" -version = "2.5.0" -source = "git+https://github.com/EasyTier/EasyTier.git?branch=main#f8b34e3c86abc5b2aa16da09a5f97b3973490a3c" -dependencies = [ - "anyhow", - "arc-swap", - "async-recursion", - "async-ringbuf", - "async-stream", - "async-trait", - "atomic-shim", - "auto_impl", - "base64 0.22.1", - "bitflags 2.10.0", - "boringtun-easytier", - "bytecodec", - "byteorder", - "bytes", - "cfg-if", - "chrono", - "cidr", - "clap", - "clap_complete", - "clap_complete_nushell", - "crossbeam", - "dashmap", - "dbus", - "derive_builder", - "easytier-rpc-build", - "encoding", - "flume", - "futures", - "gethostname", - "git-version", - "globwalk", - "hashbrown 0.15.5", - "hickory-client", - "hickory-proto", - "hickory-resolver", - "hickory-server", - "hmac", - "http", - "http_req", - "humansize", - "humantime-serde", - "idna", - "kcp-sys", - "machine-uid", - "multimap", - "netlink-packet-core", - "netlink-packet-route", - "netlink-packet-utils", - "netlink-sys", - "network-interface", - "nix 0.29.0", - "once_cell", - "ordered_hash_map", - "parking_lot", - "percent-encoding", - "petgraph 0.8.3", - "pin-project-lite", - "pnet", - "prefix-trie", - "prost", - "prost-build", - "prost-reflect", - "prost-reflect-build", - "prost-types", - "quinn", - "rand 0.8.5", - "rcgen", - "regex", - "reqwest", - "resolv-conf", - "ring", - "ringbuf", - "rust-i18n", - "rustls", - "serde", - "serde_json", - "service-manager", - "sha2", - "shellexpand", - "smoltcp", - "socket2 0.5.10", - "stun_codec", - "sys-locale", - "tabled", - "thiserror 1.0.69", - "thunk-rs", - "time", - "timedmap", - "tokio", - "tokio-rustls", - "tokio-stream", - "tokio-util", - "tokio-websockets", - "toml", - "tonic-build", - "tracing", - "tracing-subscriber", - "tun-easytier", - "url", - "uuid", - "version-compare", - "which 7.0.3", - "wildmatch", - "winapi", - "windivert", - "windows 0.52.0", - "windows-service", - "windows-sys 0.52.0", - "winreg 0.52.0", - "zerocopy 0.7.35", - "zip", - "zstd", -] - -[[package]] -name = "easytier-ios" -version = "0.1.0" -dependencies = [ - "easytier", - "once_cell", - "serde", - "serde_json", - "tokio", - "tracing", - "tracing-oslog", - "tracing-subscriber", -] - -[[package]] -name = "easytier-rpc-build" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24829168c28f6a448f57d18116c255dcbd2b8c25e76dbc60f6cd16d68ad2cf07" -dependencies = [ - "heck 0.5.0", - "prost-build", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "encoding" -version = "0.2.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" -dependencies = [ - "encoding-index-japanese", - "encoding-index-korean", - "encoding-index-simpchinese", - "encoding-index-singlebyte", - "encoding-index-tradchinese", -] - -[[package]] -name = "encoding-index-japanese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-korean" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-simpchinese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-singlebyte" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-tradchinese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87b881ab2524b96a5ce932056c7482ba6152e2226fed3936b3e592adeb95ca6d" -dependencies = [ - "codepage", - "encoding_rs", - "windows-sys 0.52.0", -] - -[[package]] -name = "encoding_index_tests" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "env_home" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "etherparse" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "827292ea592108849932ad8e30218f8b1f21c0dfd0696698a18b5d0aed62d990" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "fastbloom" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" -dependencies = [ - "getrandom 0.3.4", - "libm", - "rand 0.9.2", - "siphasher", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "find-msvc-tools" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" - -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "flate2" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" -dependencies = [ - "crc32fast", - "libz-rs-sys", - "miniz_oxide", -] - -[[package]] -name = "flume" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e139bc46ca777eb5efaf62df0ab8cc5fd400866427e56c68b22e414e53bd3be" -dependencies = [ - "fastrand", - "futures-core", - "futures-sink", - "spin", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "gethostname" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc3655aa6818d65bc620d6911f05aa7b6aeb596291e1e9f79e52df85583d1e30" -dependencies = [ - "rustix 0.38.44", - "windows-targets 0.52.6", -] - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "r-efi", - "wasip2", - "wasm-bindgen", -] - -[[package]] -name = "git-version" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" -dependencies = [ - "git-version-macro", -] - -[[package]] -name = "git-version-macro" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - -[[package]] -name = "globset" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "globwalk" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" -dependencies = [ - "bitflags 1.3.2", - "ignore", - "walkdir", -] - -[[package]] -name = "h2" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hash32" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" -dependencies = [ - "byteorder", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", -] - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" - -[[package]] -name = "heapless" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed" -dependencies = [ - "hash32", - "stable_deref_trait", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hickory-client" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c466cd63a4217d5b2b8e32f23f58312741ce96e3c84bf7438677d2baff0fc555" -dependencies = [ - "cfg-if", - "data-encoding", - "futures-channel", - "futures-util", - "hickory-proto", - "once_cell", - "radix_trie", - "rand 0.9.2", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "hickory-proto" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna", - "ipnet", - "once_cell", - "rand 0.9.2", - "ring", - "serde", - "thiserror 2.0.17", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "hickory-resolver" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" -dependencies = [ - "cfg-if", - "futures-util", - "hickory-proto", - "ipconfig", - "moka", - "once_cell", - "parking_lot", - "rand 0.9.2", - "resolv-conf", - "serde", - "smallvec", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "hickory-server" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53e5fe811b941c74ee46b8818228bfd2bc2688ba276a0eaeb0f2c95ea3b2585" -dependencies = [ - "async-trait", - "bytes", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-util", - "hickory-proto", - "hickory-resolver", - "ipnet", - "prefix-trie", - "serde", - "thiserror 2.0.17", - "time", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "http" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" -dependencies = [ - "bytes", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" -dependencies = [ - "bytes", - "futures-core", - "http", - "http-body", - "pin-project-lite", -] - -[[package]] -name = "http_req" -version = "0.13.1" -source = "git+https://github.com/EasyTier/http_req.git#b10aa9fc0db3067cc3d2174683a87250b80a1ea9" -dependencies = [ - "base64 0.22.1", - "rand 0.8.5", - "rustls", - "rustls-pemfile", - "rustls-pki-types", - "unicase", - "webpki", - "webpki-roots 0.26.11", - "zeroize", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "humansize" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" -dependencies = [ - "libm", -] - -[[package]] -name = "humantime" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" - -[[package]] -name = "humantime-serde" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" -dependencies = [ - "humantime", - "serde", -] - -[[package]] -name = "hyper" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" -dependencies = [ - "atomic-waker", - "bytes", - "futures-channel", - "futures-core", - "h2", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "pin-utils", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" -dependencies = [ - "http", - "hyper", - "hyper-util", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "hyper", - "ipnet", - "libc", - "percent-encoding", - "pin-project-lite", - "socket2 0.6.1", - "system-configuration", - "tokio", - "tower-service", - "tracing", - "windows-registry", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core 0.62.2", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "icu_collections" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - -[[package]] -name = "icu_properties" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" - -[[package]] -name = "icu_provider" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "ignore" -version = "0.4.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a" -dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata", - "same-file", - "walkdir", - "winapi-util", -] - -[[package]] -name = "indexmap" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", -] - -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "generic-array", -] - -[[package]] -name = "ip_network" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" - -[[package]] -name = "ip_network_table" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4099b7cfc5c5e2fe8c5edf3f6f7adf7a714c9cc697534f63a5a5da30397cb2c0" -dependencies = [ - "ip_network", - "ip_network_table-deps-treebitmap", -] - -[[package]] -name = "ip_network_table-deps-treebitmap" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e537132deb99c0eb4b752f0346b6a836200eaaa3516dd7e5514b63930a09e5d" - -[[package]] -name = "ipconfig" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" -dependencies = [ - "socket2 0.5.10", - "widestring", - "windows-sys 0.48.0", - "winreg 0.50.0", -] - -[[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" -dependencies = [ - "serde", -] - -[[package]] -name = "ipnetwork" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" -dependencies = [ - "serde", -] - -[[package]] -name = "iri-string" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" - -[[package]] -name = "jni" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" -dependencies = [ - "cesu8", - "cfg-if", - "combine", - "jni-sys", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "kcp-sys" -version = "0.1.0" -source = "git+https://github.com/EasyTier/kcp-sys?rev=94964794caaed5d388463137da59b97499619e5f#94964794caaed5d388463137da59b97499619e5f" -dependencies = [ - "anyhow", - "auto_impl", - "bindgen", - "bitflags 2.10.0", - "bytes", - "cc", - "dashmap", - "parking_lot", - "rand 0.8.5", - "thiserror 2.0.17", - "tokio", - "tokio-util", - "tracing", - "tracing-subscriber", - "zerocopy 0.7.35", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libbz2-rs-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" - -[[package]] -name = "libc" -version = "0.2.180" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" - -[[package]] -name = "libdbus-sys" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "libloading" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" -dependencies = [ - "cfg-if", - "windows-link", -] - -[[package]] -name = "liblzma" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73c36d08cad03a3fbe2c4e7bb3a9e84c57e4ee4135ed0b065cade3d98480c648" -dependencies = [ - "liblzma-sys", -] - -[[package]] -name = "liblzma-sys" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b9596486f6d60c3bbe644c0e1be1aa6ccc472ad630fe8927b456973d7cb736" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "libm" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" - -[[package]] -name = "libredox" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" -dependencies = [ - "bitflags 2.10.0", - "libc", -] - -[[package]] -name = "libz-rs-sys" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415" -dependencies = [ - "zlib-rs", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - -[[package]] -name = "litemap" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - -[[package]] -name = "machine-uid" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d7217d573cdb141d6da43113b098172e057d39915d79c4bdedbc3aacd46bd96" -dependencies = [ - "libc", - "windows-registry", - "windows-sys 0.61.2", -] - -[[package]] -name = "managed" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" - -[[package]] -name = "matchers" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "md5" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" - -[[package]] -name = "memchr" -version = "2.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "moka" -version = "0.12.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3dec6bd31b08944e08b58fd99373893a6c17054d6f3ea5006cc894f4f4eee2a" -dependencies = [ - "crossbeam-channel", - "crossbeam-epoch", - "crossbeam-utils", - "equivalent", - "parking_lot", - "portable-atomic", - "smallvec", - "tagptr", - "uuid", -] - -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" -dependencies = [ - "serde", -] - -[[package]] -name = "native-tls" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe 0.1.6", - "openssl-sys", - "schannel", - "security-framework 2.11.1", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "netlink-packet-core" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" -dependencies = [ - "anyhow", - "byteorder", - "netlink-packet-utils", -] - -[[package]] -name = "netlink-packet-route" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483325d4bfef65699214858f097d504eb812c38ce7077d165f301ec406c3066e" -dependencies = [ - "anyhow", - "bitflags 2.10.0", - "byteorder", - "libc", - "log", - "netlink-packet-core", - "netlink-packet-utils", -] - -[[package]] -name = "netlink-packet-utils" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" -dependencies = [ - "anyhow", - "byteorder", - "paste", - "thiserror 1.0.69", -] - -[[package]] -name = "netlink-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" -dependencies = [ - "bytes", - "libc", - "log", -] - -[[package]] -name = "network-interface" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ddcb8865ad3d9950f22f42ffa0ef0aecbfbf191867b3122413602b0a360b2a6" -dependencies = [ - "cc", - "libc", - "thiserror 2.0.17", - "winapi", -] - -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec", -] - -[[package]] -name = "nix" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "libc", -] - -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags 2.10.0", - "cfg-if", - "cfg_aliases", - "libc", - "memoffset", -] - -[[package]] -name = "no-std-net" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "normpath" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf23ab2b905654b4cb177e30b629937b3868311d4e1cba859f899c041046e69b" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_threads" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" -dependencies = [ - "libc", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "openssl" -version = "0.10.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" -dependencies = [ - "bitflags 2.10.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - -[[package]] -name = "openssl-probe" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391" - -[[package]] -name = "openssl-sys" -version = "0.9.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ordered_hash_map" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6c699f8a30f345785be969deed7eee4c73a5de58c7faf61d6a3251ef798ff61" -dependencies = [ - "hashbrown 0.15.5", -] - -[[package]] -name = "papergrid" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7419ad52a7de9b60d33e11085a0fe3df1fbd5926aa3f93d3dd53afbc9e86725" -dependencies = [ - "bytecount", - "fnv", - "unicode-width 0.1.11", -] - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest", - "hmac", -] - -[[package]] -name = "pem" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" -dependencies = [ - "base64 0.22.1", - "serde_core", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "petgraph" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset", - "indexmap", -] - -[[package]] -name = "petgraph" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" -dependencies = [ - "fixedbitset", - "hashbrown 0.15.5", - "indexmap", - "serde", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "plist" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" -dependencies = [ - "base64 0.22.1", - "indexmap", - "quick-xml", - "serde", - "time", -] - -[[package]] -name = "pnet" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "682396b533413cc2e009fbb48aadf93619a149d3e57defba19ff50ce0201bd0d" -dependencies = [ - "ipnetwork", - "pnet_base", - "pnet_datalink", - "pnet_packet", - "pnet_sys", - "pnet_transport", -] - -[[package]] -name = "pnet_base" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc190d4067df16af3aba49b3b74c469e611cad6314676eaf1157f31aa0fb2f7" -dependencies = [ - "no-std-net", - "serde", -] - -[[package]] -name = "pnet_datalink" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79e70ec0be163102a332e1d2d5586d362ad76b01cec86f830241f2b6452a7b7" -dependencies = [ - "ipnetwork", - "libc", - "pnet_base", - "pnet_sys", - "serde", - "winapi", -] - -[[package]] -name = "pnet_macros" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13325ac86ee1a80a480b0bc8e3d30c25d133616112bb16e86f712dcf8a71c863" -dependencies = [ - "proc-macro2", - "quote", - "regex", - "syn 2.0.114", -] - -[[package]] -name = "pnet_macros_support" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed67a952585d509dd0003049b1fc56b982ac665c8299b124b90ea2bdb3134ab" -dependencies = [ - "pnet_base", -] - -[[package]] -name = "pnet_packet" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c96ebadfab635fcc23036ba30a7d33a80c39e8461b8bd7dc7bb186acb96560f" -dependencies = [ - "glob", - "pnet_base", - "pnet_macros", - "pnet_macros_support", -] - -[[package]] -name = "pnet_sys" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d4643d3d4db6b08741050c2f3afa9a892c4244c085a72fcda93c9c2c9a00f4b" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "pnet_transport" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f604d98bc2a6591cf719b58d3203fd882bdd6bf1db696c4ac97978e9f4776bf" -dependencies = [ - "libc", - "pnet_base", - "pnet_packet", - "pnet_sys", -] - -[[package]] -name = "poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" -dependencies = [ - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" -dependencies = [ - "portable-atomic", -] - -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppmd-rust" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d558c559f0450f16f2a27a1f017ef38468c1090c9ce63c8e51366232d53717b4" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy 0.8.33", -] - -[[package]] -name = "prefix-trie" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cf4c7c25f1dd66c76b451e9041a8cfce26e4ca754934fa7aed8d5a59a01d20" -dependencies = [ - "cidr", - "ipnet", - "num-traits", -] - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.114", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "proc-macro2" -version = "1.0.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" -dependencies = [ - "heck 0.5.0", - "itertools 0.14.0", - "log", - "multimap", - "once_cell", - "petgraph 0.7.1", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.114", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "prost-reflect" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5edd582b62f5cde844716e66d92565d7faf7ab1445c8cebce6e00fba83ddb2" -dependencies = [ - "once_cell", - "prost", - "prost-reflect-derive", - "prost-types", -] - -[[package]] -name = "prost-reflect-build" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e2537231d94dd2778920c2ada37dd9eb1ac0325bb3ee3ee651bd44c1134123" -dependencies = [ - "prost-build", - "prost-reflect", -] - -[[package]] -name = "prost-reflect-derive" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fce6b22f15cc8d8d400a2b98ad29202b33bd56c7d9ddd815bc803a807ecb65" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "prost-types" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" -dependencies = [ - "prost", -] - -[[package]] -name = "quick-xml" -version = "0.38.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" -dependencies = [ - "memchr", -] - -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls", - "socket2 0.6.1", - "thiserror 2.0.17", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" -dependencies = [ - "bytes", - "fastbloom", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.2", - "ring", - "rustc-hash", - "rustls", - "rustls-pki-types", - "rustls-platform-verifier", - "slab", - "thiserror 2.0.17", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.6.1", - "tracing", - "windows-sys 0.60.2", -] - -[[package]] -name = "quote" -version = "1.0.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "radix_trie" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" -dependencies = [ - "endian-type", - "nibble_vec", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "rcgen" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1" -dependencies = [ - "pem", - "ring", - "time", - "yasna", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", -] - -[[package]] -name = "redox_users" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" -dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 2.0.17", -] - -[[package]] -name = "regex" -version = "1.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" - -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "js-sys", - "log", - "mime", - "native-tls", - "percent-encoding", - "pin-project-lite", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-native-tls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "resolv-conf" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.16", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "ringbuf" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe47b720588c8702e34b5979cb3271a8b1842c7cb6f57408efa70c779363488c" -dependencies = [ - "crossbeam-utils", - "portable-atomic", - "portable-atomic-util", -] - -[[package]] -name = "rust-i18n" -version = "3.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda2551fdfaf6cc5ee283adc15e157047b92ae6535cf80f6d4962d05717dc332" -dependencies = [ - "globwalk", - "once_cell", - "regex", - "rust-i18n-macro", - "rust-i18n-support", - "smallvec", -] - -[[package]] -name = "rust-i18n-macro" -version = "3.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22baf7d7f56656d23ebe24f6bb57a5d40d2bce2a5f1c503e692b5b2fa450f965" -dependencies = [ - "glob", - "once_cell", - "proc-macro2", - "quote", - "rust-i18n-support", - "serde", - "serde_json", - "serde_yaml", - "syn 2.0.114", -] - -[[package]] -name = "rust-i18n-support" -version = "3.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "940ed4f52bba4c0152056d771e563b7133ad9607d4384af016a134b58d758f19" -dependencies = [ - "arc-swap", - "base62", - "globwalk", - "itertools 0.11.0", - "lazy_static", - "normpath", - "once_cell", - "proc-macro2", - "regex", - "serde", - "serde_json", - "serde_yaml", - "siphasher", - "toml", - "triomphe", -] - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustix" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" -dependencies = [ - "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys 0.11.0", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls" -version = "0.23.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" -dependencies = [ - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" -dependencies = [ - "openssl-probe 0.2.0", - "rustls-pki-types", - "schannel", - "security-framework 3.5.1", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" -dependencies = [ - "web-time", - "zeroize", -] - -[[package]] -name = "rustls-platform-verifier" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" -dependencies = [ - "core-foundation 0.10.1", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework 3.5.1", - "security-framework-sys", - "webpki-root-certs", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - -[[package]] -name = "rustls-webpki" -version = "0.103.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "ryu" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "serde_json" -version = "1.0.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - -[[package]] -name = "service-manager" -version = "0.8.0" -source = "git+https://github.com/EasyTier/service-manager-rs.git?branch=main#5eb28f7a686858eea4f4933534ed989d3b71dc2a" -dependencies = [ - "cfg-if", - "dirs 4.0.0", - "encoding-utils", - "encoding_rs", - "plist", - "sys-info", - "which 4.4.2", - "xml-rs", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shellexpand" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" -dependencies = [ - "dirs 6.0.0", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "simd-adler32" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - -[[package]] -name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "smoltcp" -version = "0.12.0" -source = "git+https://github.com/smoltcp-rs/smoltcp.git?rev=0a926767a68bc88d5512afefa7529c5ecdade4ea#0a926767a68bc88d5512afefa7529c5ecdade4ea" -dependencies = [ - "bitflags 1.3.2", - "byteorder", - "cfg-if", - "defmt 0.3.100", - "heapless", - "managed", -] - -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "socket2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" -dependencies = [ - "libc", - "windows-sys 0.60.2", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "stun_codec" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feed9dafe0bda84f2b6ca3ce726b0a1f1ac2e8b63c6ecfb89b08b32313247b5b" -dependencies = [ - "bytecodec", - "byteorder", - "crc", - "hmac", - "md5", - "sha1", - "trackable 1.3.0", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.114" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "sys-info" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "sys-locale" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" -dependencies = [ - "libc", -] - -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tabled" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c9303ee60b9bedf722012ea29ae3711ba13a67c9b9ae28993838b63057cb1b" -dependencies = [ - "papergrid", - "tabled_derive", -] - -[[package]] -name = "tabled_derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf0fb8bfdc709786c154e24a66777493fb63ae97e3036d914c8666774c477069" -dependencies = [ - "heck 0.4.1", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - -[[package]] -name = "tempfile" -version = "3.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" -dependencies = [ - "fastrand", - "getrandom 0.3.4", - "once_cell", - "rustix 1.1.3", - "windows-sys 0.61.2", -] - -[[package]] -name = "terminal_size" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" -dependencies = [ - "rustix 1.1.3", - "windows-sys 0.60.2", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" -dependencies = [ - "thiserror-impl 2.0.17", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "thunk-rs" -version = "0.3.5" -source = "git+https://github.com/easytier/thunk.git#cbbeec75a66b7b3cf0824ae890d9d06bcfb9d1f3" - -[[package]] -name = "time" -version = "0.3.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" -dependencies = [ - "deranged", - "itoa", - "libc", - "num-conv", - "num_threads", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" - -[[package]] -name = "time-macros" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "timedmap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825f6c8a18bc36d56a62f66af7296385b628c9c5543a8663d4c217fc920bfefd" - -[[package]] -name = "tinystr" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" -dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.6.1", - "tokio-macros", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-macros" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-websockets" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842e11addde61da7c37ef205cd625ebcd7b607076ea62e4698f06bfd5fd01a03" -dependencies = [ - "base64 0.22.1", - "bytes", - "fastrand", - "futures-core", - "futures-sink", - "http", - "httparse", - "ring", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tokio-util", - "webpki-roots 0.26.11", -] - -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "toml_write", - "winnow", -] - -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - -[[package]] -name = "tonic-build" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" -dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build", - "prost-types", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-http" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" -dependencies = [ - "bitflags 2.10.0", - "bytes", - "futures-util", - "http", - "http-body", - "iri-string", - "pin-project-lite", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-oslog" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76902d2a8d5f9f55a81155c08971734071968c90f2d9bfe645fe700579b2950" -dependencies = [ - "cc", - "cfg-if", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "sharded-slab", - "smallvec", - "thread_local", - "time", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "trackable" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98abb9e7300b9ac902cc04920945a874c1973e08c310627cc4458c04b70dd32" -dependencies = [ - "trackable 1.3.0", - "trackable_derive", -] - -[[package]] -name = "trackable" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15bd114abb99ef8cee977e517c8f37aee63f184f2d08e3e6ceca092373369ae" -dependencies = [ - "trackable_derive", -] - -[[package]] -name = "trackable_derive" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebeb235c5847e2f82cfe0f07eb971d1e5f6804b18dac2ae16349cc604380f82f" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "triomphe" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" -dependencies = [ - "arc-swap", - "serde", - "stable_deref_trait", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tun-easytier" -version = "1.1.1" -source = "git+https://github.com/EasyTier/rust-tun#12378839e7985283df0e4fb536b7137230356db5" -dependencies = [ - "bytes", - "cfg-if", - "futures-core", - "ipnet", - "libc", - "libloading", - "log", - "nix 0.29.0", - "thiserror 1.0.69", - "tokio", - "tokio-util", - "windows-sys 0.59.0", - "wintun", -] - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "unicase" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" - -[[package]] -name = "unicode-width" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" - -[[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", - "serde_derive", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" -dependencies = [ - "getrandom 0.3.4", - "js-sys", - "rand 0.9.2", - "serde_core", - "uuid-macro-internal", - "wasm-bindgen", -] - -[[package]] -name = "uuid-macro-internal" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d11901c36b3650df7acb0f9ebe624f35b5ac4e1922ecd3c57f444648429594" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version-compare" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.114", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "web-sys" -version = "0.3.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-root-certs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36a29fc0408b113f68cf32637857ab740edfafdf460c326cd2afaa2d84cc05dc" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.5", -] - -[[package]] -name = "webpki-roots" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - -[[package]] -name = "which" -version = "7.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" -dependencies = [ - "either", - "env_home", - "rustix 1.1.3", - "winsafe", -] - -[[package]] -name = "widestring" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" - -[[package]] -name = "wildmatch" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29333c3ea1ba8b17211763463ff24ee84e41c78224c16b001cd907e663a38c68" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windivert" -version = "0.6.0" -source = "git+https://github.com/EasyTier/windivert-rust.git?rev=adcc56d1550f7b5377ec2b3429f413ee24a77375#adcc56d1550f7b5377ec2b3429f413ee24a77375" -dependencies = [ - "etherparse", - "thiserror 1.0.69", - "windivert-sys", - "windows 0.48.0", -] - -[[package]] -name = "windivert-sys" -version = "0.10.0" -source = "git+https://github.com/EasyTier/windivert-rust.git?rev=adcc56d1550f7b5377ec2b3429f413ee24a77375#adcc56d1550f7b5377ec2b3429f413ee24a77375" -dependencies = [ - "cc", - "thiserror 1.0.69", - "windows 0.48.0", -] - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" -dependencies = [ - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-service" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24d6bcc7f734a4091ecf8d7a64c5f7d7066f45585c1861eba06449909609c8a" -dependencies = [ - "bitflags 2.10.0", - "widestring", - "windows-sys 0.52.0", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - -[[package]] -name = "winnow" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "winsafe" -version = "0.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" - -[[package]] -name = "wintun" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da99be64b5aa3de869c16977994314d0759a698d9a73ab0a5b1d52e2282033ae" -dependencies = [ - "c2rust-bitfields", - "libloading", - "log", - "thiserror 1.0.69", - "windows-sys 0.52.0", -] - -[[package]] -name = "wit-bindgen" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" - -[[package]] -name = "writeable" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" - -[[package]] -name = "x25519-dalek" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" -dependencies = [ - "curve25519-dalek", - "rand_core 0.6.4", - "serde", - "zeroize", -] - -[[package]] -name = "xml-rs" -version = "0.8.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" - -[[package]] -name = "yasna" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" -dependencies = [ - "time", -] - -[[package]] -name = "yoke" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" -dependencies = [ - "zerocopy-derive 0.8.33", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "zip" -version = "4.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1" -dependencies = [ - "aes", - "arbitrary", - "bzip2", - "constant_time_eq", - "crc32fast", - "deflate64", - "flate2", - "getrandom 0.3.4", - "hmac", - "indexmap", - "liblzma", - "memchr", - "pbkdf2", - "ppmd-rust", - "sha1", - "time", - "zeroize", - "zopfli", - "zstd", -] - -[[package]] -name = "zlib-rs" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3" - -[[package]] -name = "zmij" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" - -[[package]] -name = "zopfli" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" -dependencies = [ - "bumpalo", - "crc32fast", - "log", - "simd-adler32", -] - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/EasyTierCore/Cargo.toml b/EasyTierCore/Cargo.toml deleted file mode 100755 index bd1bf6b..0000000 --- a/EasyTierCore/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "easytier-ios" -version = "0.1.0" -edition = "2021" - -[lib] -crate-type = ["staticlib"] - -[dependencies] -easytier = { git = "https://github.com/EasyTier/EasyTier.git", branch = "main" } - -once_cell = "1.18.0" -serde = { version = "1.0", features = ["derive"] } -serde_json = "1" -tokio = "1.48.0" -tracing = "0.1.44" -tracing-oslog = "0.3.0" -tracing-subscriber = "0.3.22" diff --git a/EasyTierCore/include/EasyTierCore.h b/EasyTierCore/include/EasyTierCore.h deleted file mode 100644 index 9683154..0000000 --- a/EasyTierCore/include/EasyTierCore.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef EasyTierCore_h -#define EasyTierCore_h - -#include - -// Ensure C linkage -#ifdef __cplusplus -extern "C" { -#endif - -// Initialize logger -// path: Log file path -// level: Log level (e.g. "info", "debug") -// err_msg: Output error message if failed (needs to be freed if not null? Usually err_msg in this pattern is static or allocated. -// Looking at rust code: CString::new(e).into_raw(). So YES, it needs to be freed by free_string if not null.) -int init_logger(const char* path, const char* level, const char** err_msg); - -// Set TUN file descriptor -// Note: On macOS Helper (Root), EasyTier might create TUN directly. -int set_tun_fd(int fd, const char** err_msg); - -// Free string returned by Rust (including err_msg output) -void free_string(const char* s); - -// Start network instance with TOML config string -int run_network_instance(const char* cfg_str, const char** err_msg); - -// Stop network instance -int stop_network_instance(void); - -// Callbacks types -typedef void (*VoidCallback)(void); - -// Register callbacks -int register_stop_callback(VoidCallback callback, const char** err_msg); -int register_running_info_callback(VoidCallback callback, const char** err_msg); - -// Get running info JSON -// json: Output pointer to json string (needs free) -int get_running_info(const char** json, const char** err_msg); - -// Get latest error message -// msg: Output pointer to msg string (needs free) -int get_latest_error_msg(const char** msg, const char** err_msg); - -#ifdef __cplusplus -} -#endif - -#endif /* EasyTierCore_h */ diff --git a/EasyTierCore/src/lib.rs b/EasyTierCore/src/lib.rs deleted file mode 100755 index 1289eb1..0000000 --- a/EasyTierCore/src/lib.rs +++ /dev/null @@ -1,332 +0,0 @@ -use std::{ffi::CString, fs::File, sync::{Arc, Mutex}}; - -use easytier::{ - common::{config::{ConfigFileControl, TomlConfigLoader}, global_ctx::GlobalCtxEvent}, - launcher::NetworkInstance, -}; -use once_cell::sync::Lazy; -use tracing_oslog::OsLogger; -use tracing_subscriber::layer::SubscriberExt as _; - -static INSTANCE: Lazy>>> = Lazy::new(|| Arc::new(Mutex::new(None))); - -/// # Safety -/// Initialize logger -#[no_mangle] -pub extern "C" fn init_logger( - path: *const std::ffi::c_char, - level: *const std::ffi::c_char, - err_msg: *mut *const std::ffi::c_char, -) -> std::ffi::c_int { - let path = unsafe { - std::ffi::CStr::from_ptr(path) - .to_string_lossy() - .into_owned() - }; - let level = unsafe { - std::ffi::CStr::from_ptr(level) - .to_string_lossy() - .into_owned() - }; - - let impl_func = || { - let file = std::fs::OpenOptions::new() - .create(true) - .write(true) - .append(true) - .open(path) - .map_err(|e| e.to_string())?; - let collector = tracing_subscriber::registry() - .with(tracing_subscriber::EnvFilter::new(level)) - .with(tracing_subscriber::fmt::layer().with_writer(file).with_ansi(false)) - .with(OsLogger::new("site.yinmo.easytier.tunnel", "rust")); - tracing::subscriber::set_global_default(collector).map_err(|e| e.to_string()) - }; - - match impl_func() { - Ok(_) => 0, - Err(e) => { - if !err_msg.is_null() { - if let Ok(cstr) = CString::new(e) { - unsafe { *err_msg = cstr.into_raw(); } - }; - } - -1 - } - } -} - -/// # Safety -/// Set the tun fd -#[no_mangle] -pub extern "C" fn set_tun_fd( - fd: std::ffi::c_int, - err_msg: *mut *const std::ffi::c_char, -) -> std::ffi::c_int { - let impl_func = || -> Result<(), String> { - let mut inst = INSTANCE.lock().map_err(|e| e.to_string())?; - let inst = inst.as_mut().ok_or("no running instance".to_string())?; - inst.set_tun_fd(fd); - Ok(()) - }; - - match impl_func() { - Ok(_) => 0, - Err(e) => { - if !err_msg.is_null() { - if let Ok(cstr) = CString::new(e) { - unsafe { *err_msg = cstr.into_raw(); } - }; - } - -1 - } - } -} - -#[no_mangle] -/// # Safety -/// The pointer `s` must have been returned by one of this library's FFI -/// functions that allocate strings (for example, via `CString::into_raw()`), -/// and it must not have been freed previously. Passing any other pointer, or -/// a pointer that has already been freed, results in undefined behavior. -/// It is allowed to pass a null pointer; in that case this function is a no-op. -pub extern "C" fn free_string(s: *const std::ffi::c_char) { - if s.is_null() { return; } - unsafe { - let _ = std::ffi::CString::from_raw(s as *mut std::ffi::c_char); - } -} - -/// # Safety -/// Run the network instance -#[no_mangle] -pub extern "C" fn run_network_instance( - cfg_str: *const std::ffi::c_char, - err_msg: *mut *const std::ffi::c_char, -) -> std::ffi::c_int { - let impl_func = || { - if cfg_str.is_null() { - return Err("cfg_str is nullptr".to_string()); - } - let cfg_str = unsafe { - std::ffi::CStr::from_ptr(cfg_str) - .to_string_lossy() - .into_owned() - }; - let cfg = TomlConfigLoader::new_from_str(&cfg_str).map_err(|e| e.to_string())?; - let mut inst = INSTANCE.lock().map_err(|e| e.to_string())?; - let mut new_inst = NetworkInstance::new(cfg, ConfigFileControl::STATIC_CONFIG); - new_inst.start().map_err(|e| e.to_string())?; - *inst = Some(new_inst); - Ok(()) - }; - - match impl_func() { - Ok(_) => 0, - Err(e) => { - if !err_msg.is_null() { - if let Ok(cstr) = CString::new(e) { - unsafe { *err_msg = cstr.into_raw(); } - }; - } - -1 - } - } -} - -/// # Safety -/// Stop the network instance -#[no_mangle] -pub extern "C" fn stop_network_instance() -> std::ffi::c_int { - match INSTANCE.lock() { - Ok(mut inst) => { - inst.as_mut() - .and_then(|inst| inst.get_stop_notifier()) - .map(|stop| stop.notify_waiters()); - *inst = None; - 0 - }, - Err(_) => -1, - } -} - -/// # Safety -/// Register stop callback -#[no_mangle] -pub extern "C" fn register_stop_callback( - callback: Option, - err_msg: *mut *const std::ffi::c_char, -) -> std::ffi::c_int { - let impl_func = || -> Result<(), String> { - let callback = callback.ok_or("callback is null".to_string())?; - let inst = INSTANCE.lock().map_err(|e| e.to_string())?; - let inst = inst.as_ref().ok_or("no running instance".to_string())?; - let stop = inst.get_stop_notifier().ok_or("no stop notifier".to_string())?; - std::thread::spawn(move || { - let runtime = tokio::runtime::Runtime::new(); - if let Ok(runtime) = runtime { - runtime.block_on(stop.notified()); - callback(); - } else { - tracing::error!("failed to create runtime for stop callback"); - } - }); - Ok(()) - }; - - match impl_func() { - Ok(_) => 0, - Err(e) => { - if !err_msg.is_null() { - if let Ok(cstr) = CString::new(e) { - unsafe { *err_msg = cstr.into_raw(); } - }; - } - -1 - } - } -} - -/// # Safety -/// Register running info callback -#[no_mangle] -pub extern "C" fn register_running_info_callback( - callback: Option, - err_msg: *mut *const std::ffi::c_char, -) -> std::ffi::c_int { - let impl_func = || -> Result<(), String> { - let callback = callback.ok_or("callback is null".to_string())?; - let inst = INSTANCE.lock().map_err(|e| e.to_string())?; - let inst = inst.as_ref().ok_or("no running instance".to_string())?; - let mut ev = inst - .subscribe_event() - .ok_or("no event subscriber".to_string())?; - std::thread::spawn(move || { - let runtime = tokio::runtime::Runtime::new(); - if let Ok(runtime) = runtime { - runtime.block_on(async move { - loop { - match ev.recv().await { - Ok(event) => match event { - GlobalCtxEvent::DhcpIpv4Changed(_, _) - | GlobalCtxEvent::ProxyCidrsUpdated(_, _) - | GlobalCtxEvent::ConfigPatched(_) => { - callback(); - } - _ => {} - }, - Err(tokio::sync::broadcast::error::RecvError::Closed) => { - break; - } - Err(tokio::sync::broadcast::error::RecvError::Lagged(_)) => { - continue; - } - } - } - }); - } else { - tracing::error!("failed to create runtime for running info callback"); - } - }); - Ok(()) - }; - - match impl_func() { - Ok(_) => 0, - Err(e) => { - if !err_msg.is_null() { - if let Ok(cstr) = CString::new(e) { - unsafe { *err_msg = cstr.into_raw(); } - }; - } - -1 - } - } -} - -/// # Safety -/// Get running info -#[no_mangle] -pub extern "C" fn get_running_info( - json: *mut *const std::ffi::c_char, - err_msg: *mut *const std::ffi::c_char, -) -> std::ffi::c_int { - let impl_func = || -> Result<(), String> { - if json.is_null() { - return Err("json is a nullptr".to_string()); - } - let inst = INSTANCE.lock().map_err(|e| e.to_string())?; - let inst = inst.as_ref().ok_or("no running instance".to_string())?; - let runtime = tokio::runtime::Runtime::new().map_err(|e| e.to_string())?; - let info = runtime.block_on(inst.get_running_info()).map_err(|e| e.to_string())?; - let info = serde_json::to_string(&info).map_err(|e| e.to_string())?; - let cstr = CString::new(info).map_err(|e| e.to_string())?; - unsafe { - *json = cstr.into_raw() - } - Ok(()) - }; - - match impl_func() { - Ok(_) => 0, - Err(e) => { - if !err_msg.is_null() { - if let Ok(cstr) = CString::new(e) { - unsafe { *err_msg = cstr.into_raw(); } - }; - } - -1 - } - } -} - -/// # Safety -/// Get latest error message -#[no_mangle] -pub extern "C" fn get_latest_error_msg( - msg: *mut *const std::ffi::c_char, - err_msg: *mut *const std::ffi::c_char, -) -> std::ffi::c_int { - let impl_func = || -> Result<(), String> { - if msg.is_null() { - return Err("msg is a nullptr".to_string()); - } - let inst = INSTANCE.lock().map_err(|e| e.to_string())?; - let inst = inst.as_ref().ok_or("no running instance".to_string())?; - let latest = inst.get_latest_error_msg(); - if let Some(latest) = latest { - let cstr = CString::new(latest).map_err(|e| e.to_string())?; - unsafe { *msg = cstr.into_raw(); } - } else { - unsafe { *msg = std::ptr::null(); } - } - Ok(()) - }; - - match impl_func() { - Ok(_) => 0, - Err(e) => { - if !err_msg.is_null() { - if let Ok(cstr) = CString::new(e) { - unsafe { *err_msg = cstr.into_raw(); } - }; - } - -1 - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_run_network_instance() { - let cfg_str = r#" - inst_name = "test" - network = "test_network" - "#; - let cstr = std::ffi::CString::new(cfg_str).unwrap(); - assert_eq!(run_network_instance(cstr.as_ptr(), std::ptr::null_mut()), 0); - } -} diff --git a/EasyTierHelper/EasyTierCore.swift b/EasyTierHelper/EasyTierCore.swift deleted file mode 100644 index 4357cae..0000000 --- a/EasyTierHelper/EasyTierCore.swift +++ /dev/null @@ -1,82 +0,0 @@ -import Foundation - -@_silgen_name("init_logger") -func c_init_logger(_ path: UnsafePointer, _ level: UnsafePointer, _ err_msg: UnsafeMutablePointer?>) -> Int32 - -@_silgen_name("run_network_instance") -func c_run_network_instance(_ cfg_str: UnsafePointer, _ err_msg: UnsafeMutablePointer?>) -> Int32 - -@_silgen_name("stop_network_instance") -func c_stop_network_instance() -> Int32 - -@_silgen_name("get_running_info") -func c_get_running_info(_ json: UnsafeMutablePointer?>, _ err_msg: UnsafeMutablePointer?>) -> Int32 - -@_silgen_name("free_string") -func c_free_string(_ s: UnsafePointer) - -class EasyTierCore { - static let shared = EasyTierCore() - - private init() {} - - /// Initialize logger - func initLogger(path: String, level: String) { - var errMsg: UnsafePointer? = nil - let _ = path.withCString { pPath in - level.withCString { pLevel in - c_init_logger(pPath, pLevel, &errMsg) - } - } - if let err = errMsg { - print("[EasyTierCore] Logger Init Error: \(String(cString: err))") - c_free_string(err) - } - } - - /// Start Network Instance - func startNetwork(config: String) throws { - print("[EasyTierCore] Starting network...") - var errMsg: UnsafePointer? = nil - let res = config.withCString { ptr in - c_run_network_instance(ptr, &errMsg) - } - - if res != 0 { - let msg: String - if let err = errMsg { - msg = String(cString: err) - c_free_string(err) - } else { - msg = "Unknown error" - } - throw NSError(domain: "EasyTierCore", code: Int(res), userInfo: [NSLocalizedDescriptionKey: msg]) - } - print("[EasyTierCore] Network started successfully.") - } - - /// Stop Network Instance - func stopNetwork() { - print("[EasyTierCore] Stopping network...") - let _ = c_stop_network_instance() - } - - /// Get Running Info (JSON) - func getRunningInfo() -> String? { - var json: UnsafePointer? = nil - var errMsg: UnsafePointer? = nil - let res = c_get_running_info(&json, &errMsg) - - if res == 0, let j = json { - let str = String(cString: j) - c_free_string(j) - return str - } - - if let e = errMsg { - c_free_string(e) - } - - return nil - } -} diff --git a/EasyTierHelper/EasyTierHelper.entitlements b/EasyTierHelper/EasyTierHelper.entitlements deleted file mode 100644 index e89b7f3..0000000 --- a/EasyTierHelper/EasyTierHelper.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - com.apple.security.app-sandbox - - - diff --git a/EasyTierHelper/Info.plist b/EasyTierHelper/Info.plist deleted file mode 100644 index 27fc564..0000000 --- a/EasyTierHelper/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - SwiftierHelper - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0.0 - CFBundleVersion - 1.0.0 - SMAuthorizedClients - - identifier "com.alick.swiftier" and anchor apple generic - - - diff --git a/EasyTierHelper/LogProcessor.swift b/EasyTierHelper/LogProcessor.swift deleted file mode 100644 index 9f06a33..0000000 --- a/EasyTierHelper/LogProcessor.swift +++ /dev/null @@ -1,183 +0,0 @@ -import Foundation - -class LogProcessor { - static let shared = LogProcessor() - - private let maxEventItems = 100 // Reduced from 500 to save memory - private var processedEvents: [ProcessedEvent] = [] - - // totalGlobalIndex tracks the number of events processed during the current CORE life cycle. - // When the Core restarts, this is reset to 0 to signal the App to clear its history. - private var totalGlobalIndex = 0 - private let lock = NSLock() - - // Regex for cleaning up terminal codes - private let ansiRegex = try! NSRegularExpression(pattern: "(\\x1B\\[[0-9;]*[a-zA-Z])|(\\[[0-9;]+m)", options: []) - - private init() {} - - func getEvents() -> [ProcessedEvent] { - lock.lock() - defer { lock.unlock() } - return processedEvents - } - - /// 获取从指定索引后的所有事件,并序列化为 JSON Data - func getSerializedEvents(sinceIndex: Int) -> (Data, Int) { - lock.lock() - defer { lock.unlock() } - - let bufferStartIndex = max(0, totalGlobalIndex - processedEvents.count) - - let requestedEvents: [ProcessedEvent] - if sinceIndex >= totalGlobalIndex { - requestedEvents = [] - } else if sinceIndex < bufferStartIndex { - // App missed some events or just started, send current buffer - requestedEvents = processedEvents - } else { - let offsetInBuffer = sinceIndex - bufferStartIndex - requestedEvents = Array(processedEvents.dropFirst(offsetInBuffer)) - } - - let data = (try? JSONEncoder().encode(requestedEvents)) ?? Data() - return (data, totalGlobalIndex) - } - - /// Reset the processor for a new Core life cycle - func clear() { - lock.lock() - defer { lock.unlock() } - processedEvents.removeAll() - totalGlobalIndex = 0 - } - - /// 处理从日志中提取的原始行 - func processRawLine(_ rawLine: String) { - let cleanLine = removeAnsiCodes(rawLine) - - // 尝试解析 JSON 事件 - if let jsonRange = cleanLine.range(of: "\\{.*\\}", options: .regularExpression), - let data = String(cleanLine[jsonRange]).data(using: .utf8), - let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] { - - parseAndAddEvent(json: json, rawLine: cleanLine) - } - } - - private func parseAndAddEvent(json: [String: Any], rawLine: String) { - let timeStr = json["time"] as? String ?? "" - let displayTimestamp = timeStr.replacingOccurrences(of: "Z", with: "").replacingOccurrences(of: "T", with: " ") - - guard let eventData = json["event"] else { return } - - let eventName: String? - if let eventDict = eventData as? [String: Any], let firstKey = eventDict.keys.first { - eventName = firstKey - } else { - eventName = eventData as? String - } - - let type = eventName ?? "unknown" - let detailsStr = collapsePrettyPrintedArrays(formatAsJson(eventData)) - // DEFERRED: Highlights calculation moved to App side to save Helper memory - - let event = ProcessedEvent( - id: UUID(), - timestamp: displayTimestamp, - time: ISO8601DateFormatter().date(from: timeStr), - type: type, - details: detailsStr, - highlights: [] // Empty here, calculated by App - ) - - lock.lock() - processedEvents.append(event) - totalGlobalIndex += 1 - if processedEvents.count > maxEventItems { - processedEvents.removeFirst() - } - lock.unlock() - } - - private func removeAnsiCodes(_ text: String) -> String { - let range = NSRange(location: 0, length: text.utf16.count) - return ansiRegex.stringByReplacingMatches(in: text, options: [], range: range, withTemplate: "") - } - - private func collapsePrettyPrintedArrays(_ input: String) -> String { - var res = input - let pattern = #"(?s)\[\s*([^\[\]{}]*?)\s*\]"# - guard let regex = try? NSRegularExpression(pattern: pattern) else { return res } - - let nsString = res as NSString - let matches = regex.matches(in: res, options: [], range: NSRange(location: 0, length: nsString.length)) - - for match in matches.reversed() { - let content = nsString.substring(with: match.range(at: 1)) - let collapsedContent = content.components(separatedBy: .newlines) - .map { $0.trimmingCharacters(in: .whitespaces) } - .filter { !$0.isEmpty } - .joined(separator: ", ") - .trimmingCharacters(in: .whitespaces) - - res = (res as NSString).replacingCharacters(in: match.range, with: "[\(collapsedContent)]") - } - return res - } - - private func formatAsJson(_ value: Any) -> String { - let options: JSONSerialization.WritingOptions = [.prettyPrinted, .sortedKeys, .withoutEscapingSlashes] - if let data = try? JSONSerialization.data(withJSONObject: value, options: options), - let str = String(data: data, encoding: .utf8) { - return str - } - return "\(value)" - } - - private func calculateHighlights(for json: String) -> [HighlightRange] { - var ranges: [HighlightRange] = [] - let nsString = json as NSString - let fullRange = NSRange(location: 0, length: nsString.length) - - // 1. Strings (Green) - if let regex = try? NSRegularExpression(pattern: #""([^"\\]|\\.)*""#) { - let matches = regex.matches(in: json, range: fullRange) - for match in matches { - ranges.append(HighlightRange(start: match.range.location, length: match.range.length, color: "green", bold: false)) - } - } - - // 2. Keys (Blue) - if let regex = try? NSRegularExpression(pattern: #"("[^"]+"|\b[a-zA-Z_][a-zA-Z0-9_]*\b)\s*:"#) { - let matches = regex.matches(in: json, range: fullRange) - for match in matches { - if let keyRange = Range(match.range, in: json) { - let fullMatchStr = String(json[keyRange]) - if let colonIndex = fullMatchStr.firstIndex(of: ":") { - let keyPartLength = fullMatchStr[.. ([String], Int) { - eventLock.lock() - defer { eventLock.unlock() } - - let bufferStartIndex = max(0, eventIndex - eventBuffer.count) - - if sinceIndex >= eventIndex { return ([], eventIndex) } - - if sinceIndex < bufferStartIndex { - return (eventBuffer, eventIndex) - } - - let offsetInBuffer = sinceIndex - bufferStartIndex - let events = Array(eventBuffer.dropFirst(offsetInBuffer)) - return (events, eventIndex) - } - - private func addEvent(_ jsonLine: String) { - eventLock.lock() - defer { eventLock.unlock() } - - eventBuffer.append(jsonLine) - eventIndex += 1 - - if eventBuffer.count > maxEventBufferSize { - eventBuffer.removeFirst(eventBuffer.count - maxEventBufferSize) - } - } - - private func clearEvents() { - eventLock.lock() - defer { eventLock.unlock() } - eventBuffer.removeAll() - } - - // MARK: - Core Control - - private func initRustLogger(level: String) { - if !loggerInitialized { - // Rust will write to the same log file as we do - // To avoid corruption, usually you'd want independent files, but O_APPEND often works. - // Or better: Let Rust write to its own file? No, we unified it. - // Let's assume Rust uses the file path we give. - EasyTierCore.shared.initLogger(path: logPath, level: level) - loggerInitialized = true - } - } - - func start(configPath: String, consoleLevel: String) throws { - stateLock.lock() - defer { stateLock.unlock() } - - // 1. Reset logs and events for THIS core session - let url = URL(fileURLWithPath: logPath) - try? "".write(to: url, atomically: true, encoding: .utf8) - lastLogOffset = 0 - if let handle = logFileHandle { - try? handle.seek(toOffset: 0) - } - - LogProcessor.shared.clear() - - // 2. Setup Logger - initRustLogger(level: consoleLevel) - clearEvents() // Clear the old String buffer too - - // 3. Read Config - guard FileManager.default.fileExists(atPath: configPath) else { - throw NSError(domain: "HelperError", code: 2, - userInfo: [NSLocalizedDescriptionKey: "Config file not found: \(configPath)"]) - } - let configStr = try String(contentsOfFile: configPath, encoding: .utf8) - - // 4. Start Core - if isVPNActive { - EasyTierCore.shared.stopNetwork() - } - - try EasyTierCore.shared.startNetwork(config: configStr) - - isVPNActive = true - coreStartTime = Date() - log("Started EasyTier Core via FFI with config: \(configPath)") - } - - func stop() { - stateLock.lock() - defer { stateLock.unlock() } - - if !isVPNActive { return } - - // Use a background queue to call stopNetwork, as FFI calls might block - DispatchQueue.global(qos: .userInitiated).async { - log("Calling stopNetwork FFI...") - EasyTierCore.shared.stopNetwork() - log("stopNetwork FFI returned.") - } - - isVPNActive = false - coreStartTime = nil - log("EasyTier Core stop initiated") - } - - // MARK: - Log Monitoring - - private func startLogMonitor() { - // Poll log file every 0.5s for new content - // We can't use RunLoop.main in init easily? Yes we can if called after main loop starts or on bg queue. - // But main.swift runs RunLoop.main. - - DispatchQueue.main.async { - self.logMonitorTimer = Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true) { [weak self] _ in - self?.checkLogFile() - } - } - } - - private func checkLogFile() { - // If handle closed or not open, try open - if logFileHandle == nil { - if FileManager.default.fileExists(atPath: logPath) { - do { - let handle = try FileHandle(forReadingFrom: URL(fileURLWithPath: logPath)) - // Seek to end initially? Or start? - // If we just started Helper, we might want to see recent logs. - // But usually we only care about new logs generated by Core. - // Let's seek to current end if it's the first time we open it AND we assume old logs are old. - // But if we just restarted Helper, maybe we want to catch up? - // Let's rely on `lastLogOffset`. - if lastLogOffset == 0 { - // First time open, maybe seek to end to avoid parsing GBs of logs? - // But then we miss startup logs if Rust started fast. - // Tradeoff: seek to end. - // Wait, if Rust started before we opened handle? - // Let's seek to end. - lastLogOffset = handle.seekToEndOfFile() - } else { - handle.seek(toFileOffset: lastLogOffset) - } - logFileHandle = handle - } catch { - return - } - } else { - return - } - } - - guard let handle = logFileHandle else { return } - - // Read new data - let data = handle.readDataToEndOfFile() - if !data.isEmpty { - lastLogOffset += UInt64(data.count) - if let str = String(data: data, encoding: .utf8) { - processLogChunk(str) - } - } - } - - private func processLogChunk(_ chunk: String) { - let lines = chunk.components(separatedBy: "\n") - for line in lines { - let trimmed = line.trimmingCharacters(in: .whitespacesAndNewlines) - if trimmed.isEmpty { continue } - - // Feed to LogProcessor for sophisticated parsing and highlighting - LogProcessor.shared.processRawLine(trimmed) - - // Legacy internal event tracking (optional, kept for now if you revert) - // if trimmed.contains("\"event\"") && trimmed.contains("{") { ... } - } - } -} - -// MARK: - XPC Protocol - -/// 客户端监听协议:Helper 主动调用此协议的方法向 App 推送数据 -@objc(HelperClientListener) -protocol HelperClientListener { - func runningInfoUpdated(_ info: String) - func logUpdated(_ lines: [String]) -} - -/// XPC 协议:主应用与 Helper 之间的通信接口 -@objc(HelperProtocol) -protocol HelperProtocol { - func registerListener(endpoint: NSXPCListenerEndpoint) - func startCore(configPath: String, corePath: String, consoleLevel: String, reply: @escaping (Bool, String?) -> Void) - func stopCore(reply: @escaping (Bool) -> Void) - func getCoreStatus(reply: @escaping (Int32) -> Void) - func getCoreStartTime(reply: @escaping (Double) -> Void) - func getVersion(reply: @escaping (String) -> Void) - func getRecentEvents(sinceIndex: Int, reply: @escaping (Data, Int) -> Void) - func quitHelper(reply: @escaping (Bool) -> Void) - func getRunningInfo(reply: @escaping (String?) -> Void) -} - -// MARK: - XPC Service Delegate - -class HelperDelegate: NSObject, NSXPCListenerDelegate, HelperProtocol { - - // Manage client connection - private var clientConnection: NSXPCConnection? - private let clientLock = NSLock() - - // Push Loop - private var pushTimer: Timer? - private var lastPushedInfo: String? - - // ... (listener implementation unchanged) - func listener(_ listener: NSXPCListener, shouldAcceptNewConnection newConnection: NSXPCConnection) -> Bool { - log("New XPC connection from PID: \(newConnection.processIdentifier)") - - // 1. Helper 提供的接口 - newConnection.exportedInterface = NSXPCInterface(with: HelperProtocol.self) - newConnection.exportedObject = self - - // 2. App 侧提供的接口(用于推送数据) - newConnection.remoteObjectInterface = NSXPCInterface(with: HelperClientListener.self) - - newConnection.invalidationHandler = { [weak self, weak newConnection] in - log("XPC connection invalidated") - self?.clientLock.lock() - if self?.clientConnection == newConnection { - self?.clientConnection = nil - } - self?.clientLock.unlock() - } - - newConnection.interruptionHandler = { - log("XPC connection interrupted") - } - - // 保存连接用于推送 - clientLock.lock() - self.clientConnection = newConnection - clientLock.unlock() - - newConnection.resume() - - // 连接建立后启动心跳推送 - startPushLoop() - - return true - } - - // MARK: - HelperProtocol Implementation - - func registerListener(endpoint: NSXPCListenerEndpoint) { - log("registerListener called (legacy). New architecture uses direct bi-directional connection.") - } - - private func startPushLoop() { - DispatchQueue.main.async { - // 防止重复启动定时器 - if self.pushTimer?.isValid == true { return } - - self.pushTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in - self?.pushUpdates() - } - } - } - - private func pushUpdates() { - guard let connection = clientConnection else { return } - - // 获取运行时信息 - let info = EasyTierCore.shared.getRunningInfo() - - if let info = info { - // 通过同一个 XPC 连接将数据推回 App - if let proxy = connection.remoteObjectProxy as? HelperClientListener { - proxy.runningInfoUpdated(info) - } - } - } - - func startCore(configPath: String, corePath: String, consoleLevel: String, reply: @escaping (Bool, String?) -> Void) { - log("XPC: startCore(configPath: \(configPath), consoleLevel: \(consoleLevel))") - - do { - try CoreProcessManager.shared.start(configPath: configPath, consoleLevel: consoleLevel) - reply(true, nil) - } catch { - reply(false, error.localizedDescription) - } - } - - func stopCore(reply: @escaping (Bool) -> Void) { - log("Received stopCore request") - CoreProcessManager.shared.stop() - reply(true) - } - - func getCoreStatus(reply: @escaping (Int32) -> Void) { - let pid = CoreProcessManager.shared.pid - log("getCoreStatus: PID = \(pid)") - reply(pid) - } - - func getCoreStartTime(reply: @escaping (Double) -> Void) { - let startTime = CoreProcessManager.shared.startTime - log("getCoreStartTime: \(startTime)") - reply(startTime) - } - - func getVersion(reply: @escaping (String) -> Void) { - reply(kHelperVersion) - } - - func getRecentEvents(sinceIndex: Int, reply: @escaping (Data, Int) -> Void) { - // Now delegating to LogProcessor for structured data - let (data, nextIndex) = LogProcessor.shared.getSerializedEvents(sinceIndex: sinceIndex) - reply(data, nextIndex) - } - - func quitHelper(reply: @escaping (Bool) -> Void) { - log("Received quitHelper request. Goodbye!") - // 先停止 core - CoreProcessManager.shared.stop() - reply(true) - - // 延迟一秒退出,确保 reply 能发回去 - DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { - exit(0) - } - } - - func getRunningInfo(reply: @escaping (String?) -> Void) { - log("getRunningInfo called") - let info = EasyTierCore.shared.getRunningInfo() - if let info = info { - log("getRunningInfo returned \(info.prefix(200))...") - } else { - log("getRunningInfo returned nil") - } - reply(info) - } -} - -// MARK: - Main Entry Point - -setupLogging() -log("=== Swiftier Helper Starting ===") -log("Version: \(kHelperVersion)") -log("Running as UID: \(getuid())") - -let delegate = HelperDelegate() -let listener = NSXPCListener(machServiceName: kHelperMachServiceName) -listener.delegate = delegate -listener.resume() - -log("XPC Listener started on: \(kHelperMachServiceName)") - -// 保持运行 -RunLoop.main.run() diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..39e266f --- /dev/null +++ b/Package.swift @@ -0,0 +1,21 @@ +// swift-tools-version: 5.9 + +import PackageDescription + +let package = Package( + name: "SpotierCorePackage", + platforms: [ + .iOS(.v15), + .macOS(.v13), + .tvOS(.v17) + ], + products: [ + .library(name: "SpotierCore", targets: ["SpotierCore"]) + ], + targets: [ + .target( + name: "SpotierCore", + path: "SpotierCore" + ) + ] +) diff --git a/README.md b/README.md index 856aa49..6923106 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,69 @@ -# Swiftier (EasyTier for macOS) +# Spotier (EasyTier for macOS)

- Swiftier Icon + Spotier Icon

- - + +

-[中文说明](#简介) | [English](#introduction) +[中文说明](#简介) | [English](#introduction) | [TestFlight Beta](https://testflight.apple.com/join/TDsVHaTx) --- + ## Introduction -**Swiftier** is a native, modern GUI wrapper for [EasyTier](https://github.com/EasyTier/EasyTier), designed to simplify decentralized mesh networking on your Mac. Built entirely with **SwiftUI**, it offers a clean, responsive, and powerful interface for managing your virtual network. +**Spotier** is a native, modern GUI wrapper for [EasyTier](https://github.com/EasyTier/EasyTier), designed to simplify decentralized mesh networking on your Mac. Built entirely with **SwiftUI**, it offers a clean, responsive, and powerful interface for managing your virtual network. > [!IMPORTANT] > This project was entirely generated using **Antigravity** vibe coding. +### Get the Beta + +Join our public beta via TestFlight: +👉 **[Join Spotier TestFlight Beta](https://testflight.apple.com/join/TDsVHaTx)** + ### Key Features -* ✨ **Native macOS Experience**: Designed with modern SwiftUI components, dark mode support, and smooth animations following the latest macOS guidelines. -* 🤖 **Background Service**: Utilizes a privileged Helper tool to run the VPN core in the background, ensuring your connection stays alive even when the main app is closed. -* 🛠 **Visual Configuration**: A comprehensive editor to generate and modify EasyTier configurations without touching text files. -* 📊 **Real-time Monitoring**: Visualize peer connections, latency, and traffic statistics instantly with a beautiful UI. -* 📝 **Activity Timeline**: A dual-mode log viewer that separates high-level "Interaction Events" (peer join/leave) from low-level debugging logs. -* 📦 **Auto Core Management**: Automatically detects, downloads, and manages the correct `easytier-core` binary for your system architecture. +- ✨ **Native macOS Experience**: Designed with modern SwiftUI components, dark mode support, and smooth animations following the latest macOS guidelines. +- 🤖 **Background Service**: Uses Apple's Network Extension runtime and Connect On Demand support to keep the tunnel managed by the system. +- 🛠 **Visual Configuration**: A comprehensive editor to generate and modify EasyTier configurations without touching text files. +- 📊 **Real-time Monitoring**: Visualize peer connections, latency, and traffic statistics instantly with a beautiful UI. +- 📝 **Activity Timeline**: A dual-mode log viewer that separates high-level "Interaction Events" (peer join/leave) from low-level debugging logs. +- 📦 **Auto Core Management**: Automatically detects, downloads, and manages the correct `easytier-core` binary for your system architecture. ### Troubleshooting -> ⚠️ **"Swiftier is damaged and can't be opened"** +> ⚠️ **"Spotier is damaged and can't be opened"** > > Since this app is not notarized by Apple (requires a paid developer account), you may see a warning that the app is damaged. To fix this, run the following command in Terminal: +> > ```bash -> sudo xattr -cr /Applications/Swiftier.app +> sudo xattr -cr /Applications/Spotier.app > ``` -> *(Adjust the path if your app is not in the Applications folder)* +> +> _(Adjust the path if your app is not in the Applications folder)_ ### Requirements -* macOS 13.0 or later -* Xcode 15+ (for building) +- macOS 13.0 or later +- Xcode 15+ (for building) ### Building from Source 1. Clone this repository. -2. Open `Swiftier.xcodeproj` in Xcode. +2. Open `Spotier.xcodeproj` in Xcode. 3. Select your Development Team in the "Signing & Capabilities" tab. 4. Build and Run (`Cmd + R`). ### Contact & Developer -* **Developer**: Alick Huang -* **Email**: [minamike2007@gmail.com](mailto:minamike2007@gmail.com) -* **GitHub**: [AlickH/Swiftier](https://github.com/AlickH/Swiftier) +- **Developer**: Alick Huang +- **Email**: [minamike2007@gmail.com](mailto:minamike2007@gmail.com) +- **GitHub**: [AlickH/Spotier](https://github.com/AlickH/Spotier) ### License @@ -63,54 +71,62 @@ Distributed under the **MIT License**. --- -[中文说明](#简介) | [English](#introduction) +[中文说明](#简介) | [English](#introduction) | [TestFlight Beta](https://testflight.apple.com/join/TDsVHaTx) --- + ## 简介 -**Swiftier** 是专为 macOS 打造的原生 [EasyTier](https://github.com/EasyTier/EasyTier) 图形客户端。它采用最新的 **SwiftUI** 技术构建,为您提供简单、美观且强大的去中心化组网管理体验。 +**Spotier** 是专为 macOS 打造的原生 [EasyTier](https://github.com/EasyTier/EasyTier) 图形客户端。它采用最新的 **SwiftUI** 技术构建,为您提供简单、美观且强大的去中心化组网管理体验。 > [!IMPORTANT] > 本项目完全采用 **Antigravity** vibe coding 模式开发生成。 +### 参与测试 + +点击下方链接加入我们的 TestFlight 公开测试: +👉 **[加入 Spotier TestFlight 测试版](https://testflight.apple.com/join/TDsVHaTx)** + ### 主要功能 -* ✨ **原生体验**:遵循 macOS 最新设计规范,原生支持深色模式,拥有流畅的动画和细腻的交互。 -* 🤖 **后台服务**:内置特权辅助程序(Helper),支持将 VPN 核心作为系统服务在后台运行,主界面关闭后网络依然保持连通。 -* 🛠 **可视化配置**:提供完整的图形化配置编辑器,无需手动编辑 `.toml` 配置文件即可完成所有设置。 -* 📊 **实时监控**:直观展示节点列表、P2P 连接状态、延迟和实时流量统计,并配有可视化拓朴指示。 -* 📝 **活动时间轴**:独创的双模式日志视图,通过“交互事件”时间轴清晰展示节点加入、断开等关键动态,同时保留详细的调试日志。 -* 📦 **核心管理**:自动检测系统架构(Intel/Apple Silicon)并自动下载管理 `easytier-core` 内核,真正实现开箱即用。 +- ✨ **原生体验**:遵循 macOS 最新设计规范,原生支持深色模式,拥有流畅的动画和细腻的交互。 +- 🤖 **后台服务**:使用 Apple Network Extension 运行时和 Connect On Demand,让系统负责 VPN 隧道生命周期。 +- 🛠 **可视化配置**:提供完整的图形化配置编辑器,无需手动编辑 `.toml` 配置文件即可完成所有设置。 +- 📊 **实时监控**:直观展示节点列表、P2P 连接状态、延迟和实时流量统计,并配有可视化拓朴指示。 +- 📝 **活动时间轴**:独创的双模式日志视图,通过“交互事件”时间轴清晰展示节点加入、断开等关键动态,同时保留详细的调试日志。 +- 📦 **核心管理**:自动检测系统架构(Intel/Apple Silicon)并自动下载管理 `easytier-core` 内核,真正实现开箱即用。 ### 常见问题 > ⚠️ **打开时提示“应用已损坏,无法打开”** > > 这是 macOS 安全机制对未签名应用的拦截。由于没有付费开发者账号进行公证,您需要在终端运行以下命令来解除限制: +> > ```bash -> sudo xattr -cr /Applications/Swiftier.app +> sudo xattr -cr /Applications/Spotier.app > ``` -> *(如果应用不在“应用程序”目录,请修改为实际路径)* +> +> _(如果应用不在“应用程序”目录,请修改为实际路径)_ ### 运行环境 -* macOS 13.0 或更高版本 -* 编译需要 Xcode 15+ +- macOS 13.0 或更高版本 +- 编译需要 Xcode 15+ ### 编译指南 1. 克隆本项目到本地。 -2. 使用 Xcode 打开 `Swiftier.xcodeproj`。 +2. 使用 Xcode 打开 `Spotier.xcodeproj`。 3. 在 Project 设置的 `Signing & Capabilities` 中选择您的 Apple Developer 账号并配置签名。 4. 运行项目 (`Cmd + R`)。 ### 联系与开发者 -* **开发者**: Alick Huang -* **电子邮箱**: [minamike2007@gmail.com](mailto:minamike2007@gmail.com) -* **GitHub**: [AlickH/Swiftier](https://github.com/AlickH/Swiftier) +- **Developer**: Alick Huang +- **电子邮箱**: [minamike2007@gmail.com](mailto:minamike2007@gmail.com) +- **GitHub**: [AlickH/Spotier](https://github.com/AlickH/Spotier) ### 开源协议 diff --git a/Spotier.xcodeproj/project.pbxproj b/Spotier.xcodeproj/project.pbxproj new file mode 100644 index 0000000..e752e36 --- /dev/null +++ b/Spotier.xcodeproj/project.pbxproj @@ -0,0 +1,912 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + E0AB5CCB2F3CCD9C00BD8CBA /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0AB5CCA2F3CCD9C00BD8CBA /* NetworkExtension.framework */; }; + E0AB5CD32F3CCD9C00BD8CBA /* SpotierNE.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = E0AB5CC92F3CCD9C00BD8CBA /* SpotierNE.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + E0AC7EEE2F19307C00FC425C /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0AC7EED2F19307C00FC425C /* ServiceManagement.framework */; }; + E1AA00012F50000100AAA001 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1AA00042F50000100AAA001 /* XCTest.framework */; }; + E1BB00012F60000100BBB001 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1AA00042F50000100AAA001 /* XCTest.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + E0AB5CD12F3CCD9C00BD8CBA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E0933DC42F16A25B00C7DE59 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E0AB5CC82F3CCD9C00BD8CBA; + remoteInfo = SwiftierNE; + }; + E1AA00022F50000100AAA001 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E0933DC42F16A25B00C7DE59 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E0AB5CC82F3CCD9C00BD8CBA; + remoteInfo = SpotierNE; + }; + E1BB00022F60000100BBB001 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E0933DC42F16A25B00C7DE59 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E0933DCB2F16A25B00C7DE59; + remoteInfo = Spotier; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + E0AB5CD82F3CCD9C00BD8CBA /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + E0AB5CD32F3CCD9C00BD8CBA /* SpotierNE.appex in Embed Foundation Extensions */, + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + E0933DCC2F16A25B00C7DE59 /* Spotier.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Spotier.app; sourceTree = BUILT_PRODUCTS_DIR; }; + E0AB5CC92F3CCD9C00BD8CBA /* SpotierNE.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = SpotierNE.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + E0AB5CCA2F3CCD9C00BD8CBA /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; }; + E0AC7EED2F19307C00FC425C /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; }; + E1AA00032F50000100AAA001 /* SpotierNETests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SpotierNETests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + E1AA00042F50000100AAA001 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = System/Library/Frameworks/XCTest.framework; sourceTree = SDKROOT; }; + E1BB00032F60000100BBB001 /* SpotierTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SpotierTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + E07149802F434B500067FC17 /* Exceptions for "Spotier" folder in "Spotier" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = E0933DCB2F16A25B00C7DE59 /* Spotier */; + }; + E07149812F434B590067FC17 /* Exceptions for "SpotierNE" folder in "SpotierNE" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = E0AB5CC82F3CCD9C00BD8CBA /* SpotierNE */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + E0933DCE2F16A25B00C7DE59 /* Spotier */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + E07149802F434B500067FC17 /* Exceptions for "Spotier" folder in "Spotier" target */, + ); + path = Spotier; + sourceTree = ""; + }; + E0AB5CCC2F3CCD9C00BD8CBA /* SpotierNE */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + E07149812F434B590067FC17 /* Exceptions for "SpotierNE" folder in "SpotierNE" target */, + ); + path = SpotierNE; + sourceTree = ""; + }; + E1CC00012F70000100CCC001 /* SpotierCore */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = SpotierCore; + sourceTree = ""; + }; + E1AA00052F50000100AAA001 /* SpotierNETests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = SpotierNETests; + sourceTree = ""; + }; + E1BB00052F60000100BBB001 /* SpotierTests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = SpotierTests; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + E0933DC92F16A25B00C7DE59 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E0AC7EEE2F19307C00FC425C /* ServiceManagement.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E0AB5CC62F3CCD9C00BD8CBA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E0AB5CCB2F3CCD9C00BD8CBA /* NetworkExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1AA00062F50000100AAA001 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E1AA00012F50000100AAA001 /* XCTest.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1BB00062F60000100BBB001 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E1BB00012F60000100BBB001 /* XCTest.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + E0933DC32F16A25B00C7DE59 = { + isa = PBXGroup; + children = ( + E0933DCE2F16A25B00C7DE59 /* Spotier */, + E0AB5CCC2F3CCD9C00BD8CBA /* SpotierNE */, + E1CC00012F70000100CCC001 /* SpotierCore */, + E1AA00052F50000100AAA001 /* SpotierNETests */, + E1BB00052F60000100BBB001 /* SpotierTests */, + E0AC7EEC2F19307C00FC425C /* Frameworks */, + E0933DCD2F16A25B00C7DE59 /* Products */, + ); + sourceTree = ""; + }; + E0933DCD2F16A25B00C7DE59 /* Products */ = { + isa = PBXGroup; + children = ( + E0933DCC2F16A25B00C7DE59 /* Spotier.app */, + E0AB5CC92F3CCD9C00BD8CBA /* SpotierNE.appex */, + E1AA00032F50000100AAA001 /* SpotierNETests.xctest */, + E1BB00032F60000100BBB001 /* SpotierTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + E0AC7EEC2F19307C00FC425C /* Frameworks */ = { + isa = PBXGroup; + children = ( + E0AC7EED2F19307C00FC425C /* ServiceManagement.framework */, + E0AB5CCA2F3CCD9C00BD8CBA /* NetworkExtension.framework */, + E1AA00042F50000100AAA001 /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E0933DCB2F16A25B00C7DE59 /* Spotier */ = { + isa = PBXNativeTarget; + buildConfigurationList = E0933DED2F16A26200C7DE59 /* Build configuration list for PBXNativeTarget "Spotier" */; + buildPhases = ( + E0933DC82F16A25B00C7DE59 /* Sources */, + E0933DC92F16A25B00C7DE59 /* Frameworks */, + E0933DCA2F16A25B00C7DE59 /* Resources */, + E0AB5CD82F3CCD9C00BD8CBA /* Embed Foundation Extensions */, + ); + buildRules = ( + ); + dependencies = ( + E0AB5CD22F3CCD9C00BD8CBA /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + E0933DCE2F16A25B00C7DE59 /* Spotier */, + E1CC00012F70000100CCC001 /* SpotierCore */, + ); + name = Spotier; + packageProductDependencies = ( + ); + productName = Spotier; + productReference = E0933DCC2F16A25B00C7DE59 /* Spotier.app */; + productType = "com.apple.product-type.application"; + }; + E0AB5CC82F3CCD9C00BD8CBA /* SpotierNE */ = { + isa = PBXNativeTarget; + buildConfigurationList = E0AB5CD42F3CCD9C00BD8CBA /* Build configuration list for PBXNativeTarget "SpotierNE" */; + buildPhases = ( + E0AB5CC52F3CCD9C00BD8CBA /* Sources */, + E0AB5CC62F3CCD9C00BD8CBA /* Frameworks */, + E0AB5CC72F3CCD9C00BD8CBA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + E0AB5CCC2F3CCD9C00BD8CBA /* SpotierNE */, + E1CC00012F70000100CCC001 /* SpotierCore */, + ); + name = SpotierNE; + packageProductDependencies = ( + ); + productName = SpotierNE; + productReference = E0AB5CC92F3CCD9C00BD8CBA /* SpotierNE.appex */; + productType = "com.apple.product-type.app-extension"; + }; + E1AA00072F50000100AAA001 /* SpotierNETests */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1AA000D2F50000100AAA001 /* Build configuration list for PBXNativeTarget "SpotierNETests" */; + buildPhases = ( + E1AA00092F50000100AAA001 /* Sources */, + E1AA00062F50000100AAA001 /* Frameworks */, + E1AA00082F50000100AAA001 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + E1AA000A2F50000100AAA001 /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + E1AA00052F50000100AAA001 /* SpotierNETests */, + ); + name = SpotierNETests; + packageProductDependencies = ( + ); + productName = SpotierNETests; + productReference = E1AA00032F50000100AAA001 /* SpotierNETests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + E1BB00072F60000100BBB001 /* SpotierTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1BB000D2F60000100BBB001 /* Build configuration list for PBXNativeTarget "SpotierTests" */; + buildPhases = ( + E1BB00092F60000100BBB001 /* Sources */, + E1BB00062F60000100BBB001 /* Frameworks */, + E1BB00082F60000100BBB001 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + E1BB000A2F60000100BBB001 /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + E1BB00052F60000100BBB001 /* SpotierTests */, + ); + name = SpotierTests; + packageProductDependencies = ( + ); + productName = SpotierTests; + productReference = E1BB00032F60000100BBB001 /* SpotierTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E0933DC42F16A25B00C7DE59 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 2630; + LastUpgradeCheck = 2630; + TargetAttributes = { + E0933DCB2F16A25B00C7DE59 = { + CreatedOnToolsVersion = 26.2; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + com.apple.NetworkExtensions = { + enabled = 1; + }; + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + E0AB5CC82F3CCD9C00BD8CBA = { + CreatedOnToolsVersion = 26.3; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + com.apple.NetworkExtensions = { + enabled = 1; + }; + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + E1AA00072F50000100AAA001 = { + CreatedOnToolsVersion = 26.3; + }; + E1BB00072F60000100BBB001 = { + CreatedOnToolsVersion = 26.3; + }; + }; + }; + buildConfigurationList = E0933DC72F16A25B00C7DE59 /* Build configuration list for PBXProject "Spotier" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = E0933DC32F16A25B00C7DE59; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = E0933DCD2F16A25B00C7DE59 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E0933DCB2F16A25B00C7DE59 /* Spotier */, + E0AB5CC82F3CCD9C00BD8CBA /* SpotierNE */, + E1AA00072F50000100AAA001 /* SpotierNETests */, + E1BB00072F60000100BBB001 /* SpotierTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + E0933DCA2F16A25B00C7DE59 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E0AB5CC72F3CCD9C00BD8CBA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1AA00082F50000100AAA001 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1BB00082F60000100BBB001 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + E0933DC82F16A25B00C7DE59 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E0AB5CC52F3CCD9C00BD8CBA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1AA00092F50000100AAA001 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1BB00092F60000100BBB001 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + E0AB5CD22F3CCD9C00BD8CBA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = E0AB5CC82F3CCD9C00BD8CBA /* SpotierNE */; + targetProxy = E0AB5CD12F3CCD9C00BD8CBA /* PBXContainerItemProxy */; + }; + E1AA000A2F50000100AAA001 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = E0AB5CC82F3CCD9C00BD8CBA /* SpotierNE */; + targetProxy = E1AA00022F50000100AAA001 /* PBXContainerItemProxy */; + }; + E1BB000A2F60000100BBB001 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = E0933DCB2F16A25B00C7DE59 /* Spotier */; + targetProxy = E1BB00022F60000100BBB001 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + E0933DEB2F16A26200C7DE59 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = J33CVYBKCZ; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 26.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + E0933DEC2F16A26200C7DE59 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = J33CVYBKCZ; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 26.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_COMPILATION_MODE = wholemodule; + }; + name = Release; + }; + E0933DEE2F16A26200C7DE59 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = Spotier; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; + AUTOMATION_APPLE_EVENTS = NO; + CODE_SIGN_ENTITLEMENTS = Spotier/Spotier.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CREATE_INFOPLIST_SECTION_IN_BINARY = YES; + CURRENT_PROJECT_VERSION = 6; + DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = KLU8GF65GP; + ENABLE_APP_SANDBOX = YES; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_INCOMING_NETWORK_CONNECTIONS = YES; + ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES; + ENABLE_PREVIEWS = YES; + ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO; + ENABLE_RESOURCE_ACCESS_BLUETOOTH = NO; + ENABLE_RESOURCE_ACCESS_CALENDARS = NO; + ENABLE_RESOURCE_ACCESS_CAMERA = NO; + ENABLE_RESOURCE_ACCESS_CONTACTS = NO; + ENABLE_RESOURCE_ACCESS_LOCATION = NO; + ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = NO; + ENABLE_RESOURCE_ACCESS_PRINTING = NO; + ENABLE_RESOURCE_ACCESS_USB = NO; + ENABLE_USER_SELECTED_FILES = readwrite; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = Spotier/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Spotier; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_LSUIElement = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 13.5; + MARKETING_VERSION = 1.0.0; + OTHER_LDFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = com.alick.spotier; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + REGISTER_APP_GROUPS = YES; + RUNTIME_EXCEPTION_ALLOW_DYLD_ENVIRONMENT_VARIABLES = NO; + RUNTIME_EXCEPTION_ALLOW_JIT = NO; + RUNTIME_EXCEPTION_ALLOW_UNSIGNED_EXECUTABLE_MEMORY = NO; + RUNTIME_EXCEPTION_DEBUGGING_TOOL = NO; + RUNTIME_EXCEPTION_DISABLE_EXECUTABLE_PAGE_PROTECTION = NO; + RUNTIME_EXCEPTION_DISABLE_LIBRARY_VALIDATION = NO; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + E0933DEF2F16A26200C7DE59 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = Spotier; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; + AUTOMATION_APPLE_EVENTS = NO; + CODE_SIGN_ENTITLEMENTS = Spotier/Spotier.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CREATE_INFOPLIST_SECTION_IN_BINARY = YES; + CURRENT_PROJECT_VERSION = 6; + DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = KLU8GF65GP; + ENABLE_APP_SANDBOX = YES; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_INCOMING_NETWORK_CONNECTIONS = YES; + ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES; + ENABLE_PREVIEWS = YES; + ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO; + ENABLE_RESOURCE_ACCESS_BLUETOOTH = NO; + ENABLE_RESOURCE_ACCESS_CALENDARS = NO; + ENABLE_RESOURCE_ACCESS_CAMERA = NO; + ENABLE_RESOURCE_ACCESS_CONTACTS = NO; + ENABLE_RESOURCE_ACCESS_LOCATION = NO; + ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = NO; + ENABLE_RESOURCE_ACCESS_PRINTING = NO; + ENABLE_RESOURCE_ACCESS_USB = NO; + ENABLE_USER_SELECTED_FILES = readwrite; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = Spotier/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Spotier; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_LSUIElement = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 13.5; + MARKETING_VERSION = 1.0.0; + OTHER_LDFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = com.alick.spotier; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + REGISTER_APP_GROUPS = YES; + RUNTIME_EXCEPTION_ALLOW_DYLD_ENVIRONMENT_VARIABLES = NO; + RUNTIME_EXCEPTION_ALLOW_JIT = NO; + RUNTIME_EXCEPTION_ALLOW_UNSIGNED_EXECUTABLE_MEMORY = NO; + RUNTIME_EXCEPTION_DEBUGGING_TOOL = NO; + RUNTIME_EXCEPTION_DISABLE_EXECUTABLE_PAGE_PROTECTION = NO; + RUNTIME_EXCEPTION_DISABLE_LIBRARY_VALIDATION = NO; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + E0AB5CD52F3CCD9C00BD8CBA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = SpotierNE/SpotierNE.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = KLU8GF65GP; + ENABLE_APP_SANDBOX = YES; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_INCOMING_NETWORK_CONNECTIONS = YES; + ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES; + ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO; + ENABLE_RESOURCE_ACCESS_BLUETOOTH = NO; + ENABLE_RESOURCE_ACCESS_CALENDARS = NO; + ENABLE_RESOURCE_ACCESS_CAMERA = NO; + ENABLE_RESOURCE_ACCESS_CONTACTS = NO; + ENABLE_RESOURCE_ACCESS_LOCATION = NO; + ENABLE_RESOURCE_ACCESS_PRINTING = NO; + ENABLE_RESOURCE_ACCESS_USB = NO; + ENABLE_USER_SELECTED_FILES = readwrite; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SpotierNE/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = SpotierNE; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 13.5; + MARKETING_VERSION = 1.0.0; + "OBJC_BRIDGING_HEADER[sdk=macosx*]" = "SpotierNE/SpotierNE-Bridging-Header.h"; + OTHER_LDFLAGS = ( + "-framework", + SystemConfiguration, + "-framework", + Security, + "-framework", + CoreFoundation, + ); + PRODUCT_BUNDLE_IDENTIFIER = com.alick.spotier.SpotierNE; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + REGISTER_APP_GROUPS = YES; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = "SpotierNE/SpotierNE-Bridging-Header.h"; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + E0AB5CD62F3CCD9C00BD8CBA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = SpotierNE/SpotierNE.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = KLU8GF65GP; + ENABLE_APP_SANDBOX = YES; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_INCOMING_NETWORK_CONNECTIONS = YES; + ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES; + ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO; + ENABLE_RESOURCE_ACCESS_BLUETOOTH = NO; + ENABLE_RESOURCE_ACCESS_CALENDARS = NO; + ENABLE_RESOURCE_ACCESS_CAMERA = NO; + ENABLE_RESOURCE_ACCESS_CONTACTS = NO; + ENABLE_RESOURCE_ACCESS_LOCATION = NO; + ENABLE_RESOURCE_ACCESS_PRINTING = NO; + ENABLE_RESOURCE_ACCESS_USB = NO; + ENABLE_USER_SELECTED_FILES = readwrite; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SpotierNE/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = SpotierNE; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 13.5; + MARKETING_VERSION = 1.0.0; + OTHER_LDFLAGS = ( + "-framework", + SystemConfiguration, + "-framework", + Security, + "-framework", + CoreFoundation, + ); + PRODUCT_BUNDLE_IDENTIFIER = com.alick.spotier.SpotierNE; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + REGISTER_APP_GROUPS = YES; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = "SpotierNE/SpotierNE-Bridging-Header.h"; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + E1AA000B2F50000100AAA001 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = ""; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = KLU8GF65GP; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 26.2; + PRODUCT_BUNDLE_IDENTIFIER = com.alick.spotier.SpotierNETests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TEST_TARGET_NAME = SpotierNE; + }; + name = Debug; + }; + E1AA000C2F50000100AAA001 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = ""; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = KLU8GF65GP; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 26.2; + PRODUCT_BUNDLE_IDENTIFIER = com.alick.spotier.SpotierNETests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TEST_TARGET_NAME = SpotierNE; + }; + name = Release; + }; + E1BB000B2F60000100BBB001 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = KLU8GF65GP; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 26.2; + PRODUCT_BUNDLE_IDENTIFIER = com.alick.spotier.SpotierTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Spotier.app/Contents/MacOS/Spotier"; + TEST_TARGET_NAME = Spotier; + }; + name = Debug; + }; + E1BB000C2F60000100BBB001 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = KLU8GF65GP; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 26.2; + PRODUCT_BUNDLE_IDENTIFIER = com.alick.spotier.SpotierTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Spotier.app/Contents/MacOS/Spotier"; + TEST_TARGET_NAME = Spotier; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E0933DC72F16A25B00C7DE59 /* Build configuration list for PBXProject "Spotier" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E0933DEB2F16A26200C7DE59 /* Debug */, + E0933DEC2F16A26200C7DE59 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E0933DED2F16A26200C7DE59 /* Build configuration list for PBXNativeTarget "Spotier" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E0933DEE2F16A26200C7DE59 /* Debug */, + E0933DEF2F16A26200C7DE59 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E0AB5CD42F3CCD9C00BD8CBA /* Build configuration list for PBXNativeTarget "SpotierNE" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E0AB5CD52F3CCD9C00BD8CBA /* Debug */, + E0AB5CD62F3CCD9C00BD8CBA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E1AA000D2F50000100AAA001 /* Build configuration list for PBXNativeTarget "SpotierNETests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E1AA000B2F50000100AAA001 /* Debug */, + E1AA000C2F50000100AAA001 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E1BB000D2F60000100BBB001 /* Build configuration list for PBXNativeTarget "SpotierTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E1BB000B2F60000100BBB001 /* Debug */, + E1BB000C2F60000100BBB001 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E0933DC42F16A25B00C7DE59 /* Project object */; +} diff --git a/Swiftier.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Spotier.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Swiftier.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Spotier.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Swiftier.xcodeproj/xcshareddata/xcschemes/Swiftier.xcscheme b/Spotier.xcodeproj/xcshareddata/xcschemes/Spotier.xcscheme similarity index 70% rename from Swiftier.xcodeproj/xcshareddata/xcschemes/Swiftier.xcscheme rename to Spotier.xcodeproj/xcshareddata/xcschemes/Spotier.xcscheme index 03d597a..bc2fa2a 100644 --- a/Swiftier.xcodeproj/xcshareddata/xcschemes/Swiftier.xcscheme +++ b/Spotier.xcodeproj/xcshareddata/xcschemes/Spotier.xcscheme @@ -16,9 +16,9 @@ + BuildableName = "Spotier.app" + BlueprintName = "Spotier" + ReferencedContainer = "container:Spotier.xcodeproj"> @@ -35,21 +35,10 @@ parallelizable = "YES"> - - - - + BlueprintIdentifier = "E1AA00072F50000100AAA001" + BuildableName = "SpotierNETests.xctest" + BlueprintName = "SpotierNETests" + ReferencedContainer = "container:Spotier.xcodeproj"> @@ -69,9 +58,9 @@ + BuildableName = "Spotier.app" + BlueprintName = "Spotier" + ReferencedContainer = "container:Spotier.xcodeproj"> @@ -86,9 +75,9 @@ + BuildableName = "Spotier.app" + BlueprintName = "Spotier" + ReferencedContainer = "container:Spotier.xcodeproj"> diff --git a/Spotier.xcodeproj/xcshareddata/xcschemes/SpotierCoreTests.xcscheme b/Spotier.xcodeproj/xcshareddata/xcschemes/SpotierCoreTests.xcscheme new file mode 100644 index 0000000..6de5d93 --- /dev/null +++ b/Spotier.xcodeproj/xcshareddata/xcschemes/SpotierCoreTests.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/EasyTier/Assets.xcassets/AccentColor.colorset/Contents.json b/Spotier/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from EasyTier/Assets.xcassets/AccentColor.colorset/Contents.json rename to Spotier/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/EasyTier/Assets.xcassets/Contents.json b/Spotier/Assets.xcassets/Contents.json similarity index 100% rename from EasyTier/Assets.xcassets/Contents.json rename to Spotier/Assets.xcassets/Contents.json diff --git a/Spotier/CliClient.swift b/Spotier/CliClient.swift new file mode 100644 index 0000000..b1d85ef --- /dev/null +++ b/Spotier/CliClient.swift @@ -0,0 +1,68 @@ +import Foundation + +struct PeerInfo: Identifiable, Equatable { + // 使用 sessionID 加上业务字段组合成唯一 ID + // 这样每次启动生成新 sessionID 时,ID 都会变,从而强制触发 SwiftUI 的滑动进入动画 + let sessionID: UUID + let ipv4: String + let hostname: String + let cost: String + let latency: String + let loss: String + let rx: String + let tx: String + let tunnel: String + let nat: String + let version: String + + // 扩展字段:存储完整 JSON 信息中的所有键值对 + var extraInfo: [String: String] = [:] + + // 便捷访问器 (基于 Rust 常见命名惯例 snake_case) + var nodeId: String? { extraInfo["id"] } // JSON key is 'id' + var instanceId: String? { extraInfo["instance_id"] } + // Route info (prefixed with route_) + var nextHopHostname: String? { extraInfo["route_next_hop_hostname"] } + var nextHopLatency: String? { extraInfo["route_next_hop_lat"] } + var pathLen: String? { extraInfo["route_path_len"] } + // Add more as needed based on observation + + // 针对远程节点的完整数据信息 + var fullData: SpotierStatus.PeerRoutePair? = nil + // 针对“本机”节点的完整信息 + var myNodeData: SpotierStatus.NodeInfo? = nil + + // 运行中必须保证稳定且唯一的 id:否则 SwiftUI 会把同一节点当成“删除+新增”,或出现跳格/错位 + // 优先使用 route.peerId(数值通常最稳定、且唯一),再降级到 instId / nodeId,最后兜底 hostname+ipv4。 + private var stableKey: String { + if let pid = fullData?.route.peerId { + return "peerId:\(pid)" + } + if let inst = (fullData?.route.instId ?? instanceId), !inst.isEmpty { + return "inst:\(inst)" + } + if let nid = nodeId, !nid.isEmpty { + return "id:\(nid)" + } + // 兜底也要尽量唯一 + return "host:\(hostname)|ip:\(ipv4)|cost:\(cost)" + } + + var id: String { stableKey } + + static func == (lhs: PeerInfo, rhs: PeerInfo) -> Bool { + return lhs.ipv4 == rhs.ipv4 && + lhs.hostname == rhs.hostname && + lhs.latency == rhs.latency && + lhs.rx == rhs.rx && + lhs.tx == rhs.tx && + lhs.loss == rhs.loss && + lhs.cost == rhs.cost && + lhs.tunnel == rhs.tunnel && + lhs.nat == rhs.nat && + lhs.version == rhs.version && + lhs.extraInfo == rhs.extraInfo && + lhs.fullData == rhs.fullData && + lhs.myNodeData == rhs.myNodeData + } +} diff --git a/EasyTier/CodeEditor.swift b/Spotier/CodeEditor.swift similarity index 64% rename from EasyTier/CodeEditor.swift rename to Spotier/CodeEditor.swift index f8996a4..3c42e0c 100644 --- a/EasyTier/CodeEditor.swift +++ b/Spotier/CodeEditor.swift @@ -5,6 +5,31 @@ struct CodeEditor: NSViewRepresentable { @Binding var text: String var mode: Mode = .toml var isEditable: Bool = true + + private static let tomlPatterns: [(NSRegularExpression, NSColor, Bool)] = [ + (try! NSRegularExpression(pattern: "^\\s*\\[.+\\]", options: [.anchorsMatchLines]), .systemOrange, true), + (try! NSRegularExpression(pattern: "^\\s*[a-zA-Z0-9_-]+\\s*(?==)", options: [.anchorsMatchLines]), .systemBlue, false), + (try! NSRegularExpression(pattern: "#.*$", options: [.anchorsMatchLines]), .secondaryLabelColor, false) + ] + + private static let logPatterns: [(NSRegularExpression, NSColor, Bool)] = [ + (try! NSRegularExpression(pattern: "^\\[[^\\]]+\\]", options: [.anchorsMatchLines]), .secondaryLabelColor, false), + (try! NSRegularExpression(pattern: "\\[easytier_core::[^\\]]+\\]", options: []), .secondaryLabelColor, false), + (try! NSRegularExpression(pattern: "(?i)ERROR|FATAL", options: []), .systemRed, true), + (try! NSRegularExpression(pattern: "(?i)WARN|WARNING", options: []), .systemOrange, true), + (try! NSRegularExpression(pattern: "(?i)INFO", options: []), .systemGreen, true), + (try! NSRegularExpression(pattern: "(?i)DEBUG", options: []), .systemCyan, true), + (try! NSRegularExpression(pattern: "(?i)TRACE", options: []), .systemBlue, true), + (try! NSRegularExpression(pattern: "Spotier", options: []), .labelColor, true) + ] + + private static let jsonPatterns: [(NSRegularExpression, NSColor, Bool)] = [ + (try! NSRegularExpression(pattern: "\"[^\"]+\"\\s*:", options: []), .systemBlue, true), + (try! NSRegularExpression(pattern: ":\\s*\"[^\"]*\"", options: []), .systemGreen, false), + (try! NSRegularExpression(pattern: ":\\s*[0-9]+\\.?[0-9]*", options: []), .systemOrange, false), + (try! NSRegularExpression(pattern: "\\b(true|false|null)\\b", options: []), .systemPurple, true), + (try! NSRegularExpression(pattern: "[\\[\\]\\{\\}]", options: []), .secondaryLabelColor, false) + ] enum Mode { case toml @@ -17,9 +42,7 @@ struct CodeEditor: NSViewRepresentable { let string = storage.string as NSString let fullRange = NSRange(location: 0, length: string.length) - // Helper - func applyStyle(pattern: String, color: NSColor, bold: Bool = false) { - guard let regex = try? NSRegularExpression(pattern: pattern, options: .anchorsMatchLines) else { return } + func applyStyle(_ regex: NSRegularExpression, color: NSColor, bold: Bool = false) { regex.enumerateMatches(in: storage.string, options: [], range: fullRange) { match, _, _ in if let range = match?.range { storage.addAttribute(.foregroundColor, value: color, range: range) @@ -36,72 +59,27 @@ struct CodeEditor: NSViewRepresentable { storage.removeAttribute(.font, range: fullRange) storage.addAttribute(.foregroundColor, value: NSColor.labelColor, range: fullRange) storage.addAttribute(.font, value: NSFont.monospacedSystemFont(ofSize: 13, weight: .regular), range: fullRange) - - // [Section] - applyStyle(pattern: "^\\s*\\[.+\\]", color: NSColor.systemOrange, bold: true) - // Key = - applyStyle(pattern: "^\\s*[a-zA-Z0-9_-]+\\s*(?==)", color: NSColor.systemBlue) - // # Comment - applyStyle(pattern: "#.*$", color: NSColor.secondaryLabelColor) + for (regex, color, bold) in Self.tomlPatterns { + applyStyle(regex, color: color, bold: bold) + } } else if mode == .log { - // 1. 重置基础样式 (Cleaner Log Style) storage.removeAttribute(.foregroundColor, range: fullRange) storage.removeAttribute(.font, range: fullRange) - - // Standard Text Color (Adaptive White/Black) instead of Matrix Green storage.addAttribute(.foregroundColor, value: NSColor.textColor, range: fullRange) - - // Menlo or Monospace Font let font = NSFont(name: "Menlo", size: 12) ?? NSFont.monospacedSystemFont(ofSize: 12, weight: .regular) storage.addAttribute(.font, value: font, range: fullRange) - - // Time & Meta Styling (Gray) - // Matches [2026-01-18 ...] or [Helper] - applyStyle(pattern: "^\\[[^\\]]+\\]", color: NSColor.secondaryLabelColor) - applyStyle(pattern: "\\[easytier_core::[^\\]]+\\]", color: NSColor.secondaryLabelColor) - - // Log Level Highlighting - // ERROR / FATAL -> Red - applyStyle(pattern: "(?i)ERROR|FATAL", color: NSColor.systemRed, bold: true) - - // WARN -> Yellow - applyStyle(pattern: "(?i)WARN|WARNING", color: NSColor.systemOrange, bold: true) - - // INFO -> Green - applyStyle(pattern: "(?i)INFO", color: NSColor.systemGreen, bold: true) - - // DEBUG -> Cyan - applyStyle(pattern: "(?i)DEBUG", color: NSColor.systemCyan, bold: true) - - // TRACE -> Blue/Gray - // Usually verbose, keep it subtle or blue - applyStyle(pattern: "(?i)TRACE", color: NSColor.systemBlue, bold: true) - - // Highlight EasyTier keywords - applyStyle(pattern: "EasyTier", color: NSColor.labelColor, bold: true) + for (regex, color, bold) in Self.logPatterns { + applyStyle(regex, color: color, bold: bold) + } } else if mode == .json { - // JSON Syntax Highlighting storage.removeAttribute(.foregroundColor, range: fullRange) storage.removeAttribute(.font, range: fullRange) storage.addAttribute(.foregroundColor, value: NSColor.textColor, range: fullRange) - let font = NSFont(name: "Menlo", size: 12) ?? NSFont.monospacedSystemFont(ofSize: 12, weight: .regular) storage.addAttribute(.font, value: font, range: fullRange) - - // Keys ("key":) - Blue - applyStyle(pattern: "\"[^\"]+\"\\s*:", color: NSColor.systemBlue, bold: true) - - // String values ("value") - Green - applyStyle(pattern: ":\\s*\"[^\"]*\"", color: NSColor.systemGreen) - - // Numbers - Orange - applyStyle(pattern: ":\\s*[0-9]+\\.?[0-9]*", color: NSColor.systemOrange) - - // Boolean and null - Purple - applyStyle(pattern: "\\b(true|false|null)\\b", color: NSColor.systemPurple, bold: true) - - // Brackets and braces - Gray - applyStyle(pattern: "[\\[\\]\\{\\}]", color: NSColor.secondaryLabelColor) + for (regex, color, bold) in Self.jsonPatterns { + applyStyle(regex, color: color, bold: bold) + } } } diff --git a/Spotier/Config/ConfigDirectoryAccess.swift b/Spotier/Config/ConfigDirectoryAccess.swift new file mode 100644 index 0000000..b689734 --- /dev/null +++ b/Spotier/Config/ConfigDirectoryAccess.swift @@ -0,0 +1,65 @@ +import Foundation + +struct ConfigDirectoryAccess { + private let fileManager: FileManager + + init(fileManager: FileManager = .default) { + self.fileManager = fileManager + } + + func defaultLocalDirectory() -> URL? { + guard let appSupport = fileManager.urls(for: .applicationSupportDirectory, in: .userDomainMask).first else { + return nil + } + + let targetDirectory = appSupport + .appendingPathComponent("Spotier", isDirectory: true) + .appendingPathComponent("Configs", isDirectory: true) + + if !fileManager.fileExists(atPath: targetDirectory.path) { + try! fileManager.createDirectory(at: targetDirectory, withIntermediateDirectories: true) + } + + return targetDirectory + } + + func iCloudDriveDirectory() -> URL? { + guard let containerURL = fileManager.url(forUbiquityContainerIdentifier: ICLOUD_CONTAINER_ID) else { + return nil + } + + let targetDirectory = containerURL + .appendingPathComponent("Documents", isDirectory: true) + + if !fileManager.fileExists(atPath: targetDirectory.path) { + try! fileManager.createDirectory(at: targetDirectory, withIntermediateDirectories: true) + } + + return targetDirectory + } + + func legacyICloudDriveDirectory() -> URL? { + guard let containerURL = fileManager.url(forUbiquityContainerIdentifier: ICLOUD_CONTAINER_ID) else { + return nil + } + + return containerURL + .appendingPathComponent("Documents", isDirectory: true) + .appendingPathComponent("Configs", isDirectory: true) + } + + func withScopedAccess(to directoryURL: URL?, operation: (URL) throws -> T) throws -> T { + guard let directoryURL else { + throw ConfigAccessError.missingDirectory + } + + let isScoped = directoryURL.startAccessingSecurityScopedResource() + defer { + if isScoped { + directoryURL.stopAccessingSecurityScopedResource() + } + } + + return try operation(directoryURL) + } +} diff --git a/Spotier/Config/ConfigFileRepository.swift b/Spotier/Config/ConfigFileRepository.swift new file mode 100644 index 0000000..3171048 --- /dev/null +++ b/Spotier/Config/ConfigFileRepository.swift @@ -0,0 +1,40 @@ +import Foundation + +protocol ConfigFileAccessing { + func refreshConfigs() -> [URL] + func readContent(at fileURL: URL) throws -> String + func createConfig(named filename: String, content: String) throws -> URL + func updateContent(at fileURL: URL, content: String) throws + func deleteConfig(at fileURL: URL) +} + +struct ConfigFileRepository: ConfigFileAccessing { + static let shared = ConfigFileRepository() + + private let manager: ConfigManager + + init(manager: ConfigManager = .shared) { + self.manager = manager + } + + @discardableResult + func refreshConfigs() -> [URL] { + manager.refreshConfigs() + } + + func readContent(at fileURL: URL) throws -> String { + try manager.readConfigContent(fileURL) + } + + func createConfig(named filename: String, content: String) throws -> URL { + try manager.createConfig(named: filename, content: content) + } + + func updateContent(at fileURL: URL, content: String) throws { + try manager.updateConfig(fileURL, content: content) + } + + func deleteConfig(at fileURL: URL) { + manager.deleteConfig(fileURL) + } +} diff --git a/Spotier/Config/ConfigTemplateFactory.swift b/Spotier/Config/ConfigTemplateFactory.swift new file mode 100644 index 0000000..6c097d7 --- /dev/null +++ b/Spotier/Config/ConfigTemplateFactory.swift @@ -0,0 +1,32 @@ +import Foundation + +enum ConfigTemplateFactory { + static func sanitizedName(from rawName: String) -> String { + let trimmed = rawName.trimmingCharacters(in: .whitespacesAndNewlines) + return trimmed.isEmpty ? "new-network" : trimmed + } + + static func filename(from rawName: String) -> String { + "\(sanitizedName(from: rawName)).toml" + } + + static func content(for rawName: String, instanceID: UUID = UUID()) -> String { + let safeName = sanitizedName(from: rawName) + + return """ + instance_name = "\(safeName)" + instance_id = "\(instanceID.uuidString.lowercased())" + dhcp = true + listeners = ["udp://0.0.0.0:11010"] + + [network_identity] + network_name = "easytier" + network_secret = "" + + [flags] + mtu = 1380 + disable_ipv6 = false + disable_encryption = false + """ + } +} diff --git a/EasyTier/ConfigEditorView.swift b/Spotier/ConfigEditorView.swift similarity index 79% rename from EasyTier/ConfigEditorView.swift rename to Spotier/ConfigEditorView.swift index bc1374b..bb58c61 100644 --- a/EasyTier/ConfigEditorView.swift +++ b/Spotier/ConfigEditorView.swift @@ -3,6 +3,7 @@ import SwiftUI struct ConfigEditorView: View { @Binding var isPresented: Bool let fileURL: URL + private let configRepository: ConfigFileAccessing = ConfigFileRepository.shared @State private var content: String = "" @State private var originalContent: String = "" @@ -44,7 +45,7 @@ struct ConfigEditorView: View { private func loadContent() { do { - content = try String(contentsOf: fileURL, encoding: .utf8) + content = try configRepository.readContent(at: fileURL) originalContent = content } catch { errorMessage = error.localizedDescription @@ -53,16 +54,12 @@ struct ConfigEditorView: View { private func saveContent() { do { - try content.write(to: fileURL, atomically: true, encoding: .utf8) - originalContent = content // 更新原始状态 + try configRepository.updateContent(at: fileURL, content: content) + originalContent = content withAnimation { isPresented = false } - - // 通知 ConfigManager 或 Runner 可能需要重载? - // 目前 EasyTier 可能需要重启服务才能生效,或者它支持热重载? - // 这里我们只负责保存文件。 } catch { errorMessage = "保存失败: \(error.localizedDescription)" } diff --git a/Spotier/ConfigGenerator/ConfigDraftStore.swift b/Spotier/ConfigGenerator/ConfigDraftStore.swift new file mode 100644 index 0000000..65c396c --- /dev/null +++ b/Spotier/ConfigGenerator/ConfigDraftStore.swift @@ -0,0 +1,29 @@ +import Foundation + +final class ConfigDraftStore { + static let shared = ConfigDraftStore() + + private var drafts: [URL?: SpotierConfigModel] = [:] + + private init() {} + + func draft(for url: URL?) -> SpotierConfigModel? { + drafts[url] + } + + func saveDraft(for url: URL?, model: SpotierConfigModel) { + drafts[url] = model + } + + func clearDraft(for url: URL? = nil) { + if let url { + drafts.removeValue(forKey: url) + } else { + drafts.removeValue(forKey: nil) + } + } + + func clearAll() { + drafts.removeAll() + } +} diff --git a/Spotier/ConfigGenerator/ConfigGeneratorBehavior.swift b/Spotier/ConfigGenerator/ConfigGeneratorBehavior.swift new file mode 100644 index 0000000..56abfbe --- /dev/null +++ b/Spotier/ConfigGenerator/ConfigGeneratorBehavior.swift @@ -0,0 +1,48 @@ +import Foundation + +enum CIDRStringBehavior { + static func ip(from value: String) -> String { + let parts = value.split(separator: "/", omittingEmptySubsequences: false).map(String.init) + return parts.isEmpty ? "" : parts[0] + } + + static func mask(from value: String, defaultMask: String = "24") -> String { + let parts = value.split(separator: "/", omittingEmptySubsequences: false).map(String.init) + guard parts.count > 1, !parts[1].isEmpty else { return defaultMask } + return parts[1] + } + + static func updatingIP(_ newIP: String, in value: String, defaultMask: String = "24") -> String { + "\(newIP)/\(mask(from: value, defaultMask: defaultMask))" + } + + static func updatingMask(_ newMask: String, in value: String, defaultMask: String = "24") -> String { + "\(ip(from: value))/\(newMask.isEmpty ? defaultMask : newMask)" + } +} + +enum ConfigGeneratorListBehavior { + static func appended(_ items: [EditableStringItem], value: String = "") -> [EditableStringItem] { + items + [EditableStringItem(value: value)] + } + + static func removing(_ id: EditableStringItem.ID, from items: [EditableStringItem]) -> [EditableStringItem] { + items.filter { $0.id != id } + } + + static func appended(_ items: [SpotierConfigModel.ProxySubnet], cidr: String = "0.0.0.0/0") -> [SpotierConfigModel.ProxySubnet] { + items + [SpotierConfigModel.ProxySubnet(cidr: cidr)] + } + + static func removing(_ id: SpotierConfigModel.ProxySubnet.ID, from items: [SpotierConfigModel.ProxySubnet]) -> [SpotierConfigModel.ProxySubnet] { + items.filter { $0.id != id } + } + + static func appended(_ items: [PortForwardRule], rule: PortForwardRule = PortForwardRule()) -> [PortForwardRule] { + items + [rule] + } + + static func removing(_ id: PortForwardRule.ID, from items: [PortForwardRule]) -> [PortForwardRule] { + items.filter { $0.id != id } + } +} diff --git a/Spotier/ConfigGenerator/ConfigGeneratorForms.swift b/Spotier/ConfigGenerator/ConfigGeneratorForms.swift new file mode 100644 index 0000000..5479b67 --- /dev/null +++ b/Spotier/ConfigGenerator/ConfigGeneratorForms.swift @@ -0,0 +1,441 @@ +import SwiftUI + +enum ConfigGeneratorFormText { + static let listenerPlaceholder = "如:udp://1.1.1.1:11010" + static let mappedListenerFooter = "手动指定监听器的公网地址,其他节点可以使用该地址连接到本节点。例如:udp://123.123.123.123:11223,可以指定多个。" + static let mappedListenerPlaceholder = "URI (e.g. udp://...)" +} + +struct ConfigGeneratorAdvancedForm: View { + @Binding var model: SpotierConfigModel + + var body: some View { + Form { + ForEach(ConfigGeneratorAdvancedSection.allCases, id: \.self) { section in + switch section { + case .general: + generalSection + case .proxySubnet: + proxySubnetSection + case .listeners: + listenersSection + case .manualRoutes: + manualRoutesSection + case .exitNodes: + exitNodesSection + case .mappedListeners: + mappedListenersSection + case .featureToggle: + featureToggleSection + } + } + } + .formStyle(.grouped) + .scrollContentBackground(.hidden) + } + + private var generalSection: some View { + SwiftUI.Section(header: Text(LocalizedStringKey("通用"))) { + HStack { + Text(LocalizedStringKey("主机名称")) + TextField(LocalizedStringKey("默认"), text: $model.instanceName) + .multilineTextAlignment(.trailing) + .textFieldStyle(.plain) + .labelsHidden() + .textContentType(.none) + .disableAutocorrection(true) + } + + HStack { + Text("实例 ID") + .fixedSize() + Spacer() + Text(model.instanceId) + .foregroundColor(.secondary) + .lineLimit(1) + .truncationMode(.middle) + .monospaced() + + Button { + model.regenerateInstanceId() + } label: { + Image(systemName: "arrow.triangle.2.circlepath") + } + .buttonStyle(.plain) + .help("重新生成 UUID") + } + + HStack { + Text("MTU") + Spacer() + TextField("默认", value: Binding( + get: { model.mtu == 1380 ? nil : model.mtu }, + set: { model.mtu = $0 ?? 1380 } + ), format: .number.grouping(.never)) + .multilineTextAlignment(.trailing) + .frame(width: 80) + .textFieldStyle(.plain) + .labelsHidden() + .textContentType(.none) + } + } + } + + private var proxySubnetSection: some View { + SwiftUI.Section(header: Text(LocalizedStringKey("代理网段"))) { + ForEach($model.proxySubnets) { $subnet in + HStack { + Text(LocalizedStringKey("代理:")) + .foregroundColor(.secondary) + Spacer() + ConfigGeneratorView.IPv4CidrField( + ip: Binding( + get: { CIDRStringBehavior.ip(from: subnet.cidr) }, + set: { subnet.cidr = CIDRStringBehavior.updatingIP($0, in: subnet.cidr, defaultMask: "0") } + ), + cidr: Binding( + get: { CIDRStringBehavior.mask(from: subnet.cidr, defaultMask: "0") }, + set: { subnet.cidr = CIDRStringBehavior.updatingMask($0, in: subnet.cidr, defaultMask: "0") } + ) + ) + .fixedSize() + + Button { + model.proxySubnets = ConfigGeneratorListBehavior.removing(subnet.id, from: model.proxySubnets) + } label: { + Image(systemName: "minus.circle.fill") + .foregroundColor(.red) + } + .buttonStyle(.plain) + } + } + Button { + model.proxySubnets = ConfigGeneratorListBehavior.appended(model.proxySubnets, cidr: "0.0.0.0/0") + } label: { + HStack { + Image(systemName: "plus.circle.fill") + Text("添加代理网段") + } + .foregroundColor(.blue) + } + .buttonStyle(.plain) + } + } + + private var listenersSection: some View { + SwiftUI.Section("监听地址") { + ForEach($model.listeners) { $listener in + HStack { + TextField(ConfigGeneratorFormText.listenerPlaceholder, text: $listener.value) + .textFieldStyle(.plain) + .labelsHidden() + .textContentType(.none) + .disableAutocorrection(true) + + Spacer() + + Button { + removeEditableString(withID: listener.id, from: \.listeners) + } label: { + Image(systemName: "minus.circle.fill") + .foregroundColor(.red) + } + .buttonStyle(.plain) + } + } + Button { appendEditableString(to: \.listeners) } label: { + HStack { + Image(systemName: "plus.circle.fill") + Text("添加监听地址") + } + .foregroundColor(.blue) + } + .buttonStyle(.plain) + } + } + + private var manualRoutesSection: some View { + SwiftUI.Section(header: Text("自定义路由"), footer: Text("手动分配路由 CIDR,将禁用子网代理和从对等节点传播的 wireguard 路由。例如:192.168.0.0/16")) { + Toggle("启用", isOn: $model.enableManualRoutes) + if model.enableManualRoutes { + ForEach($model.manualRoutes) { $route in + HStack { + Text("路由:") + .foregroundColor(.secondary) + Spacer() + ConfigGeneratorView.IPv4CidrField( + ip: cidrIPBinding(for: $route.value), + cidr: cidrMaskBinding(for: $route.value) + ) + .fixedSize() + + Button { + removeEditableString(withID: route.id, from: \.manualRoutes) + } label: { + Image(systemName: "minus.circle.fill") + .foregroundColor(.red) + } + .buttonStyle(.plain) + } + } + Button { appendEditableString("0.0.0.0/0", to: \.manualRoutes) } label: { + HStack { + Image(systemName: "plus.circle.fill") + Text("添加路由") + } + .foregroundColor(.blue) + } + .buttonStyle(.plain) + } + } + } + + private var exitNodesSection: some View { + SwiftUI.Section(header: Text(LocalizedStringKey("出口节点列表")), footer: Text(LocalizedStringKey("转发所有流量的出口节点,虚拟 IPv4 地址,优先级由列表顺序决定。"))) { + ForEach($model.exitNodes) { $node in + HStack { + Text(LocalizedStringKey("节点:")) + .foregroundColor(.secondary) + Spacer() + ConfigGeneratorView.IPv4Field(ip: $node.value) + .fixedSize() + + Button { + removeEditableString(withID: node.id, from: \.exitNodes) + } label: { + Image(systemName: "minus.circle.fill") + .foregroundColor(.red) + } + .buttonStyle(.plain) + } + } + Button { appendEditableString(to: \.exitNodes) } label: { + HStack { + Image(systemName: "plus.circle.fill") + Text(LocalizedStringKey("添加出口节点")) + } + .foregroundColor(.blue) + } + .buttonStyle(.plain) + } + } + + private var mappedListenersSection: some View { + SwiftUI.Section(header: Text(LocalizedStringKey("监听映射")), footer: Text(ConfigGeneratorFormText.mappedListenerFooter)) { + editableStringListSection(list: $model.mappedListeners, placeholder: ConfigGeneratorFormText.mappedListenerPlaceholder) + } + } + + private var featureToggleSection: some View { + SwiftUI.Section(header: Text(LocalizedStringKey("功能开关"))) { + ForEach(ConfigGeneratorFeatureToggle.allCases, id: \.self) { toggle in + switch toggle { + case .latencyFirst: + toggleRow("延迟优先模式", "忽略中转跳数,选择总延迟最低的路径。", isOn: $model.latencyFirst) + case .disableIPv6: + toggleRow("禁用 IPv6", "禁用此节点的 IPv6 功能,仅使用 IPv4 进行网络通信。", isOn: Binding( + get: { !model.enableIPv6 }, + set: { model.enableIPv6 = !$0 } + )) + case .disableP2P: + toggleRow("禁用 P2P", "禁用 P2P 模式,所有流量通过手动指定的服务器中转。", isOn: $model.disableP2P) + case .onlyP2P: + toggleRow("仅 P2P", "仅与已经建立 P2P 连接的对等节点通信,不通过其他节点中转。", isOn: $model.onlyP2P) + case .enableExitNode: + toggleRow("启用出口节点", "允许此节点成为出口节点。", isOn: $model.enableExitNode) + case .disableEncryption: + toggleRow("禁用加密", "禁用对等节点通信的加密,默认为 false,必须与对等节点相同。", isOn: Binding( + get: { !model.enableEncryption }, + set: { model.enableEncryption = !$0 } + )) + case .disableUdpHolePunching: + toggleRow("禁用 UDP 打洞", "禁用 UDP 打洞功能。", isOn: $model.disableUdpHolePunching) + case .enableMagicDNS: + toggleRow("启用 Magic DNS", "启用魔法 DNS,允许通过 Swiftier 的 DNS 服务器访问其他节点的虚拟 IPv4 地址,例如:node1.et.net。", isOn: $model.enableMagicDns) + case .enablePrivateMode: + toggleRow("启用私有模式", "启用私有模式,则不允许使用了与本网络不同的网络名称和密码的节点通过本节点进行握手或中转。", isOn: $model.enablePrivateMode) + } + } + } + } + + private func editableStringListSection(list: Binding<[EditableStringItem]>, placeholder: String) -> some View { + Group { + ForEach(list) { $item in + HStack { + TextField(placeholder, text: $item.value) + .textFieldStyle(.plain) + .labelsHidden() + .textContentType(.none) + .disableAutocorrection(true) + + Spacer() + + Button { + list.wrappedValue = ConfigGeneratorListBehavior.removing(item.id, from: list.wrappedValue) + } label: { + Image(systemName: "minus.circle.fill") + .foregroundColor(.red) + } + .buttonStyle(.plain) + } + } + Button { list.wrappedValue = ConfigGeneratorListBehavior.appended(list.wrappedValue) } label: { + Label(LocalizedStringKey("添加"), systemImage: "plus.circle.fill").foregroundColor(.blue) + } + .buttonStyle(.plain) + } + } + + private func toggleRow(_ title: LocalizedStringKey, _ subtitle: LocalizedStringKey, isOn: Binding) -> some View { + VStack(alignment: .leading, spacing: 4) { + Toggle(title, isOn: isOn) + Text(subtitle) + .font(.caption) + .foregroundColor(.secondary) + .fixedSize(horizontal: false, vertical: true) + } + .padding(.vertical, 4) + } + + private func appendEditableString(_ value: String = "", to keyPath: WritableKeyPath) { + model[keyPath: keyPath] = ConfigGeneratorListBehavior.appended(model[keyPath: keyPath], value: value) + } + + private func removeEditableString(withID id: EditableStringItem.ID, from keyPath: WritableKeyPath) { + model[keyPath: keyPath] = ConfigGeneratorListBehavior.removing(id, from: model[keyPath: keyPath]) + } + + private func cidrIPBinding(for value: Binding) -> Binding { + Binding( + get: { + CIDRStringBehavior.ip(from: value.wrappedValue) + }, + set: { newIP in + value.wrappedValue = CIDRStringBehavior.updatingIP(newIP, in: value.wrappedValue) + } + ) + } + + private func cidrMaskBinding(for value: Binding) -> Binding { + Binding( + get: { + CIDRStringBehavior.mask(from: value.wrappedValue) + }, + set: { newCIDR in + value.wrappedValue = CIDRStringBehavior.updatingMask(newCIDR, in: value.wrappedValue) + } + ) + } +} + +struct ConfigGeneratorMainForm: View { + @Binding var model: SpotierConfigModel + let onOpenAdvanced: () -> Void + + var body: some View { + Form { + virtualIPv4Section + networkSection + navigationSection + } + .formStyle(.grouped) + .scrollContentBackground(.hidden) + } + + private var virtualIPv4Section: some View { + Section(header: Text(LocalizedStringKey("虚拟 IPv4 地址"))) { + Toggle(LocalizedStringKey("DHCP"), isOn: $model.dhcp) + + if !model.dhcp { + HStack(spacing: 0) { + Text(LocalizedStringKey("地址")) + Spacer() + ConfigGeneratorView.IPv4CidrField(ip: $model.ipv4, cidr: $model.cidr) + .fixedSize() + } + } + } + } + + private var networkSection: some View { + Section(header: Text(LocalizedStringKey("网络"))) { + HStack { + Text(LocalizedStringKey("名称")) + TextField("easytier", text: $model.networkName) + .multilineTextAlignment(.trailing) + .labelsHidden() + .frame(maxWidth: .infinity) + .textContentType(.none) + .disableAutocorrection(true) + } + + HStack { + Text(LocalizedStringKey("密码")) + TextField(LocalizedStringKey("选填"), text: $model.networkSecret) + .multilineTextAlignment(.trailing) + .labelsHidden() + .frame(maxWidth: .infinity) + .textContentType(.none) + .disableAutocorrection(true) + } + + Picker(LocalizedStringKey("节点模式"), selection: $model.peerMode) { + ForEach(PeerMode.allCases) { mode in + Text(mode.localizedTitle).tag(mode) + } + } + .pickerStyle(.segmented) + .padding(.vertical, 4) + + if model.peerMode == .manual { + ForEach($model.manualPeers) { $peer in + HStack { + TextField("udp://...", text: $peer.value) + .textFieldStyle(.plain) + .labelsHidden() + .textContentType(.none) + .disableAutocorrection(true) + + Spacer() + + Button { + model.manualPeers = ConfigGeneratorListBehavior.removing(peer.id, from: model.manualPeers) + } label: { + Image(systemName: "minus.circle.fill") + .foregroundColor(.red) + } + .buttonStyle(.plain) + } + } + + Button { + model.manualPeers = ConfigGeneratorListBehavior.appended(model.manualPeers, value: "udp://") + } label: { + HStack { + Image(systemName: "plus.circle.fill") + Text(LocalizedStringKey("添加节点")) + } + .foregroundColor(.blue) + } + .buttonStyle(.plain) + } + } + } + + private var navigationSection: some View { + Section { + Button(action: onOpenAdvanced) { + HStack { + Text(LocalizedStringKey("高级设置")) + Spacer() + Image(systemName: "chevron.right") + .foregroundColor(.secondary) + .font(.caption) + } + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + } + } +} diff --git a/Spotier/ConfigGenerator/ConfigGeneratorStore.swift b/Spotier/ConfigGenerator/ConfigGeneratorStore.swift new file mode 100644 index 0000000..abe13b1 --- /dev/null +++ b/Spotier/ConfigGenerator/ConfigGeneratorStore.swift @@ -0,0 +1,65 @@ +import Foundation + +enum ConfigGeneratorStore { + private static let configRepository: ConfigFileAccessing = ConfigFileRepository.shared + + static func loadModel( + editingFileURL: URL?, + forceReset: Bool, + currentModel: SpotierConfigModel, + lastLoadedURL: URL? + ) -> (model: SpotierConfigModel, lastLoadedURL: URL?) { + if forceReset { + ConfigDraftStore.shared.clearDraft(for: editingFileURL) + return (modelForFile(editingFileURL), editingFileURL) + } + + if let draft = ConfigDraftStore.shared.draft(for: editingFileURL) { + return (draft, editingFileURL) + } + + guard editingFileURL != lastLoadedURL else { + return (currentModel, lastLoadedURL) + } + + return (modelForFile(editingFileURL), editingFileURL) + } + + static func save(model: SpotierConfigModel, editingFileURL: URL?) throws { + let peers = peersToSave(for: model) + let content = SpotierConfigCodec.generate(from: model, peers: peers) + + if let editingFileURL { + try configRepository.updateContent(at: editingFileURL, content: content) + } else { + let name = model.instanceName.isEmpty ? "easytier.toml" : "\(model.instanceName).toml" + _ = try configRepository.createConfig(named: name, content: content) + } + + ConfigDraftStore.shared.clearDraft(for: editingFileURL) + } + + static func saveDraft(_ model: SpotierConfigModel, editingFileURL: URL?) { + ConfigDraftStore.shared.saveDraft(for: editingFileURL, model: model) + } + + static func clearDraft(editingFileURL: URL?) { + ConfigDraftStore.shared.clearDraft(for: editingFileURL) + } + + private static func modelForFile(_ editingFileURL: URL?) -> SpotierConfigModel { + guard let editingFileURL else { return SpotierConfigModel() } + return SpotierConfigCodec.parse(try! configRepository.readContent(at: editingFileURL)) + } + + private static func peersToSave(for model: SpotierConfigModel) -> [String] { + switch model.peerMode { + case .publicServer: + return [] + case .manual: + return model.manualPeers.values + case .standalone: + return [] + } + } +} diff --git a/Spotier/ConfigGenerator/SpotierConfigCodec.swift b/Spotier/ConfigGenerator/SpotierConfigCodec.swift new file mode 100644 index 0000000..e45198c --- /dev/null +++ b/Spotier/ConfigGenerator/SpotierConfigCodec.swift @@ -0,0 +1,246 @@ +import Foundation + +enum SpotierConfigCodec { + static func parse(_ content: String) -> SpotierConfigModel { + var model = SpotierConfigModel() + let lines = content.components(separatedBy: .newlines) + var currentSection = "" + + model.manualPeers = [] + model.listeners = [] + model.mappedListeners = [] + model.relayNetworkWhitelist = [] + + for line in lines { + let trimmed = line.trimmingCharacters(in: .whitespaces) + if trimmed.isEmpty || trimmed.hasPrefix("#") { continue } + + if trimmed.hasPrefix("[") { + if trimmed.hasPrefix("[[") { + currentSection = String(trimmed.dropFirst(2).dropLast(2)) + if currentSection == "proxy_network" { model.proxySubnets.append(SpotierConfigModel.ProxySubnet()) } + if currentSection == "port_forward" { model.portForwards.append(PortForwardRule()) } + } else { + currentSection = String(trimmed.dropFirst().dropLast()) + if currentSection == "vpn_portal_config" { model.enableVpnPortal = true } + } + continue + } + + let parts = trimmed.split(separator: "=", maxSplits: 1).map(String.init) + if parts.count != 2 { continue } + + let key = parts[0].trimmingCharacters(in: .whitespaces) + var val = parts[1].trimmingCharacters(in: .whitespaces) + if val.hasPrefix("\"") && val.hasSuffix("\"") { + val = String(val.dropFirst().dropLast()) + } + + if currentSection == "" || currentSection == "network_identity" || currentSection == "flags" { + switch key { + case "instance_name": + model.instanceName = val + case "instance_id": + model.instanceId = val + case "ipv4": + let components = val.split(separator: "/") + if components.count == 2 { + model.ipv4 = String(components[0]) + model.cidr = String(components[1]) + } + case "dhcp": + model.dhcp = (val == "true") + case "mtu": + model.mtu = Int(val) ?? 1380 + case "network_name": + model.networkName = val + case "network_secret": + model.networkSecret = val + case "listeners": + model.listeners = parseStringArray(val) + case "mapped_listeners": + model.mappedListeners = parseStringArray(val) + case "socks5_proxy": + model.enableSocks5 = true + if let portStr = val.split(separator: ":").last, let port = Int(portStr) { + model.socks5Port = port + } + case "exit_nodes": + model.exitNodes = parseStringArray(val) + case "routes": + model.enableManualRoutes = true + model.manualRoutes = parseStringArray(val) + case "latency_first": + model.latencyFirst = (val == "true") + case "disable_ipv6": + model.enableIPv6 = (val != "true") + case "disable_encryption": + model.enableEncryption = (val != "true") + case "use_smoltcp": + model.useSmoltcp = (val == "true") + case "no_tun": + model.noTun = (val == "true") + case "disable_p2p": + model.disableP2P = (val == "true") + case "p2p_only": + model.onlyP2P = (val == "true") + case "disable_udp_hole_punching": + model.disableUdpHolePunching = (val == "true") + case "enable_exit_node": + model.enableExitNode = (val == "true") + case "bind_device": + model.bindDevice = (val == "true") + case "enable_kcp_proxy": + model.enableKcpProxy = (val == "true") + case "disable_kcp_input": + model.disableKcpInput = (val == "true") + case "enable_quic_proxy": + model.enableQuicProxy = (val == "true") + case "disable_quic_input": + model.disableQuicInput = (val == "true") + case "relay_all_peer_rpc": + model.relayAllPeerRpc = (val == "true") + case "multi_thread": + model.multiThread = (val == "true") + case "proxy_forward_by_system": + model.proxyForwardBySystem = (val == "true") + case "disable_sym_hole_punching": + model.disableSymHolePunching = (val == "true") + case "enable_magic_dns": + model.enableMagicDns = (val == "true") + case "enable_private_mode": + model.enablePrivateMode = (val == "true") + case "relay_network_whitelist": + model.enableRelayNetworkWhitelist = true + model.relayNetworkWhitelist = .init(values: val.replacingOccurrences(of: "\"", with: "").components(separatedBy: " ").filter { !$0.isEmpty }) + default: + break + } + } else if currentSection == "peer" { + if key == "uri" { + model.manualPeers.append(EditableStringItem(value: val)) + model.peerMode = .manual + } + } else if currentSection == "vpn_portal_config" { + if key == "client_cidr" { model.vpnPortalClientCidr = val } + if key == "wireguard_listen", + let portStr = val.split(separator: ":").last, + let port = Int(portStr) { + model.vpnPortalListenPort = port + } + } else if currentSection == "proxy_network" { + if !model.proxySubnets.isEmpty { + var last = model.proxySubnets.removeLast() + if key == "cidr" { last.cidr = val } + model.proxySubnets.append(last) + } + } else if currentSection == "port_forward" { + if !model.portForwards.isEmpty { + var last = model.portForwards.removeLast() + if key == "proto" { last.protocolType = val.uppercased() } + if key == "bind_addr" { + let components = val.split(separator: ":") + if components.count >= 2 { + last.bindPort = String(components.last!) + last.bindIp = components.dropLast().joined(separator: ":") + } + } + if key == "dst_addr" { + let components = val.split(separator: ":") + if components.count >= 2 { + last.targetPort = String(components.last!) + last.targetIp = components.dropLast().joined(separator: ":") + } + } + model.portForwards.append(last) + } + } + } + + if model.listeners.isEmpty { + model.listeners = .init(values: SpotierConfigModel.defaultListenerValues) + } + return model + } + + static func generate(from model: SpotierConfigModel, peers: [String]) -> String { + var toml = """ + instance_name = "\(model.instanceName)" + instance_id = "\(model.instanceId)" + dhcp = \(model.dhcp) + """ + + let listeners = model.listeners.values.filter { !$0.isEmpty } + if !listeners.isEmpty { + toml += "\nlisteners = [\(quotedList(listeners))]" + } + + let mappedListeners = model.mappedListeners.values.filter { !$0.isEmpty } + if !mappedListeners.isEmpty { + toml += "\nmapped_listeners = [\(quotedList(mappedListeners))]" + } + + if !model.dhcp && !model.ipv4.isEmpty { + toml += "\nipv4 = \"\(model.ipv4)/\(model.cidr)\"" + } + + let exitNodes = model.exitNodes.values.filter { !$0.isEmpty } + if !exitNodes.isEmpty { + toml += "\nexit_nodes = [\(quotedList(exitNodes))]" + } + + let manualRoutes = model.manualRoutes.values.filter { !$0.isEmpty } + if model.enableManualRoutes && !manualRoutes.isEmpty { + toml += "\nroutes = [\(quotedList(manualRoutes))]" + } + + toml += """ + + [network_identity] + network_name = "\(model.networkName)" + network_secret = "\(model.networkSecret)" + """ + + for peer in peers where !peer.isEmpty { + toml += "\n\n[[peer]]\nuri = \"\(peer)\"" + } + + var flags = "" + flags += "\nmtu = \(model.mtu)" + if model.latencyFirst { flags += "\nlatency_first = true" } + if !model.enableIPv6 { flags += "\ndisable_ipv6 = true" } + if !model.enableEncryption { flags += "\ndisable_encryption = true" } + if model.disableP2P { flags += "\ndisable_p2p = true" } + if model.onlyP2P { flags += "\np2p_only = true" } + if model.disableUdpHolePunching { flags += "\ndisable_udp_hole_punching = true" } + if model.enableExitNode { flags += "\nenable_exit_node = true" } + if model.enableMagicDns { flags += "\nenable_magic_dns = true" } + if model.enablePrivateMode { flags += "\nenable_private_mode = true" } + + if !flags.isEmpty { + toml += "\n\n[flags]" + flags + } + + for subnet in model.proxySubnets where !subnet.cidr.isEmpty { + toml += """ + + [[proxy_network]] + cidr = "\(subnet.cidr)" + """ + } + + return toml + } + + private static func parseStringArray(_ value: String) -> [EditableStringItem] { + guard value.hasPrefix("[") && value.hasSuffix("]") else { return [] } + let inner = value.dropFirst().dropLast() + return .init(values: inner.split(separator: ",").map { + $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "\"", with: "") + }) + } + + private static func quotedList(_ values: [String]) -> String { + values.map { "\"\($0)\"" }.joined(separator: ", ") + } +} diff --git a/Spotier/ConfigGenerator/SpotierConfigDomain.swift b/Spotier/ConfigGenerator/SpotierConfigDomain.swift new file mode 100644 index 0000000..02cc0f3 --- /dev/null +++ b/Spotier/ConfigGenerator/SpotierConfigDomain.swift @@ -0,0 +1,170 @@ +import Foundation +import SwiftUI + +struct PortForwardRule: Identifiable, Equatable { + let id = UUID() + var protocolType: String = "TCP" + var bindIp: String = "0.0.0.0" + var bindPort: String = "" + var targetIp: String = "10.126.126.1" + var targetPort: String = "" +} + +struct EditableStringItem: Identifiable, Equatable { + let id: UUID + var value: String + + init(id: UUID = UUID(), value: String = "") { + self.id = id + self.value = value + } +} + +struct SpotierConfigModel: Equatable { + static let defaultListenerValues = [ + "udp://0.0.0.0:11010" + ] + + var instanceName: String = Host.current().localizedName! + var instanceId: String = UUID().uuidString.lowercased() + + mutating func regenerateInstanceId() { + instanceId = UUID().uuidString.lowercased() + } + + var dhcp: Bool = true + var ipv4: String = "10.126.126.4" + var cidr: String = "24" + var mtu: Int = 1380 + + var networkName: String = "easytier" + var networkSecret: String = "" + + var peerMode: PeerMode = .standalone + var manualPeers: [EditableStringItem] = [ + EditableStringItem(value: "udp://") + ] + + var listeners: [EditableStringItem] = Array(values: SpotierConfigModel.defaultListenerValues) + + var portForwards: [PortForwardRule] = [] + + var latencyFirst: Bool = false + var enableIPv6: Bool = true + var enableEncryption: Bool = true + var useSmoltcp: Bool = false + var noTun: Bool = false + var disableP2P: Bool = false + var disableUdpHolePunching: Bool = false + var enableExitNode: Bool = false + var enableKcpProxy: Bool = false + var enableQuicProxy: Bool = false + var rpcPort: Int = 15888 + + var disableKcpInput: Bool = false + var disableQuicInput: Bool = false + var disableUdp: Bool = false + var relayAllPeerRpc: Bool = false + var disableEntryNode: Bool = false + var enableSocks5: Bool = false + var socks5Port: Int = 1080 + var foreignNetworkWhitelist: String = "" + + var enableVpnPortal: Bool = false + var vpnPortalClientCidr: String = "10.14.14.0/24" + var vpnPortalListenPort: Int = 22022 + + struct ProxySubnet: Identifiable, Equatable { + let id = UUID() + var cidr: String = "192.168.1.0/24" + } + var proxySubnets: [ProxySubnet] = [] + + var enableManualRoutes: Bool = false + var manualRoutes: [EditableStringItem] = [] + var exitNodes: [EditableStringItem] = [] + var enableRelayNetworkWhitelist: Bool = false + var relayNetworkWhitelist: [EditableStringItem] = [] + var mappedListeners: [EditableStringItem] = [] + var enableOverrideDns: Bool = false + var overrideDns: [EditableStringItem] = [] + + var bindDevice: Bool = false + var multiThread: Bool = true + var proxyForwardBySystem: Bool = false + var disableSymHolePunching: Bool = false + var enableMagicDns: Bool = false + var enablePrivateMode: Bool = false + var onlyP2P: Bool = false +} + +extension SpotierConfigModel { + var vpnPortalIpBinding: String { + get { + CIDRStringBehavior.ip(from: vpnPortalClientCidr) + } + set { + vpnPortalClientCidr = CIDRStringBehavior.updatingIP(newValue, in: vpnPortalClientCidr) + } + } + + var vpnPortalCidrBinding: String { + get { + CIDRStringBehavior.mask(from: vpnPortalClientCidr) + } + set { + vpnPortalClientCidr = CIDRStringBehavior.updatingMask(newValue, in: vpnPortalClientCidr) + } + } +} + +extension Array where Element == EditableStringItem { + init(values: [String]) { + self = values.map { EditableStringItem(value: $0) } + } + + var values: [String] { + map(\.value) + } +} + +enum PeerMode: String, CaseIterable, Identifiable { + case publicServer = "公共服务器" + case manual = "手动" + case standalone = "独立" + + static let allCases: [PeerMode] = [.manual, .standalone] + + var id: String { rawValue } + + var localizedTitle: LocalizedStringKey { + LocalizedStringKey(rawValue) + } +} + +enum ConfigScreen: CaseIterable { + case main + case advanced +} + +enum ConfigGeneratorAdvancedSection: CaseIterable { + case general + case proxySubnet + case listeners + case manualRoutes + case exitNodes + case mappedListeners + case featureToggle +} + +enum ConfigGeneratorFeatureToggle: CaseIterable { + case latencyFirst + case disableIPv6 + case disableP2P + case onlyP2P + case enableExitNode + case disableEncryption + case disableUdpHolePunching + case enableMagicDNS + case enablePrivateMode +} diff --git a/Spotier/ConfigGeneratorView.swift b/Spotier/ConfigGeneratorView.swift new file mode 100644 index 0000000..722b22b --- /dev/null +++ b/Spotier/ConfigGeneratorView.swift @@ -0,0 +1,396 @@ +import SwiftUI +import AppKit + +struct ConfigGeneratorView: View { + @Binding var isPresented: Bool + var editingFileURL: URL? = nil // 支持传入文件进行编辑 + var onSave: () -> Void + + @State private var model = SpotierConfigModel() + @State private var lastLoadedURL: URL? = nil + + // Navigation + @State private var path: [ConfigScreen] = [.main] + + var body: some View { + ZStack { + mainView + .zIndex(0) + .allowsHitTesting(path.last == .main) + + if let screen = path.last, screen != .main { + + Group { + switch screen { + case .advanced: advancedView + default: EmptyView() + } + } + .background(Color(nsColor: .windowBackgroundColor)) + .zIndex(1) + .transition(.move(edge: .trailing)) + } + } + .animation(.default, value: path.last) + .onAppear { + if isPresented { + loadContent(forceReset: true) + } + } + .onChange(of: editingFileURL) { _ in + loadContent(forceReset: true) + } + .onChange(of: isPresented) { presented in + if presented { + loadContent(forceReset: true) + } + } + // Save draft on every change + .onChange(of: model) { newModel in + if isPresented { + ConfigGeneratorStore.saveDraft(newModel, editingFileURL: editingFileURL) + } + } + } + + private func loadContent(forceReset: Bool = false) { + let result = ConfigGeneratorStore.loadModel( + editingFileURL: editingFileURL, + forceReset: forceReset, + currentModel: model, + lastLoadedURL: lastLoadedURL + ) + model = result.model + lastLoadedURL = result.lastLoadedURL + } + + // MARK: - Advanced View + var advancedView: some View { + VStack(spacing: 0) { + header(title: LocalizedStringKey("高级设置"), leftBtn: LocalizedStringKey("返回"), leftRole: .cancel) { pop() } + + ConfigGeneratorAdvancedForm(model: $model) + } + } + + // MARK: - Main View + var mainView: some View { + VStack(spacing: 0) { + header(title: LocalizedStringKey("配置生成器"), leftBtn: LocalizedStringKey("取消"), leftRole: .destructive, rightBtn: LocalizedStringKey("生成")) { + // Clear draft on cancel so next open reads from disk + ConfigGeneratorStore.clearDraft(editingFileURL: editingFileURL) + withAnimation { isPresented = false } + } rightAction: { + generateAndSave() + } + + ConfigGeneratorMainForm( + model: $model, + onOpenAdvanced: { push(.advanced) } + ) + } + .background(Color(nsColor: .windowBackgroundColor)) + } + + // MARK: - Components + + private func header(title: LocalizedStringKey, leftBtn: LocalizedStringKey, leftRole: ButtonRole? = .cancel, rightBtn: LocalizedStringKey? = nil, leftAction: @escaping () -> Void, rightAction: (() -> Void)? = nil) -> some View { + UnifiedHeader(title: title) { + Button(leftBtn, role: leftRole, action: leftAction) + .buttonStyle(.bordered) + } right: { + if let rightBtn = rightBtn, let rightAction = rightAction { + Button(rightBtn, action: rightAction) + .buttonStyle(.borderedProminent) + .disabled(model.networkName.isEmpty) + } else { + Button(leftBtn) {}.buttonStyle(.bordered).hidden() + } + } + } + + // MARK: - Logic + + private func push(_ screen: ConfigScreen) { + // No animation block here, the state change triggers body animation + path.append(screen) + } + + private func pop() { + _ = path.popLast() + } + + private func generateAndSave() { + try! ConfigGeneratorStore.save(model: model, editingFileURL: editingFileURL) + onSave() + isPresented = false + } + + + // MARK: - Native IPv4 + CIDR Input (NSViewRepresentable) + + struct IPv4CidrField: NSViewRepresentable { + @Binding var ip: String + @Binding var cidr: String + + func makeNSView(context: Context) -> NSStackView { + let stack = NSStackView() + stack.orientation = .horizontal + stack.spacing = 1 + stack.alignment = .centerY + stack.distribution = .fill // 改回默认 fill,因为我们希望它尽量紧凑 + + // 关键:让 StackView 尽可能收缩宽度,不要被拉伸,这样 Spacer 才能把它推到右边 + stack.setHuggingPriority(.required, for: .horizontal) + + // --- 4 Octets --- + for i in 0..<4 { + let tf = MacOctetTextField() + tf.tag = i // 0, 1, 2, 3 + tf.placeholderString = "0" + tf.isBordered = false + tf.drawsBackground = false + tf.focusRingType = .none + tf.alignment = .center + tf.font = NSFont.monospacedDigitSystemFont(ofSize: 13, weight: .regular) + tf.delegate = context.coordinator + tf.backspaceDelegate = context.coordinator + + // 增加宽度以容纳 3 位数字。固定宽度 36pt 比较稳妥且整齐。 + tf.widthAnchor.constraint(equalToConstant: 36).isActive = true + + stack.addArrangedSubview(tf) + + // Dot separator + if i < 3 { + let dot = NSTextField(labelWithString: ".") + dot.textColor = .secondaryLabelColor + dot.font = NSFont.systemFont(ofSize: 13) + stack.addArrangedSubview(dot) + } + } + + // --- Divider --- + let slash = NSTextField(labelWithString: " / ") + slash.textColor = .secondaryLabelColor + slash.font = NSFont.systemFont(ofSize: 13) + stack.addArrangedSubview(slash) + + // --- CIDR Menu --- + let popup = NSPopUpButton() + popup.bezelStyle = .inline + popup.isBordered = false + popup.font = NSFont.monospacedDigitSystemFont(ofSize: 13, weight: .regular) + popup.addItems(withTitles: ["0", "8", "16", "24", "32"]) + popup.target = context.coordinator + popup.action = #selector(Coordinator.cidrChanged(_:)) + + stack.addArrangedSubview(popup) + + context.coordinator.stackView = stack + return stack + } + + func updateNSView(_ nsView: NSStackView, context: Context) { + context.coordinator.updateFields(from: ip, cidr: cidr) + } + + func makeCoordinator() -> Coordinator { + Coordinator(parent: self) + } + + class Coordinator: OctetFieldCoordinator { + var parent: IPv4CidrField + + init(parent: IPv4CidrField) { + self.parent = parent + } + + override func syncToModel() { + parent.ip = currentIP() + } + + func updateFields(from ip: String, cidr: String) { + updateFields(from: ip) + guard !isInternalUpdate, let stack = stackView else { return } + for view in stack.arrangedSubviews { + if let popup = view as? NSPopUpButton { + let title = cidr.isEmpty ? "24" : cidr + if popup.titleOfSelectedItem != title { + popup.selectItem(withTitle: title) + } + } else if let popup = view as? NSPopUpButton { + popup.selectItem(withTitle: cidr) + } + } + } + + @objc func cidrChanged(_ sender: NSPopUpButton) { + parent.cidr = sender.titleOfSelectedItem! + } + } + } + + // MARK: - Native IPv4 Input (No CIDR) + struct IPv4Field: NSViewRepresentable { + @Binding var ip: String + + func makeNSView(context: Context) -> NSStackView { + let stack = NSStackView() + stack.orientation = .horizontal + stack.spacing = 1 + stack.alignment = .centerY + stack.distribution = .fill + stack.setHuggingPriority(.required, for: .horizontal) + + for i in 0..<4 { + let tf = MacOctetTextField() + tf.tag = i + tf.placeholderString = "0" + tf.isBordered = false + tf.drawsBackground = false + tf.focusRingType = .none + tf.alignment = .center + tf.font = NSFont.monospacedDigitSystemFont(ofSize: 13, weight: .regular) + tf.delegate = context.coordinator + tf.backspaceDelegate = context.coordinator + tf.widthAnchor.constraint(equalToConstant: 36).isActive = true + stack.addArrangedSubview(tf) + + if i < 3 { + let dot = NSTextField(labelWithString: ".") + dot.textColor = .secondaryLabelColor + dot.font = NSFont.systemFont(ofSize: 13) + stack.addArrangedSubview(dot) + } + } + + context.coordinator.stackView = stack + return stack + } + + func updateNSView(_ nsView: NSStackView, context: Context) { + context.coordinator.updateFields(from: ip) + } + + func makeCoordinator() -> Coordinator { + Coordinator(parent: self) + } + + class Coordinator: OctetFieldCoordinator { + var parent: IPv4Field + + init(parent: IPv4Field) { + self.parent = parent + } + + override func syncToModel() { + parent.ip = currentIP() + } + } + } + + class OctetFieldCoordinator: NSObject, NSTextFieldDelegate, OctetTextFieldDelegate { + weak var stackView: NSStackView? + var isInternalUpdate = false + + func updateFields(from ip: String) { + guard !isInternalUpdate, let stack = stackView else { return } + + let parts = ip.split(separator: ".", omittingEmptySubsequences: false).map(String.init) + var tfIndex = 0 + for view in stack.arrangedSubviews { + guard let tf = view as? NSTextField, view is MacOctetTextField else { continue } + let val = tfIndex < parts.count ? parts[tfIndex] : "" + if tf.stringValue != val { + tf.stringValue = val + } + tfIndex += 1 + } + } + + func currentIP() -> String { + guard let stack = stackView else { return "" } + var parts = [String]() + for view in stack.arrangedSubviews { + if let tf = view as? MacOctetTextField { + parts.append(tf.stringValue) + } + } + while parts.count < 4 { parts.append("") } + return parts.joined(separator: ".") + } + + func syncToModel() {} + + func controlTextDidChange(_ obj: Notification) { + guard let tf = obj.object as? MacOctetTextField else { return } + + let filtered = tf.stringValue.filter { "0123456789".contains($0) } + if filtered != tf.stringValue { + tf.stringValue = filtered + } + if tf.stringValue.count > 3 { + tf.stringValue = String(tf.stringValue.prefix(3)) + } + if let num = Int(tf.stringValue), num > 255 { + tf.stringValue = "255" + } + + isInternalUpdate = true + syncToModel() + isInternalUpdate = false + + if tf.stringValue.count == 3 { + focusField(at: tf.tag + 1) + } + } + + func didPressBackspaceOnEmpty(in textField: MacOctetTextField) { + let prevIndex = textField.tag - 1 + if prevIndex >= 0 { + focusField(at: prevIndex, deleteLastChar: true) + } + } + + func focusField(at index: Int, deleteLastChar: Bool = false) { + guard let stack = stackView, index >= 0 && index < 4 else { return } + let targetView = stack.arrangedSubviews.compactMap { $0 as? MacOctetTextField }.first { $0.tag == index } + guard let tf = targetView else { return } + + tf.window?.makeFirstResponder(tf) + if deleteLastChar && !tf.stringValue.isEmpty { + tf.stringValue = String(tf.stringValue.dropLast()) + isInternalUpdate = true + syncToModel() + isInternalUpdate = false + } + if let editor = tf.currentEditor() { + let length = tf.stringValue.count + editor.selectedRange = NSRange(location: length, length: 0) + } + } + + func control(_ control: NSControl, textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool { + if commandSelector == #selector(NSStandardKeyBindingResponding.deleteBackward(_:)), + let tf = control as? MacOctetTextField, + tf.stringValue.isEmpty { + didPressBackspaceOnEmpty(in: tf) + return true + } + return false + } + } + + // 代理协议:用于传递 Backspace 事件 + protocol OctetTextFieldDelegate: AnyObject { + func didPressBackspaceOnEmpty(in textField: MacOctetTextField) + } + + // 自定义 NSTextField 捕获 Backspace + class MacOctetTextField: NSTextField { + weak var backspaceDelegate: OctetTextFieldDelegate? + // Delegate handles doCommandBy for backspace + } + +} diff --git a/Spotier/ConfigManager.swift b/Spotier/ConfigManager.swift new file mode 100644 index 0000000..62ebd26 --- /dev/null +++ b/Spotier/ConfigManager.swift @@ -0,0 +1,313 @@ +import Foundation +import Combine +import SwiftUI +import AppKit + +enum ConfigAccessError: LocalizedError { + case missingDirectory + case fileAlreadyExists(String) + + var errorDescription: String? { + switch self { + case .missingDirectory: + return "请先选择配置目录" + case let .fileAlreadyExists(name): + return "文件已存在: \(name)" + } + } +} + +class ConfigManager: ObservableObject { + static let shared = ConfigManager() + + @Published var configFiles: [URL] = [] + @AppStorage("custom_config_path") var customPathString: String = "" + @AppStorage("custom_config_bookmark") var customPathBookmark: Data? + @AppStorage("icloud_drive_enabled") var iCloudDriveEnabled: Bool = false + private let directoryAccess = ConfigDirectoryAccess() + private var localDirectory: URL? { + directoryAccess.defaultLocalDirectory() + } + private var iCloudDriveDirectory: URL? { + directoryAccess.iCloudDriveDirectory() + } + private var legacyICloudDriveDirectory: URL? { + directoryAccess.legacyICloudDriveDirectory() + } + + var currentDirectory: URL? { + iCloudDriveEnabled ? iCloudDriveDirectory : directoryFromUserPreference() + } + + private init() { + migrateLegacyICloudDriveDirectoryIfNeeded() + + let bookmarkPath = resolvedBookmarkPathForInitialization() + var resolvedPath = customPathString + var resolvedBookmark = customPathBookmark + + if let bookmarkPath, !resolvedPath.isEmpty, bookmarkPath != resolvedPath { + resolvedBookmark = nil + print("[ConfigManager] 清除残留书签: \(bookmarkPath) != \(customPathString)") + } + + if iCloudDriveEnabled, let iCloudDriveDirectory { + resolvedPath = iCloudDriveDirectory.path + resolvedBookmark = nil + } else if resolvedPath.isEmpty, let localDirectory { + resolvedPath = localDirectory.path + } + + customPathString = resolvedPath + customPathBookmark = resolvedBookmark + refreshConfigs() + } + + func selectCustomFolder() { + if iCloudDriveEnabled { + print("iCloud Drive 存储已启用,已锁定配置目录。") + return + } + + let panel = NSOpenPanel() + panel.canChooseFiles = false + panel.canChooseDirectories = true + panel.allowsMultipleSelection = false + guard panel.runModal() == .OK, let url = panel.url else { return } + + customPathString = url.path + + do { + customPathBookmark = try url.bookmarkData( + options: .withSecurityScope, + includingResourceValuesForKeys: nil, + relativeTo: nil + ) + } catch { + customPathBookmark = nil + print("创建目录书签失败: \(error)") + } + + refreshConfigs() + } + + func openiCloudFolder() { + guard let url = currentDirectory else { return } + // 使用 selectFile 在 Finder 中显示目录,避免沙盒权限问题 + NSWorkspace.shared.selectFile(nil, inFileViewerRootedAtPath: url.path) + } + + private var isICloudEnabled: Bool { + FileManager.default.ubiquityIdentityToken != nil + } + + func enableICloudDrive() { + guard !iCloudDriveEnabled else { return } + + guard isICloudEnabled else { + print("未检测到 iCloud 账户,无法启用 iCloud Drive。") + return + } + + enableICloudDriveStorage() + } + + func disableICloudDrive() { + guard iCloudDriveEnabled else { return } + + iCloudDriveEnabled = false + + if customPathString.isEmpty, let targetDir = localDirectory { + customPathString = targetDir.path + } + + _ = refreshConfigs() + } + + @discardableResult + func refreshConfigs() -> [URL] { + guard let directory = currentDirectory else { + configFiles = [] + return [] + } + + do { + let tomlFiles = try directoryAccess.withScopedAccess(to: directory) { directoryURL in + if !FileManager.default.fileExists(atPath: directoryURL.path) { + try FileManager.default.createDirectory(at: directoryURL, withIntermediateDirectories: true) + } + + return try FileManager.default + .contentsOfDirectory(at: directoryURL, includingPropertiesForKeys: nil) + .filter { $0.pathExtension == "toml" } + .sorted(by: { $0.lastPathComponent < $1.lastPathComponent }) + } + + configFiles = tomlFiles + return tomlFiles + } catch { + print("读取配置文件列表失败: \(error) 路径: \(directory.path)") + configFiles = [] + return [] + } + } + + func readConfigContent(_ fileURL: URL) throws -> String { + try directoryAccess.withScopedAccess(to: currentDirectory) { _ in + return try String(contentsOf: fileURL, encoding: .utf8) + } + } + + func createConfig(named filename: String, content: String) throws -> URL { + try directoryAccess.withScopedAccess(to: currentDirectory) { directoryURL in + let fileURL = directoryURL.appendingPathComponent(filename) + guard !FileManager.default.fileExists(atPath: fileURL.path) else { + throw ConfigAccessError.fileAlreadyExists(filename) + } + + try content.write(to: fileURL, atomically: true, encoding: .utf8) + return fileURL + } + } + + func updateConfig(_ fileURL: URL, content: String) throws { + try directoryAccess.withScopedAccess(to: currentDirectory) { _ in + try content.write(to: fileURL, atomically: true, encoding: .utf8) + } + } + + func deleteConfig(_ fileURL: URL) { + do { + try directoryAccess.withScopedAccess(to: currentDirectory) { _ in + try FileManager.default.removeItem(at: fileURL) + } + } catch { + print("删除配置失败: \(error)") + } + + refreshConfigs() + } + + private func directoryFromUserPreference() -> URL? { + // 1. 优先尝试从书签恢复(支持沙盒访问) + if let bookmark = customPathBookmark { + var isStale = false + do { + let url = try URL( + resolvingBookmarkData: bookmark, + options: .withSecurityScope, + relativeTo: nil, + bookmarkDataIsStale: &isStale + ) + + if isStale { + customPathBookmark = try url.bookmarkData( + options: .withSecurityScope, + includingResourceValuesForKeys: nil, + relativeTo: nil + ) + } + return url + } catch { + print("解析书签失败: \(error)") + customPathBookmark = nil + } + } + + if !customPathString.isEmpty { + return URL(fileURLWithPath: customPathString) + } + + return localDirectory + } + + private func enableICloudDriveStorage() { + guard let targetDir = iCloudDriveDirectory else { return } + + migrateLegacyICloudDriveDirectoryIfNeeded() + + let sourceDir = directoryFromUserPreference() + do { + try migrateConfigsToDefaultDirectory(from: sourceDir, to: targetDir) + } catch { + print("迁移配置到 iCloud Drive 失败: \(error)") + return + } + + customPathBookmark = nil + customPathString = targetDir.path + iCloudDriveEnabled = true + _ = refreshConfigs() + } + + private func migrateLegacyICloudDriveDirectoryIfNeeded() { + guard + let legacyDir = legacyICloudDriveDirectory, + let targetDir = iCloudDriveDirectory, + FileManager.default.fileExists(atPath: legacyDir.path), + legacyDir.standardizedFileURL != targetDir.standardizedFileURL + else { + return + } + + do { + try migrateConfigsToDefaultDirectory(from: legacyDir, to: targetDir) + try FileManager.default.removeItem(at: legacyDir) + } catch { + print("迁移旧 iCloud Drive Configs 目录失败: \(error)") + } + } + + private func migrateConfigsToDefaultDirectory(from sourceDir: URL?, to targetDir: URL) throws { + guard let sourceDir else { return } + if sourceDir.standardizedFileURL == targetDir.standardizedFileURL { return } + + if !FileManager.default.fileExists(atPath: targetDir.path) { + try FileManager.default.createDirectory(at: targetDir, withIntermediateDirectories: true) + } + + let isScoped = sourceDir.startAccessingSecurityScopedResource() + defer { if isScoped { sourceDir.stopAccessingSecurityScopedResource() } } + + let items = try FileManager.default.contentsOfDirectory( + at: sourceDir, + includingPropertiesForKeys: [.contentModificationDateKey], + options: [.skipsHiddenFiles] + ) + + for sourceFile in items where sourceFile.pathExtension.lowercased() == "toml" { + let targetFile = targetDir.appendingPathComponent(sourceFile.lastPathComponent) + + if !FileManager.default.fileExists(atPath: targetFile.path) { + try FileManager.default.copyItem(at: sourceFile, to: targetFile) + continue + } + + let sourceDate = try sourceFile.resourceValues(forKeys: [.contentModificationDateKey]).contentModificationDate + let targetDate = try targetFile.resourceValues(forKeys: [.contentModificationDateKey]).contentModificationDate + + if let sourceDate, let targetDate, sourceDate <= targetDate { + continue + } + + try FileManager.default.removeItem(at: targetFile) + try FileManager.default.copyItem(at: sourceFile, to: targetFile) + } + } + + private func resolvedBookmarkPathForInitialization() -> String? { + guard let bookmark = customPathBookmark, !customPathString.isEmpty else { return nil } + + var isStale = false + do { + return try URL( + resolvingBookmarkData: bookmark, + options: .withSecurityScope, + relativeTo: nil, + bookmarkDataIsStale: &isStale + ).path + } catch { + return nil + } + } +} diff --git a/Spotier/ContentView.swift b/Spotier/ContentView.swift new file mode 100644 index 0000000..c955a5e --- /dev/null +++ b/Spotier/ContentView.swift @@ -0,0 +1,194 @@ +import SwiftUI +import Combine + +struct ContentView: View { + @StateObject private var runner = SpotierRunner.shared + @ObservedObject private var vpnManager = VPNManager.shared + @StateObject private var configManager = ConfigManager.shared + @StateObject private var dashboardState = MainDashboardState() + + var body: some View { + ZStack { + if runner.isWindowVisible { + VStack(spacing: 0) { + MainDashboardHeader( + configFiles: configManager.configFiles, + selectedConfig: dashboardState.selectedConfig, + iCloudDriveEnabled: configManager.iCloudDriveEnabled, + hasICloudIdentity: FileManager.default.ubiquityIdentityToken != nil, + onSelectConfig: dashboardState.selectConfig, + onCreateNetwork: dashboardState.openCreatePrompt, + onOpenGenerator: { dashboardState.openOverlay(.generator) }, + onOpenEditor: dashboardState.openEditor, + onDisableICloudDrive: { configManager.disableICloudDrive() }, + onEnableICloudDrive: { configManager.enableICloudDrive() }, + onSelectFolder: { configManager.selectCustomFolder() }, + onOpenFolder: { configManager.openiCloudFolder() }, + onDeleteSelected: dashboardState.deleteSelectedConfig, + onOpenLog: { dashboardState.openOverlay(.log) }, + onOpenSettings: { dashboardState.openOverlay(.settings) }, + onQuit: { NSApplication.shared.terminate(nil) } + ) + + ZStack { + if !dashboardState.isAnyOverlayShown { + contentArea + } else { + // 覆盖层显示时,用透明占位保持几何结构稳固 + Color.clear + } + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + .frame(width: DashboardLayoutMetrics.windowWidth, height: DashboardLayoutMetrics.windowHeight, alignment: .top) + .background(Color(nsColor: .windowBackgroundColor).opacity(0.01)) // 确保点击区域 + } else { + Color.clear + .frame(width: DashboardLayoutMetrics.windowWidth, height: DashboardLayoutMetrics.windowHeight) + } + overlayView + } + .onAppear { + // 加载 VPN 配置 + VPNManager.shared.loadManager() + + + // 初始启动时刷新一次列表 + dashboardState.handleConfigFilesChanged(configManager.refreshConfigs()) + + // 设置窗口可见,开始动画 + runner.isWindowVisible = true + } + .onChange(of: configManager.configFiles) { dashboardState.handleConfigFilesChanged($0) } + .onDisappear { + runner.isWindowVisible = false + } + .lockVerticalScroll() // 🔒 Global Lock: Prevents the entire window container from bouncing + } + + private var contentArea: some View { + GeometryReader { geo in + ZStack { + // 1) 水波纹层 (放在最底层) - UIKit 高性能实现 + if runner.isRunning && runner.isWindowVisible { + RippleRingsView(isVisible: true, duration: 4.0, maxScale: 5.5) + .frame(width: DashboardLayoutMetrics.rippleSize, height: DashboardLayoutMetrics.rippleSize) + .position( + x: geo.size.width / 2, + y: DashboardLayoutMetrics.buttonCenterY( + isRunning: runner.isRunning, + contentHeight: geo.size.height + ) + ) + .allowsHitTesting(false) + .transition(.opacity) // Fade in + .zIndex(0) + } + + // 2) 节点列表区域 - 使用独立组件隔离刷新 + if runner.isRunning && runner.isWindowVisible && !dashboardState.isAnyOverlayShown { + PeerListArea() + .id(runner.sessionID) + .frame(width: geo.size.width, height: geo.size.height) + .transition(.move(edge: .bottom).combined(with: .opacity)) + .zIndex(1) + } + + // 3) 启动按钮与网速仪表盘层 - 使用独立组件隔离刷新 + if runner.isWindowVisible { + SpeedDashboard( + geoSize: geo.size, + buttonCenterY: DashboardLayoutMetrics.buttonCenterY( + isRunning: runner.isRunning, + contentHeight: geo.size.height + ), + isPaused: dashboardState.isAnyOverlayShown, + isConnected: vpnManager.isConnected, + status: vpnManager.status, + canToggleConnection: dashboardState.canToggleConnection, + onToggleConnection: dashboardState.toggleConnection + ) + .zIndex(10) + } + } + .animation(.spring(response: 1.0, dampingFraction: 0.8), value: runner.isRunning) + .animation(.spring(response: 0.55, dampingFraction: 0.8), value: dashboardState.overlayRoute) + .blur(radius: dashboardState.isAnyOverlayShown ? 10 : 0) + .opacity(dashboardState.isAnyOverlayShown ? 0.3 : 1.0) + } + } + + @ViewBuilder + private var overlayView: some View { + if let route = dashboardState.overlayRoute { + switch route { + case .log: + LogView(isPresented: overlayBinding(for: .log)) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(.regularMaterial) + .compositingGroup() + .zIndex(100) + .transition(.move(edge: .bottom)) + + case .settings: + SettingsView(isPresented: overlayBinding(for: .settings)) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(.regularMaterial) + .zIndex(101) + .transition(.move(edge: .bottom)) + + case let .editor(url): + ConfigEditorView( + isPresented: Binding( + get: { dashboardState.editingConfigURL == url }, + set: { if !$0 { dashboardState.closeOverlay() } } + ), + fileURL: url + ) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(.regularMaterial) + .zIndex(102) + .transition(.move(edge: .bottom)) + + case .generator: + ConfigGeneratorView( + isPresented: overlayBinding(for: .generator), + editingFileURL: dashboardState.selectedConfig, + onSave: { dashboardState.handleConfigFilesChanged(configManager.refreshConfigs()) } + ) + .id(dashboardState.selectedConfig) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .zIndex(103) + .transition(.move(edge: .bottom)) + + case .createPrompt: + Color.black.opacity(0.3) + .zIndex(104) + .onTapGesture { dashboardState.closeCreatePrompt() } + + CreateConfigPrompt( + newConfigName: $dashboardState.newConfigName, + errorMessage: dashboardState.createConfigError, + onCancel: dashboardState.closeCreatePrompt, + onConfirm: dashboardState.createConfig + ) + .zIndex(105) + .transition(.scale.combined(with: .opacity)) + } + } + } + // MARK: - Helper Functions + + private func overlayBinding(for route: DashboardOverlayRoute) -> Binding { + Binding( + get: { dashboardState.isPresenting(route) }, + set: { isPresented in + if isPresented { + dashboardState.openOverlay(route) + } else if dashboardState.isPresenting(route) { + dashboardState.closeOverlay() + } + } + ) + } +} diff --git a/Spotier/CopyableDetailRow.swift b/Spotier/CopyableDetailRow.swift new file mode 100644 index 0000000..afb5c05 --- /dev/null +++ b/Spotier/CopyableDetailRow.swift @@ -0,0 +1,58 @@ +import SwiftUI +import AppKit + +struct CopyableDetailRow: View { + let label: LocalizedStringKey + let value: String + var isMonospaced: Bool = false + + @State private var isCopied = false + + var body: some View { + Button(action: copyValue) { + HStack(alignment: .center, spacing: 0) { + Text(label) + .font(.system(size: 13)) + .foregroundColor(.primary) + .lineLimit(1) + .fixedSize(horizontal: true, vertical: false) + .layoutPriority(1) + + Spacer(minLength: 8) + + Text(LocalizedStringKey(value)) + .font( + isMonospaced + ? .system(size: 13, weight: .regular, design: .monospaced) + : .system(size: 13) + ) + .foregroundColor(.secondary) + .lineLimit(1) + .truncationMode(.tail) + .layoutPriority(0) + .opacity(isCopied ? 0.5 : 1.0) + } + .padding(.vertical, 2) + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + .help(value) + } + + private func copyValue() { + let pasteboard = NSPasteboard.general + pasteboard.clearContents() + pasteboard.setString(value, forType: .string) + + withAnimation(.easeInOut(duration: 0.1)) { + isCopied = true + } + + Task { @MainActor in + try? await Task.sleep(for: .seconds(0.2)) + withAnimation { + isCopied = false + } + } + } +} diff --git a/EasyTier/CoreDownloader.swift b/Spotier/CoreDownloader.swift similarity index 100% rename from EasyTier/CoreDownloader.swift rename to Spotier/CoreDownloader.swift diff --git a/Spotier/EasyTierShared.swift b/Spotier/EasyTierShared.swift new file mode 100644 index 0000000..c68cf02 --- /dev/null +++ b/Spotier/EasyTierShared.swift @@ -0,0 +1,237 @@ +import Foundation +import NetworkExtension +import os + +public let APP_BUNDLE_ID: String = "com.alick.spotier" +public let APP_GROUP_ID: String = "group.com.alick.spotier" +public let ICLOUD_CONTAINER_ID: String = "iCloud.com.alick.spotier" +public let LOG_FILENAME: String = "easytier.log" +public let LOG_FILE_TRIM_THRESHOLD_BYTES: UInt64 = 64 * 1024 * 1024 + +public func appGroupDefaults() -> UserDefaults? { + UserDefaults(suiteName: APP_GROUP_ID) +} + +public func appGroupContainerURL(fileManager: FileManager = .default) -> URL? { + fileManager.containerURL(forSecurityApplicationGroupIdentifier: APP_GROUP_ID) +} + +public func appGroupFileURL(_ filename: String, fileManager: FileManager = .default) -> URL? { + appGroupContainerURL(fileManager: fileManager)?.appendingPathComponent(filename) +} + +public enum LogLevel: String, Codable, CaseIterable { + case off = "off" + case trace = "trace" + case debug = "debug" + case info = "info" + case warn = "warn" + case error = "error" +} + +public enum StoredLogLevel: String, Codable, CaseIterable { + case off = "OFF" + case error = "ERROR" + case warn = "WARN" + case info = "INFO" + case debug = "DEBUG" + case trace = "TRACE" + + public init(storedValue: String) { + self = StoredLogLevel(rawValue: storedValue.uppercased()) ?? .info + } + + public var effectiveLogLevel: LogLevel { + switch self { + case .off: return .off + case .error: return .error + case .warn: return .warn + case .info: return .info + case .debug: return .debug + case .trace: return .trace + } + } + + public func allows(_ logLevel: LogLevel) -> Bool { + rank(of: logLevel) <= rank + } + + private var rank: Int { + switch self { + case .off: return 0 + case .error: return 1 + case .warn: return 2 + case .info: return 3 + case .debug: return 4 + case .trace: return 5 + } + } + + private func rank(of logLevel: LogLevel) -> Int { + switch logLevel { + case .off: return 0 + case .error: return 1 + case .warn: return 2 + case .info: return 3 + case .debug: return 4 + case .trace: return 5 + } + } +} + +public func readStoredLogLevel(defaults: UserDefaults? = appGroupDefaults()) -> StoredLogLevel { + StoredLogLevel(storedValue: defaults?.string(forKey: "logLevel") ?? StoredLogLevel.info.rawValue) +} + +public func writeStoredLogLevel(_ level: StoredLogLevel, defaults: UserDefaults? = appGroupDefaults()) { + defaults?.set(level.rawValue, forKey: "logLevel") +} + +public struct EasyTierOptions: Codable { + public var config: String = "" + public var ipv4: String? + public var ipv6: String? + public var mtu: Int? + public var routes: [String] = [] + public var logLevel: LogLevel = .info + public var magicDNS: Bool = false + public var dns: [String] = [] + + public init() {} +} + +public struct TunnelNetworkSettingsSnapshot: Codable, Equatable { + public struct IPv4Subnet: Codable, Hashable { + public var address: String + public var subnetMask: String + + public init(address: String, subnetMask: String) { + self.address = address + self.subnetMask = subnetMask + } + } + + public struct IPv6Subnet: Codable, Hashable { + public var address: String + public var networkPrefixLength: Int + + public init(address: String, networkPrefixLength: Int) { + self.address = address + self.networkPrefixLength = networkPrefixLength + } + } + + public struct IPv4: Codable, Equatable { + public var subnets: Set + public var includedRoutes: Set? + public var excludedRoutes: Set? + + public init( + addresses: [String], + subnetMasks: [String], + includedRoutes: [IPv4Subnet]? = nil, + excludedRoutes: [IPv4Subnet]? = nil + ) { + subnets = .init() + for (index, address) in addresses.enumerated() { + subnets.insert( + IPv4Subnet(address: address, subnetMask: subnetMasks[index]) + ) + } + if let includedRoutes, !includedRoutes.isEmpty { + self.includedRoutes = Set(includedRoutes) + } + if let excludedRoutes, !excludedRoutes.isEmpty { + self.excludedRoutes = Set(excludedRoutes) + } + } + } + + public struct IPv6: Codable, Equatable { + public var subnets: Set + public var includedRoutes: Set? + public var excludedRoutes: Set? + + public init( + addresses: [String], + networkPrefixLengths: [Int], + includedRoutes: [IPv6Subnet]? = nil, + excludedRoutes: [IPv6Subnet]? = nil + ) { + subnets = .init() + for (index, address) in addresses.enumerated() { + subnets.insert( + IPv6Subnet( + address: address, + networkPrefixLength: networkPrefixLengths[index] + ) + ) + } + if let includedRoutes { + self.includedRoutes = Set(includedRoutes) + } + if let excludedRoutes { + self.excludedRoutes = Set(excludedRoutes) + } + } + } + + public struct DNS: Codable, Equatable { + public var servers: Set + public var searchDomains: Set? + public var matchDomains: Set? + + public init( + servers: [String], + searchDomains: [String]? = nil, + matchDomains: [String]? = nil + ) { + self.servers = Set(servers) + if let searchDomains { + self.searchDomains = Set(searchDomains) + } + if let matchDomains { + self.matchDomains = Set(matchDomains) + } + } + } + + public var ipv4: IPv4? + public var ipv6: IPv6? + public var dns: DNS? + public var mtu: UInt32? + + public init(ipv4: IPv4? = nil, ipv6: IPv6? = nil, dns: DNS? = nil, mtu: UInt32? = nil) { + self.ipv4 = ipv4 + self.ipv6 = ipv6 + self.dns = dns + self.mtu = mtu + } +} + +public enum ProviderCommand: String, Codable, CaseIterable { + case exportOSLog = "export_oslog" + case runningInfo = "running_info" + case lastNetworkSettings = "last_network_settings" +} + +public func connectWithManager(_ manager: NETunnelProviderManager, logger: Logger? = nil) async throws { + manager.isEnabled = true + if let defaults = appGroupDefaults() { + manager.protocolConfiguration?.includeAllNetworks = defaults.bool(forKey: "includeAllNetworks") + manager.protocolConfiguration?.excludeLocalNetworks = defaults.bool(forKey: "excludeLocalNetworks") + if #available(iOS 16.4, *) { + manager.protocolConfiguration?.excludeCellularServices = defaults.bool(forKey: "excludeCellularServices") + manager.protocolConfiguration?.excludeAPNs = defaults.bool(forKey: "excludeAPNs") + } + if #available(iOS 17.4, macOS 14.4, *) { + manager.protocolConfiguration?.excludeDeviceCommunication = defaults.bool(forKey: "excludeDeviceCommunication") + } + manager.protocolConfiguration?.enforceRoutes = defaults.bool(forKey: "enforceRoutes") + if let logger { + logger.debug("connect with protocol configuration: \(manager.protocolConfiguration)") + } + } + try await manager.saveToPreferences() + try manager.connection.startVPNTunnel() +} diff --git a/EasyTier/EventListView.swift b/Spotier/EventListView.swift similarity index 89% rename from EasyTier/EventListView.swift rename to Spotier/EventListView.swift index ce6c717..d14f55e 100644 --- a/EasyTier/EventListView.swift +++ b/Spotier/EventListView.swift @@ -64,7 +64,7 @@ struct EventListView: View { .padding(.trailing, 8) VStack(alignment: .leading, spacing: 8) { - Text(event.type.rawValue) + Text(event.name) .font(.system(size: 16, weight: .bold)) CharWrappingJSONView(json: event.details, highlights: event.highlights ?? [], eventId: event.id) @@ -83,18 +83,13 @@ struct EventListView: View { .scrollContentBackground(.hidden) .listStyle(.plain) - Button { + FloatingScrollTopButton(action: { if let topEvent = events.last { withAnimation(.easeInOut(duration: 0.3)) { proxy.scrollTo(topEvent.id, anchor: .top) } } - } label: { - Image(systemName: "arrow.up") - .font(.system(size: 20, weight: .bold)) - .modifier(FlatCircleButtonModifier()) - } - .buttonStyle(.plain) + }) .padding(16) } } @@ -175,20 +170,3 @@ struct CharWrappingJSONView: NSViewRepresentable { return attributed } } - -struct FlatCircleButtonModifier: ViewModifier { - func body(content: Content) -> some View { - content - .foregroundStyle(.white) - .padding(12) // 保持足够的点击区域 - .background( - Circle() - .fill(Color.blue) - ) - .contentShape(Circle()) - .onHover { isHovering in - if isHovering { NSCursor.pointingHand.push() } - else { NSCursor.pop() } - } - } -} diff --git a/EasyTier/Extensions.swift b/Spotier/Extensions.swift similarity index 100% rename from EasyTier/Extensions.swift rename to Spotier/Extensions.swift diff --git a/Spotier/FloatingScrollTopButton.swift b/Spotier/FloatingScrollTopButton.swift new file mode 100644 index 0000000..6c7a13f --- /dev/null +++ b/Spotier/FloatingScrollTopButton.swift @@ -0,0 +1,28 @@ +import SwiftUI + +struct FloatingScrollTopButton: View { + let action: () -> Void + var size: CGFloat = 20 + + var body: some View { + Button(action: action) { + Image(systemName: "arrow.up") + .font(.system(size: size, weight: .bold)) + .foregroundStyle(.white) + .padding(12) + .background( + Circle() + .fill(Color.blue) + ) + .contentShape(Circle()) + } + .buttonStyle(.plain) + .onHover { isHovering in + if isHovering { + NSCursor.pointingHand.push() + } else { + NSCursor.pop() + } + } + } +} diff --git a/EasyTier/HelperProtocol.swift b/Spotier/HelperProtocol.swift similarity index 100% rename from EasyTier/HelperProtocol.swift rename to Spotier/HelperProtocol.swift diff --git a/EasyTier/Info.plist b/Spotier/Info.plist similarity index 64% rename from EasyTier/Info.plist rename to Spotier/Info.plist index b7908d7..5993343 100644 --- a/EasyTier/Info.plist +++ b/Spotier/Info.plist @@ -2,19 +2,17 @@ - SMPrivilegedExecutables - - com.alick.swiftier.helper - identifier "com.alick.swiftier.helper" and anchor apple generic - + + CFBundleDisplayName + Spotier NSUbiquitousContainers - iCloud.com.alick.swiftier + iCloud.com.alick.spotier NSUbiquitousContainerIsDocumentScopePublic NSUbiquitousContainerName - Swiftier + Spotier NSUbiquitousContainerSupportedFolderLevels Any diff --git a/EasyTier/Localizable.xcstrings b/Spotier/Localizable.xcstrings similarity index 95% rename from EasyTier/Localizable.xcstrings rename to Spotier/Localizable.xcstrings index d06d87d..4f04459 100644 --- a/EasyTier/Localizable.xcstrings +++ b/Spotier/Localizable.xcstrings @@ -3,9 +3,6 @@ "strings" : { "" : { - }, - "- ms" : { - }, ":" : { @@ -21,6 +18,17 @@ }, "Alick Huang" : { + }, + "Connect On Demand" : { + "extractionState" : "manual", + "localizations" : { + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connect On Demand" + } + } + } }, "DEBUG" : { @@ -60,6 +68,12 @@ }, "easytier" : { + }, + "EasyTier" : { + + }, + "easytier.cn" : { + }, "ERROR" : { @@ -85,6 +99,9 @@ } } } + }, + "GPL-3.0 License" : { + }, "INFO" : { @@ -99,12 +116,6 @@ } } } - }, - "minamike2007@gmail.com" : { - - }, - "MIT License" : { - }, "MTU" : { @@ -142,41 +153,24 @@ } } }, - "SOCKS5 服务器" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "SOCKS5 Proxy" - } - } - } - }, - "Swiftier %@" : { - - }, - "Swiftier %@ 可用" : { - - }, - "Swiftier 已是最新版本" : { + "Spotier 已是最新版本" : { "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "Swiftier is up to date" + "value" : "Spotier is up to date" } } } }, - "Swiftier 应该已自动出现在列表中" : { + "Spotier 应该已自动出现在列表中" : { "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "2. Swiftier should be in the list" + "value" : "2. Spotier should be in the list" } } } @@ -194,12 +188,6 @@ } } } - }, - "tcp://..." : { - - }, - "tcp://public.easytier.top:11010" : { - }, "TRACE" : { @@ -229,17 +217,6 @@ } } }, - "VPN 门户配置" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "VPN Portal" - } - } - } - }, "WARN" : { }, @@ -320,13 +297,13 @@ } } }, - "为了能够读取您选择的任意文件夹及配置文件,Swiftier 需要“完全磁盘访问权限”。\n这不会泄露您的私有数据,仅用于解除系统文件夹读取限制。" : { + "为了能够读取您选择的任意文件夹及配置文件,Spotier 需要“完全磁盘访问权限”。\n这不会泄露您的私有数据,仅用于解除系统文件夹读取限制。" : { "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "Swiftier needs Full Disk Access to read your config folders. Your private data is never accessed." + "value" : "Spotier needs Full Disk Access to read your config folders. Your private data is never accessed." } } } @@ -407,6 +384,20 @@ } } } + }, + "仅使用物理网卡,避免 Spotier 通过其他虚拟网建立连接。" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avoid virtual NICs." + } + } + } + }, + "仅使用物理网卡,避免 Swiftier 通过其他虚拟网建立连接。" : { + }, "仅保留 Helper 加速启动" : { "extractionState" : "manual", @@ -573,17 +564,6 @@ } } }, - "允许转发所有对等节点的 RPC 数据包,即使对等节点不在转发网络白名单中。这可以帮助白名单外网络中的对等节点建立 P2P 连接。" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Forward RPC for all." - } - } - } - }, "全部" : { "extractionState" : "manual", "localizations" : { @@ -639,6 +619,17 @@ } } }, + "关闭 iCloud Drive" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Turn Off iCloud Drive" + } + } + } + }, "出口节点列表" : { "extractionState" : "manual", "localizations" : { @@ -717,7 +708,15 @@ } }, "加载失败: %@" : { - + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Load failed: %@" + } + } + } }, "协议" : { "extractionState" : "manual", @@ -905,6 +904,20 @@ } } } + }, + "启用魔法 DNS,允许通过 Spotier 的 DNS 服务器访问其他节点的虚拟 IPv4 地址,例如:node1.et.net。" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Access by node name." + } + } + } + }, + "启用魔法 DNS,允许通过 Swiftier 的 DNS 服务器访问其他节点的虚拟 IPv4 地址,例如:node1.et.net。" : { + }, "在 Finder 中打开" : { "extractionState" : "manual", @@ -940,7 +953,15 @@ } }, "在系统控制台中打开完整日志" : { - + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Open Full Logs in Console" + } + } + } }, "地址" : { "extractionState" : "manual", @@ -964,8 +985,38 @@ } } }, - "如:tcp://1.1.1.1:11010" : { - + "存储位置: iCloud Drive" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Storage: iCloud Drive" + } + } + } + }, + "存储位置: 本地 (iCloud 未启用)" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Storage: Local (iCloud disabled)" + } + } + } + }, + "存储位置: 本地(可切换到 iCloud Drive)" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Storage: Local (switch to iCloud Drive)" + } + } + } }, "存储到 iCloud" : { "extractionState" : "manual", @@ -978,6 +1029,28 @@ } } }, + "存储到 iCloud Drive" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Store in iCloud Drive" + } + } + } + }, + "存储方式: iCloud Drive" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Storage: iCloud Drive" + } + } + } + }, "安装并自启" : { "extractionState" : "manual", "localizations" : { @@ -1153,6 +1226,20 @@ } } } + }, + "开启 SOCKS5 代理功能,Surge 等外部程序可通过此端口连接 Spotier 网络。" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enable SOCKS5 proxy so external apps like Surge can connect to the Spotier network." + } + } + } + }, + "开启 SOCKS5 代理功能,Surge 等外部程序可通过此端口连接 Swiftier 网络。" : { + }, "开放" : { "extractionState" : "manual", @@ -1210,9 +1297,6 @@ } }, "手动分配路由 CIDR,将禁用子网代理和从对等节点传播的 wireguard 路由。例如:192.168.0.0/16" : { - - }, - "手动分配路由 CIDR,将禁用子网代理和从对等节点传播的 wireguard路由。例如:192.168.0.0/16" : { "extractionState" : "manual", "localizations" : { "en" : { @@ -1223,17 +1307,6 @@ } } }, - "手动指定监听器的公网地址,其他节点可以使用该地址连接到本节点。例如:tcp://123.123.123.123:11223,可以指定多个。" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Manually specify public addresses for listeners so other peers can connect directly." - } - } - } - }, "接收" : { "extractionState" : "manual", "localizations" : { @@ -1333,46 +1406,46 @@ } } }, - "未知节点" : { + "本地地址" : { "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "Unknown Peer" + "value" : "Local Addr" } } } }, - "本地地址" : { + "本机" : { "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "Local Addr" + "value" : "Host" } } } }, - "本机" : { + "本节点" : { "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "Host" + "value" : "This Node" } } } }, - "本节点" : { + "本项目遵循 GPL-3.0 开源许可证。" : { "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "This Node" + "value" : "Licensed under GPL-3.0." } } } @@ -1487,17 +1560,6 @@ } } }, - "添加端口转发" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Add Port" - } - } - } - }, "添加节点" : { "extractionState" : "manual", "localizations" : { @@ -1861,17 +1923,6 @@ } } }, - "端口转发" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Forwarding" - } - } - } - }, "系统转发" : { "extractionState" : "manual", "localizations" : { @@ -1938,17 +1989,6 @@ } } }, - "网络白名单" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Whitelist" - } - } - } - }, "联系邮箱" : { "extractionState" : "manual", "localizations" : { @@ -2059,28 +2099,6 @@ } } }, - "覆盖 DNS" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Override DNS" - } - } - } - }, - "覆盖系统 DNS。如果也同时启用了魔法 DNS,需要手动添加。" : { - "extractionState" : "manual", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Override system DNS. (Magic DNS manual add)." - } - } - } - }, "角色" : { "extractionState" : "manual", "localizations" : { @@ -2212,6 +2230,9 @@ } } } + }, + "连接 %lld" : { + }, "连接 %lld [%@]" : { "extractionState" : "manual", @@ -2424,4 +2445,4 @@ } }, "version" : "1.0" -} \ No newline at end of file +} diff --git a/EasyTier/LogListView.swift b/Spotier/LogListView.swift similarity index 76% rename from EasyTier/LogListView.swift rename to Spotier/LogListView.swift index 91252cf..c46c0bf 100644 --- a/EasyTier/LogListView.swift +++ b/Spotier/LogListView.swift @@ -39,21 +39,27 @@ struct LogListView: View { let displayLogs = Array(filteredLogs.reversed()) ForEach(displayLogs) { log in let index = displayLogs.firstIndex(where: { $0.id == log.id }) ?? 0 - LogListRow(log: log, timestampFormatted: formatTimestamp(log.timestamp), isSelected: selectedLog?.id == log.id) - .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)) - .listRowSeparator(.hidden) - .listRowBackground( - (selectedLog?.id == log.id) - ? Color.blue.opacity(0.15) - : (index % 2 == 0 ? Color(nsColor: .textBackgroundColor) : Color.primary.opacity(0.04)) - ) - .contentShape(Rectangle()) - .onTapGesture { - withAnimation(.spring(response: 0.3, dampingFraction: 0.8)) { - selectedLog = (selectedLog?.id == log.id) ? nil : log - } + Button { + withAnimation(.spring(response: 0.3, dampingFraction: 0.8)) { + selectedLog = (selectedLog?.id == log.id) ? nil : log } - .id(log.id) + } label: { + LogListRow( + log: log, + timestampFormatted: formatTimestamp(log.timestamp), + isSelected: selectedLog?.id == log.id + ) + } + .buttonStyle(.plain) + .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)) + .listRowSeparator(.hidden) + .listRowBackground( + (selectedLog?.id == log.id) + ? Color.blue.opacity(0.15) + : (index % 2 == 0 ? Color(nsColor: .textBackgroundColor) : Color.primary.opacity(0.04)) + ) + .contentShape(Rectangle()) + .id(log.id) } } .listStyle(.plain) @@ -61,16 +67,11 @@ struct LogListView: View { .background(Color(nsColor: .textBackgroundColor)) if logs.count > 5 { - Button { + FloatingScrollTopButton(action: { if let topLog = logs.last { withAnimation(.easeInOut(duration: 0.3)) { proxy.scrollTo(topLog.id, anchor: .top) } } - } label: { - Image(systemName: "arrow.up") - .font(.system(size: 16, weight: .bold)) - .modifier(FlatCircleButtonModifier()) - } - .buttonStyle(.plain) + }, size: 16) .padding(12) .transition(.scale.combined(with: .opacity)) } @@ -112,7 +113,7 @@ struct LogListRow: View { // Bottom Meta Row: Timestamp | Level HStack(spacing: 6) { - Text(timestampFormatted.isEmpty ? "---- -- -- --:--:--" : timestampFormatted) + Text(timestampFormatted) .font(.system(size: 9, design: .monospaced)) .foregroundColor(.secondary) diff --git a/EasyTier/LogModels.swift b/Spotier/LogModels.swift similarity index 88% rename from EasyTier/LogModels.swift rename to Spotier/LogModels.swift index 4dcbad1..29ded58 100644 --- a/EasyTier/LogModels.swift +++ b/Spotier/LogModels.swift @@ -20,11 +20,10 @@ struct LogEntry: Identifiable, Equatable { } } -enum LogLevel: String { - case trace, debug, info, warn, error - +extension LogLevel { var color: Color { switch self { + case .off: return .gray case .error: return .red case .warn: return .orange case .info: return .green @@ -36,14 +35,16 @@ enum LogLevel: String { struct EventEntry: Identifiable, Equatable, Codable { let id: UUID + let name: String let timestamp: String let date: Date? let type: EventType let details: String let highlights: [HighlightRange]? - init(id: UUID = UUID(), timestamp: String, date: Date?, type: EventType, details: String, highlights: [HighlightRange]? = nil) { + init(id: UUID = UUID(), name: String, timestamp: String, date: Date?, type: EventType, details: String, highlights: [HighlightRange]? = nil) { self.id = id + self.name = name self.timestamp = timestamp self.date = date self.type = type @@ -62,7 +63,7 @@ struct EventEntry: Identifiable, Equatable, Codable { case tunDeviceReady = "TunDeviceReady" case listenerAdded = "ListenerAdded" case handshake = "Handshake" - case unknown = "Event" + case unknown = "" var color: Color { switch self { diff --git a/Spotier/LogParser.swift b/Spotier/LogParser.swift new file mode 100644 index 0000000..3c37560 --- /dev/null +++ b/Spotier/LogParser.swift @@ -0,0 +1,222 @@ +import SwiftUI +import Combine + +@MainActor +class LogParser: ObservableObject { + static let shared = LogParser() + + @Published var logs: [LogEntry] = [] + @Published var events: [EventEntry] = [] + + var isPaused = false + private var pendingLogs: [LogEntry] = [] + private let logResolver: LogContainerResolver + private let logSettingsStore: LogSettingsStore + private init() { + self.logResolver = .shared + self.logSettingsStore = .shared + self.events = [] + } + + private var xpcEventTimer: Timer? + private var isReading = false + private var lastReadOffset: UInt64 = 0 + private var trailingRemainder = "" + + private let maxLogItems = 1000 + private let maxEventItems = 200 + + private var seenEventHashes: Set = [] + + func startMonitoring() { + // Source 1: XPC Events (Structured, Real-time) + // In Sandbox mode, we cannot read /var/log/ directly. + // We rely entirely on XPC to get logs from the Helper. + if #available(macOS 13.0, *) { + startXPCEventPolling() + } + } + + @available(macOS 13.0, *) + private func startXPCEventPolling() { + xpcEventTimer?.invalidate() + xpcEventTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in + Task { @MainActor [weak self] in + self?.pollXPCEvents() + } + } + pollXPCEvents() + } + + @available(macOS 13.0, *) + private func pollXPCEvents() { + readNewRawLines() + } + + // MARK: - Pre-compiled Regex Cache (Optimized for performance) + private enum Regex { + static let ansi = try! NSRegularExpression(pattern: "(\\x1B\\[[0-9;]*[a-zA-Z])|(\\[[0-9;]+m)", options: []) + static let timestamp = try! NSRegularExpression(pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}[T ][0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:?[0-9]{2})?", options: []) + static let levelPrefix = try! NSRegularExpression(pattern: "^(INFO|WARN|ERROR|DEBUG|TRACE)\\b", options: [.caseInsensitive]) + static let helperPrefix = try! NSRegularExpression(pattern: "^(\\[.*?\\] )?\\[Helper\\]( Core output:)?", options: []) + } + + private func removeAnsiCodes(_ text: String) -> String { + let range = NSRange(location: 0, length: text.utf16.count) + return Regex.ansi.stringByReplacingMatches(in: text, options: [], range: range, withTemplate: "") + } + + private func quickParseLogs(_ content: String) -> [LogEntry] { + let lines = content.components(separatedBy: .newlines).filter { !$0.isEmpty } + var result: [LogEntry] = [] + let now = ISO8601DateFormatter().string(from: Date()) + + let currentLogLevel = logSettingsStore.readLevel() + + for line in lines { + let raw = removeAnsiCodes(line).replacingOccurrences(of: "\0", with: "") + if raw.isEmpty { continue } + + var content = raw + let fullRange = NSRange(location: 0, length: content.utf16.count) + if let match = Regex.helperPrefix.firstMatch(in: content, range: fullRange) { + content = (content as NSString).replacingCharacters(in: match.range, with: "").trimmingCharacters(in: .whitespaces) + } + if content.isEmpty { continue } + + var timestamp = "" + var level: LogLevel = .info + let contentRange = NSRange(location: 0, length: content.utf16.count) + if let match = Regex.timestamp.firstMatch(in: content, range: contentRange) { + timestamp = (content as NSString).substring(with: match.range) + content = (content as NSString).replacingCharacters(in: match.range, with: "").trimmingCharacters(in: .whitespaces) + } else { + timestamp = now + } + + let levelSearchArea = content.prefix(20).uppercased() + if levelSearchArea.contains("ERROR") { level = .error } + else if levelSearchArea.contains("WARN") { level = .warn } + else if levelSearchArea.contains("DEBUG") { level = .debug } + else if levelSearchArea.contains("TRACE") { level = .trace } + + if !currentLogLevel.allows(level) { continue } + + if let match = Regex.levelPrefix.firstMatch(in: content, range: NSRange(location: 0, length: content.utf16.count)) { + content = (content as NSString).replacingCharacters(in: match.range, with: "").trimmingCharacters(in: .whitespaces) + } + + result.append(LogEntry( + timestamp: timestamp, + cleanContent: content, + fullText: raw, + level: level + )) + } + return result + } + + private func readNewRawLines() { + guard !isReading else { return } + isReading = true + defer { isReading = false } + + guard let logURL = logResolver.logFileURL() else { return } + guard FileManager.default.fileExists(atPath: logURL.path) else { return } + + guard let handle = FileHandle(forReadingAtPath: logURL.path) else { return } + defer { handle.closeFile() } + + // Get file size; reset offset if file was truncated (log rotation) + let fileSize = handle.seekToEndOfFile() + if lastReadOffset > fileSize { + lastReadOffset = 0 + trailingRemainder = "" + } + + guard fileSize > lastReadOffset else { return } + + handle.seek(toFileOffset: lastReadOffset) + let newData = handle.readDataToEndOfFile() + lastReadOffset = handle.offsetInFile + + guard let newText = String(data: newData, encoding: .utf8), !newText.isEmpty else { return } + + let fullText = trailingRemainder + newText + var lines = fullText.components(separatedBy: "\n") + + // Keep incomplete last line for next read + if !newText.hasSuffix("\n") { + trailingRemainder = lines.removeLast() + } else { + trailingRemainder = "" + if lines.last?.isEmpty == true { lines.removeLast() } + } + + let content = lines.joined(separator: "\n") + guard !content.isEmpty else { return } + + let parsed = quickParseLogs(content) + guard !parsed.isEmpty else { return } + + if isPaused { + pendingLogs.append(contentsOf: parsed) + } else { + logs.append(contentsOf: parsed) + if logs.count > maxLogItems { + logs.removeFirst(logs.count - maxLogItems) + } + } + } + + func stopMonitoring() { + xpcEventTimer?.invalidate() + xpcEventTimer = nil + isReading = false + } + + func resetForNewCoreSession() { + stopMonitoring() + events.removeAll() + logs.removeAll() + pendingLogs.removeAll() + isReading = false + lastReadOffset = 0 + trailingRemainder = "" + seenEventHashes.removeAll() + } + + /// Update events from get_running_info response + func updateEventsFromRunningInfo(_ eventsAnyArray: [String]) { + var newEvents: [EventEntry] = [] + + for item in eventsAnyArray { + guard let event = LogEventFormatter.parseEventEntry(from: item) else { continue } + let dedupKey = "\(event.name)|\(event.timestamp)|\(event.details)" + let eventHash = dedupKey.hashValue + if seenEventHashes.contains(eventHash) { continue } + seenEventHashes.insert(eventHash) + + newEvents.append(event) + } + + guard !newEvents.isEmpty else { return } + + events.append(contentsOf: newEvents) + events.sort { $0.timestamp < $1.timestamp } + if events.count > maxEventItems { + events = Array(events.suffix(maxEventItems)) + } + } + + func flushPending() { + guard !pendingLogs.isEmpty else { + return + } + logs.append(contentsOf: pendingLogs) + pendingLogs.removeAll() + if logs.count > maxLogItems { + logs.removeFirst(logs.count - maxLogItems) + } + } +} diff --git a/Spotier/LogView.swift b/Spotier/LogView.swift new file mode 100644 index 0000000..cb5441a --- /dev/null +++ b/Spotier/LogView.swift @@ -0,0 +1,88 @@ +import SwiftUI + +struct LogView: View { + @Binding var isPresented: Bool + + @ObservedObject private var logParser = LogParser.shared + @State private var selectedLog: LogEntry? + @State private var viewMode: ViewMode = .events + @State private var logLevelFilter: LogLevel? = nil // nil = show all + private let logResolver = LogContainerResolver.shared + + enum ViewMode: Int { + case events = 0 + case logs = 1 + } + + var body: some View { + VStack(spacing: 0) { + UnifiedHeader { + HStack(spacing: 12) { + Picker("", selection: $viewMode) { + Text(LocalizedStringKey("交互事件")).tag(ViewMode.events) + Text(LocalizedStringKey("调试日志")).tag(ViewMode.logs) + } + .pickerStyle(.segmented) + .frame(width: 200) + + if viewMode == .logs { + Picker("", selection: $logLevelFilter) { + Text("全部").tag(nil as LogLevel?) + Text("ERROR").tag(LogLevel.error as LogLevel?) + Text("WARN").tag(LogLevel.warn as LogLevel?) + Text("INFO").tag(LogLevel.info as LogLevel?) + Text("DEBUG").tag(LogLevel.debug as LogLevel?) + Text("TRACE").tag(LogLevel.trace as LogLevel?) + } + .pickerStyle(.menu) + .frame(width: 100) + } + } + } center: { + EmptyView() + } right: { + HStack(spacing: 12) { + Button { + if let url = logResolver.logFileURL() { + NSWorkspace.shared.open(url) + } + } label: { + Image(systemName: "doc.text.magnifyingglass") + .font(.title3) + .foregroundColor(.primary) + } + .buttonStyle(.plain) + .help("在系统控制台中打开完整日志") + + Button { + withAnimation { + isPresented = false + } + } label: { + Image(systemName: "xmark.circle.fill") + .foregroundStyle(.secondary) + .font(.title2) + } + .buttonStyle(.plain) + } + } + + if viewMode == .events { + EventListView(events: logParser.events) + } else { + LogListView( + logs: logParser.logs, + selectedLog: $selectedLog, + levelFilter: logLevelFilter + ) + } + } + .background(Color(nsColor: .windowBackgroundColor)) + .task { + logParser.startMonitoring() + } + .onDisappear { + logParser.stopMonitoring() + } + } +} diff --git a/Spotier/Logging/LogContainerResolver.swift b/Spotier/Logging/LogContainerResolver.swift new file mode 100644 index 0000000..61152ce --- /dev/null +++ b/Spotier/Logging/LogContainerResolver.swift @@ -0,0 +1,22 @@ +import Foundation + +struct LogContainerResolver { + static let shared = LogContainerResolver() + + typealias FileURLProvider = (String, FileManager) -> URL? + + private let fileManager: FileManager + private let fileURLProvider: FileURLProvider + + init( + fileManager: FileManager = .default, + fileURLProvider: @escaping FileURLProvider = appGroupFileURL + ) { + self.fileManager = fileManager + self.fileURLProvider = fileURLProvider + } + + func logFileURL() -> URL? { + fileURLProvider(LOG_FILENAME, fileManager) + } +} diff --git a/Spotier/Logging/LogEventFormatter.swift b/Spotier/Logging/LogEventFormatter.swift new file mode 100644 index 0000000..ddbd34a --- /dev/null +++ b/Spotier/Logging/LogEventFormatter.swift @@ -0,0 +1,214 @@ +import Foundation + +enum LogEventFormatter { + private static let stringRegex = try! NSRegularExpression(pattern: #""([^"\\]|\\.)*""#) + private static let keyRegex = try! NSRegularExpression(pattern: #"("[^"]+"|\b[a-zA-Z_][a-zA-Z0-9_]*\b)\s*:"#) + private static let numberRegex = try! NSRegularExpression(pattern: #"\b\d+(\.\d+)?\b"#) + private static let keywordRegex = try! NSRegularExpression(pattern: #"\b(true|false|null|None|Some|Ok|Err)\b"#) + private static let arrayRegex = try! NSRegularExpression(pattern: #"(?s)\[\s*([^\[\]{}]*?)\s*\]"#) + + private static let iso8601Formatter: ISO8601DateFormatter = { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + return formatter + }() + + static func parseEventEntry(from input: Any) -> EventEntry? { + guard let json = jsonObject(from: input) else { return nil } + guard let timeString = json["time"] as? String else { return nil } + guard let eventData = json["event"] else { return nil } + + let eventName: String + let eventPayload: Any + if let eventDict = eventData as? [String: Any], + eventDict.count == 1, + let firstKey = eventDict.keys.first { + eventName = firstKey + eventPayload = eventDict[firstKey]! + } else { + guard let rawEventName = eventData as? String else { return nil } + eventName = rawEventName + eventPayload = eventData + } + + let eventDate = iso8601Formatter.date(from: timeString) + let displayTimestamp = timeString + .replacingOccurrences(of: "Z", with: "") + .replacingOccurrences(of: "T", with: " ") + let type = mapEventType(eventName) + let cleanedPayload = recursiveJsonClean(eventPayload, depth: 0) + let details = formatAsJson(cleanedPayload) + + return EventEntry( + name: eventName, + timestamp: displayTimestamp, + date: eventDate, + type: type, + details: details, + highlights: calculateHighlights(for: details) + ) + } + + static func calculateHighlights(for json: String) -> [HighlightRange] { + let nsString = json as NSString + let fullRange = NSRange(location: 0, length: nsString.length) + var ranges: [HighlightRange] = [] + + appendHighlights( + in: json, + regex: stringRegex, + fullRange: fullRange, + color: "green", + bold: false, + into: &ranges + ) + appendHighlights( + in: json, + regex: keyRegex, + fullRange: fullRange, + color: "blue", + bold: true, + into: &ranges + ) + appendHighlights( + in: json, + regex: numberRegex, + fullRange: fullRange, + color: "orange", + bold: false, + into: &ranges + ) + appendHighlights( + in: json, + regex: keywordRegex, + fullRange: fullRange, + color: "purple", + bold: true, + into: &ranges + ) + + return ranges + } + + private static func appendHighlights( + in text: String, + regex: NSRegularExpression, + fullRange: NSRange, + color: String, + bold: Bool, + into ranges: inout [HighlightRange] + ) { + for match in regex.matches(in: text, range: fullRange) { + ranges.append( + HighlightRange( + start: match.range.location, + length: match.range.length, + color: color, + bold: bold + ) + ) + } + } + + private static func recursiveJsonClean(_ value: Any?, depth: Int) -> Any? { + guard let value, depth < 5 else { + return value + } + + if let dict = value as? [String: Any] { + var cleaned = [String: Any]() + for (key, nestedValue) in dict { + cleaned[key] = recursiveJsonClean(nestedValue, depth: depth + 1) + } + return cleaned + } + + if let array = value as? [Any] { + return array.map { recursiveJsonClean($0, depth: depth + 1) } + } + + return value + } + + private static func jsonObject(from input: Any) -> [String: Any]? { + if let dict = input as? [String: Any] { + return dict + } + + guard let str = input as? String, let data = str.data(using: .utf8) else { + return nil + } + + return try? JSONSerialization.jsonObject(with: data) as? [String: Any] + } + + private static func mapEventType(_ name: String) -> EventEntry.EventType { + switch name { + case "Connecting", "ConnectingTo": + return .connecting + case "Connected", "ConnectionAccepted": + return .connected + case "ConnectError", "ConnectionError": + return .connectError + case "PeerConnAdded": + return .peerConnAdded + case "PeerAdded", "NewPeer": + return .peerAdded + case "PeerRemoved", "PeerLost": + return .peerRemoved + case "RouteChanged", "RouteUpdate": + return .routeChanged + case "TunDeviceReady": + return .tunDeviceReady + case "ListenerAdded": + return .listenerAdded + case "Handshake": + return .handshake + default: + return .unknown + } + } + + private static func collapsePrettyPrintedArrays(_ input: String) -> String { + var result = input + let matches = arrayRegex.matches( + in: result, + options: [], + range: NSRange(location: 0, length: (result as NSString).length) + ) + + for match in matches.reversed() { + let content = (result as NSString).substring(with: match.range(at: 1)) + let collapsedContent = content + .components(separatedBy: .newlines) + .map { $0.trimmingCharacters(in: .whitespaces) } + .filter { !$0.isEmpty } + .joined(separator: ", ") + let collapsed = "[\(collapsedContent)]" + result = (result as NSString).replacingCharacters(in: match.range, with: collapsed) + } + + return result + } + + private static func formatAsJson(_ value: Any?) -> String { + guard let value else { + return "null" + } + + if !(value is [String: Any]) && !(value is [Any]) { + return "\(value)" + } + + var options: JSONSerialization.WritingOptions = [.sortedKeys] + if #available(macOS 10.13, *) { + options.insert(.prettyPrinted) + } + if #available(macOS 10.15, *) { + options.insert(.withoutEscapingSlashes) + } + + let data = try! JSONSerialization.data(withJSONObject: value, options: options) + return collapsePrettyPrintedArrays(String(decoding: data, as: UTF8.self)) + } +} diff --git a/Spotier/Logging/LogSettingsStore.swift b/Spotier/Logging/LogSettingsStore.swift new file mode 100644 index 0000000..36b6a6d --- /dev/null +++ b/Spotier/Logging/LogSettingsStore.swift @@ -0,0 +1,19 @@ +import Foundation + +struct LogSettingsStore { + static let shared = LogSettingsStore() + + private let defaults: UserDefaults? + + init(defaults: UserDefaults? = appGroupDefaults()) { + self.defaults = defaults + } + + func readLevel() -> StoredLogLevel { + readStoredLogLevel(defaults: defaults) + } + + func writeLevel(_ level: StoredLogLevel) { + writeStoredLogLevel(level, defaults: defaults) + } +} diff --git a/Spotier/Main/CreateConfigPrompt.swift b/Spotier/Main/CreateConfigPrompt.swift new file mode 100644 index 0000000..92d22b7 --- /dev/null +++ b/Spotier/Main/CreateConfigPrompt.swift @@ -0,0 +1,46 @@ +import SwiftUI + +struct CreateConfigPrompt: View { + @Binding var newConfigName: String + let errorMessage: String? + let onCancel: () -> Void + let onConfirm: () -> Void + + var body: some View { + VStack(spacing: 20) { + Text(LocalizedStringKey("创建新网络")) + .font(.headline) + + if let errorMessage { + Text(errorMessage) + .font(.caption) + .foregroundColor(.red) + .multilineTextAlignment(.center) + .padding(.horizontal) + } + + VStack(alignment: .leading, spacing: 8) { + Text(LocalizedStringKey("配置文件名:")) + TextField(LocalizedStringKey("例如: my-network"), text: $newConfigName) + .textFieldStyle(.roundedBorder) + .textContentType(.none) + .disableAutocorrection(true) + .onSubmit(onConfirm) + Text(LocalizedStringKey("将自动添加 .toml 后缀")) + .font(.caption) + .foregroundColor(.secondary) + } + .padding(.horizontal) + + HStack { + Button(LocalizedStringKey("取消"), action: onCancel) + Button(LocalizedStringKey("创建"), action: onConfirm) + .buttonStyle(.borderedProminent) + } + } + .padding() + .frame(width: 300) + .background(RoundedRectangle(cornerRadius: 12).fill(Color(nsColor: .windowBackgroundColor))) + .shadow(radius: 20) + } +} diff --git a/Spotier/Main/DashboardLayoutMetrics.swift b/Spotier/Main/DashboardLayoutMetrics.swift new file mode 100644 index 0000000..0736d6d --- /dev/null +++ b/Spotier/Main/DashboardLayoutMetrics.swift @@ -0,0 +1,17 @@ +import CoreGraphics + +enum DashboardLayoutMetrics { + static let windowWidth: CGFloat = 420 + static let windowHeight: CGFloat = 520 + static let rippleSize: CGFloat = 500 + static let peerCardWidth: CGFloat = 188 + static let peerAreaHeight: CGFloat = 222 + static let peerAreaBottomPadding: CGFloat = 16 + static let headerPadding: CGFloat = 12 + static let speedDashboardHorizontalPadding: CGFloat = 16 + static let runningButtonCenterY: CGFloat = 133 + + static func buttonCenterY(isRunning: Bool, contentHeight: CGFloat) -> CGFloat { + isRunning ? runningButtonCenterY : (contentHeight / 2) + } +} diff --git a/Spotier/Main/DashboardOverlayRoute.swift b/Spotier/Main/DashboardOverlayRoute.swift new file mode 100644 index 0000000..22e860f --- /dev/null +++ b/Spotier/Main/DashboardOverlayRoute.swift @@ -0,0 +1,24 @@ +import Foundation + +enum DashboardOverlayRoute: Equatable, Identifiable { + case log + case settings + case generator + case editor(URL) + case createPrompt + + var id: String { + switch self { + case .log: + return "log" + case .settings: + return "settings" + case .generator: + return "generator" + case let .editor(url): + return "editor:\(url.path)" + case .createPrompt: + return "createPrompt" + } + } +} diff --git a/Spotier/Main/MainConnectionUseCase.swift b/Spotier/Main/MainConnectionUseCase.swift new file mode 100644 index 0000000..bcb4dda --- /dev/null +++ b/Spotier/Main/MainConnectionUseCase.swift @@ -0,0 +1,38 @@ +import Foundation + +protocol VPNControlling: AnyObject { + var isConnected: Bool { get } + var statusText: String { get set } + + func startVPN(configContent: String) + func disableOnDemandAndStop() +} + +struct MainConnectionUseCase { + let configRepository: ConfigFileAccessing + let vpnController: VPNControlling + + func canToggleConnection(selectedConfig: URL?) -> Bool { + vpnController.isConnected || selectedConfig != nil + } + + func toggleConnection(selectedConfig: URL?) { + if vpnController.isConnected { + vpnController.disableOnDemandAndStop() + return + } + + guard let selectedConfig else { + vpnController.statusText = "未选择配置文件" + return + } + + do { + let content = try configRepository.readContent(at: selectedConfig) + vpnController.startVPN(configContent: content) + } catch { + vpnController.statusText = "读取配置失败: \(selectedConfig.lastPathComponent)" + print("无法读取配置文件: \(selectedConfig.path)") + } + } +} diff --git a/Spotier/Main/MainDashboardHeader.swift b/Spotier/Main/MainDashboardHeader.swift new file mode 100644 index 0000000..b1d9c8c --- /dev/null +++ b/Spotier/Main/MainDashboardHeader.swift @@ -0,0 +1,139 @@ +import SwiftUI + +struct MainDashboardHeader: View { + let configFiles: [URL] + let selectedConfig: URL? + let iCloudDriveEnabled: Bool + let hasICloudIdentity: Bool + let onSelectConfig: (URL) -> Void + let onCreateNetwork: () -> Void + let onOpenGenerator: () -> Void + let onOpenEditor: () -> Void + let onDisableICloudDrive: () -> Void + let onEnableICloudDrive: () -> Void + let onSelectFolder: () -> Void + let onOpenFolder: () -> Void + let onDeleteSelected: () -> Void + let onOpenLog: () -> Void + let onOpenSettings: () -> Void + let onQuit: () -> Void + + var body: some View { + HStack { + configMenu + + Spacer() + + actionButtons + } + .padding(DashboardLayoutMetrics.headerPadding) + .zIndex(200) + } + + private var configMenu: some View { + Menu { + Section("配置文件") { + storageLabel + + if configFiles.isEmpty { + Button("未发现配置") { } + .disabled(true) + } else { + ForEach(configFiles, id: \.self) { url in + Button(action: { onSelectConfig(url) }) { + HStack { + Text(url.deletingPathExtension().lastPathComponent) + if selectedConfig == url { + Image(systemName: "checkmark") + } + } + } + } + } + } + + Divider() + + Button("创建新网络", action: onCreateNetwork) + Button("编辑配置", action: onOpenGenerator) + .disabled(selectedConfig == nil) + Button("编辑配置为文件", action: onOpenEditor) + .disabled(selectedConfig == nil) + + Divider() + + if iCloudDriveEnabled { + Button("关闭 iCloud Drive", action: onDisableICloudDrive) + } else { + Button("存储到 iCloud Drive", action: onEnableICloudDrive) + } + Button("选择文件夹", action: onSelectFolder) + .disabled(iCloudDriveEnabled) + Button("在 Finder 中打开", action: onOpenFolder) + + Divider() + + Button(role: .destructive, action: onDeleteSelected) { + Text(LocalizedStringKey("删除选中的配置")) + .foregroundColor(.red) + } + .disabled(selectedConfig == nil) + } label: { + HStack { + Image(systemName: "point.3.connected.trianglepath.dotted") + Text(selectedConfig?.deletingPathExtension().lastPathComponent ?? NSLocalizedString("请选择配置", comment: "")) + .lineLimit(1) + } + .padding(.horizontal, 8) + .padding(.vertical, 4) + .cornerRadius(6) + } + .menuStyle(.borderlessButton) + } + + @ViewBuilder + private var storageLabel: some View { + if iCloudDriveEnabled { + Label("存储位置: iCloud Drive", systemImage: "icloud") + .font(.caption) + .foregroundColor(.secondary) + } else if hasICloudIdentity { + Label("存储位置: 本地(可切换到 iCloud Drive)", systemImage: "internaldrive") + .font(.caption) + .foregroundColor(.secondary) + } else { + Label("存储位置: 本地 (iCloud 未启用)", systemImage: "internaldrive") + .font(.caption) + .foregroundColor(.secondary) + } + } + + private var actionButtons: some View { + HStack(spacing: 6) { + Button(action: onOpenLog) { + Image(systemName: "doc.text") + .font(.system(size: 14)) + .padding(5) + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + + Button(action: onOpenSettings) { + Image(systemName: "gearshape") + .font(.system(size: 14)) + .padding(5) + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + + Button(action: onQuit) { + Image(systemName: "power") + .font(.system(size: 14)) + .foregroundColor(.red) + .padding(5) + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + } + } +} diff --git a/Spotier/Main/MainDashboardState.swift b/Spotier/Main/MainDashboardState.swift new file mode 100644 index 0000000..a0ee1ee --- /dev/null +++ b/Spotier/Main/MainDashboardState.swift @@ -0,0 +1,153 @@ +import Foundation +import Combine +import SwiftUI + +@MainActor +final class MainDashboardState: ObservableObject { + private static let selectedConfigPathDefaultsKey = "selected_config_path" + + @Published private(set) var selectedConfig: URL? + @Published private(set) var overlayRoute: DashboardOverlayRoute? + @Published var newConfigName = "" + @Published private(set) var createConfigError: String? + + private let configRepository: ConfigFileAccessing + private let connectionUseCase: MainConnectionUseCase + + convenience init() { + self.init( + initialConfigFiles: [], + configRepository: ConfigFileRepository.shared, + vpnController: VPNManager.shared + ) + } + + convenience init(configRepository: ConfigFileAccessing) { + self.init( + initialConfigFiles: [], + configRepository: configRepository, + vpnController: VPNManager.shared + ) + } + + init( + initialConfigFiles: [URL], + configRepository: ConfigFileAccessing, + vpnController: VPNControlling + ) { + self.configRepository = configRepository + self.connectionUseCase = MainConnectionUseCase( + configRepository: configRepository, + vpnController: vpnController + ) + syncSelection(with: initialConfigFiles) + } + + var isAnyOverlayShown: Bool { + overlayRoute != nil + } + + var editingConfigURL: URL? { + guard case let .editor(url) = overlayRoute else { return nil } + return url + } + + var canToggleConnection: Bool { + connectionUseCase.canToggleConnection(selectedConfig: selectedConfig) + } + + func selectConfig(_ url: URL) { + selectedConfig = url + UserDefaults.standard.set(url.path, forKey: Self.selectedConfigPathDefaultsKey) + } + + func handleConfigFilesChanged(_ files: [URL]) { + syncSelection(with: files) + } + + func isPresenting(_ route: DashboardOverlayRoute) -> Bool { + overlayRoute == route + } + + func openOverlay(_ route: DashboardOverlayRoute) { + withAnimation { + overlayRoute = route + } + } + + func closeOverlay() { + withAnimation { + overlayRoute = nil + } + } + + func openEditor() { + guard let selectedConfig else { return } + openOverlay(.editor(selectedConfig)) + } + + func openCreatePrompt() { + newConfigName = "" + createConfigError = nil + openOverlay(.createPrompt) + } + + func closeCreatePrompt() { + createConfigError = nil + closeOverlay() + } + + func createConfig() { + let filename = ConfigTemplateFactory.filename(from: newConfigName) + let content = ConfigTemplateFactory.content(for: newConfigName) + + do { + _ = try configRepository.createConfig(named: filename, content: content) + let updatedFiles = configRepository.refreshConfigs() + + createConfigError = nil + if let newURL = updatedFiles.first(where: { $0.lastPathComponent == filename }) { + selectConfig(newURL) + openOverlay(.generator) + } else { + closeCreatePrompt() + } + } catch { + createConfigError = "创建失败: \(error.localizedDescription)" + print("Failed to create file: \(error)") + } + } + + func deleteSelectedConfig() { + guard let selectedConfig else { return } + configRepository.deleteConfig(at: selectedConfig) + } + + func toggleConnection() { + connectionUseCase.toggleConnection(selectedConfig: selectedConfig) + } + + private func syncSelection(with files: [URL]) { + let nextSelection: URL? + if let savedPath = UserDefaults.standard.string(forKey: Self.selectedConfigPathDefaultsKey) { + nextSelection = files.first { $0.path == savedPath } + ?? currentSelection(in: files) + } else { + nextSelection = currentSelection(in: files) + } + selectedConfig = nextSelection + if let nextSelection { + UserDefaults.standard.set(nextSelection.path, forKey: Self.selectedConfigPathDefaultsKey) + } else { + UserDefaults.standard.removeObject(forKey: Self.selectedConfigPathDefaultsKey) + } + } + + private func currentSelection(in files: [URL]) -> URL? { + guard !files.isEmpty else { return nil } + if let selectedConfig, files.contains(selectedConfig) { + return selectedConfig + } + return files.first + } +} diff --git a/Spotier/Main/PeerListArea.swift b/Spotier/Main/PeerListArea.swift new file mode 100644 index 0000000..dc175b7 --- /dev/null +++ b/Spotier/Main/PeerListArea.swift @@ -0,0 +1,58 @@ +import SwiftUI + +struct PeerListArea: View { + @StateObject private var runner = SpotierRunner.shared + + private let gridRows = [ + GridItem(.fixed(105), spacing: 12), + GridItem(.fixed(105), spacing: 12) + ] + + var body: some View { + let peerIDs = runner.peers.map(\.id) + + return VStack { + Spacer() + + ZStack { + ScrollView(.horizontal, showsIndicators: false) { + LazyHGrid(rows: gridRows, spacing: 12) { + ForEach(runner.peers) { peer in + PeerCard(peer: peer) + .equatable() + .frame(width: DashboardLayoutMetrics.peerCardWidth) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .transition( + .asymmetric( + insertion: .move(edge: .bottom).combined(with: .opacity), + removal: .opacity + ) + ) + } + } + .padding(.horizontal, DashboardLayoutMetrics.speedDashboardHorizontalPadding) + .contentShape(Rectangle()) + } + .preventVerticalBounce() + .frame(height: DashboardLayoutMetrics.peerAreaHeight) + + if runner.isRunning && runner.peers.isEmpty { + VStack(spacing: 20) { + ProgressView().scaleEffect(1.2).controlSize(.large) + Text(LocalizedStringKey("节点加载中")) + .font(.title3.bold()) + .foregroundColor(.secondary) + } + .frame(maxWidth: .infinity) + .frame(height: DashboardLayoutMetrics.peerAreaHeight) + .transition(.opacity) + } + } + .frame(maxWidth: .infinity) + .frame(height: DashboardLayoutMetrics.peerAreaHeight) + .padding(.bottom, DashboardLayoutMetrics.peerAreaBottomPadding) + } + .frame(maxWidth: .infinity) + .animation(.spring(response: 0.5, dampingFraction: 0.82), value: peerIDs) + } +} diff --git a/Spotier/Main/SpeedDashboard.swift b/Spotier/Main/SpeedDashboard.swift new file mode 100644 index 0000000..9d3f8c4 --- /dev/null +++ b/Spotier/Main/SpeedDashboard.swift @@ -0,0 +1,187 @@ +import SwiftUI +import NetworkExtension + +struct SpeedCard: View, Equatable { + let title: String + let value: String + let icon: String + let color: Color + let history: [Double] + let maxVal: Double + let isVisible: Bool + let isPaused: Bool + + static func == (lhs: SpeedCard, rhs: SpeedCard) -> Bool { + lhs.value == rhs.value && + lhs.history == rhs.history && + lhs.maxVal == rhs.maxVal && + lhs.isVisible == rhs.isVisible && + lhs.isPaused == rhs.isPaused + } + + private var splitValue: (number: String, unit: String) { + let components = value.components(separatedBy: " ") + if components.count >= 2 { + return (components[0], components[1]) + } + return (value, "") + } + + var body: some View { + ZStack(alignment: .bottom) { + SmartSparklineView(data: history, color: color, maxScale: maxVal, paused: isPaused) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .padding(.top, 24) + .zIndex(0) + .allowsHitTesting(false) + + VStack(alignment: .leading, spacing: 2) { + HStack(spacing: 4) { + Image(systemName: icon) + .foregroundColor(color) + .font(.system(size: 10, weight: .bold)) + Text(title) + .font(.system(size: 9, weight: .bold)) + .foregroundColor(color.opacity(0.8)) + } + .padding(.top, 10) + + Spacer() + + HStack(alignment: .firstTextBaseline, spacing: 3) { + Text(splitValue.number) + .font(.system(size: 24, weight: .bold, design: .monospaced)) + Text(splitValue.unit) + .font(.system(size: 11, weight: .bold, design: .monospaced)) + } + .frame(maxWidth: .infinity, alignment: .center) + + Spacer() + + Color.clear.frame(height: 12) + } + .padding(.horizontal, 12) + .zIndex(20) + } + .frame(maxWidth: .infinity) + .frame(height: 85) + .background( + RoundedRectangle(cornerRadius: 12) + .fill(Color(nsColor: .windowBackgroundColor).opacity(0.6)) + ) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(color.opacity(0.2), lineWidth: 1) + ) + } +} + +struct SpeedDashboard: View { + let geoSize: CGSize + let buttonCenterY: CGFloat + let isPaused: Bool + let isConnected: Bool + let status: NEVPNStatus + let canToggleConnection: Bool + let onToggleConnection: () -> Void + + @ObservedObject private var runner = SpotierRunner.shared + + var body: some View { + let maxSpeed = runner.maxHistorySpeed + + HStack(spacing: -6) { + if runner.isRunning && runner.isWindowVisible { + SpeedCard( + title: "DOWNLOAD", + value: runner.downloadSpeed, + icon: "arrow.down.square.fill", + color: .blue, + history: runner.downloadHistory, + maxVal: maxSpeed, + isVisible: true, + isPaused: isPaused + ) + .equatable() + .transition(.move(edge: .bottom).combined(with: .opacity)) + } + + Button(action: onToggleConnection) { + StartStopButtonCore( + isRunning: isConnected, + uptimeText: runner.uptimeText, + status: status + ) + } + .buttonStyle(.plain) + .disabled(!canToggleConnection) + .zIndex(20) + + if runner.isRunning && runner.isWindowVisible { + SpeedCard( + title: "UPLOAD", + value: runner.uploadSpeed, + icon: "arrow.up.square.fill", + color: .orange, + history: runner.uploadHistory, + maxVal: maxSpeed, + isVisible: true, + isPaused: isPaused + ) + .equatable() + .transition(.move(edge: .bottom).combined(with: .opacity)) + } + } + .padding(.horizontal, 16) + .frame(width: geoSize.width) + .position(x: geoSize.width / 2, y: buttonCenterY) + } +} + +struct StartStopButtonCore: View { + let isRunning: Bool + let uptimeText: String + var status: NEVPNStatus = .disconnected + + var body: some View { + ZStack { + Circle() + .fill(buttonColor) + .frame(width: 84, height: 84) + .shadow(color: .black.opacity(isRunning ? 0.12 : 0.25), radius: 10, y: 4) + + if status == .connecting || status == .disconnecting { + ProgressView() + .progressViewStyle(CircularProgressViewStyle(tint: .white)) + .controlSize(.regular) + } else { + Image(systemName: "power") + .font(.system(size: 28, weight: .regular)) + .foregroundStyle(isRunning ? Color.black : Color.white) + } + + if isRunning { + Text(uptimeText) + .font(.system(size: 22, weight: .bold, design: .monospaced)) + .foregroundColor(.primary) + .frame(width: 140) + .lineLimit(1) + .minimumScaleFactor(0.7) + .offset(y: -113) + } + } + .frame(width: 84, height: 84) + .padding(.vertical, 6) + } + + private var buttonColor: Color { + if isRunning { return .white } + switch status { + case .connecting, .disconnecting: return .orange + case .connected: return .white + case .disconnected, .invalid: return .blue + case .reasserting: return .yellow + @unknown default: return .blue + } + } +} diff --git a/EasyTier/Models/EasyTierNodeModels.swift b/Spotier/Models/SpotierNodeModels.swift similarity index 94% rename from EasyTier/Models/EasyTierNodeModels.swift rename to Spotier/Models/SpotierNodeModels.swift index d30cdf5..1871123 100644 --- a/EasyTier/Models/EasyTierNodeModels.swift +++ b/Spotier/Models/SpotierNodeModels.swift @@ -1,9 +1,9 @@ import Foundation import SwiftUI -// MARK: - Core Status Models (Ported from EasyTier-iOS) +// MARK: - Core Status Models (Ported from Swiftier-iOS) -struct EasyTierStatus: Codable { +struct SpotierStatus: Codable { enum NATType: Int, Codable, Hashable { case unknown = 0 case openInternet = 1 @@ -18,7 +18,7 @@ struct EasyTierStatus: Codable { var description: String { switch self { - case .unknown: return "Unknown" + case .unknown: return "" case .openInternet: return "Open Internet" case .noPAT: return "No PAT" case .fullCone: return "Full Cone" @@ -127,16 +127,11 @@ struct EasyTierStatus: Codable { } var buffer = [Int8](repeating: 0, count: Int(INET6_ADDRSTRLEN)) - - if inet_ntop(AF_INET6, &addr, &buffer, socklen_t(INET6_ADDRSTRLEN)) != nil { - return String(cString: buffer) - } - // fallback - let parts = [part1, part2, part3, part4] - let segments = parts.flatMap { part -> [UInt16] in - [UInt16(part >> 16), UInt16(part & 0xFFFF)] - } - return segments.map { String(format: "%04x", $0) }.joined(separator: ":") + precondition( + inet_ntop(AF_INET6, &addr, &buffer, socklen_t(INET6_ADDRSTRLEN)) != nil, + "Failed to format IPv6 address" + ) + return String(cString: buffer) } } @@ -175,20 +170,24 @@ struct EasyTierStatus: Codable { } } var virtualIPv4: IPv4CIDR? + var virtualIPv6: IPv6CIDR? var hostname: String var version: String var ips: IPList? var stunInfo: STUNInfo? var listeners: [Url]? = nil var vpnPortalCfg: String? + var peerId: Int? enum CodingKeys: String, CodingKey { case virtualIPv4 = "virtual_ipv4" + case virtualIPv6 = "virtual_ipv6" case hostname, version case ips case stunInfo = "stun_info" case listeners case vpnPortalCfg = "vpn_portal_cfg" + case peerId = "peer_id" } } diff --git a/Spotier/NativeHorizontalScroller.swift b/Spotier/NativeHorizontalScroller.swift new file mode 100644 index 0000000..f1a9f74 --- /dev/null +++ b/Spotier/NativeHorizontalScroller.swift @@ -0,0 +1,52 @@ +import SwiftUI +import AppKit + +class HorizontalOnlyScrollView: NSScrollView { + override func scrollWheel(with event: NSEvent) { + if abs(event.scrollingDeltaY) > abs(event.scrollingDeltaX) { + return + } + + super.scrollWheel(with: event) + } +} + +struct NativeHorizontalScroller: NSViewRepresentable { + let content: Content + + init(@ViewBuilder content: @escaping () -> Content) { + self.content = content() + } + + func makeNSView(context: Context) -> NSScrollView { + let scroller = HorizontalOnlyScrollView() + scroller.hasHorizontalScroller = false + scroller.hasVerticalScroller = false + scroller.drawsBackground = false + scroller.autohidesScrollers = true + scroller.horizontalScrollElasticity = .allowed + scroller.verticalScrollElasticity = .none + + let hostingView = NSHostingView(rootView: content) + hostingView.translatesAutoresizingMaskIntoConstraints = false + scroller.documentView = hostingView + + if let doc = scroller.documentView { + doc.topAnchor.constraint(equalTo: scroller.contentView.topAnchor).isActive = true + doc.leadingAnchor.constraint(equalTo: scroller.contentView.leadingAnchor).isActive = true + } + + return scroller + } + + func updateNSView(_ nsView: NSScrollView, context: Context) { + if let host = nsView.documentView as? NSHostingView { + host.rootView = content + + let fittingSize = host.fittingSize + if host.frame.size != fittingSize { + host.frame.size = fittingSize + } + } + } +} diff --git a/Spotier/PeerCard.swift b/Spotier/PeerCard.swift new file mode 100644 index 0000000..f7eb33c --- /dev/null +++ b/Spotier/PeerCard.swift @@ -0,0 +1,206 @@ +import SwiftUI + +struct PeerCard: View, Equatable { + let peer: PeerInfo + + static func == (lhs: PeerCard, rhs: PeerCard) -> Bool { + lhs.peer == rhs.peer + } + + @State private var showDetail = false + + private var shortVersion: String { + String(peer.version.split(separator: "-").first ?? Substring(peer.version)) + } + + private func formatSpeed(_ speedStr: String) -> String { + // If it already has units (from Table output), e.g. "10.5 KB" + if speedStr.contains(" ") { + return speedStr + } + + // If it is a raw number (from JSON output), e.g. "10240" + if let bytes = Double(speedStr) { + let formatter = ByteCountFormatter() + formatter.allowedUnits = [.useKB, .useMB, .useGB, .useTB] // Adjust as needed + formatter.countStyle = .binary // 1024 + formatter.includesUnit = true + return formatter.string(fromByteCount: Int64(bytes)) + } + + return speedStr + } + + // MARK: - Helpers + + private func clean(_ text: String) -> String { + // Strip ANSI codes and whitespace + text.replacingOccurrences(of: "\\x1b\\[[0-9;]*m", with: "", options: .regularExpression) + .trimmingCharacters(in: .whitespacesAndNewlines) + } + + // MARK: - Translation & Color Helpers + + private func translateTunnel(_ raw: String) -> String { + let text = clean(raw) + let lower = text.lowercased() + + if lower == "local" { return "Local" } + if lower == "p2p" { return "P2P" } + // Remove forced replacement for p2p to allow "P2P" or "P2P(x)" to show naturally + + if lower == "relay" { return "Relay" } + // Remove forced replacement for relay + + // Capitalize first letter for other cases if needed, or return as is + if lower.starts(with: "relay") { return text.replacingOccurrences(of: "relay", with: "Relay", options: .caseInsensitive) } + + return text + } + + private func translateNAT(_ raw: String) -> String { + let text = clean(raw) + let lower = text.lowercased() + if lower == "nopat" { return "No PAT" } + + if lower.hasPrefix("openinternet") { return "Open" } + if lower.hasPrefix("fullcone") { return "Full Cone" } + if lower.hasPrefix("symmetric") { return "Symmetric" } + + if lower.contains("portrestricted") { return "Port Restricted" } + if lower.contains("restricted") { return "Restricted" } + + return text + } + + private func natColor(for text: String) -> Color { + let t = text.lowercased() + if t.contains("全锥形") || t.contains("full cone") || t.contains("开放") || t.contains("open") || t.contains("一对一") || t.contains("no pat") { return .blue } + if t.contains("对称") || t.contains("symmetric") { return .red } + if t.contains("端口受限") || t.contains("port restricted") { return .orange } + if t.contains("受限") || t.contains("restricted") { return .yellow } + return .gray + } + + private func tagColor(for text: String) -> Color { + let t = text.lowercased() + // Tunnel Colors + if t.contains("直连") || t.contains("p2p") { return .blue } + if t.contains("中转") || t.contains("relay") { return .purple } + if t.contains("本机") || t.contains("local") { return .gray } + return .gray + } + + var body: some View { + VStack(alignment: .leading, spacing: 6) { + // 1. Title + HStack(alignment: .center, spacing: 0) { + ScrollingText(text: peer.hostname.isEmpty ? "未知节点" : peer.hostname) + .frame(height: 18) + .fixedSize(horizontal: false, vertical: true) + + Spacer(minLength: 8) + + Button(action: { showDetail = true }) { + Image(systemName: "info.circle") + .foregroundColor(.secondary) + } + .buttonStyle(.plain) + .popover(isPresented: $showDetail) { + PeerDetailView(peer: peer) + .frame(width: 320, height: 450) + } + } + + // 2. IP & Latency + HStack { + Text(peer.ipv4.isEmpty ? peer.hostname : peer.ipv4) + .font(.system(size: 11, design: .monospaced)) + .foregroundColor(.secondary) + .lineLimit(1) + Spacer() + if !peer.latency.isEmpty { + Text("\(peer.latency) ms") + .font(.system(size: 11, weight: .medium, design: .monospaced)) + .foregroundColor(.green) + } + } + + // 3. Speed & Loss + HStack(spacing: 0) { + HStack(spacing: 1) { + Image(systemName: "arrow.down") + .font(.system(size: 8)) + Text(formatSpeed(peer.rx)) + .minimumScaleFactor(0.7) + } + .foregroundColor(.green) + .frame(maxWidth: .infinity, alignment: .leading) + + HStack(spacing: 1) { + Image(systemName: "arrow.up") + .font(.system(size: 8)) + Text(formatSpeed(peer.tx)) + .minimumScaleFactor(0.7) + } + .foregroundColor(.red) + .frame(maxWidth: .infinity, alignment: .leading) + + Text(peer.loss.isEmpty ? "0.0%" : peer.loss) + .foregroundColor(.secondary) + .frame(width: 45, alignment: .trailing) + } + .font(.system(size: 9, weight: .medium).monospacedDigit()) + .lineLimit(1) + + // 4. Tags + let tTunnel = translateTunnel(peer.tunnel) + let tNat = translateNAT(peer.nat) + let tCost = translateTunnel(peer.cost) + + HStack(spacing: 6) { + Tag(text: LocalizedStringKey(tCost), color: tagColor(for: tCost)) + Tag(text: LocalizedStringKey(tTunnel), color: tagColor(for: tTunnel)) + if !tNat.isEmpty { + Tag(text: LocalizedStringKey(tNat), color: natColor(for: tNat)) + } + Tag(text: LocalizedStringKey(shortVersion), color: .gray) + } + .fixedSize(horizontal: false, vertical: true) + } + .padding(.horizontal, 10) + .padding(.vertical, 10) + .frame(maxWidth: .infinity, alignment: .leading) + .background(cardBackground) + } + + private var cardBackground: some View { + RoundedRectangle(cornerRadius: 12) + .fill(Color(nsColor: .windowBackgroundColor).opacity(0.6)) // Match SpeedCard background + .background(borderColor.opacity(0.05)) // Add subtle tint to match SpeedCard's visual weight + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(borderColor.opacity(0.6), lineWidth: 1) // Increased opacity for better visibility + ) + .clipShape(RoundedRectangle(cornerRadius: 12)) // Ensure background tint is clipped + } + + // Logic to determine border color based on Peer Type + private var borderColor: Color { + // 1. Local (本机) + let tunnelLower = peer.tunnel.lowercased() + if tunnelLower == "local" || peer.ipv4.lowercased().contains("local") { + return .blue + } + + // 2. Public Peer (Public) + if peer.ipv4.isEmpty || + peer.ipv4.lowercased().contains("public") || + peer.hostname.lowercased().contains("public") { + return .red + } + + // 3. Remote (远端机器) - Changed from .yellow to .green for visibility + return .green + } +} diff --git a/Spotier/PeerCardComponents.swift b/Spotier/PeerCardComponents.swift new file mode 100644 index 0000000..5618cc7 --- /dev/null +++ b/Spotier/PeerCardComponents.swift @@ -0,0 +1,71 @@ +import SwiftUI + +struct ScrollingText: View { + let text: String + + @State private var offset: CGFloat = 0 + @State private var isHovering = false + @State private var containerWidth: CGFloat = 0 + @State private var textWidth: CGFloat = 0 + + var body: some View { + GeometryReader { geometry in + ZStack(alignment: .leading) { + Text(text) + .font(.system(size: 13, weight: .semibold)) + .fixedSize(horizontal: true, vertical: false) + .background( + GeometryReader { textGeometry in + Color.clear.onAppear { textWidth = textGeometry.size.width } + } + ) + .opacity(0) + + Text(text) + .font(.system(size: 13, weight: .semibold)) + .fixedSize(horizontal: true, vertical: false) + .offset(x: offset) + .animation( + shouldAnimate + ? .linear(duration: Double(textWidth / 60)).repeatForever(autoreverses: true) + : .default, + value: offset + ) + } + .onAppear { containerWidth = geometry.size.width } + .onChange(of: isHovering) { hovering in + if hovering && textWidth > containerWidth { + offset = -(textWidth - containerWidth + 8) + } else { + offset = 0 + } + } + } + .contentShape(Rectangle()) + .onHover { isHovering = $0 } + .clipped() + } + + private var shouldAnimate: Bool { + isHovering && textWidth > containerWidth + } +} + +struct Tag: View { + let text: LocalizedStringKey + var color: Color = .gray + + var body: some View { + Text(text) + .font(.system(size: 9)) + .foregroundColor(color) + .lineLimit(1) + .minimumScaleFactor(0.7) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.vertical, 3) + .background( + Capsule() + .fill(color.opacity(0.12)) + ) + } +} diff --git a/Spotier/PeerDetailView.swift b/Spotier/PeerDetailView.swift new file mode 100644 index 0000000..9ddb333 --- /dev/null +++ b/Spotier/PeerDetailView.swift @@ -0,0 +1,152 @@ +import SwiftUI + +struct PeerDetailView: View { + let peer: PeerInfo + + @Environment(\.presentationMode) var presentationMode + + var body: some View { + VStack(spacing: 0) { + Text(LocalizedStringKey("点击条目以复制内容")) + .font(.caption) + .foregroundColor(.secondary) + .padding(.vertical, 8) + + Form { + if let myNode = peer.myNodeData { + localNodeSections(myNode) + } else if let pair = peer.fullData { + remotePeerSections(pair) + } else { + basicSections + } + } + .formStyle(.grouped) + } + .frame(width: 320, height: 450) + } + + @ViewBuilder + private func localNodeSections(_ node: SpotierStatus.NodeInfo) -> some View { + Section(header: Text(LocalizedStringKey("节点"))) { + CopyableDetailRow(label: LocalizedStringKey("主机名"), value: node.hostname) + CopyableDetailRow(label: LocalizedStringKey("版本"), value: node.version) + if let virtualIPv4 = node.virtualIPv4 { + CopyableDetailRow(label: LocalizedStringKey("虚拟 IP"), value: virtualIPv4.description) + } + if let stunInfo = node.stunInfo { + if !stunInfo.udpNATType.description.isEmpty { + CopyableDetailRow(label: LocalizedStringKey("UDP NAT 类型"), value: stunInfo.udpNATType.description) + } + if !stunInfo.tcpNATType.description.isEmpty { + CopyableDetailRow(label: LocalizedStringKey("TCP NAT 类型"), value: stunInfo.tcpNATType.description) + } + } + } + + if let listeners = node.listeners, !listeners.isEmpty { + Section(header: Text(LocalizedStringKey("监听地址"))) { + ForEach(listeners.indices, id: \.self) { index in + CopyableDetailRow(label: LocalizedStringKey("监听 \(index + 1)"), value: listeners[index].url) + } + } + } + } + + @ViewBuilder + private func remotePeerSections(_ pair: SpotierStatus.PeerRoutePair) -> some View { + let route = pair.route + + Section(header: Text(LocalizedStringKey("节点"))) { + CopyableDetailRow(label: LocalizedStringKey("主机名"), value: route.hostname) + CopyableDetailRow(label: LocalizedStringKey("节点 ID"), value: "\(route.peerId)", isMonospaced: true) + CopyableDetailRow(label: LocalizedStringKey("实例 ID"), value: route.instId, isMonospaced: true) + CopyableDetailRow(label: LocalizedStringKey("版本"), value: route.version) + CopyableDetailRow(label: LocalizedStringKey("下一跳 ID"), value: "\(route.nextHopPeerId)", isMonospaced: true) + CopyableDetailRow(label: LocalizedStringKey("代价"), value: "\(route.cost)") + CopyableDetailRow(label: LocalizedStringKey("路径延迟"), value: "\(route.pathLatency / 1000) ms") + + if let nextHopLatencyFirst = route.nextHopPeerIdLatencyFirst { + CopyableDetailRow(label: LocalizedStringKey("下一跳 (延迟优先)"), value: "\(nextHopLatencyFirst)", isMonospaced: true) + CopyableDetailRow(label: LocalizedStringKey("代价 (延迟优先)"), value: "\(route.costLatencyFirst ?? 0)") + CopyableDetailRow(label: LocalizedStringKey("路径延迟 (延迟优先)"), value: "\((route.pathLatencyLatencyFirst ?? 0) / 1000) ms") + } + + if let flags = route.featureFlag { + let formattedFlags = formatFlags(flags) + if !formattedFlags.isEmpty { + CopyableDetailRow(label: LocalizedStringKey("特性标志"), value: formattedFlags) + } + } + } + + if let peerInfo = pair.peer { + Section(header: Text(LocalizedStringKey("连接状态"))) { + if let defaultConnId = peerInfo.defaultConnId { + CopyableDetailRow(label: LocalizedStringKey("默认连接"), value: defaultConnId.description) + } + } + + ForEach(peerInfo.conns.indices, id: \.self) { index in + let connection = peerInfo.conns[index] + Section(header: Text(connectionTitle(for: connection, index: index))) { + CopyableDetailRow(label: LocalizedStringKey("角色"), value: connection.isClient ? "Client" : "Server") + CopyableDetailRow(label: LocalizedStringKey("丢包率"), value: String(format: "%.2f%%", connection.lossRate * 100)) + if let localAddr = connection.tunnel?.localAddr.url { + CopyableDetailRow(label: LocalizedStringKey("本地地址"), value: localAddr) + } + if let remoteAddr = connection.tunnel?.remoteAddr.url { + CopyableDetailRow(label: LocalizedStringKey("远程地址"), value: remoteAddr) + } + + if let stats = connection.stats { + CopyableDetailRow(label: LocalizedStringKey("接收"), value: formatBytes(stats.rxBytes)) + CopyableDetailRow(label: LocalizedStringKey("发送"), value: formatBytes(stats.txBytes)) + CopyableDetailRow(label: LocalizedStringKey("延迟"), value: String(format: "%.1f ms", Double(stats.latencyUs) / 1000.0)) + } + } + } + } + } + + @ViewBuilder + private var basicSections: some View { + Section(header: Text(LocalizedStringKey("基础信息"))) { + CopyableDetailRow(label: LocalizedStringKey("主机名"), value: peer.hostname) + CopyableDetailRow(label: LocalizedStringKey("虚拟 IP"), value: peer.ipv4) + CopyableDetailRow(label: LocalizedStringKey("版本"), value: peer.version) + } + Section(header: Text(LocalizedStringKey("网络信息"))) { + CopyableDetailRow(label: LocalizedStringKey("代价"), value: peer.cost) + CopyableDetailRow(label: LocalizedStringKey("延迟"), value: peer.latency + " ms") + CopyableDetailRow(label: LocalizedStringKey("丢包率"), value: peer.loss) + CopyableDetailRow(label: LocalizedStringKey("隧道方式"), value: peer.tunnel) + } + } + + private func connectionTitle(for connection: SpotierStatus.PeerConnInfo, index: Int) -> LocalizedStringKey { + if let tunnelType = connection.tunnel?.tunnelType { + return LocalizedStringKey("连接 \(index + 1) [\(tunnelType)]") + } + return LocalizedStringKey("连接 \(index + 1)") + } + + private func formatFlags(_ flags: SpotierStatus.PeerFeatureFlag) -> String { + var parts = [String]() + if flags.isPublicServer { parts.append("public_server") } + if flags.avoidRelayData { parts.append("avoid_relay") } + if flags.kcpInput { parts.append("kcp_input") } + if flags.noRelayKcp { parts.append("no_relay_kcp") } + if flags.supportConnListSync { parts.append("conn_list_sync") } + return parts.joined(separator: ", ") + } + + private func formatBytes(_ bytes: Int) -> String { + if bytes < 1024 { return "\(bytes) B" } + let kilobytes = Double(bytes) / 1024.0 + if kilobytes < 1024 { return String(format: "%.1f KB", kilobytes) } + let megabytes = kilobytes / 1024.0 + if megabytes < 1024 { return String(format: "%.1f MB", megabytes) } + return String(format: "%.2f GB", megabytes / 1024.0) + } +} diff --git a/EasyTier/RippleRingsView.swift b/Spotier/RippleRingsView.swift similarity index 100% rename from EasyTier/RippleRingsView.swift rename to Spotier/RippleRingsView.swift diff --git a/EasyTier/ScrollFixer.swift b/Spotier/ScrollFixer.swift similarity index 68% rename from EasyTier/ScrollFixer.swift rename to Spotier/ScrollFixer.swift index 35838df..99cd6bd 100644 --- a/EasyTier/ScrollFixer.swift +++ b/Spotier/ScrollFixer.swift @@ -5,19 +5,15 @@ import AppKit /// This bypasses SwiftUI's limitations by interacting directly with the AppKit layer. struct ScrollFixer: NSViewRepresentable { func makeNSView(context: Context) -> NSView { - let view = NSView() - // Delay execution slightly to ensure the view hierarchy is built - DispatchQueue.main.async { - if let scrollView = findScrollView(for: view) { - scrollView.verticalScrollElasticity = .none - scrollView.hasVerticalScroller = false - scrollView.usesPredominantAxisScrolling = false // Forces strict axis locking - } - } - return view + NSView() } - func updateNSView(_ nsView: NSView, context: Context) {} + func updateNSView(_ nsView: NSView, context: Context) { + guard let scrollView = findScrollView(for: nsView) else { return } + scrollView.verticalScrollElasticity = .none + scrollView.hasVerticalScroller = false + scrollView.usesPredominantAxisScrolling = false + } private func findScrollView(for view: NSView) -> NSScrollView? { var current: NSView? = view.superview diff --git a/Spotier/SettingsView.swift b/Spotier/SettingsView.swift new file mode 100644 index 0000000..6d6e691 --- /dev/null +++ b/Spotier/SettingsView.swift @@ -0,0 +1,238 @@ +import SwiftUI +import ServiceManagement + +struct SettingsView: View { + @Binding var isPresented: Bool + + @AppStorage("connectOnStart") private var connectOnStart: Bool = true + @AppStorage("breathEffect") private var breathEffect: Bool = true + @AppStorage("launchAtLogin") private var launchAtLogin: Bool = false + + @State private var logLevel = StoredLogLevel.info + @State private var showLicense = false + + private let logSettingsStore = LogSettingsStore.shared + + var body: some View { + ZStack { + VStack(spacing: 0) { + // Header + UnifiedHeader(title: LocalizedStringKey("设置")) { + Button(LocalizedStringKey("完成")) {}.buttonStyle(.bordered).hidden() // Placeholder + } right: { + Button(LocalizedStringKey("完成")) { + withAnimation { isPresented = false } + } + .buttonStyle(.borderedProminent) + } + + // Native Form + Form { + Section(header: Text("通用")) { + HStack { + Text("版本") + Spacer() + Text(Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String) + .foregroundColor(.secondary) + } + + Toggle("Connect On Demand", isOn: $connectOnStart) + .onChange(of: connectOnStart) { newValue in + VPNManager.shared.updateOnDemand(enabled: newValue) + } + Toggle("连接时图标呼吸闪烁", isOn: $breathEffect) + + // 开机自启 + Toggle("开机自动启动", isOn: $launchAtLogin) + .onChange(of: launchAtLogin) { newValue in + toggleLaunchAtLogin(enabled: newValue) + } + } + + + + + Section(header: Text("日志"), footer: Text("修改日志等级后,需要停止并重新启动服务才能生效。")) { + Picker(LocalizedStringKey("日志等级"), selection: $logLevel) { + ForEach(StoredLogLevel.allCases, id: \.self) { level in + Text(level.rawValue).tag(level) + } + } + } + + Section(header: Text("关于")) { + HStack { + Text("开发者") + Spacer() + Text("Alick Huang") + .foregroundColor(.secondary) + } + + HStack { + Text("源代码") + Spacer() + Link("GitHub 仓库", destination: URL(string: "https://github.com/AlickH/Spotier")!) + .foregroundColor(.blue) + } + + HStack { + Text("EasyTier") + Spacer() + Link("easytier.cn", destination: URL(string: "https://easytier.cn/")!) + .foregroundColor(.blue) + } + + Button(action: { + withAnimation { + showLicense = true + } + }) { + VStack(alignment: .leading, spacing: 6) { + HStack { + Text(LocalizedStringKey("开源声明")) + .font(.body) + .foregroundColor(.primary) + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(Color(nsColor: .tertiaryLabelColor)) + } + Text(LocalizedStringKey("本项目遵循 GPL-3.0 开源许可证。")) + .font(.caption) + .foregroundColor(.secondary) + .fixedSize(horizontal: false, vertical: true) + .multilineTextAlignment(.leading) + } + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + } + } + .formStyle(.grouped) // 使用系统标准的 Grouped 样式 + .scrollContentBackground(.hidden) // 让 Form 背景对齐到外部 + } // End VStack + .background(Color(nsColor: .windowBackgroundColor)) // 整体背景 + + + + // License Popup + if showLicense { + LicenseView(isPresented: $showLicense) + .transition(.move(edge: .trailing)) // Slide from right like a push + .zIndex(100) + } + + + } + .onAppear { + checkLaunchAtLogin() + logLevel = logSettingsStore.readLevel() + } + .onChange(of: logLevel) { newValue in + logSettingsStore.writeLevel(newValue) + } + } + + private func checkLaunchAtLogin() { + if #available(macOS 13.0, *) { + launchAtLogin = SMAppService.mainApp.status == .enabled + } + } + + + + + + + private func toggleLaunchAtLogin(enabled: Bool) { + if #available(macOS 13.0, *) { + do { + if enabled { + try SMAppService.mainApp.register() + } else { + try SMAppService.mainApp.unregister() + } + } catch { + print("Failed to toggle launch at login: \(error)") + launchAtLogin = !enabled + } + } + } +} + + + +struct LicenseView: View { + @Binding var isPresented: Bool + + private let gplLicense = """ +GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +Preamble + +The GNU General Public License is a free, copyleft license for software +and other kinds of works. + +The licenses for most software and other practical works are designed to +take away your freedom to share and change the works. By contrast, the +GNU General Public License is intended to guarantee your freedom to share +and change all versions of a program--to make sure it remains free software +for all its users. + +When we speak of free software, we are referring to freedom, not price. +Our General Public Licenses are designed to make sure that you have the +freedom to distribute copies of free software (and charge for them if you +wish), that you receive source code or can get it if you want it, that +you can change the software or use pieces of it in new free programs, and +that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these +rights or asking you to surrender the rights. Therefore, you have certain +responsibilities if you distribute copies of the software, or if you +modify it: responsibilities to respect the freedom of others. + +For the complete license text, visit: +https://www.gnu.org/licenses/gpl-3.0.en.html + +Copyright (c) 2024 Alick Huang + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + + var body: some View { + VStack(spacing: 0) { + UnifiedHeader(title: "GPL-3.0 License") { + Button(LocalizedStringKey("关闭")) { + withAnimation { isPresented = false } + } + .buttonStyle(.bordered) + } right: { EmptyView() } + + ScrollView { + Text(gplLicense) + .font(.system(.body, design: .monospaced)) + .padding() + .textSelection(.enabled) + } + } + .background(Color(nsColor: .windowBackgroundColor)) + } +} diff --git a/Spotier/SharedComponents.swift b/Spotier/SharedComponents.swift new file mode 100644 index 0000000..70900f1 --- /dev/null +++ b/Spotier/SharedComponents.swift @@ -0,0 +1,55 @@ +import SwiftUI + +// MARK: - Unified Header Component + +/// 统一风格的页面 Header 布局容器 +/// 仅负责布局结构,样式完全由内部按钮的系统 Style 决定 +struct UnifiedHeader: View { + let leftButton: LeftBtn + let centerContent: AnyView + let rightButton: RightBtn + + init( + title: LocalizedStringKey, + @ViewBuilder left: @escaping () -> LeftBtn, + @ViewBuilder right: @escaping () -> RightBtn + ) { + self.leftButton = left() + self.centerContent = AnyView( + Text(title) + .font(.headline) + .lineLimit(1) + ) + self.rightButton = right() + } + + init( + @ViewBuilder left: @escaping () -> LeftBtn, + @ViewBuilder center: @escaping () -> some View, + @ViewBuilder right: @escaping () -> RightBtn + ) { + self.leftButton = left() + self.centerContent = AnyView(center()) + self.rightButton = right() + } + + var body: some View { + VStack(spacing: 0) { + HStack { + leftButton + + Spacer() + + centerContent + + Spacer() + + rightButton + } + .padding(12) + .background(Color(nsColor: .windowBackgroundColor)) // 保持背景一致 + + Divider() + } + } +} diff --git a/EasyTier/SparklineView.swift b/Spotier/SparklineView.swift similarity index 89% rename from EasyTier/SparklineView.swift rename to Spotier/SparklineView.swift index 5fcaf08..63398b8 100644 --- a/EasyTier/SparklineView.swift +++ b/Spotier/SparklineView.swift @@ -35,30 +35,6 @@ struct SparklineView: NSViewRepresentable { nsView.needsLayout = true } } - - func makeCoordinator() -> Coordinator { - Coordinator() - } - - class Coordinator { - init() { - // Register as subscriber when view is actively instantiated (and likely to appear) - // But better done in onAppear. - } - deinit { - // Safety cleanup just in case - // DispatchQueue.main.async { EasyTierRunner.shared.removeSubscriber() } - } - } -} - -extension SparklineView { - // SwiftUI View Modifier wrapper to handle lifecycle - // Actually, NSViewRepresentable does not have body. - // We should rely on the PARENT view to add these modifiers or wrap this in a View. - // However, we can hack it by invoking side effects in updateNSView? No, that's bad. - // Best practice: The container (ConfigGeneratorView or PeerCard list) applies the logic. - // OR: We wrap this struct in a View. } // Wrapper to handle Lifecycle comfortably @@ -70,8 +46,8 @@ struct SmartSparklineView: View { var body: some View { SparklineView(data: data, color: color, maxScale: maxScale, paused: paused) - .onAppear { EasyTierRunner.shared.addSubscriber() } - .onDisappear { EasyTierRunner.shared.removeSubscriber() } + .onAppear { SpotierRunner.shared.addSubscriber() } + .onDisappear { SpotierRunner.shared.removeSubscriber() } } } @@ -112,9 +88,6 @@ final class SparklineNSView: NSView { // Scale Smoothing State private var currentRenderScale: Double = 100.0 - // Phase Sync State - private var isFirstPhase: Bool = true - override init(frame frameRect: NSRect) { super.init(frame: frameRect) setup() @@ -164,12 +137,7 @@ final class SparklineNSView: NSView { dotLayer.borderColor = NSColor.white.cgColor dotLayer.position = .zero pulseContainer.addSublayer(dotLayer) - - dotLayer.borderColor = NSColor.white.cgColor - dotLayer.position = .zero - pulseContainer.addSublayer(dotLayer) - - // Removed auto-start halo. Now triggered by data. + updateColors() } @@ -341,12 +309,13 @@ final class SparklineNSView: NSView { let isFirstRealUpdate = (prevLastValue == nil) && !isLayoutPass if isFirstRealUpdate { - let lastTime = EasyTierRunner.shared.lastDataTime - let now = Date() - let elapsed = now.timeIntervalSince(lastTime) - if elapsed >= 0 && elapsed < animationDuration { - catchUpProgress = elapsed / animationDuration - remainingDuration = animationDuration - elapsed + if let lastTime = SpotierRunner.shared.lastDataTime { + let now = Date() + let elapsed = now.timeIntervalSince(lastTime) + if elapsed >= 0 && elapsed < animationDuration { + catchUpProgress = elapsed / animationDuration + remainingDuration = animationDuration - elapsed + } } prevLastValue = newData.last } else if !isLayoutPass { @@ -437,4 +406,4 @@ final class SparklineNSView: NSView { } return points } -} \ No newline at end of file +} diff --git a/EasyTier/EasyTier.entitlements b/Spotier/Spotier.entitlements similarity index 54% rename from EasyTier/EasyTier.entitlements rename to Spotier/Spotier.entitlements index a0a53e1..0c1bd53 100644 --- a/EasyTier/EasyTier.entitlements +++ b/Spotier/Spotier.entitlements @@ -6,18 +6,33 @@ development com.apple.developer.icloud-container-identifiers - iCloud.com.alick.swiftier + iCloud.com.alick.spotier com.apple.developer.icloud-services CloudDocuments - CloudKit + + com.apple.developer.networking.networkextension + + packet-tunnel-provider com.apple.developer.ubiquity-container-identifiers - iCloud.com.alick.swiftier + iCloud.com.alick.spotier com.apple.developer.ubiquity-kvstore-identifier $(TeamIdentifierPrefix)$(CFBundleIdentifier) + com.apple.security.app-sandbox + + com.apple.security.application-groups + + group.com.alick.spotier + + com.apple.security.files.user-selected.read-write + + com.apple.security.network.client + + com.apple.security.network.server + diff --git a/EasyTier/Swiftier.icon/Assets/point.3.connected.trianglepath.dotted 2.png b/Spotier/Spotier.icon/Assets/point.3.connected.trianglepath.dotted 2.png similarity index 100% rename from EasyTier/Swiftier.icon/Assets/point.3.connected.trianglepath.dotted 2.png rename to Spotier/Spotier.icon/Assets/point.3.connected.trianglepath.dotted 2.png diff --git a/EasyTier/Swiftier.icon/icon.json b/Spotier/Spotier.icon/icon.json similarity index 100% rename from EasyTier/Swiftier.icon/icon.json rename to Spotier/Spotier.icon/icon.json diff --git a/Spotier/SpotierControlApp.swift b/Spotier/SpotierControlApp.swift new file mode 100644 index 0000000..9d63bd1 --- /dev/null +++ b/Spotier/SpotierControlApp.swift @@ -0,0 +1,173 @@ +import SwiftUI +import AppKit +import Combine +import NetworkExtension + +@main +struct SpotierControlApp: App { + @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate + @StateObject private var runner = SpotierRunner.shared + @StateObject private var iconState = MenuBarIconState.shared + + init() { + UserDefaults.standard.register(defaults: [ + "connectOnStart": true, + "breathEffect": true + ]) + } + + var body: some Scene { + MenuBarExtra { + ContentView() + } label: { + MenuBarLabelView(iconState: iconState) + } + .menuBarExtraStyle(.window) + } +} + +// 优化:将 Label 提取为独立 View 隔离刷新 +struct MenuBarLabelView: View { + @ObservedObject var iconState: MenuBarIconState + + var body: some View { + HStack(spacing: 4) { + Image(systemName: iconState.currentIcon) + } + } +} + +// 菜单栏图标状态管理 +@MainActor +class MenuBarIconState: ObservableObject { + static let shared = MenuBarIconState() + + @Published var currentIcon: String = "point.3.connected.trianglepath.dotted" + + private let iconOutline = "point.3.connected.trianglepath.dotted" + private let iconFilled = "point.3.filled.connected.trianglepath.dotted" + private var isShowingFilled = true + private var animationTimer: Timer? + private var cancellables = Set() + + private init() { + // 优化:监听运行状态变化,按需启停 Timer + SpotierRunner.shared.$isRunning + .sink { [weak self] isRunning in + self?.handleRunningStateChange(isRunning: isRunning) + } + .store(in: &cancellables) + + // 监听 breathEffect 设置变化 + NotificationCenter.default.publisher(for: UserDefaults.didChangeNotification) + .sink { [weak self] _ in + self?.updateTimerState() + } + .store(in: &cancellables) + } + + private func handleRunningStateChange(isRunning: Bool) { + updateIcon(isRunning: isRunning) + updateTimerState() + } + + private func updateTimerState() { + let isRunning = SpotierRunner.shared.isRunning + let blinkEnabled = UserDefaults.standard.bool(forKey: "breathEffect") + + if isRunning && blinkEnabled { + startTimer() + } else { + stopTimer() + } + } + + private func startTimer() { + // 优化:避免重复启动 + guard animationTimer == nil else { return } + + animationTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in + Task { @MainActor [weak self] in + self?.tickAnimation() + } + } + } + + private func stopTimer() { + animationTimer?.invalidate() + animationTimer = nil + } + + private func updateIcon(isRunning: Bool) { + isShowingFilled = true + currentIcon = isRunning ? iconFilled : iconOutline + } + + private func tickAnimation() { + isShowingFilled.toggle() + currentIcon = isShowingFilled ? iconFilled : iconOutline + } +} + +@MainActor +class AppDelegate: NSObject, NSApplicationDelegate { + private static let selectedConfigPathDefaultsKey = "selected_config_path" + private var cancellables = Set() + private let configRepository: ConfigFileAccessing = ConfigFileRepository.shared + + func applicationDidFinishLaunching(_ notification: Notification) { + NSApp.setActivationPolicy(.accessory) + + // 等待 VPNManager 加载完成后同步状态 + // Connect On Demand 由系统管理自动连接,App 只需同步 UI 状态 + waitForVPNReady() + } + + // MARK: - Lifecycle + + func applicationWillTerminate(_ notification: Notification) { + // NE 由系统通过 Connect On Demand 管理,App 退出不影响 VPN 连接 + } + + // MARK: - VPN State Sync + + private func waitForVPNReady() { + VPNManager.shared.$isReady + .filter { $0 } + .first() + .sink { [weak self] _ in + self?.syncStateOnLaunch() + } + .store(in: &cancellables) + } + + private func syncStateOnLaunch() { + let vpn = VPNManager.shared + let connectOnStart = UserDefaults.standard.bool(forKey: "connectOnStart") + print("[Launch] VPN status: \(vpn.status.rawValue), isConnected: \(vpn.isConnected), onDemand: \(vpn.isOnDemandEnabled)") + + // 同步 Runner 的 UI 状态 + SpotierRunner.shared.syncWithVPNState() + + // 如果 NE 已经在运行,不做任何操作,避免 saveToPreferences 导致隧道重启 + if vpn.isConnected || vpn.status == .connecting { + print("[Launch] NE already running, skip") + return + } + + // NE 未运行时,确保 On Demand 规则与用户设置一致 + if vpn.isOnDemandEnabled != connectOnStart { + vpn.updateOnDemand(enabled: connectOnStart) + } + + // 如果开启了自动连接,手动触发一次(首次安装或 On Demand 尚未生效时) + if connectOnStart { + let configs = configRepository.refreshConfigs() + if let savedPath = UserDefaults.standard.string(forKey: Self.selectedConfigPathDefaultsKey), + let config = configs.first(where: { $0.path == savedPath }) { + print("[Launch] Triggering initial connect with: \(config.lastPathComponent)") + SpotierRunner.shared.toggleService(configPath: config.path) + } + } + } +} diff --git a/Spotier/SpotierRunner.swift b/Spotier/SpotierRunner.swift new file mode 100644 index 0000000..b4ace1b --- /dev/null +++ b/Spotier/SpotierRunner.swift @@ -0,0 +1,414 @@ +// +// SpotierRunner.swift +// Swiftier +// +// Created by Alick on 2024. +// + +import Foundation +import Combine +import SwiftUI +import NetworkExtension + +@MainActor +final class SpotierRunner: ObservableObject { + static let shared = SpotierRunner() + private let configRepository: ConfigFileAccessing = ConfigFileRepository.shared + + @Published var isRunning = false + @Published var peers: [PeerInfo] = [] + @Published var peerCount: String = "0" + @Published var downloadSpeed: String = "0 KB/s" + @Published var uploadSpeed: String = "0 KB/s" + @Published var maxHistorySpeed: Double = 1_048_576.0 // 缓存最大网速计算结果 + @Published var isWindowVisible = true + @Published var uptimeText: String = "00:00:00" + + // 公开最后一次数据更新的时间戳,供 UI 层做动画相位对齐 + @Published private(set) var lastDataTime: Date? + + private var startedAt: Date? + @Published private(set) var sessionID = UUID() + private var currentSessionID = UUID() + + // Speed calculation + private var lastTotalRx: Int = 0 + private var lastTotalTx: Int = 0 + private var lastPollTime: Date? + private var lastProcessingTime: Date? + + private let jsonDecoder = JSONDecoder() + + @Published var virtualIP: String = "" + + // Speed history for graphs + @Published var downloadHistory: [Double] = Array(repeating: 0.0, count: 20) + @Published var uploadHistory: [Double] = Array(repeating: 0.0, count: 20) + + // Subscriber & Polling Control + private var subscriberCount = 0 + private var pollingTimer: AnyCancellable? + private let activeInterval: TimeInterval = 1.0 + private let lowPowerInterval: TimeInterval = 5.0 + + @Published var isProcessing = false + + private var statusObserver: AnyCancellable? + + private init() { + // Listen to VPNManager status changes + statusObserver = VPNManager.shared.$status.sink { [weak self] status in + Task { @MainActor [weak self] in + self?.handleVPNStatusChange(status) + } + } + + // Check initial state + syncWithVPNState() + } + + func addSubscriber() { + subscriberCount += 1 + updatePollingMode() + } + + func removeSubscriber() { + subscriberCount = max(0, subscriberCount - 1) + updatePollingMode() + } + + private func updatePollingMode() { + guard isRunning else { + pollingTimer?.cancel() + return + } + + let interval: TimeInterval + if subscriberCount > 0 { + interval = activeInterval + } else { + interval = lowPowerInterval + } + + pollingTimer?.cancel() + pollingTimer = Timer.publish(every: interval, on: .main, in: .common) + .autoconnect() + .sink { [weak self] _ in + self?.refreshPeersOnce() + } + } + + private func handleVPNStatusChange(_ status: NEVPNStatus) { + switch status { + case .connected: + if !isRunning { + beginSession(connectedDate: VPNManager.shared.connectedDate ?? Date()) + } + isProcessing = false + case .disconnected, .invalid: + if isRunning { + endSession() + } + isProcessing = false + case .connecting, .disconnecting, .reasserting: + isProcessing = true + @unknown default: + break + } + } + + func syncWithVPNState() { + let status = VPNManager.shared.status + print("[Runner] syncWithVPNState: status = \(status.rawValue)") + handleVPNStatusChange(status) + } + + // MARK: - Control Actions + + func toggleService(configPath: String) { + if isProcessing { return } + + if isRunning { + // 手动关闭时先禁用 On Demand,否则系统会立刻重连 + VPNManager.shared.disableOnDemandAndStop() + } else { + // Start + // 手动启动时恢复 On Demand(之前手动关闭时会禁用) + if UserDefaults.standard.bool(forKey: "connectOnStart") { + VPNManager.shared.updateOnDemand(enabled: true) + } + + // 使用 ConfigManager 读取(处理安全域) + do { + let configURL = URL(fileURLWithPath: configPath) + let configContent = try configRepository.readContent(at: configURL) + VPNManager.shared.startVPN(configContent: configContent) + } catch { + print("Failed to read config for VPN: \(error)") + } + } + } + + private func startMonitoring() { + resetSpeedCounters() + updatePollingMode() + refreshPeersOnce() + } + + private func resetSpeedCounters() { + lastTotalRx = 0 + lastTotalTx = 0 + lastPollTime = nil + lastProcessingTime = nil + lastDataTime = nil + downloadHistory = Array(repeating: 0.0, count: 20) + uploadHistory = Array(repeating: 0.0, count: 20) + } + + private func refreshPeersOnce() { + guard isRunning else { return } + + // Request running info directly from NE via IPC + VPNManager.shared.requestRunningInfo { [weak self] json in + guard let self = self, let json = json else { return } + Task { @MainActor in + self.processRunningInfo(json) + } + } + } + + // ... processRunningInfo, formatSpeed, formatBytes, Uptime Timer logic remains mostly the same ... + // Copying the rest of the logic to ensure it works. + + private var throttleInterval: TimeInterval = 0.8 + + private func processRunningInfo(_ jsonStr: String) { + let now = Date() + if let lastProcessingTime, now.timeIntervalSince(lastProcessingTime) < throttleInterval { + return + } + guard let data = jsonStr.data(using: .utf8) else { return } + let status: SpotierStatus + do { + status = try jsonDecoder.decode(SpotierStatus.self, from: data) + } catch { + return + } + + lastProcessingTime = now + LogParser.shared.updateEventsFromRunningInfo(status.events) + + var totalRx = 0 + var totalTx = 0 + var fetchedPeers: [PeerInfo] = [] + + for pair in status.peerRoutePairs { + guard let peer = pair.peer else { continue } + for conn in peer.conns { + guard let stats = conn.stats else { continue } + totalRx += stats.rxBytes + totalTx += stats.txBytes + } + } + + if let myNode = status.myNodeInfo { + fetchedPeers.append(PeerInfo( + sessionID: currentSessionID, + ipv4: myNode.virtualIPv4?.description ?? "", + hostname: myNode.hostname, + cost: "本机", + latency: "0", + loss: "0.0%", + rx: formatBytes(totalRx), + tx: formatBytes(totalTx), + tunnel: "LOCAL", + nat: myNode.stunInfo?.udpNATType.description ?? "", + version: myNode.version, + myNodeData: myNode + )) + } + + for pair in status.peerRoutePairs { + var rxText = "0 B" + var txText = "0 B" + var latencyText = "" + var lossText = "" + var tunnelText = "" + + if let peer = pair.peer { + var rxBytes = 0 + var txBytes = 0 + var latencySum = 0 + var latencyCount = 0 + var lossSum = 0.0 + var lossCount = 0 + var tunnels = Set() + + for conn in peer.conns { + if let stats = conn.stats { + latencySum += stats.latencyUs + latencyCount += 1 + rxBytes += stats.rxBytes + txBytes += stats.txBytes + } + + lossSum += conn.lossRate + lossCount += 1 + + if let tunnelType = conn.tunnel?.tunnelType { + tunnels.insert(tunnelType.uppercased()) + } + } + + rxText = formatBytes(rxBytes) + txText = formatBytes(txBytes) + if latencyCount > 0 { + latencyText = String(format: "%.1f", Double(latencySum) / Double(latencyCount) / 1000.0) + } + if lossCount > 0 { + lossText = String(format: "%.1f%%", (lossSum / Double(lossCount)) * 100.0) + } + tunnelText = tunnels.sorted().joined(separator: "&") + } else if pair.route.pathLatency > 0 { + latencyText = String(format: "%.1f", Double(pair.route.pathLatency) / 1000.0) + } + + fetchedPeers.append(PeerInfo( + sessionID: currentSessionID, + ipv4: pair.route.ipv4Addr?.description ?? "", + hostname: pair.route.hostname, + cost: pair.route.cost == 1 ? "P2P" : "Relay(\(pair.route.cost))", + latency: latencyText, + loss: lossText, + rx: rxText, + tx: txText, + tunnel: tunnelText, + nat: pair.route.stunInfo?.udpNATType.description ?? "", + version: pair.route.version, + fullData: pair + )) + } + + let sortedPeers = fetchedPeers.sorted { p1, p2 in + let is1Local = p1.cost == "本机" + let is2Local = p2.cost == "本机" + if is1Local != is2Local { return is1Local } + + let is1Empty = p1.ipv4.isEmpty + let is2Empty = p2.ipv4.isEmpty + if is1Empty != is2Empty { return !is1Empty } + + return p1.ipv4.localizedStandardCompare(p2.ipv4) == .orderedAscending + } + + let receiveSpeed: Double + let transmitSpeed: Double + if let lastPollTime, now.timeIntervalSince(lastPollTime) > 0.1 { + let elapsed = now.timeIntervalSince(lastPollTime) + receiveSpeed = max(0, Double(totalRx - lastTotalRx) / elapsed) + transmitSpeed = max(0, Double(totalTx - lastTotalTx) / elapsed) + } else { + receiveSpeed = 0 + transmitSpeed = 0 + } + + self.lastTotalRx = totalRx + self.lastTotalTx = totalTx + self.lastPollTime = now + + lastDataTime = now + virtualIP = status.myNodeInfo?.virtualIPv4?.description ?? "" + downloadSpeed = formatSpeed(receiveSpeed) + uploadSpeed = formatSpeed(transmitSpeed) + downloadHistory.removeFirst() + downloadHistory.append(receiveSpeed) + uploadHistory.removeFirst() + uploadHistory.append(transmitSpeed) + maxHistorySpeed = max( + downloadHistory.max() ?? 0.0, + uploadHistory.max() ?? 0.0, + 1_048_576.0 + ) + + let oldIDs = peers.map(\.id) + let newIDs = sortedPeers.map(\.id) + + if oldIDs != newIDs { + withAnimation(.spring(response: 0.5, dampingFraction: 0.82)) { + peers = sortedPeers + } + } else { + peers = sortedPeers + } + peerCount = "\(sortedPeers.count)" + } + + private func formatSpeed(_ bytesPerSec: Double) -> String { + if bytesPerSec < 1024 { return String(format: "%.0f B/s", bytesPerSec) } + let kb = bytesPerSec / 1024.0 + if kb < 1024 { return String(format: "%.1f KB/s", kb) } + let mb = kb / 1024.0 + return String(format: "%.1f MB/s", mb) + } + + private func formatBytes(_ bytes: Int) -> String { + if bytes < 1024 { return "\(bytes) B" } + let kb = Double(bytes) / 1024.0 + if kb < 1024 { return String(format: "%.1f KB", kb) } + let mb = kb / 1024.0 + if mb < 1024 { return String(format: "%.1f MB", mb) } + return String(format: "%.2f GB", mb / 1024.0) + } + + private var uptimeTimer: Timer? + + private func beginSession(connectedDate: Date) { + guard !isRunning else { return } + + let nextSessionID = UUID() + isRunning = true + startedAt = connectedDate + currentSessionID = nextSessionID + sessionID = nextSessionID + startUptimeTimer() + startMonitoring() + } + + private func endSession() { + isRunning = false + startedAt = nil + stopUptimeTimer() + peers = [] + peerCount = "0" + uptimeText = "00:00:00" + downloadSpeed = "0 KB/s" + uploadSpeed = "0 KB/s" + virtualIP = "" + resetSpeedCounters() + } + + private func startUptimeTimer() { + guard uptimeTimer == nil else { return } + updateUptimeText() + let t = Timer(timeInterval: 1.0, repeats: true) { [weak self] _ in + Task { @MainActor [weak self] in + self?.updateUptimeText() + } + } + RunLoop.main.add(t, forMode: .common) + uptimeTimer = t + } + + private func stopUptimeTimer() { + uptimeTimer?.invalidate() + uptimeTimer = nil + } + + private func updateUptimeText() { + guard let sAt = startedAt else { return } + let interval = Int(Date().timeIntervalSince(sAt)) + let h = interval / 3600; let m = (interval % 3600) / 60; let s = interval % 60 + let newText = String(format: "%02d:%02d:%02d", h, m, s) + if uptimeText != newText { uptimeText = newText } + } +} diff --git a/Spotier/VPNManager.swift b/Spotier/VPNManager.swift new file mode 100644 index 0000000..851e626 --- /dev/null +++ b/Spotier/VPNManager.swift @@ -0,0 +1,302 @@ +import Foundation +import NetworkExtension +import Combine + +class VPNManager: ObservableObject, VPNControlling { + static let shared = VPNManager() + + @Published var isConnected = false + @Published var statusText = "未连接" + @Published var status: NEVPNStatus = .disconnected + @Published var isReady = false + + var isOnDemandEnabled: Bool { + manager?.isOnDemandEnabled == true + } + + /// NE 隧道的实际连接时间 + var connectedDate: Date? { + manager?.connection.connectedDate + } + + private var manager: NETunnelProviderManager? + private var pendingStartConfigContent: String? + + init() { + loadPreferences() + + // 监听状态变化 + NotificationCenter.default.addObserver( + self, + selector: #selector(vpnStatusDidChange), + name: .NEVPNStatusDidChange, + object: nil + ) + } + + func loadManager() { + loadPreferences() + } + + private func loadPreferences() { + NETunnelProviderManager.loadAllFromPreferences { [weak self] managers, error in + guard let self = self else { return } + + if let error = error { + print("Error loading VPN preferences: \(error)") + self.statusText = "加载 VPN 配置失败: \(error.localizedDescription)" + return + } + + let managers = managers ?? [] + let descriptors = managers.map { + VPNProfileDescriptor( + localizedDescription: $0.localizedDescription, + providerBundleIdentifier: ($0.protocolConfiguration as? NETunnelProviderProtocol)?.providerBundleIdentifier + ) + } + guard let selectedIndex = VPNProfileSelection.firstMatchingProfileIndex(in: descriptors) else { + self.setupVPNProfile() + return + } + + let existingManager = managers[selectedIndex] + self.manager = existingManager + self.updateStatusSync() + self.isReady = true + self.processPendingStartIfNeeded() + + let connectOnStartEnabled = UserDefaults.standard.bool(forKey: "connectOnStart") + if existingManager.isOnDemandEnabled != connectOnStartEnabled { + self.applyOnDemandRules(to: existingManager, enabled: connectOnStartEnabled) + self.saveManager(existingManager) { error in + if let error = error { + print("VPNManager: Error updating On Demand rules: \(error)") + } + } + } + } + } + + private func setupVPNProfile() { + print("VPNManager: Starting setupVPNProfile...") + + let manager = NETunnelProviderManager() + manager.localizedDescription = "Spotier VPN" + + let protocolConfiguration = NETunnelProviderProtocol() + protocolConfiguration.providerBundleIdentifier = VPNProfileSelection.expectedProviderBundleIdentifier + protocolConfiguration.serverAddress = "Spotier" + + manager.protocolConfiguration = protocolConfiguration + manager.isEnabled = true + + // Connect On Demand: 网络可用时系统自动启动 NE + applyOnDemandRules(to: manager, enabled: UserDefaults.standard.bool(forKey: "connectOnStart")) + + saveManager(manager) { [weak self] error in + if let error = error { + print("VPNManager: Error saving VPN profile: \(error.localizedDescription)") + self?.statusText = "创建 VPN 配置失败: \(error.localizedDescription)" + } else { + print("VPNManager: VPN Profile saved successfully.") + self?.loadPreferences() + } + } + } + + private func applyOnDemandRules(to manager: NETunnelProviderManager, enabled: Bool) { + if enabled { + let wifiRule = NEOnDemandRuleConnect() + wifiRule.interfaceTypeMatch = .wiFi + + let ethernetRule = NEOnDemandRuleConnect() + ethernetRule.interfaceTypeMatch = .ethernet + + manager.onDemandRules = [wifiRule, ethernetRule] + manager.isOnDemandEnabled = true + } else { + manager.onDemandRules = [] + manager.isOnDemandEnabled = false + } + + print("VPNManager: Connect On Demand \(enabled ? "enabled" : "disabled")") + } + + /// 外部调用:更新 On Demand 设置(设置页切换时调用) + func updateOnDemand(enabled: Bool) { + guard let manager = manager else { return } + + manager.loadFromPreferences { [weak self, manager] error in + guard let self else { return } + if let error = error { + print("VPNManager: Error loading preferences for On Demand update: \(error)") + return + } + + self.applyOnDemandRules(to: manager, enabled: enabled) + + self.saveManager(manager) { error in + if let error = error { + print("VPNManager: Error updating On Demand: \(error)") + } else { + print("VPNManager: On Demand updated to \(enabled)") + } + } + } + } + + private func saveManager(_ manager: NETunnelProviderManager, completion: @escaping (Error?) -> Void) { + manager.saveToPreferences(completionHandler: completion) + } + + func saveConfigToAppGroup(configContent: String) -> Bool { + guard let groupURL = appGroupContainerURL() else { + print("Failed to get App Group container") + return false + } + + let configURL = groupURL.appendingPathComponent("config.toml") + do { + try configContent.write(to: configURL, atomically: true, encoding: .utf8) + return true + } catch { + print("Failed to write config to App Group: \(error)") + return false + } + } + + func startVPN(configContent: String) { + guard let manager else { + print("VPN Manager not ready, queue start request") + pendingStartConfigContent = configContent + statusText = "VPN 初始化中,已排队启动..." + loadPreferences() + return + } + performStartVPN(using: manager, configContent: configContent) + } + + func stopVPN() { + manager?.connection.stopVPNTunnel() + } + + /// 手动关闭:load → 禁用 On Demand → save → stop,防止系统自动重连 + func disableOnDemandAndStop() { + guard let manager = manager else { return } + + // Apple 要求 save 前先 load 最新状态 + manager.loadFromPreferences { [manager] error in + if let error = error { + print("VPNManager: Error loading preferences: \(error)") + // 即使 load 失败也尝试 stop + manager.connection.stopVPNTunnel() + return + } + + manager.isOnDemandEnabled = false + self.saveManager(manager) { error in + if let error = error { + print("VPNManager: Error disabling On Demand: \(error)") + } else { + print("VPNManager: On Demand disabled, now stopping tunnel") + } + // save 完成后再 stop + manager.connection.stopVPNTunnel() + } + } + } + + /// Send a message to the running NE provider and get a response + func sendProviderMessage(_ message: String, completion: @escaping (Data?) -> Void) { + guard let session = manager?.connection as? NETunnelProviderSession, + let messageData = message.data(using: .utf8) else { + completion(nil) + return + } + + do { + try session.sendProviderMessage(messageData) { response in + completion(response) + } + } catch { + print("sendProviderMessage failed: \(error)") + completion(nil) + } + } + + /// Request running info JSON from NE via IPC + func requestRunningInfo(completion: @escaping (String?) -> Void) { + sendProviderMessage("running_info") { data in + guard let data, let json = String(data: data, encoding: .utf8) else { + completion(nil) + return + } + completion(json) + } + } + + @objc private func vpnStatusDidChange(_ notification: Notification) { + updateStatusSync() + } + + /// 同步更新状态,必须在主线程调用 + private func updateStatusSync() { + guard let connection = manager?.connection else { return } + + status = connection.status + + let state: (Bool, String) = switch connection.status { + case .connected: + (true, "已连接") + case .connecting: + (false, "连接中...") + case .disconnected: + (false, "未连接") + case .disconnecting: + (false, "断开中...") + case .invalid: + (false, "无效状态") + case .reasserting: + (false, "重连中...") + @unknown default: + (false, "未知状态") + } + + isConnected = state.0 + statusText = state.1 + } + + private func processPendingStartIfNeeded() { + guard let manager, let pendingConfig = pendingStartConfigContent else { return } + + switch manager.connection.status { + case .connected, .connecting, .reasserting: + pendingStartConfigContent = nil + return + default: + break + } + + pendingStartConfigContent = nil + performStartVPN(using: manager, configContent: pendingConfig) + } + + private func performStartVPN(using manager: NETunnelProviderManager, configContent: String) { + // 我们不直接通过 options 传递大文本,而是保存到 App Group + guard saveConfigToAppGroup(configContent: configContent) else { + statusText = "保存配置失败" + return + } + + let options: [String: NSObject] = [:] // Config is read from App Group file by NE + + do { + try manager.connection.startVPNTunnel(options: options) + print("VPN Start requested") + } catch { + print("Error starting VPN: \(error)") + statusText = "启动失败: \(error.localizedDescription)" + } + } +} diff --git a/Spotier/VPNProfileSelection.swift b/Spotier/VPNProfileSelection.swift new file mode 100644 index 0000000..73850da --- /dev/null +++ b/Spotier/VPNProfileSelection.swift @@ -0,0 +1,18 @@ +import Foundation + +struct VPNProfileDescriptor: Equatable { + var localizedDescription: String? + var providerBundleIdentifier: String? +} + +enum VPNProfileSelection { + static let expectedDescription = "Spotier VPN" + static let expectedProviderBundleIdentifier = "com.alick.spotier.SpotierNE" + + static func firstMatchingProfileIndex(in profiles: [VPNProfileDescriptor]) -> Int? { + profiles.firstIndex { + $0.localizedDescription == expectedDescription && + $0.providerBundleIdentifier == expectedProviderBundleIdentifier + } + } +} diff --git a/SpotierCore/Crypto/HandshakeState.swift b/SpotierCore/Crypto/HandshakeState.swift new file mode 100644 index 0000000..b3133f2 --- /dev/null +++ b/SpotierCore/Crypto/HandshakeState.swift @@ -0,0 +1,28 @@ +import Foundation + +enum HandshakeRole: Equatable { + case initiator + case responder +} + +struct HandshakeState: Equatable { + var network: NetworkSecret + var localPeerID: PeerID + var remotePeerID: PeerID + var remotePublicKey: Data + var role: HandshakeRole + + init( + network: NetworkSecret, + localPeerID: PeerID, + remotePeerID: PeerID, + remotePublicKey: Data, + role: HandshakeRole + ) { + self.network = network + self.localPeerID = localPeerID + self.remotePeerID = remotePeerID + self.remotePublicKey = remotePublicKey + self.role = role + } +} diff --git a/SpotierCore/Crypto/SessionCrypto.swift b/SpotierCore/Crypto/SessionCrypto.swift new file mode 100644 index 0000000..3b47269 --- /dev/null +++ b/SpotierCore/Crypto/SessionCrypto.swift @@ -0,0 +1,105 @@ +import CryptoKit +import Foundation + +final class SessionCrypto { + private let sendKey: SymmetricKey + private let receiveKey: SymmetricKey + private var receivedSequences = Set() + + private init(sendKey: SymmetricKey, receiveKey: SymmetricKey) { + self.sendKey = sendKey + self.receiveKey = receiveKey + } + + static func establish( + localIdentity: NodeIdentity, + handshake: HandshakeState + ) throws -> SessionCrypto { + let privateKey = try Curve25519.KeyAgreement.PrivateKey( + rawRepresentation: localIdentity.privateKey + ) + let remotePublicKey = try Curve25519.KeyAgreement.PublicKey( + rawRepresentation: handshake.remotePublicKey + ) + let sharedSecret = try privateKey.sharedSecretFromKeyAgreement(with: remotePublicKey) + let orderedPeerIDs = [handshake.localPeerID.rawValue, handshake.remotePeerID.rawValue].sorted() + + var salt = Data("spotier.v1.session.salt".utf8) + salt.append(handshake.network.bindingMaterial) + salt.appendUInt64(orderedPeerIDs[0]) + salt.appendUInt64(orderedPeerIDs[1]) + + let initiatorToResponder = sharedSecret.hkdfDerivedSymmetricKey( + using: SHA256.self, + salt: salt, + sharedInfo: Data("spotier.v1.session.i2r".utf8), + outputByteCount: 32 + ) + let responderToInitiator = sharedSecret.hkdfDerivedSymmetricKey( + using: SHA256.self, + salt: salt, + sharedInfo: Data("spotier.v1.session.r2i".utf8), + outputByteCount: 32 + ) + + switch handshake.role { + case .initiator: + return SessionCrypto( + sendKey: initiatorToResponder, + receiveKey: responderToInitiator + ) + case .responder: + return SessionCrypto( + sendKey: responderToInitiator, + receiveKey: initiatorToResponder + ) + } + } + + func encrypt(sequence: UInt64, plaintext: Data) throws -> Data { + let sealed = try ChaChaPoly.seal( + plaintext, + using: sendKey, + authenticating: associatedData(sequence: sequence) + ) + return sealed.combined + } + + func decrypt(sequence: UInt64, ciphertext: Data) throws -> Data { + guard !receivedSequences.contains(sequence) else { + throw SessionCryptoError.replayedSequence(sequence) + } + + let sealed = try ChaChaPoly.SealedBox(combined: ciphertext) + let plaintext = try ChaChaPoly.open( + sealed, + using: receiveKey, + authenticating: associatedData(sequence: sequence) + ) + receivedSequences.insert(sequence) + return plaintext + } + + private func associatedData(sequence: UInt64) -> Data { + var data = Data("spotier.v1.session.sequence".utf8) + data.appendUInt64(sequence) + return data + } +} + +enum SessionCryptoError: Error, Equatable { + case replayedSequence(UInt64) +} + +private extension Data { + mutating func appendUInt64(_ value: UInt64) { + append(UInt8((value >> 56) & 0xFF)) + append(UInt8((value >> 48) & 0xFF)) + append(UInt8((value >> 40) & 0xFF)) + append(UInt8((value >> 32) & 0xFF)) + append(UInt8((value >> 24) & 0xFF)) + append(UInt8((value >> 16) & 0xFF)) + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } +} diff --git a/SpotierCore/Identity/NetworkSecret.swift b/SpotierCore/Identity/NetworkSecret.swift new file mode 100644 index 0000000..e81ab8d --- /dev/null +++ b/SpotierCore/Identity/NetworkSecret.swift @@ -0,0 +1,15 @@ +import Foundation + +struct NetworkSecret: Equatable { + var networkName: String + var secret: String + + init(networkName: String, secret: String) { + self.networkName = networkName + self.secret = secret + } + + var bindingMaterial: Data { + Data("spotier.v1.network:\(networkName):\(secret)".utf8) + } +} diff --git a/SpotierCore/Identity/NodeIdentity.swift b/SpotierCore/Identity/NodeIdentity.swift new file mode 100644 index 0000000..5598ad8 --- /dev/null +++ b/SpotierCore/Identity/NodeIdentity.swift @@ -0,0 +1,78 @@ +import CryptoKit +import Foundation +import Security + +struct NodeIdentity: Equatable { + var peerID: PeerID + var hostname: String + var virtualIPv4: String? + var virtualIPv6: String? + var publicKey: Data + var privateKey: Data + + static func derive( + network: NetworkSecret, + deviceSeed: Data, + hostname: String, + virtualIPv4: String?, + virtualIPv6: String? + ) throws -> NodeIdentity { + guard !deviceSeed.isEmpty else { + throw NodeIdentityError.emptyDeviceSeed + } + + let privateKeySeed = SHA256.hash(data: network.bindingMaterial + deviceSeed + Data("identity-key".utf8)) + let privateKey = try Curve25519.KeyAgreement.PrivateKey(rawRepresentation: Data(privateKeySeed)) + let peerIDMaterial = SHA256.hash(data: network.bindingMaterial + deviceSeed + Data("peer-id".utf8)) + + return NodeIdentity( + peerID: PeerID(bytes: Data(peerIDMaterial)), + hostname: hostname, + virtualIPv4: virtualIPv4, + virtualIPv6: virtualIPv6, + publicKey: privateKey.publicKey.rawRepresentation, + privateKey: privateKey.rawRepresentation + ) + } +} + +enum NodeIdentityError: Error, Equatable { + case emptyDeviceSeed +} + +struct DeviceSeedStore { + static let filename = "spotier-device-seed.bin" + + private let directoryURL: URL + private let fileManager: FileManager + + init(directoryURL: URL, fileManager: FileManager = .default) { + self.directoryURL = directoryURL + self.fileManager = fileManager + } + + func loadOrCreate() throws -> Data { + let fileURL = directoryURL.appendingPathComponent(Self.filename) + if fileManager.fileExists(atPath: fileURL.path) { + return try Data(contentsOf: fileURL) + } + + if !fileManager.fileExists(atPath: directoryURL.path) { + try fileManager.createDirectory(at: directoryURL, withIntermediateDirectories: true) + } + + var bytes = [UInt8](repeating: 0, count: 32) + let status = SecRandomCopyBytes(kSecRandomDefault, bytes.count, &bytes) + guard status == errSecSuccess else { + throw DeviceSeedStoreError.randomGenerationFailed(status) + } + + let seed = Data(bytes) + try seed.write(to: fileURL, options: [.atomic]) + return seed + } +} + +enum DeviceSeedStoreError: Error, Equatable { + case randomGenerationFailed(Int32) +} diff --git a/SpotierCore/Identity/PeerID.swift b/SpotierCore/Identity/PeerID.swift new file mode 100644 index 0000000..88ecebf --- /dev/null +++ b/SpotierCore/Identity/PeerID.swift @@ -0,0 +1,21 @@ +import Foundation + +struct PeerID: Hashable, Codable, Equatable, CustomStringConvertible { + let rawValue: UInt64 + + init(_ rawValue: UInt64) { + self.rawValue = rawValue + } + + init(bytes: some Collection) { + var value: UInt64 = 0 + for byte in bytes.prefix(8) { + value = (value << 8) | UInt64(byte) + } + self.rawValue = value + } + + var description: String { + String(rawValue) + } +} diff --git a/SpotierCore/Mesh/Peer.swift b/SpotierCore/Mesh/Peer.swift new file mode 100644 index 0000000..68d9a82 --- /dev/null +++ b/SpotierCore/Mesh/Peer.swift @@ -0,0 +1,41 @@ +import Foundation + +struct Peer: Equatable { + var id: PeerID + var hostname: String + var virtualIPv4: String? + var virtualIPv6: String? + var publicKey: Data + var knownEndpoints: Set + var version: String + var relayAvailable: Bool + var lastSeen: Date + var routeCost: Int + var isStale: Bool + + init( + id: PeerID, + hostname: String, + virtualIPv4: String?, + virtualIPv6: String?, + publicKey: Data, + knownEndpoints: Set, + version: String = "swift-core", + relayAvailable: Bool = false, + lastSeen: Date, + routeCost: Int = 1, + isStale: Bool = false + ) { + self.id = id + self.hostname = hostname + self.virtualIPv4 = virtualIPv4 + self.virtualIPv6 = virtualIPv6 + self.publicKey = publicKey + self.knownEndpoints = knownEndpoints + self.version = version + self.relayAvailable = relayAvailable + self.lastSeen = lastSeen + self.routeCost = routeCost + self.isStale = isStale + } +} diff --git a/SpotierCore/Mesh/PeerManager.swift b/SpotierCore/Mesh/PeerManager.swift new file mode 100644 index 0000000..610400e --- /dev/null +++ b/SpotierCore/Mesh/PeerManager.swift @@ -0,0 +1,223 @@ +import Foundation + +final class PeerManager { + private let localIdentity: NodeIdentity + private let network: NetworkSecret + private let staleTimeout: TimeInterval + private let udpHolePunchingEnabled: Bool + private let holePunchCoordinator = HolePunchCoordinator() + private var nextSequence: UInt64 = 1 + + private(set) var peerStore = PeerStore() + private(set) var sessions: [PeerID: PeerSession] = [:] + + init( + localIdentity: NodeIdentity, + network: NetworkSecret, + staleTimeout: TimeInterval = 30, + udpHolePunchingEnabled: Bool = true + ) { + self.localIdentity = localIdentity + self.network = network + self.staleTimeout = staleTimeout + self.udpHolePunchingEnabled = udpHolePunchingEnabled + } + + func makeHelloFrame() -> CoreFrame { + makeControlFrame( + receiver: PeerID(0), + payload: .hello(ControlMessage.Hello( + hostname: localIdentity.hostname, + virtualIPv4: localIdentity.virtualIPv4, + virtualIPv6: localIdentity.virtualIPv6, + publicKey: localIdentity.publicKey, + version: "swift-core" + )) + ) + } + + func receive(_ inbound: TransportInboundFrame, now: Date = Date()) throws -> [CoreFrame] { + guard case .control(let message) = inbound.frame.payload else { + return [] + } + + switch message { + case .hello(let hello): + return try receiveHello( + hello, + from: inbound.frame.sender, + endpoint: inbound.remoteEndpoint, + now: now + ) + case .sessionOffer(let publicKey): + return try receiveSessionOffer( + publicKey, + from: inbound.frame.sender, + now: now + ) + case .sessionAnswer(let publicKey): + try receiveSessionAnswer(publicKey, from: inbound.frame.sender, now: now) + return [] + case .peerPing: + guard peerStore.peer(id: inbound.frame.sender) != nil else { return [] } + refreshPeer(inbound.frame.sender, now: now) + return [makeControlFrame(receiver: inbound.frame.sender, payload: .peerPong)] + case .peerPong: + refreshPeer(inbound.frame.sender, now: now) + return [] + case .endpointCandidate(let endpoint): + try receiveEndpointCandidate(endpoint, from: inbound.frame.sender, now: now) + return [] + case .relayRequest, .relayResponse: + refreshPeer(inbound.frame.sender, now: now) + return [] + case .routeUpdate: + return [] + } + } + + func cleanupStalePeers(now: Date = Date()) -> [PeerID] { + let staleIDs = peerStore.markStale(now: now, timeout: staleTimeout) + for id in staleIDs { + sessions[id]?.markStale() + } + + let removedIDs = peerStore.removeStalePeers() + for id in removedIDs { + sessions[id] = nil + } + return removedIDs + } + + func session(for peerID: PeerID) -> PeerSession? { + sessions[peerID] + } + + func publishEndpointCandidate(_ endpoint: TransportEndpoint, to peerID: PeerID) -> CoreFrame? { + guard udpHolePunchingEnabled else { return nil } + return holePunchCoordinator.publishLocalCandidate( + endpoint, + localPeerID: localIdentity.peerID, + remotePeerID: peerID + ) + } + + func confirmDirectTransport(peerID: PeerID, endpoint: TransportEndpoint) { + guard holePunchCoordinator.authenticateProbeResponse(from: peerID, endpoint: endpoint) else { return } + guard var session = sessions[peerID] else { return } + session.promoteDirectTransport() + sessions[peerID] = session + } + + private func receiveHello( + _ hello: ControlMessage.Hello, + from peerID: PeerID, + endpoint: TransportEndpoint, + now: Date + ) throws -> [CoreFrame] { + let existingPeer = peerStore.peer(id: peerID) + var knownEndpoints = existingPeer?.knownEndpoints ?? [] + knownEndpoints.insert(endpoint) + let peer = Peer( + id: peerID, + hostname: hello.hostname, + virtualIPv4: hello.virtualIPv4, + virtualIPv6: hello.virtualIPv6, + publicKey: hello.publicKey, + knownEndpoints: knownEndpoints, + version: hello.version, + lastSeen: now + ) + peerStore.upsert(peer) + + var responses = [CoreFrame]() + if sessions[peerID]?.health != .established { + sessions[peerID] = PeerSession( + peerID: peerID, + handshakeState: HandshakeState( + network: network, + localPeerID: localIdentity.peerID, + remotePeerID: peerID, + remotePublicKey: hello.publicKey, + role: .responder + ) + ) + responses.append(makeControlFrame(receiver: peerID, payload: .sessionOffer(localIdentity.publicKey))) + } + if existingPeer == nil { + responses.append(makeHelloFrame()) + } + + return responses + } + + private func receiveSessionOffer( + _ publicKey: Data, + from peerID: PeerID, + now: Date + ) throws -> [CoreFrame] { + peerStore.updatePeer(id: peerID) { peer in + peer.publicKey = publicKey + peer.lastSeen = now + peer.isStale = false + } + + var session = PeerSession( + peerID: peerID, + handshakeState: HandshakeState( + network: network, + localPeerID: localIdentity.peerID, + remotePeerID: peerID, + remotePublicKey: publicKey, + role: .initiator + ) + ) + try session.establish(localIdentity: localIdentity) + sessions[peerID] = session + + return [makeControlFrame(receiver: peerID, payload: .sessionAnswer(localIdentity.publicKey))] + } + + private func receiveSessionAnswer(_ publicKey: Data, from peerID: PeerID, now: Date) throws { + peerStore.updatePeer(id: peerID) { peer in + peer.publicKey = publicKey + peer.lastSeen = now + peer.isStale = false + } + + guard var session = sessions[peerID] else { return } + session.handshakeState.remotePublicKey = publicKey + try session.establish(localIdentity: localIdentity) + sessions[peerID] = session + } + + private func refreshPeer(_ peerID: PeerID, now: Date) { + peerStore.updatePeer(id: peerID) { peer in + peer.lastSeen = now + peer.isStale = false + } + } + + private func receiveEndpointCandidate(_ endpoint: String, from peerID: PeerID, now: Date) throws { + guard udpHolePunchingEnabled else { return } + let parsedEndpoint = try TransportEndpoint(urlString: endpoint) + _ = holePunchCoordinator.receiveRemoteCandidate(parsedEndpoint, from: peerID) + peerStore.updatePeer(id: peerID) { peer in + peer.knownEndpoints.insert(parsedEndpoint) + peer.lastSeen = now + peer.isStale = false + } + } + + private func makeControlFrame(receiver: PeerID, payload: ControlMessage) -> CoreFrame { + let frame = CoreFrame( + type: .control, + sender: localIdentity.peerID, + receiver: receiver, + sequence: nextSequence, + payload: .control(payload) + ) + nextSequence += 1 + return frame + } +} diff --git a/SpotierCore/Mesh/PeerSession.swift b/SpotierCore/Mesh/PeerSession.swift new file mode 100644 index 0000000..9824f3d --- /dev/null +++ b/SpotierCore/Mesh/PeerSession.swift @@ -0,0 +1,50 @@ +import Foundation + +enum TransportPreference: Equatable { + case direct + case relay +} + +enum PeerSessionHealth: Equatable { + case handshaking + case established + case stale +} + +struct PeerSession { + var peerID: PeerID + var handshakeState: HandshakeState + var crypto: SessionCrypto? + var transportPreference: TransportPreference + var health: PeerSessionHealth + + init( + peerID: PeerID, + handshakeState: HandshakeState, + crypto: SessionCrypto? = nil, + transportPreference: TransportPreference = .direct, + health: PeerSessionHealth = .handshaking + ) { + self.peerID = peerID + self.handshakeState = handshakeState + self.crypto = crypto + self.transportPreference = transportPreference + self.health = health + } + + mutating func establish(localIdentity: NodeIdentity) throws { + crypto = try SessionCrypto.establish( + localIdentity: localIdentity, + handshake: handshakeState + ) + health = .established + } + + mutating func markStale() { + health = .stale + } + + mutating func promoteDirectTransport() { + transportPreference = .direct + } +} diff --git a/SpotierCore/Mesh/PeerStore.swift b/SpotierCore/Mesh/PeerStore.swift new file mode 100644 index 0000000..49cf8e4 --- /dev/null +++ b/SpotierCore/Mesh/PeerStore.swift @@ -0,0 +1,46 @@ +import Foundation + +struct PeerStore: Equatable { + private var peersByID: [PeerID: Peer] = [:] + + var peers: [Peer] { + peersByID.values.sorted { $0.id.rawValue < $1.id.rawValue } + } + + mutating func upsert(_ peer: Peer) { + peersByID[peer.id] = peer + } + + func peer(id: PeerID) -> Peer? { + peersByID[id] + } + + mutating func updatePeer(id: PeerID, _ update: (inout Peer) -> Void) { + guard var peer = peersByID[id] else { return } + update(&peer) + peersByID[id] = peer + } + + mutating func markStale(now: Date, timeout: TimeInterval) -> [PeerID] { + var staleIDs: [PeerID] = [] + + for id in peersByID.keys { + guard var peer = peersByID[id] else { continue } + if now.timeIntervalSince(peer.lastSeen) >= timeout { + peer.isStale = true + peersByID[id] = peer + staleIDs.append(id) + } + } + + return staleIDs + } + + mutating func removeStalePeers() -> [PeerID] { + let staleIDs = peersByID.values.filter(\.isStale).map(\.id) + for id in staleIDs { + peersByID[id] = nil + } + return staleIDs + } +} diff --git a/SpotierCore/NAT/HolePunchCoordinator.swift b/SpotierCore/NAT/HolePunchCoordinator.swift new file mode 100644 index 0000000..e34ba5d --- /dev/null +++ b/SpotierCore/NAT/HolePunchCoordinator.swift @@ -0,0 +1,45 @@ +import Foundation + +struct EndpointProbe: Equatable { + var peerID: PeerID + var endpoint: TransportEndpoint +} + +final class HolePunchCoordinator { + private(set) var localCandidate: TransportEndpoint? + private(set) var remoteCandidates: [PeerID: Set] = [:] + private(set) var pendingProbes: [PeerID: Set] = [:] + private(set) var directPeers = Set() + private(set) var relayPeers = Set() + + func setRelayActive(for peerID: PeerID) { + relayPeers.insert(peerID) + } + + func publishLocalCandidate(_ endpoint: TransportEndpoint, localPeerID: PeerID, remotePeerID: PeerID) -> CoreFrame { + localCandidate = endpoint + return CoreFrame( + type: .control, + sender: localPeerID, + receiver: remotePeerID, + sequence: 0, + payload: .control(.endpointCandidate("udp://\(endpoint.description)")) + ) + } + + func receiveRemoteCandidate(_ endpoint: TransportEndpoint, from peerID: PeerID) -> [EndpointProbe] { + remoteCandidates[peerID, default: []].insert(endpoint) + pendingProbes[peerID, default: []].insert(endpoint) + return [EndpointProbe(peerID: peerID, endpoint: endpoint)] + } + + func authenticateProbeResponse(from peerID: PeerID, endpoint: TransportEndpoint) -> Bool { + guard pendingProbes[peerID]?.contains(endpoint) == true else { return false } + directPeers.insert(peerID) + return true + } + + func transportPreference(for peerID: PeerID) -> TransportPreference { + directPeers.contains(peerID) ? .direct : .relay + } +} diff --git a/SpotierCore/NAT/STUNClient.swift b/SpotierCore/NAT/STUNClient.swift new file mode 100644 index 0000000..9575f53 --- /dev/null +++ b/SpotierCore/NAT/STUNClient.swift @@ -0,0 +1,145 @@ +import Foundation + +struct STUNBindingRequest: Equatable { + static let magicCookie: UInt32 = 0x2112A442 + + var transactionID: Data + + init(transactionID: Data) throws { + guard transactionID.count == 12 else { + throw STUNError.invalidTransactionID + } + self.transactionID = transactionID + } + + func encode() -> Data { + var data = Data() + data.appendUInt16(0x0001) + data.appendUInt16(0) + data.appendUInt32(Self.magicCookie) + data.append(transactionID) + return data + } +} + +struct STUNClient { + let server: TransportEndpoint + + func bindingRequest(transactionID: Data) throws -> Data { + try STUNBindingRequest(transactionID: transactionID).encode() + } + + func discoverPublicEndpoint(from response: Data, transactionID: Data) throws -> TransportEndpoint { + try Self.parseBindingResponse(response, transactionID: transactionID) + } + + static func parseBindingResponse(_ data: Data, transactionID: Data) throws -> TransportEndpoint { + guard transactionID.count == 12 else { + throw STUNError.invalidTransactionID + } + guard data.count >= 20 else { + throw STUNError.truncatedMessage + } + guard data.readUInt16(at: 0) == 0x0101 else { + throw STUNError.unexpectedMessageType + } + guard data.readUInt32(at: 4) == STUNBindingRequest.magicCookie else { + throw STUNError.invalidMagicCookie + } + guard data[8..<20] == transactionID[0..<12] else { + throw STUNError.transactionMismatch + } + + let messageLength = Int(data.readUInt16(at: 2)) + guard data.count >= 20 + messageLength else { + throw STUNError.truncatedMessage + } + + var offset = 20 + while offset + 4 <= 20 + messageLength { + let attributeType = data.readUInt16(at: offset) + let attributeLength = Int(data.readUInt16(at: offset + 2)) + let valueOffset = offset + 4 + guard valueOffset + attributeLength <= data.count else { + throw STUNError.truncatedMessage + } + + if attributeType == 0x0020 { + return try parseXORMappedAddress(data, valueOffset: valueOffset, valueLength: attributeLength) + } + + offset = valueOffset + paddedLength(attributeLength) + } + + throw STUNError.missingXORMappedAddress + } + + private static func parseXORMappedAddress( + _ data: Data, + valueOffset: Int, + valueLength: Int + ) throws -> TransportEndpoint { + guard valueLength >= 8 else { + throw STUNError.malformedAttribute + } + guard data[valueOffset + 1] == 0x01 else { + throw STUNError.unsupportedAddressFamily + } + + let xorPort = data.readUInt16(at: valueOffset + 2) + let port = xorPort ^ UInt16(STUNBindingRequest.magicCookie >> 16) + let xorAddress = data.readUInt32(at: valueOffset + 4) + let address = xorAddress ^ STUNBindingRequest.magicCookie + + return TransportEndpoint( + host: [ + String((address >> 24) & 0xFF), + String((address >> 16) & 0xFF), + String((address >> 8) & 0xFF), + String(address & 0xFF) + ].joined(separator: "."), + port: port + ) + } + + private static func paddedLength(_ length: Int) -> Int { + let remainder = length % 4 + return remainder == 0 ? length : length + 4 - remainder + } +} + +enum STUNError: Error, Equatable { + case invalidTransactionID + case truncatedMessage + case unexpectedMessageType + case invalidMagicCookie + case transactionMismatch + case missingXORMappedAddress + case malformedAttribute + case unsupportedAddressFamily +} + +private extension Data { + mutating func appendUInt16(_ value: UInt16) { + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + mutating func appendUInt32(_ value: UInt32) { + append(UInt8((value >> 24) & 0xFF)) + append(UInt8((value >> 16) & 0xFF)) + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + func readUInt16(at offset: Int) -> UInt16 { + (UInt16(self[offset]) << 8) | UInt16(self[offset + 1]) + } + + func readUInt32(at offset: Int) -> UInt32 { + (UInt32(self[offset]) << 24) + | (UInt32(self[offset + 1]) << 16) + | (UInt32(self[offset + 2]) << 8) + | UInt32(self[offset + 3]) + } +} diff --git a/SpotierCore/Packet/IPPacket.swift b/SpotierCore/Packet/IPPacket.swift new file mode 100644 index 0000000..e3dce82 --- /dev/null +++ b/SpotierCore/Packet/IPPacket.swift @@ -0,0 +1,35 @@ +import Foundation + +enum IPPacket: Equatable { + case ipv4(IPv4Packet) + case ipv6(IPv6Packet) + + var destinationAddress: String { + switch self { + case .ipv4(let packet): + return packet.destinationAddress + case .ipv6(let packet): + return packet.destinationAddress + } + } +} + +struct IPv4Packet: Equatable { + var sourceAddress: String + var destinationAddress: String + var protocolNumber: UInt8 + var payloadLength: Int +} + +struct IPv6Packet: Equatable { + var sourceAddress: String + var destinationAddress: String + var nextHeader: UInt8 + var payloadLength: Int +} + +enum IPPacketError: Error, Equatable { + case nonIPPacket + case truncatedPacket + case malformedPacket +} diff --git a/SpotierCore/Packet/PacketClassifier.swift b/SpotierCore/Packet/PacketClassifier.swift new file mode 100644 index 0000000..0a1c2f3 --- /dev/null +++ b/SpotierCore/Packet/PacketClassifier.swift @@ -0,0 +1,78 @@ +import Foundation + +enum PacketClassifier { + static func parse(_ data: Data) throws -> IPPacket { + guard let firstByte = data.first else { + throw IPPacketError.truncatedPacket + } + + switch firstByte >> 4 { + case 4: + return .ipv4(try parseIPv4(data)) + case 6: + return .ipv6(try parseIPv6(data)) + default: + throw IPPacketError.nonIPPacket + } + } + + private static func parseIPv4(_ data: Data) throws -> IPv4Packet { + guard data.count >= 20 else { + throw IPPacketError.truncatedPacket + } + + let headerLength = Int(data[0] & 0x0F) * 4 + guard headerLength >= 20, data.count >= headerLength else { + throw IPPacketError.malformedPacket + } + + let totalLength = Int(data.readUInt16(at: 2)) + guard totalLength >= headerLength, data.count >= totalLength else { + throw IPPacketError.truncatedPacket + } + + return IPv4Packet( + sourceAddress: data.ipv4String(at: 12), + destinationAddress: data.ipv4String(at: 16), + protocolNumber: data[9], + payloadLength: totalLength - headerLength + ) + } + + private static func parseIPv6(_ data: Data) throws -> IPv6Packet { + guard data.count >= 40 else { + throw IPPacketError.truncatedPacket + } + + let payloadLength = Int(data.readUInt16(at: 4)) + guard data.count >= 40 + payloadLength else { + throw IPPacketError.truncatedPacket + } + + return IPv6Packet( + sourceAddress: data.ipv6String(at: 8), + destinationAddress: data.ipv6String(at: 24), + nextHeader: data[6], + payloadLength: payloadLength + ) + } +} + +private extension Data { + func readUInt16(at offset: Int) -> UInt16 { + (UInt16(self[offset]) << 8) | UInt16(self[offset + 1]) + } + + func ipv4String(at offset: Int) -> String { + "\(self[offset]).\(self[offset + 1]).\(self[offset + 2]).\(self[offset + 3])" + } + + func ipv6String(at offset: Int) -> String { + var groups: [String] = [] + for index in stride(from: offset, to: offset + 16, by: 2) { + let value = (UInt16(self[index]) << 8) | UInt16(self[index + 1]) + groups.append(String(value, radix: 16)) + } + return groups.joined(separator: ":") + } +} diff --git a/SpotierCore/Packet/PacketRouter.swift b/SpotierCore/Packet/PacketRouter.swift new file mode 100644 index 0000000..06bbc9a --- /dev/null +++ b/SpotierCore/Packet/PacketRouter.swift @@ -0,0 +1,227 @@ +import Foundation + +enum PacketRouteDecision: Equatable { + case local + case peer(PeerID) + case peers([PeerID]) + case subnetProxy(PeerID) + case exitNode(PeerID) + case drop +} + +struct PacketRouter { + var routeTable: RouteTable + var localPeerID: PeerID? + var localIPv4: String? + var localIPv6: String? + var exitNodes: [String] + var p2pOnly: Bool + + init( + routeTable: RouteTable, + localPeerID: PeerID? = nil, + localIPv4: String? = nil, + localIPv6: String? = nil, + exitNodes: [String] = [], + p2pOnly: Bool = false + ) { + self.routeTable = routeTable + self.localPeerID = localPeerID + self.localIPv4 = localIPv4 + self.localIPv6 = localIPv6 + self.exitNodes = exitNodes + self.p2pOnly = p2pOnly + } + + func route(_ packet: IPPacket) -> PacketRouteDecision { + if shouldDropIPv6LinkLocalSource(packet) { + return .drop + } + + let destination = packet.destinationAddress + + if let peerIDs = multicastOrBroadcastPeers(for: packet) { + return peerIDs.isEmpty ? .drop : .peers(peerIDs) + } + + if destination == addressPart(localIPv4) || destination.lowercased() == addressPart(localIPv6)?.lowercased() { + return .local + } + + guard let route = routeTable.bestRoute(for: destination) else { + if isSameIPv4Network(destination, localCIDR: localIPv4) { + return .drop + } + if isSameIPv6Network(destination, localCIDR: localIPv6) { + return .drop + } + if isIPv6LinkLocalDestination(packet) { + return .drop + } + if p2pOnly { + return .drop + } + return exitNodeRoute() ?? .drop + } + + switch route.kind { + case .host: + return .peer(route.nextHopPeerID) + case .subnetProxy: + return .subnetProxy(route.nextHopPeerID) + } + } + + private func exitNodeRoute() -> PacketRouteDecision? { + for address in exitNodes { + if let route = routeTable.bestRoute(for: address), route.kind == .host { + return .exitNode(route.nextHopPeerID) + } + } + return nil + } + + private func multicastOrBroadcastPeers(for packet: IPPacket) -> [PeerID]? { + switch packet { + case .ipv4(let ipv4): + guard isIPv4Multicast(ipv4.destinationAddress) + || isIPv4Broadcast(ipv4.destinationAddress) + || isSameIPv4NetworkBroadcast(ipv4.destinationAddress) else { + return nil + } + return knownPeerIDs().filter { $0 != localPeerID } + case .ipv6(let ipv6): + guard isIPv6Multicast(ipv6.destinationAddress) + || isSameIPv6NetworkBroadcast(ipv6.destinationAddress) else { + return nil + } + return knownPeerIDs() + } + } + + private func knownPeerIDs() -> [PeerID] { + Array(Set(routeTable.routes.map(\.nextHopPeerID))).sorted { $0.rawValue < $1.rawValue } + } + + private func shouldDropIPv6LinkLocalSource(_ packet: IPPacket) -> Bool { + guard case .ipv6(let ipv6) = packet, + isIPv6LinkLocal(ipv6.sourceAddress) else { + return false + } + return ipv6.sourceAddress.lowercased() != addressPart(localIPv6)?.lowercased() + } + + private func isIPv6LinkLocalDestination(_ packet: IPPacket) -> Bool { + guard case .ipv6(let ipv6) = packet else { return false } + return isIPv6LinkLocal(ipv6.destinationAddress) + } + + private func isSameIPv4Network(_ address: String, localCIDR: String?) -> Bool { + guard let localCIDR else { return false } + let parts = localCIDR.split(separator: "/", maxSplits: 1).map(String.init) + guard parts.count == 2, + let prefix = Int(parts[1]), + (0...32).contains(prefix), + let localValue = parseIPv4(parts[0]), + let addressValue = parseIPv4(address) else { + return false + } + + let mask = prefix == 0 ? UInt32(0) : UInt32.max << (32 - prefix) + return (localValue & mask) == (addressValue & mask) + } + + private func isSameIPv6Network(_ address: String, localCIDR: String?) -> Bool { + guard let localCIDR else { return false } + let parts = localCIDR.split(separator: "/", maxSplits: 1).map(String.init) + guard parts.count == 2, + let prefix = Int(parts[1]), + (0...128).contains(prefix), + let localBytes = parseIPv6(parts[0]), + let addressBytes = parseIPv6(address) else { + return false + } + + let fullBytes = prefix / 8 + let remainingBits = prefix % 8 + if fullBytes > 0, localBytes[0.. 0 else { return true } + + let mask = UInt8.max << (8 - remainingBits) + return (localBytes[fullBytes] & mask) == (addressBytes[fullBytes] & mask) + } + + private func isSameIPv4NetworkBroadcast(_ address: String) -> Bool { + guard let localIPv4 else { return false } + let parts = localIPv4.split(separator: "/", maxSplits: 1).map(String.init) + guard parts.count == 2, + let prefix = Int(parts[1]), + (0...32).contains(prefix), + let addressValue = parseIPv4(address) else { + return false + } + + let mask = prefix == 0 ? UInt32(0) : UInt32.max << (32 - prefix) + return addressValue == ((addressValue & mask) | ~mask) + } + + private func isSameIPv6NetworkBroadcast(_ address: String) -> Bool { + guard let localIPv6 else { return false } + let parts = localIPv6.split(separator: "/", maxSplits: 1).map(String.init) + guard parts.count == 2, + let prefix = Int(parts[1]), + (0...128).contains(prefix), + let addressBytes = parseIPv6(address) else { + return false + } + + let fullBytes = prefix / 8 + let remainingBits = prefix % 8 + if remainingBits > 0 { + let hostMask = UInt8.max >> remainingBits + guard (addressBytes[fullBytes] & hostMask) == hostMask else { return false } + } + + let hostBitsStart = remainingBits == 0 ? fullBytes : fullBytes + 1 + guard hostBitsStart < addressBytes.count else { return true } + return addressBytes[hostBitsStart...].allSatisfy { $0 == UInt8.max } + } + + private func isIPv4Broadcast(_ address: String) -> Bool { + address == "255.255.255.255" + } + + private func isIPv4Multicast(_ address: String) -> Bool { + guard let value = parseIPv4(address) else { return false } + return (0xE0000000...0xEFFFFFFF).contains(value) + } + + private func isIPv6LinkLocal(_ address: String) -> Bool { + guard let bytes = parseIPv6(address) else { return false } + return bytes[0] == 0xFE && (bytes[1] & 0xC0) == 0x80 + } + + private func isIPv6Multicast(_ address: String) -> Bool { + guard let bytes = parseIPv6(address) else { return false } + return bytes[0] == 0xFF + } + + private func parseIPv4(_ address: String) -> UInt32? { + let bytes = address.split(separator: ".").compactMap { UInt8($0) } + guard bytes.count == 4 else { return nil } + return bytes.reduce(UInt32(0)) { ($0 << 8) | UInt32($1) } + } + + private func parseIPv6(_ address: String) -> [UInt8]? { + var storage = in6_addr() + let result = address.withCString { inet_pton(AF_INET6, $0, &storage) } + guard result == 1 else { return nil } + return withUnsafeBytes(of: storage) { Array($0) } + } + + private func addressPart(_ cidrOrAddress: String?) -> String? { + cidrOrAddress?.split(separator: "/", maxSplits: 1).first.map(String.init) + } +} diff --git a/SpotierCore/Protocol/ControlMessage.swift b/SpotierCore/Protocol/ControlMessage.swift new file mode 100644 index 0000000..5d7fd50 --- /dev/null +++ b/SpotierCore/Protocol/ControlMessage.swift @@ -0,0 +1,35 @@ +import Foundation + +enum ControlMessage: Equatable { + case hello(Hello) + case sessionOffer(Data) + case sessionAnswer(Data) + case routeUpdate(Data) + case peerPing + case peerPong + case relayRequest(PeerID) + case relayResponse(Bool) + case endpointCandidate(String) + + struct Hello: Equatable { + var hostname: String + var virtualIPv4: String? + var virtualIPv6: String? + var publicKey: Data + var version: String + + init( + hostname: String, + virtualIPv4: String?, + virtualIPv6: String?, + publicKey: Data, + version: String + ) { + self.hostname = hostname + self.virtualIPv4 = virtualIPv4 + self.virtualIPv6 = virtualIPv6 + self.publicKey = publicKey + self.version = version + } + } +} diff --git a/SpotierCore/Protocol/CoreFrame.swift b/SpotierCore/Protocol/CoreFrame.swift new file mode 100644 index 0000000..3f3c11a --- /dev/null +++ b/SpotierCore/Protocol/CoreFrame.swift @@ -0,0 +1,40 @@ +import Foundation + +enum CoreFrameType: UInt8, Equatable { + case control = 1 + case data = 2 +} + +enum CoreFramePayload: Equatable { + case control(ControlMessage) + case data(DataPacket) +} + +struct CoreFrame: Equatable { + static let protocolVersion: UInt8 = 1 + static let headerLength = 32 + static let exitNodeFlag: UInt16 = 1 << 0 + + var type: CoreFrameType + var flags: UInt16 + var sender: PeerID + var receiver: PeerID + var sequence: UInt64 + var payload: CoreFramePayload + + init( + type: CoreFrameType, + flags: UInt16 = 0, + sender: PeerID, + receiver: PeerID, + sequence: UInt64, + payload: CoreFramePayload + ) { + self.type = type + self.flags = flags + self.sender = sender + self.receiver = receiver + self.sequence = sequence + self.payload = payload + } +} diff --git a/SpotierCore/Protocol/DataPacket.swift b/SpotierCore/Protocol/DataPacket.swift new file mode 100644 index 0000000..f606112 --- /dev/null +++ b/SpotierCore/Protocol/DataPacket.swift @@ -0,0 +1,9 @@ +import Foundation + +struct DataPacket: Equatable { + var encryptedIPPacket: Data + + init(encryptedIPPacket: Data) { + self.encryptedIPPacket = encryptedIPPacket + } +} diff --git a/SpotierCore/Protocol/FrameCodec.swift b/SpotierCore/Protocol/FrameCodec.swift new file mode 100644 index 0000000..b54fbb6 --- /dev/null +++ b/SpotierCore/Protocol/FrameCodec.swift @@ -0,0 +1,308 @@ +import Foundation + +enum FrameCodecError: Error, Equatable { + case unknownProtocolVersion(UInt8) + case unknownFrameType(UInt8) + case unknownControlMessage(UInt8) + case truncatedFrame + case invalidPayloadLength + case malformedPayload +} + +enum FrameCodec { + private enum ControlType: UInt8 { + case hello = 1 + case sessionOffer = 2 + case sessionAnswer = 3 + case routeUpdate = 4 + case peerPing = 5 + case peerPong = 6 + case relayRequest = 7 + case relayResponse = 8 + case endpointCandidate = 9 + } + + static func encode(_ frame: CoreFrame) throws -> Data { + let payload = try encodePayload(frame.payload) + var data = Data() + data.reserveCapacity(CoreFrame.headerLength + payload.count) + + data.append(CoreFrame.protocolVersion) + data.append(frame.type.rawValue) + data.appendUInt16(frame.flags) + data.appendUInt64(frame.sender.rawValue) + data.appendUInt64(frame.receiver.rawValue) + data.appendUInt64(frame.sequence) + data.appendUInt32(UInt32(payload.count)) + data.append(payload) + return data + } + + static func decode(_ data: Data) throws -> CoreFrame { + guard data.count >= CoreFrame.headerLength else { + throw FrameCodecError.truncatedFrame + } + + var cursor = DataCursor(data) + let version = try cursor.readUInt8() + guard version == CoreFrame.protocolVersion else { + throw FrameCodecError.unknownProtocolVersion(version) + } + + let typeRaw = try cursor.readUInt8() + guard let type = CoreFrameType(rawValue: typeRaw) else { + throw FrameCodecError.unknownFrameType(typeRaw) + } + + let flags = try cursor.readUInt16() + let sender = PeerID(try cursor.readUInt64()) + let receiver = PeerID(try cursor.readUInt64()) + let sequence = try cursor.readUInt64() + let payloadLength = Int(try cursor.readUInt32()) + + guard payloadLength == data.count - CoreFrame.headerLength else { + throw FrameCodecError.invalidPayloadLength + } + + let payloadBytes = try cursor.readData(count: payloadLength) + let payload = try decodePayload(payloadBytes, type: type) + + return CoreFrame( + type: type, + flags: flags, + sender: sender, + receiver: receiver, + sequence: sequence, + payload: payload + ) + } + + private static func encodePayload(_ payload: CoreFramePayload) throws -> Data { + switch payload { + case .control(let message): + return try encodeControlMessage(message) + case .data(let packet): + return packet.encryptedIPPacket + } + } + + private static func decodePayload(_ data: Data, type: CoreFrameType) throws -> CoreFramePayload { + switch type { + case .control: + return .control(try decodeControlMessage(data)) + case .data: + return .data(DataPacket(encryptedIPPacket: data)) + } + } + + private static func encodeControlMessage(_ message: ControlMessage) throws -> Data { + var data = Data() + + switch message { + case .hello(let hello): + data.append(ControlType.hello.rawValue) + try data.appendString(hello.hostname) + try data.appendOptionalString(hello.virtualIPv4) + try data.appendOptionalString(hello.virtualIPv6) + data.appendDataField(hello.publicKey) + try data.appendString(hello.version) + case .sessionOffer(let payload): + data.append(ControlType.sessionOffer.rawValue) + data.appendDataField(payload) + case .sessionAnswer(let payload): + data.append(ControlType.sessionAnswer.rawValue) + data.appendDataField(payload) + case .routeUpdate(let payload): + data.append(ControlType.routeUpdate.rawValue) + data.appendDataField(payload) + case .peerPing: + data.append(ControlType.peerPing.rawValue) + case .peerPong: + data.append(ControlType.peerPong.rawValue) + case .relayRequest(let peerID): + data.append(ControlType.relayRequest.rawValue) + data.appendUInt64(peerID.rawValue) + case .relayResponse(let accepted): + data.append(ControlType.relayResponse.rawValue) + data.append(accepted ? 1 : 0) + case .endpointCandidate(let endpoint): + data.append(ControlType.endpointCandidate.rawValue) + try data.appendString(endpoint) + } + + return data + } + + private static func decodeControlMessage(_ data: Data) throws -> ControlMessage { + var cursor = DataCursor(data) + let rawType = try cursor.readUInt8() + guard let type = ControlType(rawValue: rawType) else { + throw FrameCodecError.unknownControlMessage(rawType) + } + + let message: ControlMessage + switch type { + case .hello: + message = .hello(ControlMessage.Hello( + hostname: try cursor.readString(), + virtualIPv4: try cursor.readOptionalString(), + virtualIPv6: try cursor.readOptionalString(), + publicKey: try cursor.readDataField(), + version: try cursor.readString() + )) + case .sessionOffer: + message = .sessionOffer(try cursor.readDataField()) + case .sessionAnswer: + message = .sessionAnswer(try cursor.readDataField()) + case .routeUpdate: + message = .routeUpdate(try cursor.readDataField()) + case .peerPing: + message = .peerPing + case .peerPong: + message = .peerPong + case .relayRequest: + message = .relayRequest(PeerID(try cursor.readUInt64())) + case .relayResponse: + message = .relayResponse(try cursor.readBool()) + case .endpointCandidate: + message = .endpointCandidate(try cursor.readString()) + } + + guard cursor.isAtEnd else { + throw FrameCodecError.malformedPayload + } + + return message + } +} + +private struct DataCursor { + private let data: Data + private var offset = 0 + + init(_ data: Data) { + self.data = data + } + + var isAtEnd: Bool { + offset == data.count + } + + mutating func readUInt8() throws -> UInt8 { + guard offset + 1 <= data.count else { + throw FrameCodecError.truncatedFrame + } + defer { offset += 1 } + return data[offset] + } + + mutating func readUInt16() throws -> UInt16 { + let bytes = try readBytes(count: 2) + return (UInt16(bytes[0]) << 8) | UInt16(bytes[1]) + } + + mutating func readUInt32() throws -> UInt32 { + let bytes = try readBytes(count: 4) + return bytes.reduce(UInt32(0)) { ($0 << 8) | UInt32($1) } + } + + mutating func readUInt64() throws -> UInt64 { + let bytes = try readBytes(count: 8) + return bytes.reduce(UInt64(0)) { ($0 << 8) | UInt64($1) } + } + + mutating func readBool() throws -> Bool { + switch try readUInt8() { + case 0: + return false + case 1: + return true + default: + throw FrameCodecError.malformedPayload + } + } + + mutating func readData(count: Int) throws -> Data { + guard count >= 0, offset + count <= data.count else { + throw FrameCodecError.truncatedFrame + } + let range = offset..<(offset + count) + offset += count + return data.subdata(in: range) + } + + mutating func readDataField() throws -> Data { + try readData(count: Int(readUInt32())) + } + + mutating func readString() throws -> String { + let bytes = try readData(count: Int(readUInt16())) + guard let value = String(data: bytes, encoding: .utf8) else { + throw FrameCodecError.malformedPayload + } + return value + } + + mutating func readOptionalString() throws -> String? { + switch try readUInt8() { + case 0: + return nil + case 1: + return try readString() + default: + throw FrameCodecError.malformedPayload + } + } + + private mutating func readBytes(count: Int) throws -> [UInt8] { + Array(try readData(count: count)) + } +} + +private extension Data { + mutating func appendUInt16(_ value: UInt16) { + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + mutating func appendUInt32(_ value: UInt32) { + append(UInt8((value >> 24) & 0xFF)) + append(UInt8((value >> 16) & 0xFF)) + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + mutating func appendUInt64(_ value: UInt64) { + append(UInt8((value >> 56) & 0xFF)) + append(UInt8((value >> 48) & 0xFF)) + append(UInt8((value >> 40) & 0xFF)) + append(UInt8((value >> 32) & 0xFF)) + append(UInt8((value >> 24) & 0xFF)) + append(UInt8((value >> 16) & 0xFF)) + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + mutating func appendString(_ value: String) throws { + let bytes = Data(value.utf8) + guard bytes.count <= Int(UInt16.max) else { + throw FrameCodecError.malformedPayload + } + appendUInt16(UInt16(bytes.count)) + append(bytes) + } + + mutating func appendOptionalString(_ value: String?) throws { + guard let value else { + append(0) + return + } + append(1) + try appendString(value) + } + + mutating func appendDataField(_ value: Data) { + appendUInt32(UInt32(value.count)) + append(value) + } +} diff --git a/SpotierCore/Routing/RouteCalculator.swift b/SpotierCore/Routing/RouteCalculator.swift new file mode 100644 index 0000000..9465453 --- /dev/null +++ b/SpotierCore/Routing/RouteCalculator.swift @@ -0,0 +1,14 @@ +import Foundation + +enum RouteCalculator { + static func apply(peer: Peer, to routeTable: inout RouteTable, now: Date = Date()) { + routeTable.applyDirectPeerRoute( + peerID: peer.id, + ipv4Address: peer.virtualIPv4, + ipv6Address: peer.virtualIPv6, + nextHopPeerID: peer.id, + cost: peer.routeCost, + now: now + ) + } +} diff --git a/SpotierCore/Routing/RouteTable.swift b/SpotierCore/Routing/RouteTable.swift new file mode 100644 index 0000000..2b04b83 --- /dev/null +++ b/SpotierCore/Routing/RouteTable.swift @@ -0,0 +1,165 @@ +import Foundation + +struct RouteTable: Equatable { + private(set) var routes: [VirtualRoute] = [] + + mutating func apply(_ update: RouteUpdate, now: Date = Date()) { + removeRoutes(ownedBy: update.peerID) + + if let ipv4Address = update.ipv4Address { + routes.append(VirtualRoute( + destination: hostDestination(from: ipv4Address, defaultPrefix: 32), + ownerPeerID: update.peerID, + nextHopPeerID: update.nextHopPeerID, + cost: update.cost, + updatedAt: now, + kind: .host + )) + } + + if let ipv6Address = update.ipv6Address { + routes.append(VirtualRoute( + destination: hostDestination(from: ipv6Address, defaultPrefix: 128), + ownerPeerID: update.peerID, + nextHopPeerID: update.nextHopPeerID, + cost: update.cost, + updatedAt: now, + kind: .host + )) + } + + for cidr in update.proxyCIDRs { + routes.append(VirtualRoute( + destination: cidr, + ownerPeerID: update.peerID, + nextHopPeerID: update.nextHopPeerID, + cost: update.cost, + updatedAt: now, + kind: .subnetProxy + )) + } + } + + mutating func removeRoutes(ownedBy peerID: PeerID) { + routes.removeAll { $0.ownerPeerID == peerID } + } + + mutating func applyDirectPeerRoute( + peerID: PeerID, + ipv4Address: String?, + ipv6Address: String?, + nextHopPeerID: PeerID, + cost: Int, + now: Date = Date() + ) { + routes.removeAll { $0.ownerPeerID == peerID && $0.kind == .host } + + if let ipv4Address { + routes.append(VirtualRoute( + destination: hostDestination(from: ipv4Address, defaultPrefix: 32), + ownerPeerID: peerID, + nextHopPeerID: nextHopPeerID, + cost: cost, + updatedAt: now, + kind: .host + )) + } + + if let ipv6Address { + routes.append(VirtualRoute( + destination: hostDestination(from: ipv6Address, defaultPrefix: 128), + ownerPeerID: peerID, + nextHopPeerID: nextHopPeerID, + cost: cost, + updatedAt: now, + kind: .host + )) + } + } + + func bestRoute(for address: String) -> VirtualRoute? { + routes + .filter { routeContains($0.destination, address: address) } + .sorted { lhs, rhs in + let lhsPrefix = routePrefixLength(lhs.destination) ?? 0 + let rhsPrefix = routePrefixLength(rhs.destination) ?? 0 + if lhsPrefix != rhsPrefix { + return lhsPrefix > rhsPrefix + } + if lhs.cost != rhs.cost { + return lhs.cost < rhs.cost + } + return lhs.updatedAt > rhs.updatedAt + } + .first + } + + private func routePrefixLength(_ destination: String) -> Int? { + let parts = destination.split(separator: "/", maxSplits: 1) + guard parts.count == 2 else { return nil } + return Int(parts[1]) + } + + private func hostDestination(from address: String, defaultPrefix: Int) -> String { + let host = address.split(separator: "/", maxSplits: 1).first.map(String.init) ?? address + return "\(host)/\(defaultPrefix)" + } + + private func routeContains(_ destination: String, address: String) -> Bool { + let parts = destination.split(separator: "/", maxSplits: 1).map(String.init) + guard parts.count == 2, let prefix = Int(parts[1]) else { + return destination == address + } + + if destination.contains(":") || address.contains(":") { + return ipv6Contains(network: parts[0], prefix: prefix, address: address) + } + return ipv4Contains(network: parts[0], prefix: prefix, address: address) + } + + private func ipv4Contains(network: String, prefix: Int, address: String) -> Bool { + guard (0...32).contains(prefix), + let networkValue = parseIPv4(network), + let addressValue = parseIPv4(address) else { + return false + } + + let mask = prefix == 0 ? UInt32(0) : UInt32.max << (32 - prefix) + return (networkValue & mask) == (addressValue & mask) + } + + private func ipv6Contains(network: String, prefix: Int, address: String) -> Bool { + guard (0...128).contains(prefix), + let networkBytes = parseIPv6(network), + let addressBytes = parseIPv6(address) else { + return false + } + + let fullBytes = prefix / 8 + let remainingBits = prefix % 8 + + if fullBytes > 0, networkBytes[0.. 0 else { return true } + + let mask = UInt8.max << (8 - remainingBits) + return (networkBytes[fullBytes] & mask) == (addressBytes[fullBytes] & mask) + } + + private func parseIPv4(_ address: String) -> UInt32? { + let bytes = address.split(separator: ".").compactMap { UInt8($0) } + guard bytes.count == 4 else { return nil } + return bytes.reduce(UInt32(0)) { ($0 << 8) | UInt32($1) } + } + + private func parseIPv6(_ address: String) -> [UInt8]? { + var storage = in6_addr() + let result = address.withCString { + inet_pton(AF_INET6, $0, &storage) + } + guard result == 1 else { return nil } + return withUnsafeBytes(of: storage) { Array($0) } + } +} diff --git a/SpotierCore/Routing/VirtualRoute.swift b/SpotierCore/Routing/VirtualRoute.swift new file mode 100644 index 0000000..b338109 --- /dev/null +++ b/SpotierCore/Routing/VirtualRoute.swift @@ -0,0 +1,169 @@ +import Foundation + +enum VirtualRouteKind: Equatable { + case host + case subnetProxy +} + +struct VirtualRoute: Equatable { + var destination: String + var ownerPeerID: PeerID + var nextHopPeerID: PeerID + var cost: Int + var updatedAt: Date + var kind: VirtualRouteKind + + init( + destination: String, + ownerPeerID: PeerID, + nextHopPeerID: PeerID, + cost: Int, + updatedAt: Date, + kind: VirtualRouteKind + ) { + self.destination = destination + self.ownerPeerID = ownerPeerID + self.nextHopPeerID = nextHopPeerID + self.cost = cost + self.updatedAt = updatedAt + self.kind = kind + } +} + +struct RouteUpdate: Equatable { + var peerID: PeerID + var ipv4Address: String? + var ipv6Address: String? + var nextHopPeerID: PeerID + var cost: Int + var proxyCIDRs: [String] + + init( + peerID: PeerID, + ipv4Address: String?, + ipv6Address: String?, + nextHopPeerID: PeerID, + cost: Int, + proxyCIDRs: [String] + ) { + self.peerID = peerID + self.ipv4Address = ipv4Address + self.ipv6Address = ipv6Address + self.nextHopPeerID = nextHopPeerID + self.cost = cost + self.proxyCIDRs = proxyCIDRs + } +} + +extension RouteUpdate { + func wireData() throws -> Data { + var data = Data() + try data.appendOptionalString(ipv4Address) + try data.appendOptionalString(ipv6Address) + guard (0...255).contains(cost), proxyCIDRs.count <= Int(UInt8.max) else { + throw FrameCodecError.malformedPayload + } + data.append(UInt8(cost)) + data.append(UInt8(proxyCIDRs.count)) + for cidr in proxyCIDRs { + try data.appendString(cidr) + } + return data + } + + init(wireData: Data, sender: PeerID) throws { + var cursor = RouteUpdateCursor(wireData) + let ipv4Address = try cursor.readOptionalString() + let ipv6Address = try cursor.readOptionalString() + let cost = Int(try cursor.readUInt8()) + let proxyCount = Int(try cursor.readUInt8()) + var proxyCIDRs: [String] = [] + for _ in 0..> 8) & 0xFF)) + append(UInt8(bytes.count & 0xFF)) + append(bytes) + } + + mutating func appendOptionalString(_ value: String?) throws { + guard let value else { + append(0) + return + } + append(1) + try appendString(value) + } +} + +private struct RouteUpdateCursor { + private let data: Data + private var offset = 0 + + init(_ data: Data) { + self.data = data + } + + var isAtEnd: Bool { + offset == data.count + } + + mutating func readUInt8() throws -> UInt8 { + guard offset + 1 <= data.count else { + throw FrameCodecError.truncatedFrame + } + defer { offset += 1 } + return data[offset] + } + + mutating func readString() throws -> String { + let length = Int(try readUInt16()) + guard offset + length <= data.count else { + throw FrameCodecError.truncatedFrame + } + let bytes = data.subdata(in: offset..<(offset + length)) + offset += length + guard let value = String(data: bytes, encoding: .utf8) else { + throw FrameCodecError.malformedPayload + } + return value + } + + mutating func readOptionalString() throws -> String? { + switch try readUInt8() { + case 0: + return nil + case 1: + return try readString() + default: + throw FrameCodecError.malformedPayload + } + } + + private mutating func readUInt16() throws -> UInt16 { + let high = UInt16(try readUInt8()) + let low = UInt16(try readUInt8()) + return (high << 8) | low + } +} diff --git a/SpotierCore/Runtime/CoreConfigParser.swift b/SpotierCore/Runtime/CoreConfigParser.swift new file mode 100644 index 0000000..9038e52 --- /dev/null +++ b/SpotierCore/Runtime/CoreConfigParser.swift @@ -0,0 +1,197 @@ +import Foundation + +struct CoreConfigHints: Equatable { + var ipv4: String? + var subnet: String? + var ipv6: String? + var ipv6Prefix: Int? + var mtu: Int? + var magicDNS = false + var magicDNSZone = "et.net" +} + +struct CoreConfigParseResult: Equatable { + var configuration: MeshEngineConfiguration + var hints: CoreConfigHints +} + +enum CoreConfigParserError: Error, Equatable { + case missingNetworkName + case missingNetworkSecret +} + +enum CoreConfigParser { + static func parse(_ toml: String) throws -> CoreConfigParseResult { + var topLevel: [String: String] = [:] + var networkIdentity: [String: String] = [:] + var flags: [String: String] = [:] + var peers: [String] = [] + var proxyNetworkCIDRs: [String] = [] + var currentSection = "" + + for rawLine in toml.components(separatedBy: .newlines) { + let trimmed = rawLine.trimmingCharacters(in: .whitespaces) + if trimmed.isEmpty || trimmed.hasPrefix("#") { continue } + + if trimmed.hasPrefix("[[") && trimmed.hasSuffix("]]") { + currentSection = String(trimmed.dropFirst(2).dropLast(2)) + continue + } + + if trimmed.hasPrefix("[") && trimmed.hasSuffix("]") { + currentSection = String(trimmed.dropFirst().dropLast()) + continue + } + + let parts = trimmed.split(separator: "=", maxSplits: 1).map { + String($0).trimmingCharacters(in: .whitespaces) + } + guard parts.count == 2 else { continue } + + let key = parts[0] + let value = unquote(parts[1]) + + switch currentSection { + case "": + topLevel[key] = value + case "network_identity": + networkIdentity[key] = value + case "flags": + flags[key] = value + case "peer": + if key == "uri" { + peers.append(value) + } + case "proxy_network": + if key == "cidr" { + proxyNetworkCIDRs.append(value) + } + default: + break + } + } + + guard let networkName = networkIdentity["network_name"], !networkName.isEmpty else { + throw CoreConfigParserError.missingNetworkName + } + + guard let networkSecret = networkIdentity["network_secret"] else { + throw CoreConfigParserError.missingNetworkSecret + } + + let listeners = parseStringArray(topLevel["listeners"] ?? "") + let mappedListeners = parseStringArray(topLevel["mapped_listeners"] ?? "") + let advertisedRoutes = parseStringArray(topLevel["routes"] ?? "") + proxyNetworkCIDRs + let exitNodes = parseStringArray(topLevel["exit_nodes"] ?? "") + let mtu = Int(flags["mtu"] ?? topLevel["mtu"] ?? "") ?? 1380 + let enableExitNode = boolValue(flags["enable_exit_node"] ?? topLevel["enable_exit_node"]) + let disableIPv6 = boolValue(flags["disable_ipv6"] ?? topLevel["disable_ipv6"]) + let disableP2P = boolValue(flags["disable_p2p"] ?? topLevel["disable_p2p"]) + let p2pOnly = boolValue(flags["p2p_only"] ?? topLevel["p2p_only"]) + let disableUDPHolePunching = boolValue(flags["disable_udp_hole_punching"] ?? topLevel["disable_udp_hole_punching"]) + let hints = configHints(topLevel: topLevel, flags: flags, mtu: mtu, disableIPv6: disableIPv6) + + let configuration = MeshEngineConfiguration( + networkName: networkName, + networkSecret: networkSecret, + instanceName: topLevel["instance_name"], + virtualIPv4: topLevel["ipv4"], + virtualIPv6: disableIPv6 ? nil : topLevel["ipv6"], + peers: peers, + listeners: listeners, + mappedListeners: mappedListeners, + advertisedRoutes: advertisedRoutes, + exitNodes: exitNodes, + enableExitNode: enableExitNode, + mtu: mtu, + disableP2P: disableP2P, + p2pOnly: p2pOnly, + disableUDPHolePunching: disableUDPHolePunching, + magicDNS: hints.magicDNS, + magicDNSZone: hints.magicDNSZone + ) + + try configuration.validate() + return CoreConfigParseResult(configuration: configuration, hints: hints) + } + + private static func configHints( + topLevel: [String: String], + flags: [String: String], + mtu: Int, + disableIPv6: Bool + ) -> CoreConfigHints { + var hints = CoreConfigHints() + hints.mtu = mtu + + if let ipv4 = topLevel["ipv4"] { + let cidrParts = ipv4.split(separator: "/") + if cidrParts.count == 2 { + hints.ipv4 = String(cidrParts[0]) + if let cidr = Int(cidrParts[1]) { + hints.subnet = cidrToSubnetMask(cidr) + } + } + } + + if !disableIPv6, + let ipv6 = topLevel["ipv6"], + let parsed = parseIPv6CIDR(ipv6) { + hints.ipv6 = parsed.address + hints.ipv6Prefix = parsed.prefixLength + } + + if ["enable_magic_dns", "accept_dns"].contains(where: { key in + (flags[key] ?? topLevel[key])?.lowercased() == "true" + }) { + hints.magicDNS = true + } + + if let rawZone = flags["tld_dns_zone"] ?? topLevel["tld_dns_zone"] { + let zone = rawZone.trimmingCharacters(in: CharacterSet(charactersIn: ".")) + if !zone.isEmpty { + hints.magicDNSZone = zone + } + } + + return hints + } + + private static func boolValue(_ value: String?) -> Bool { + value?.lowercased() == "true" + } + + private static func unquote(_ value: String) -> String { + var result = value.trimmingCharacters(in: .whitespaces) + if result.hasPrefix("\""), result.hasSuffix("\"") { + result = String(result.dropFirst().dropLast()) + } + return result + } + + private static func parseStringArray(_ value: String) -> [String] { + guard value.hasPrefix("["), value.hasSuffix("]") else { return [] } + let inner = value.dropFirst().dropLast() + return inner + .split(separator: ",") + .map { unquote(String($0).trimmingCharacters(in: .whitespaces)) } + .filter { !$0.isEmpty } + } + + private static func cidrToSubnetMask(_ cidr: Int) -> String? { + guard (0...32).contains(cidr) else { return nil } + + let mask: UInt32 = cidr == 0 ? 0 : UInt32.max << (32 - cidr) + return "\((mask >> 24) & 0xFF).\((mask >> 16) & 0xFF).\((mask >> 8) & 0xFF).\(mask & 0xFF)" + } + + private static func parseIPv6CIDR(_ cidr: String) -> (address: String, prefixLength: Int)? { + let parts = cidr.split(separator: "/") + guard parts.count == 2, + let prefixLength = Int(parts[1]), + (0...128).contains(prefixLength) else { + return nil + } + return (String(parts[0]), prefixLength) + } +} diff --git a/SpotierCore/Runtime/MagicDNSResponder.swift b/SpotierCore/Runtime/MagicDNSResponder.swift new file mode 100644 index 0000000..c8bd155 --- /dev/null +++ b/SpotierCore/Runtime/MagicDNSResponder.swift @@ -0,0 +1,326 @@ +import Foundation + +struct MagicDNSResponder { + var resolverIPv4: String + var zone: String + var records: [String: String] + + static func records(localIdentity: NodeIdentity?, peerStore: PeerStore) -> [String: String] { + var records: [String: String] = [:] + if let localIdentity, + let address = ipv4Address(from: localIdentity.virtualIPv4), + isValidRecordHostname(localIdentity.hostname) { + records[localIdentity.hostname.lowercased()] = address + } + for peer in peerStore.peers { + if let address = ipv4Address(from: peer.virtualIPv4), + isValidRecordHostname(peer.hostname) { + records[peer.hostname.lowercased()] = address + } + } + return records + } + + func response(to packet: Data) -> Data? { + guard packet.count >= 20, + packet[0] >> 4 == 4, + packet.ipv4String(at: 16) == resolverIPv4 else { + return nil + } + + let headerLength = Int(packet[0] & 0x0F) * 4 + guard headerLength >= 20, packet.count >= headerLength else { + return nil + } + + if packet[9] == 17 { + return dnsResponse(to: packet, headerLength: headerLength) + } + if packet[9] == 1 { + return icmpEchoResponse(to: packet, headerLength: headerLength) + } + return nil + } + + private func dnsResponse(to packet: Data, headerLength: Int) -> Data? { + guard packet.count >= headerLength + 8 else { return nil } + + let sourcePort = packet.readUInt16(at: headerLength) + let destinationPort = packet.readUInt16(at: headerLength + 2) + guard destinationPort == 53 else { return nil } + + let dnsOffset = headerLength + 8 + guard let query = DNSQuery(packet: packet, offset: dnsOffset), + query.classCode == 1 else { + return nil + } + + let dnsPayload: Data + if query.type == 1, let hostname = hostnameInZone(query.name), let address = records[hostname] { + dnsPayload = dnsSuccessPayload(query: query, address: address) + } else if query.type == 1, hostnameInZone(query.name) != nil { + dnsPayload = dnsNXDomainPayload(query: query) + } else if query.type == 6, isZoneName(query.name) { + dnsPayload = dnsSOAPayload(query: query) + } else { + return nil + } + var udpPayload = Data() + udpPayload.appendUInt16(53) + udpPayload.appendUInt16(sourcePort) + udpPayload.appendUInt16(UInt16(8 + dnsPayload.count)) + udpPayload.appendUInt16(0) + udpPayload.append(dnsPayload) + let responseSource = resolverIPv4 + let responseDestination = packet.ipv4String(at: 12) + let udpChecksum = udpIPv4Checksum( + udpPayload: udpPayload, + source: responseSource, + destination: responseDestination + ) + udpPayload[6] = UInt8(udpChecksum >> 8) + udpPayload[7] = UInt8(udpChecksum & 0xFF) + return ipv4Packet( + request: packet, + headerLength: headerLength, + source: responseSource, + destination: responseDestination, + protocolNumber: 17, + payload: udpPayload + ) + } + + private func icmpEchoResponse(to packet: Data, headerLength: Int) -> Data? { + guard packet.count >= headerLength + 8, + packet[headerLength] == 8, + packet[headerLength + 1] == 0 else { + return nil + } + + var icmpPayload = packet.subdata(in: headerLength..> 8) + icmpPayload[3] = UInt8(checksum & 0xFF) + return ipv4Packet( + request: packet, + headerLength: headerLength, + source: resolverIPv4, + destination: packet.ipv4String(at: 12), + protocolNumber: 1, + payload: icmpPayload + ) + } + + private func hostnameInZone(_ name: String) -> String? { + let lowercased = name.lowercased() + let suffix = ".\(zone.lowercased())" + guard lowercased.hasSuffix(suffix) else { return nil } + return String(lowercased.dropLast(suffix.count)) + } + + private func isZoneName(_ name: String) -> Bool { + name.lowercased() == zone.lowercased() + } + + private func dnsSuccessPayload(query: DNSQuery, address: String) -> Data { + var data = Data() + data.appendUInt16(query.id) + data.appendUInt16(0x8180) + data.appendUInt16(1) + data.appendUInt16(1) + data.appendUInt16(0) + data.appendUInt16(0) + data.append(query.question) + data.appendUInt16(0xC00C) + data.appendUInt16(1) + data.appendUInt16(1) + data.appendUInt32(1) + data.appendUInt16(4) + data.append(contentsOf: address.split(separator: ".").compactMap { UInt8($0) }) + return data + } + + private func dnsNXDomainPayload(query: DNSQuery) -> Data { + var data = Data() + data.appendUInt16(query.id) + data.appendUInt16(0x8183) + data.appendUInt16(1) + data.appendUInt16(0) + data.appendUInt16(0) + data.appendUInt16(0) + data.append(query.question) + return data + } + + private func dnsSOAPayload(query: DNSQuery) -> Data { + var data = Data() + data.appendUInt16(query.id) + data.appendUInt16(0x8180) + data.appendUInt16(1) + data.appendUInt16(1) + data.appendUInt16(0) + data.appendUInt16(0) + data.append(query.question) + data.appendUInt16(0xC00C) + data.appendUInt16(6) + data.appendUInt16(1) + data.appendUInt32(60) + let rdata = soaRData() + data.appendUInt16(UInt16(rdata.count)) + data.append(rdata) + return data + } + + private func soaRData() -> Data { + var data = Data() + data.appendDNSName("ns.\(zone)") + data.appendDNSName("hostmaster.\(zone)") + data.appendUInt32(2023101001) + data.appendUInt32(7200) + data.appendUInt32(3600) + data.appendUInt32(1209600) + data.appendUInt32(86400) + return data + } + + private func ipv4Packet( + request: Data, + headerLength: Int, + source: String, + destination: String, + protocolNumber: UInt8, + payload: Data + ) -> Data { + let sourceBytes = ipv4Bytes(source) + let destinationBytes = ipv4Bytes(destination) + let totalLength = UInt16(headerLength + payload.count) + var data = request.subdata(in: 0..> 8) + data[3] = UInt8(totalLength & 0xFF) + data[9] = protocolNumber + data[10] = 0 + data[11] = 0 + data.replaceSubrange(12..<16, with: sourceBytes) + data.replaceSubrange(16..<20, with: destinationBytes) + let checksum = ipv4HeaderChecksum(data) + data[10] = UInt8(checksum >> 8) + data[11] = UInt8(checksum & 0xFF) + data.append(payload) + return data + } + + private func ipv4HeaderChecksum(_ header: Data) -> UInt16 { + internetChecksum(header) + } + + private func internetChecksum(_ data: Data) -> UInt16 { + var sum: UInt32 = 0 + var offset = 0 + while offset + 1 < data.count { + sum += UInt32(data.readUInt16(at: offset)) + offset += 2 + } + if offset < data.count { + sum += UInt32(data[offset]) << 8 + } + while sum > 0xFFFF { + sum = (sum & 0xFFFF) + (sum >> 16) + } + return UInt16(~sum & 0xFFFF) + } + + private func udpIPv4Checksum(udpPayload: Data, source: String, destination: String) -> UInt16 { + var data = Data() + data.append(contentsOf: ipv4Bytes(source)) + data.append(contentsOf: ipv4Bytes(destination)) + data.append(0) + data.append(17) + data.appendUInt16(UInt16(udpPayload.count)) + data.append(udpPayload) + return internetChecksum(data) + } + + private func ipv4Bytes(_ address: String) -> [UInt8] { + address.split(separator: ".").compactMap { UInt8($0) } + } + + private static func ipv4Address(from cidr: String?) -> String? { + cidr?.split(separator: "/", maxSplits: 1).first.map(String.init) + } + + private static func isValidRecordHostname(_ hostname: String) -> Bool { + !hostname.isEmpty + && !hostname.hasPrefix(".") + && !hostname.hasSuffix(".") + && !hostname.contains("..") + } +} + +private struct DNSQuery { + var id: UInt16 + var name: String + var type: UInt16 + var classCode: UInt16 + var question: Data + + init?(packet: Data, offset: Int) { + guard packet.count >= offset + 12, + packet.readUInt16(at: offset + 4) == 1 else { + return nil + } + + id = packet.readUInt16(at: offset) + var labels: [String] = [] + var cursor = offset + 12 + while cursor < packet.count { + let length = Int(packet[cursor]) + cursor += 1 + if length == 0 { break } + guard length <= 63, cursor + length <= packet.count else { + return nil + } + labels.append(String(decoding: packet[cursor..> 8)) + append(UInt8(value & 0xFF)) + } + + mutating func appendUInt32(_ value: UInt32) { + append(UInt8((value >> 24) & 0xFF)) + append(UInt8((value >> 16) & 0xFF)) + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + mutating func appendDNSName(_ name: String) { + for label in name.split(separator: ".") { + let bytes = Array(label.utf8) + append(UInt8(bytes.count)) + append(contentsOf: bytes) + } + append(0) + } + + func readUInt16(at offset: Int) -> UInt16 { + (UInt16(self[offset]) << 8) | UInt16(self[offset + 1]) + } + + func ipv4String(at offset: Int) -> String { + "\(self[offset]).\(self[offset + 1]).\(self[offset + 2]).\(self[offset + 3])" + } +} diff --git a/SpotierCore/Runtime/MeshEngine.swift b/SpotierCore/Runtime/MeshEngine.swift new file mode 100644 index 0000000..c9b0918 --- /dev/null +++ b/SpotierCore/Runtime/MeshEngine.swift @@ -0,0 +1,442 @@ +import Foundation + +final class MeshEngine { + let outboundPackets: AsyncStream + + private(set) var status: MeshEngineStatus = .stopped + private(set) var configuration: MeshEngineConfiguration? + private(set) var events: [MeshEngineEvent] = [] + private(set) var localIdentity: NodeIdentity? + private(set) var peerStore = PeerStore() + private(set) var routeTable = RouteTable() + private var transport: (any Transport)? + private let injectedTransport: (any Transport)? + private let deviceSeed: Data + private var outboundPacketContinuation: AsyncStream.Continuation? + private var peerManager: PeerManager? + private var transportReadTask: Task? + private var nextSequence: UInt64 = 1 + private var advertisedRoutePeers = Set() + private var endpointCandidatePeers = Set() + private var peerTrafficStats: [PeerID: RunningInfoSnapshot.PeerConnectionStats] = [:] + private var pendingLatencyPings: [PeerID: Date] = [:] + + init(transport: (any Transport)? = nil, deviceSeed: Data = Data("spotier.swift.core.device".utf8)) { + injectedTransport = transport + self.deviceSeed = deviceSeed + let stream = AsyncStream.makeStream() + outboundPackets = stream.stream + outboundPacketContinuation = stream.continuation + } + + func start(configuration: MeshEngineConfiguration) async throws { + try configuration.validate() + setStatus(.starting) + self.configuration = configuration + localIdentity = try NodeIdentity.derive( + network: NetworkSecret( + networkName: configuration.networkName, + secret: configuration.networkSecret + ), + deviceSeed: deviceSeed, + hostname: configuration.instanceName ?? "spotier", + virtualIPv4: configuration.virtualIPv4, + virtualIPv6: configuration.virtualIPv6 + ) + guard let localIdentity else { return } + peerManager = PeerManager( + localIdentity: localIdentity, + network: NetworkSecret( + networkName: configuration.networkName, + secret: configuration.networkSecret + ), + udpHolePunchingEnabled: !configuration.disableP2P && !configuration.disableUDPHolePunching + ) + + do { + let relayBootstrapEnabled = injectedTransport is any RelayBootstrapTransport + try validateConfiguredPeers(configuration.peers, relayBootstrapEnabled: relayBootstrapEnabled) + if let injectedTransport { + try await injectedTransport.start() + transport = injectedTransport + } else if let udpPort = try configuredUDPPort(from: configuration.listeners) { + let transport = UDPTransport(bindPort: udpPort) + try await transport.start() + self.transport = transport + } else if !configuration.listeners.isEmpty { + throw TransportError.unsupportedListenerScheme + } + startTransportReader() + try await sendBootstrapHello(to: configuration.peers, relayBootstrapEnabled: relayBootstrapEnabled) + setStatus(.running) + } catch { + let message = String(describing: error) + setStatus(.failed(message)) + events.append(.fatalError(message)) + throw error + } + } + + func stop() async { + guard status != .stopped else { return } + setStatus(.stopping) + transportReadTask?.cancel() + transportReadTask = nil + await transport?.stop() + transport = nil + configuration = nil + localIdentity = nil + peerManager = nil + peerStore = PeerStore() + routeTable = RouteTable() + peerTrafficStats.removeAll() + pendingLatencyPings.removeAll() + nextSequence = 1 + advertisedRoutePeers.removeAll() + endpointCandidatePeers.removeAll() + setStatus(.stopped) + } + + func sendProviderCommand(_ command: String) -> Data? { + guard command == "running_info" else { + return nil + } + + return runningInfoData() + } + + func runningInfoData() -> Data? { + let snapshot = RunningInfoSnapshot.make( + localIdentity: localIdentity, + configuration: configuration, + peerStore: peerStore, + routeTable: routeTable, + events: events, + running: status == .running, + errorMessage: errorMessage, + peerTrafficStats: peerTrafficStats + ) + return try? snapshot.jsonData() + } + + func receivePacket(_ packet: PacketTunnelPacket) async { + do { + if let response = magicDNSResponse(to: packet.data) { + emitPacket(PacketTunnelPacket(data: response, protocolFamily: AF_INET)) + return + } + let parsedPacket = try PacketClassifier.parse(packet.data) + let decision = PacketRouter( + routeTable: routeTable, + localPeerID: localIdentity?.peerID, + localIPv4: localIdentity?.virtualIPv4, + localIPv6: localIdentity?.virtualIPv6, + exitNodes: configuration?.exitNodes ?? [], + p2pOnly: configuration?.p2pOnly == true + ).route(parsedPacket) + try await forward(packet, decision: decision) + } catch { + events.append(.logLine("Dropped non-IP packet")) + } + } + + private func magicDNSResponse(to packet: Data) -> Data? { + guard configuration?.magicDNS == true else { return nil } + let responder = MagicDNSResponder( + resolverIPv4: "100.100.100.101", + zone: configuration?.magicDNSZone ?? "et.net", + records: MagicDNSResponder.records(localIdentity: localIdentity, peerStore: peerStore) + ) + return responder.response(to: packet) + } + + func emitPacket(_ packet: PacketTunnelPacket) { + outboundPacketContinuation?.yield(packet) + } + + func hasEstablishedSession(with peerID: PeerID) -> Bool { + peerManager?.session(for: peerID)?.health == .established + } + + private func configuredUDPPort(from listeners: [String]) throws -> UInt16? { + for listener in listeners { + guard URL(string: listener)?.scheme == "udp" else { continue } + return try TransportEndpoint(urlString: listener).port + } + return nil + } + + private func validateConfiguredPeers(_ peers: [String], relayBootstrapEnabled: Bool) throws { + guard !peers.isEmpty else { return } + guard peers.contains(where: { supportsBootstrapPeer($0, relayBootstrapEnabled: relayBootstrapEnabled) }) else { + throw TransportError.unsupportedPeerScheme + } + } + + private func sendBootstrapHello(to peers: [String], relayBootstrapEnabled: Bool) async throws { + guard let transport, let peerManager else { return } + for peer in peers { + guard supportsBootstrapPeer(peer, relayBootstrapEnabled: relayBootstrapEnabled) else { continue } + let endpoint = try TransportEndpoint(urlString: peer) + try await transport.send(peerManager.makeHelloFrame(), to: endpoint) + } + } + + private func supportsBootstrapPeer(_ peer: String, relayBootstrapEnabled: Bool) -> Bool { + guard let scheme = URL(string: peer)?.scheme else { return false } + if scheme == "udp" { return true } + return relayBootstrapEnabled && (scheme == "tcp" || scheme == "tls") + } + + private func setStatus(_ newStatus: MeshEngineStatus) { + status = newStatus + events.append(.statusChanged(newStatus)) + } + + private func startTransportReader() { + guard let transport else { return } + transportReadTask = Task { + for await inbound in transport.inboundFrames { + await receive(inbound) + } + } + } + + private func receive(_ inbound: TransportInboundFrame) async { + do { + guard acceptsFrameReceiver(inbound.frame) else { + events.append(.logLine("Dropped frame addressed to another peer")) + return + } + switch inbound.frame.payload { + case .control: + let responses = try peerManager?.receive(inbound) ?? [] + syncPeerState() + if case .control(.peerPong) = inbound.frame.payload { + recordLatencyPong(from: inbound.frame.sender) + } + if case .control(.routeUpdate(let payload)) = inbound.frame.payload { + guard peerManager?.session(for: inbound.frame.sender)?.health == .established else { + events.append(.logLine("Dropped unauthenticated route update")) + return + } + let update = try RouteUpdate(wireData: payload, sender: inbound.frame.sender) + routeTable.apply(update) + events.append(.routeChanged) + } + if case .control(.hello) = inbound.frame.payload, + let peer = peerStore.peer(id: inbound.frame.sender) { + RouteCalculator.apply(peer: peer, to: &routeTable) + events.append(.routeChanged) + } + for response in responses { + try await transport?.send(response, to: inbound.remoteEndpoint) + } + try await sendEndpointCandidateIfNeeded(to: inbound.frame.sender, endpoint: inbound.remoteEndpoint) + try await sendAdvertisedRoutesIfNeeded(to: inbound.frame.sender, endpoint: inbound.remoteEndpoint) + try await sendLatencyPingIfNeeded(to: inbound.frame.sender, endpoint: inbound.remoteEndpoint) + case .data(let packet): + guard let session = peerManager?.session(for: inbound.frame.sender), + let crypto = session.crypto else { + return + } + let plaintext = try crypto.decrypt( + sequence: inbound.frame.sequence, + ciphertext: packet.encryptedIPPacket + ) + guard shouldAcceptDataFrame(inbound.frame) else { + events.append(.logLine("Dropped disabled exit-node packet")) + return + } + recordReceivedPacket(from: inbound.frame.sender, byteCount: plaintext.count) + emitPacket(PacketTunnelPacket(data: plaintext, protocolFamily: protocolFamily(for: plaintext))) + } + } catch { + events.append(.logLine("Dropped inbound frame")) + } + } + + private func acceptsFrameReceiver(_ frame: CoreFrame) -> Bool { + if frame.receiver == localIdentity?.peerID { + return true + } + if frame.receiver == PeerID(0), case .control(.hello) = frame.payload { + return true + } + return false + } + + private func sendAdvertisedRoutes(to peerID: PeerID, endpoint: TransportEndpoint) async throws { + guard let localIdentity, let configuration, !configuration.advertisedRoutes.isEmpty else { return } + let update = RouteUpdate( + peerID: localIdentity.peerID, + ipv4Address: localIdentity.virtualIPv4, + ipv6Address: localIdentity.virtualIPv6, + nextHopPeerID: localIdentity.peerID, + cost: 1, + proxyCIDRs: configuration.advertisedRoutes + ) + let frame = CoreFrame( + type: .control, + sender: localIdentity.peerID, + receiver: peerID, + sequence: nextSequence, + payload: .control(.routeUpdate(try update.wireData())) + ) + nextSequence += 1 + try await transport?.send(frame, to: endpoint) + } + + private func sendAdvertisedRoutesIfNeeded(to peerID: PeerID, endpoint: TransportEndpoint) async throws { + guard advertisedRoutePeers.contains(peerID) == false, + peerManager?.session(for: peerID)?.health == .established else { + return + } + try await sendAdvertisedRoutes(to: peerID, endpoint: endpoint) + advertisedRoutePeers.insert(peerID) + } + + private func sendEndpointCandidateIfNeeded(to peerID: PeerID, endpoint: TransportEndpoint) async throws { + guard endpointCandidatePeers.contains(peerID) == false, + peerManager?.session(for: peerID)?.health == .established, + let candidate = try configuredUDPEndpoint() else { + return + } + guard var frame = peerManager?.publishEndpointCandidate(candidate, to: peerID) else { return } + frame.sequence = nextSequence + nextSequence += 1 + try await transport?.send(frame, to: endpoint) + endpointCandidatePeers.insert(peerID) + } + + private func configuredUDPEndpoint() throws -> TransportEndpoint? { + let candidates = (configuration?.mappedListeners ?? []) + (configuration?.listeners ?? []) + guard let listener = candidates.first(where: { URL(string: $0)?.scheme == "udp" }) else { + return nil + } + return try TransportEndpoint(urlString: listener) + } + + private func syncPeerState() { + guard let manager = peerManager else { return } + peerStore = manager.peerStore + } + + private func shouldAcceptDataFrame(_ frame: CoreFrame) -> Bool { + if (frame.flags & CoreFrame.exitNodeFlag) == 0 { + return true + } + return configuration?.enableExitNode == true + } + + private func forward(_ packet: PacketTunnelPacket, decision: PacketRouteDecision) async throws { + let peerID: PeerID + let frameFlags: UInt16 + switch decision { + case .local: + emitPacket(packet) + return + case .peers(let ids): + for id in ids { + try await forward(packet, to: id, frameFlags: 0) + } + return + case .peer(let id), .subnetProxy(let id): + peerID = id + frameFlags = 0 + case .exitNode(let id): + peerID = id + frameFlags = CoreFrame.exitNodeFlag + case .drop: + events.append(.logLine("Dropped unrouted packet")) + return + } + + try await forward(packet, to: peerID, frameFlags: frameFlags) + } + + private func forward(_ packet: PacketTunnelPacket, to peerID: PeerID, frameFlags: UInt16) async throws { + guard let localIdentity, + let session = peerManager?.session(for: peerID), + let crypto = session.crypto, + let endpoint = peerStore.peer(id: peerID)?.knownEndpoints.first else { + events.append(.logLine("Dropped packet without established peer session")) + return + } + + let sequence = nextSequence + nextSequence += 1 + let encrypted = try crypto.encrypt(sequence: sequence, plaintext: packet.data) + let frame = CoreFrame( + type: .data, + flags: frameFlags, + sender: localIdentity.peerID, + receiver: peerID, + sequence: sequence, + payload: .data(DataPacket(encryptedIPPacket: encrypted)) + ) + try await transport?.send(frame, to: endpoint) + recordSentPacket(to: peerID, byteCount: packet.data.count) + } + + private func sendLatencyPingIfNeeded(to peerID: PeerID, endpoint: TransportEndpoint) async throws { + guard peerManager?.session(for: peerID)?.health == .established, + pendingLatencyPings[peerID] == nil, + (peerTrafficStats[peerID]?.latencyUs ?? 0) == 0, + let localIdentity else { + return + } + + let frame = CoreFrame( + type: .control, + sender: localIdentity.peerID, + receiver: peerID, + sequence: nextSequence, + payload: .control(.peerPing) + ) + pendingLatencyPings[peerID] = Date() + nextSequence += 1 + try await transport?.send(frame, to: endpoint) + } + + private func recordLatencyPong(from peerID: PeerID) { + guard let startedAt = pendingLatencyPings.removeValue(forKey: peerID) else { return } + let latencyUs = max(1, Int(Date().timeIntervalSince(startedAt) * 1_000_000)) + var stats = peerTrafficStats[peerID] ?? RunningInfoSnapshot.PeerConnectionStats() + stats.latencyUs = latencyUs + peerTrafficStats[peerID] = stats + } + + private func recordSentPacket(to peerID: PeerID, byteCount: Int) { + var stats = peerTrafficStats[peerID] ?? RunningInfoSnapshot.PeerConnectionStats() + stats.txBytes += byteCount + stats.txPackets += 1 + peerTrafficStats[peerID] = stats + } + + private func recordReceivedPacket(from peerID: PeerID, byteCount: Int) { + var stats = peerTrafficStats[peerID] ?? RunningInfoSnapshot.PeerConnectionStats() + stats.rxBytes += byteCount + stats.rxPackets += 1 + peerTrafficStats[peerID] = stats + } + + private func protocolFamily(for packet: Data) -> Int32 { + guard let firstByte = packet.first else { return AF_UNSPEC } + switch firstByte >> 4 { + case 4: + return AF_INET + case 6: + return AF_INET6 + default: + return AF_UNSPEC + } + } + + private var errorMessage: String? { + if case .failed(let message) = status { + return message + } + return nil + } +} diff --git a/SpotierCore/Runtime/MeshEngineConfiguration.swift b/SpotierCore/Runtime/MeshEngineConfiguration.swift new file mode 100644 index 0000000..aa86e78 --- /dev/null +++ b/SpotierCore/Runtime/MeshEngineConfiguration.swift @@ -0,0 +1,74 @@ +import Foundation + +struct MeshEngineConfiguration: Equatable { + var networkName: String + var networkSecret: String + var instanceName: String? + var virtualIPv4: String? + var virtualIPv6: String? + var peers: [String] + var listeners: [String] + var mappedListeners: [String] + var advertisedRoutes: [String] + var exitNodes: [String] + var enableExitNode: Bool + var mtu: Int + var disableP2P: Bool + var p2pOnly: Bool + var disableUDPHolePunching: Bool + var magicDNS: Bool + var magicDNSZone: String + + init( + networkName: String, + networkSecret: String, + instanceName: String? = nil, + virtualIPv4: String? = nil, + virtualIPv6: String? = nil, + peers: [String] = [], + listeners: [String] = [], + mappedListeners: [String] = [], + advertisedRoutes: [String] = [], + exitNodes: [String] = [], + enableExitNode: Bool = false, + mtu: Int = 1380, + disableP2P: Bool = false, + p2pOnly: Bool = false, + disableUDPHolePunching: Bool = false, + magicDNS: Bool = false, + magicDNSZone: String = "et.net" + ) { + self.networkName = networkName + self.networkSecret = networkSecret + self.instanceName = instanceName + self.virtualIPv4 = virtualIPv4 + self.virtualIPv6 = virtualIPv6 + self.peers = peers + self.listeners = listeners + self.mappedListeners = mappedListeners + self.advertisedRoutes = advertisedRoutes + self.exitNodes = exitNodes + self.enableExitNode = enableExitNode + self.mtu = mtu + self.disableP2P = disableP2P + self.p2pOnly = p2pOnly + self.disableUDPHolePunching = disableUDPHolePunching + self.magicDNS = magicDNS + self.magicDNSZone = magicDNSZone + } + + func validate() throws { + guard !networkName.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty else { + throw MeshEngineConfigurationError.emptyNetworkName + } + + guard (576...9000).contains(mtu) else { + throw MeshEngineConfigurationError.invalidMTU(mtu) + } + } +} + +enum MeshEngineConfigurationError: Error, Equatable { + case emptyNetworkName + case invalidMTU(Int) +} diff --git a/SpotierCore/Runtime/MeshEngineEvent.swift b/SpotierCore/Runtime/MeshEngineEvent.swift new file mode 100644 index 0000000..42ae71e --- /dev/null +++ b/SpotierCore/Runtime/MeshEngineEvent.swift @@ -0,0 +1,7 @@ +enum MeshEngineEvent: Equatable { + case statusChanged(MeshEngineStatus) + case peerChanged + case routeChanged + case logLine(String) + case fatalError(String) +} diff --git a/SpotierCore/Runtime/MeshEngineStatus.swift b/SpotierCore/Runtime/MeshEngineStatus.swift new file mode 100644 index 0000000..dd918e5 --- /dev/null +++ b/SpotierCore/Runtime/MeshEngineStatus.swift @@ -0,0 +1,7 @@ +enum MeshEngineStatus: Equatable { + case stopped + case starting + case running + case stopping + case failed(String) +} diff --git a/SpotierCore/Runtime/PacketTunnelIO.swift b/SpotierCore/Runtime/PacketTunnelIO.swift new file mode 100644 index 0000000..8dbbe80 --- /dev/null +++ b/SpotierCore/Runtime/PacketTunnelIO.swift @@ -0,0 +1,64 @@ +import Foundation +import NetworkExtension + +struct PacketTunnelPacket: Equatable { + var data: Data + var protocolFamily: Int32 +} + +protocol PacketTunnelFlowIO: AnyObject { + func readPackets(completionHandler: @escaping @Sendable ([Data], [NSNumber]) -> Void) + func writePackets(_ packets: [Data], withProtocols protocols: [NSNumber]) -> Bool +} + +extension NEPacketTunnelFlow: PacketTunnelFlowIO {} + +final class PacketTunnelIO { + let packets: AsyncStream + + private let flow: any PacketTunnelFlowIO + private var continuation: AsyncStream.Continuation? + private var isReading = false + + init(flow: any PacketTunnelFlowIO) { + self.flow = flow + let stream = AsyncStream.makeStream() + packets = stream.stream + continuation = stream.continuation + } + + func startReading() { + guard !isReading else { return } + isReading = true + readNextBatch() + } + + func stop() { + isReading = false + continuation?.finish() + } + + func write(_ packet: PacketTunnelPacket) { + _ = flow.writePackets( + [packet.data], + withProtocols: [NSNumber(value: packet.protocolFamily)] + ) + } + + private func readNextBatch() { + guard isReading else { return } + + flow.readPackets { [weak self] packets, protocols in + guard let self else { return } + + for (data, protocolNumber) in zip(packets, protocols) { + self.continuation?.yield(PacketTunnelPacket( + data: data, + protocolFamily: protocolNumber.int32Value + )) + } + + self.readNextBatch() + } + } +} diff --git a/SpotierCore/Runtime/RunningInfoSnapshot.swift b/SpotierCore/Runtime/RunningInfoSnapshot.swift new file mode 100644 index 0000000..5a07e55 --- /dev/null +++ b/SpotierCore/Runtime/RunningInfoSnapshot.swift @@ -0,0 +1,515 @@ +import Darwin +import Foundation + +struct RunningInfoSnapshot: Codable, Equatable { + var devName: String + var myNodeInfo: NodeInfo? + var events: [String] + var routes: [Route] + var peers: [PeerInfo] + var peerRoutePairs: [PeerRoutePair] + var running: Bool + var errorMsg: String? + + enum CodingKeys: String, CodingKey { + case devName = "dev_name" + case myNodeInfo = "my_node_info" + case events, routes, peers, running + case peerRoutePairs = "peer_route_pairs" + case errorMsg = "error_msg" + } + + static func make( + localIdentity: NodeIdentity?, + configuration: MeshEngineConfiguration?, + peerStore: PeerStore, + routeTable: RouteTable, + events: [MeshEngineEvent], + running: Bool, + errorMessage: String?, + peerTrafficStats: [PeerID: PeerConnectionStats] = [:] + ) -> RunningInfoSnapshot { + let routeRows = makeRouteRows(peerStore: peerStore, routeTable: routeTable) + + let peerRows = peerStore.peers.map { + makePeerInfo( + peer: $0, + localIdentity: localIdentity, + configuration: configuration, + stats: peerTrafficStats[$0.id] ?? PeerConnectionStats() + ) + } + + return RunningInfoSnapshot( + devName: localIdentity?.hostname ?? "", + myNodeInfo: localIdentity.map { NodeInfo(identity: $0, configuration: configuration) }, + events: events.map(\.runningInfoText), + routes: routeRows, + peers: peerRows, + peerRoutePairs: routeRows.map { route in + PeerRoutePair( + route: route, + peer: peerRows.first { $0.peerID == route.peerID } + ) + }, + running: running, + errorMsg: errorMessage + ) + } + + func jsonData() throws -> Data { + try JSONEncoder().encode(self) + } + + private static func makeRouteRows(peerStore: PeerStore, routeTable: RouteTable) -> [Route] { + var rows: [Route] = [] + + for route in routeTable.routes { + let peerID = runningInfoPeerID(route.ownerPeerID) + let index = rows.firstIndex { $0.peerID == peerID } + let existing = index.map { rows[$0] } + let row = updatedRouteRow(existing, with: route, peerStore: peerStore) + if let index { + rows[index] = row + } else { + rows.append(row) + } + } + + return rows.sorted { lhs, rhs in + switch (lhs.ipv4Address?.address.addr, rhs.ipv4Address?.address.addr) { + case let (lhsAddress?, rhsAddress?) where lhsAddress != rhsAddress: + return lhsAddress < rhsAddress + case (_?, nil): + return true + case (nil, _?): + return false + default: + return lhs.peerID < rhs.peerID + } + } + } + + private static func updatedRouteRow( + _ row: Route?, + with route: VirtualRoute, + peerStore: PeerStore + ) -> Route { + var row = row ?? Route( + peerID: runningInfoPeerID(route.ownerPeerID), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: runningInfoPeerID(route.nextHopPeerID), + cost: route.cost, + pathLatency: 0, + proxyCIDRs: [], + hostname: peerStore.peer(id: route.ownerPeerID)?.hostname ?? "", + instID: "", + version: peerStore.peer(id: route.ownerPeerID)?.version ?? "" + ) + + switch route.kind { + case .host: + row.ipv4Address = IPv4CIDR(route.destination) ?? row.ipv4Address + row.ipv6Address = IPv6CIDR(route.destination) ?? row.ipv6Address + case .subnetProxy: + row.proxyCIDRs.append(route.destination) + } + + return row + } + + private static func makePeerInfo( + peer: Peer, + localIdentity: NodeIdentity?, + configuration: MeshEngineConfiguration?, + stats: PeerConnectionStats + ) -> PeerInfo { + let endpoint = primaryEndpoint(peer) + let tunnel = makeTunnelInfo(endpoint: endpoint, configuration: configuration) + let connectionID = connectionUUID(peerID: peer.id, endpoint: endpoint) + let directlyConnectedConnectionIDs = tunnel.map { _ in [connectionID] } ?? [] + + return PeerInfo( + peerID: runningInfoPeerID(peer.id), + connections: [ + PeerConnectionInfo( + connectionID: uuidString(connectionID), + localPeerID: localIdentity.map { runningInfoPeerID($0.peerID) } ?? 0, + isClient: true, + peerID: runningInfoPeerID(peer.id), + features: [], + tunnel: tunnel, + stats: stats, + lossRate: 0, + networkName: configuration?.networkName, + isClosed: peer.isStale + ) + ], + defaultConnectionID: tunnel.map { _ in connectionID }, + directlyConnectedConnectionIDs: directlyConnectedConnectionIDs + ) + } + + private static func primaryEndpoint(_ peer: Peer) -> TransportEndpoint? { + peer.knownEndpoints.sorted { + if $0.host == $1.host { + return $0.port < $1.port + } + return $0.host < $1.host + }.first + } + + private static func makeTunnelInfo( + endpoint: TransportEndpoint?, + configuration: MeshEngineConfiguration? + ) -> TunnelInfo? { + guard let endpoint, + let listener = udpListener(configuration) else { + return nil + } + + return TunnelInfo( + tunnelType: endpoint.scheme, + localAddress: URLString(url: listener), + remoteAddress: URLString(url: "\(endpoint.scheme)://\(endpoint.host):\(endpoint.port)") + ) + } + + private static func udpListener(_ configuration: MeshEngineConfiguration?) -> String? { + ((configuration?.listeners ?? []) + (configuration?.mappedListeners ?? [])) + .first { $0.hasPrefix("udp://") } + } + + private static func connectionUUID(peerID: PeerID, endpoint: TransportEndpoint?) -> UUIDParts { + UUIDParts( + part1: UInt32(truncatingIfNeeded: peerID.rawValue >> 32), + part2: UInt32(truncatingIfNeeded: peerID.rawValue), + part3: UInt32(endpoint?.port ?? 0), + part4: 0 + ) + } + + private static func uuidString(_ uuid: UUIDParts) -> String { + String(format: "%08x-%08x-%08x-%08x", uuid.part1, uuid.part2, uuid.part3, uuid.part4) + } + + private static func runningInfoPeerID(_ peerID: PeerID) -> Int { + Int(UInt32(truncatingIfNeeded: peerID.rawValue)) + } +} + +extension RunningInfoSnapshot { + struct NodeInfo: Codable, Equatable { + var virtualIPv4: IPv4CIDR? + var virtualIPv6: IPv6CIDR? + var hostname: String + var version: String + var ips: IPList? + var stunInfo: STUNInfo? + var listeners: [URLString]? + var vpnPortalConfig: String? + var peerID: Int + + init(identity: NodeIdentity, configuration: MeshEngineConfiguration?) { + virtualIPv4 = identity.virtualIPv4.flatMap { IPv4CIDR($0) } + virtualIPv6 = identity.virtualIPv6.flatMap { IPv6CIDR($0) } + hostname = identity.hostname + version = "swift-core" + let configuredListeners = (configuration?.listeners ?? []) + (configuration?.mappedListeners ?? []) + let listenerURLs = configuredListeners.map(URLString.init(url:)) + ips = IPList(listeners: listenerURLs) + stunInfo = STUNInfo() + listeners = listenerURLs + vpnPortalConfig = nil + peerID = RunningInfoSnapshot.runningInfoPeerID(identity.peerID) + } + + enum CodingKeys: String, CodingKey { + case virtualIPv4 = "virtual_ipv4" + case virtualIPv6 = "virtual_ipv6" + case hostname, version, ips, listeners + case stunInfo = "stun_info" + case vpnPortalConfig = "vpn_portal_cfg" + case peerID = "peer_id" + } + } + + struct IPList: Codable, Equatable { + var publicIPv4: IPv4Address? + var interfaceIPv4s: [IPv4Address]? + var publicIPv6: IPv6Address? + var interfaceIPv6s: [IPv6Address]? + var listeners: [URLString]? + + init(listeners: [URLString]) { + self.listeners = listeners + } + + enum CodingKeys: String, CodingKey { + case publicIPv4 = "public_ipv4" + case interfaceIPv4s = "interface_ipv4s" + case publicIPv6 = "public_ipv6" + case interfaceIPv6s = "interface_ipv6s" + case listeners + } + } + + struct Route: Codable, Equatable { + var peerID: Int + var ipv4Address: IPv4CIDR? + var ipv6Address: IPv6CIDR? + var nextHopPeerID: Int + var cost: Int + var pathLatency: Int + var proxyCIDRs: [String] + var hostname: String + var stunInfo: STUNInfo? + var instID: String + var version: String + var nextHopPeerIDLatencyFirst: UInt? + var costLatencyFirst: Int? + var pathLatencyLatencyFirst: Int? + var featureFlag: PeerFeatureFlag? + + enum CodingKeys: String, CodingKey { + case peerID = "peer_id" + case ipv4Address = "ipv4_addr" + case ipv6Address = "ipv6_addr" + case nextHopPeerID = "next_hop_peer_id" + case cost + case pathLatency = "path_latency" + case proxyCIDRs = "proxy_cidrs" + case hostname + case stunInfo = "stun_info" + case instID = "inst_id" + case version + case nextHopPeerIDLatencyFirst = "next_hop_peer_id_latency_first" + case costLatencyFirst = "cost_latency_first" + case pathLatencyLatencyFirst = "path_latency_latency_first" + case featureFlag = "feature_flag" + } + } + + struct PeerInfo: Codable, Equatable { + var peerID: Int + var connections: [PeerConnectionInfo] + var defaultConnectionID: UUIDParts? + var directlyConnectedConnectionIDs: [UUIDParts] + + enum CodingKeys: String, CodingKey { + case peerID = "peer_id" + case connections = "conns" + case defaultConnectionID = "default_conn_id" + case directlyConnectedConnectionIDs = "directly_connected_conns" + } + } + + struct PeerConnectionInfo: Codable, Equatable { + var connectionID: String + var localPeerID: Int + var isClient: Bool + var peerID: Int + var features: [String] + var tunnel: TunnelInfo? + var stats: PeerConnectionStats? + var lossRate: Double + var networkName: String? + var isClosed: Bool? + + enum CodingKeys: String, CodingKey { + case connectionID = "conn_id" + case localPeerID = "my_peer_id" + case isClient = "is_client" + case peerID = "peer_id" + case features, tunnel, stats + case lossRate = "loss_rate" + case networkName = "network_name" + case isClosed = "is_closed" + } + } + + struct PeerConnectionStats: Codable, Equatable { + var rxBytes = 0 + var txBytes = 0 + var rxPackets = 0 + var txPackets = 0 + var latencyUs = 0 + + enum CodingKeys: String, CodingKey { + case rxBytes = "rx_bytes" + case txBytes = "tx_bytes" + case rxPackets = "rx_packets" + case txPackets = "tx_packets" + case latencyUs = "latency_us" + } + } + + struct PeerRoutePair: Codable, Equatable { + var route: Route + var peer: PeerInfo? + } + + struct TunnelInfo: Codable, Equatable { + var tunnelType: String + var localAddress: URLString + var remoteAddress: URLString + + enum CodingKeys: String, CodingKey { + case tunnelType = "tunnel_type" + case localAddress = "local_addr" + case remoteAddress = "remote_addr" + } + } + + struct STUNInfo: Codable, Equatable { + var udpNATType = 0 + var tcpNATType = 0 + var lastUpdateTime: TimeInterval = 0 + var publicIPs: [String] = [] + var minPort: Int? + var maxPort: Int? + + enum CodingKeys: String, CodingKey { + case udpNATType = "udp_nat_type" + case tcpNATType = "tcp_nat_type" + case lastUpdateTime = "last_update_time" + case publicIPs = "public_ip" + case minPort = "min_port" + case maxPort = "max_port" + } + } + + struct PeerFeatureFlag: Codable, Equatable { + var isPublicServer = false + var avoidRelayData = false + var kcpInput = false + var noRelayKcp = false + var supportConnectionListSync = false + + enum CodingKeys: String, CodingKey { + case isPublicServer = "is_public_server" + case avoidRelayData = "avoid_relay_data" + case kcpInput = "kcp_input" + case noRelayKcp = "no_relay_kcp" + case supportConnectionListSync = "support_conn_list_sync" + } + } + + struct URLString: Codable, Equatable { + var url: String + } + + struct UUIDParts: Codable, Equatable { + var part1: UInt32 + var part2: UInt32 + var part3: UInt32 + var part4: UInt32 + } + + struct IPv4CIDR: Codable, Equatable { + var address: IPv4Address + var networkLength: Int + + init?(_ cidr: String) { + let parts = cidr.split(separator: "/", maxSplits: 1).map(String.init) + let addressString = parts[0] + let length = parts.count == 2 ? Int(parts[1]) : 32 + + guard let address = IPv4Address(addressString), + let length, + (0...32).contains(length) else { + return nil + } + + self.address = address + networkLength = length + } + + enum CodingKeys: String, CodingKey { + case address + case networkLength = "network_length" + } + } + + struct IPv4Address: Codable, Equatable { + var addr: UInt32 + + init?(_ string: String) { + let bytes = string.split(separator: ".").compactMap { UInt32($0) } + guard bytes.count == 4 else { return nil } + addr = (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3] + } + } + + struct IPv6CIDR: Codable, Equatable { + var address: IPv6Address + var networkLength: Int + + init?(_ cidr: String) { + let parts = cidr.split(separator: "/", maxSplits: 1).map(String.init) + let addressString = parts[0] + let length = parts.count == 2 ? Int(parts[1]) : 128 + + guard let address = IPv6Address(addressString), + let length, + (0...128).contains(length) else { + return nil + } + + self.address = address + networkLength = length + } + + enum CodingKeys: String, CodingKey { + case address + case networkLength = "network_length" + } + } + + struct IPv6Address: Codable, Equatable { + var part1: UInt32 + var part2: UInt32 + var part3: UInt32 + var part4: UInt32 + + init?(_ string: String) { + var addr = in6_addr() + guard inet_pton(AF_INET6, string, &addr) == 1 else { + return nil + } + + let data = withUnsafeBytes(of: addr) { Data($0) } + part1 = data.readUInt32(at: 0) + part2 = data.readUInt32(at: 4) + part3 = data.readUInt32(at: 8) + part4 = data.readUInt32(at: 12) + } + } +} + +private extension MeshEngineEvent { + var runningInfoText: String { + switch self { + case .statusChanged(let status): + return "status_changed: \(status)" + case .peerChanged: + return "peer_changed" + case .routeChanged: + return "route_changed" + case .logLine(let line): + return line + case .fatalError(let message): + return "fatal_error: \(message)" + } + } +} + +private extension Data { + func readUInt32(at offset: Int) -> UInt32 { + (UInt32(self[offset]) << 24) + | (UInt32(self[offset + 1]) << 16) + | (UInt32(self[offset + 2]) << 8) + | UInt32(self[offset + 3]) + } +} diff --git a/SpotierCore/Transport/RelayTransport.swift b/SpotierCore/Transport/RelayTransport.swift new file mode 100644 index 0000000..ea61012 --- /dev/null +++ b/SpotierCore/Transport/RelayTransport.swift @@ -0,0 +1,228 @@ +import Foundation +import Network + +final class RelayTransport: RelayBootstrapTransport { + let inboundFrames: AsyncStream + + private let relayEndpoint: TransportEndpoint + private let parameters: NWParameters + private let sessionCrypto: SessionCrypto + private let queue = DispatchQueue(label: "spotier.relay.transport") + private let decoder = RelayFrameStreamDecoder() + private var connection: NWConnection? + private var continuation: AsyncStream.Continuation? + private var startContinuation: CheckedContinuation? + + let usesTLS: Bool + + init(urlString: String, sessionCrypto: SessionCrypto) throws { + guard let url = URL(string: urlString), + let scheme = url.scheme else { + throw RelayTransportError.invalidURL(urlString) + } + + switch scheme { + case RelayProtocolV1.tcpScheme: + parameters = .tcp + usesTLS = false + case RelayProtocolV1.tlsScheme: + parameters = .tls + usesTLS = true + default: + throw RelayTransportError.unsupportedScheme(scheme) + } + + relayEndpoint = try TransportEndpoint(urlString: urlString) + self.sessionCrypto = sessionCrypto + + let stream = AsyncStream.makeStream() + inboundFrames = stream.stream + continuation = stream.continuation + } + + func start() async throws { + let connection = NWConnection(to: relayEndpoint.nwEndpoint, using: parameters) + self.connection = connection + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + self.startContinuation = continuation + + connection.stateUpdateHandler = { [weak self] state in + guard let self else { return } + + switch state { + case .ready: + self.resumeStart() + self.receive(on: connection) + case .failed(let error): + self.resumeStart(throwing: error) + self.connection = nil + self.continuation?.finish() + case .cancelled: + self.connection = nil + self.continuation?.finish() + default: + break + } + } + + connection.start(queue: queue) + } + } + + func stop() async { + connection?.cancel() + connection = nil + continuation?.finish() + } + + func send(_ frame: CoreFrame, to endpoint: TransportEndpoint) async throws { + guard let connection else { + throw TransportError.connectionUnavailable + } + + let data = try RelayFrameCodec.encode(frame, crypto: sessionCrypto) + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + connection.send(content: data, completion: .contentProcessed { error in + if error == nil { + continuation.resume(returning: ()) + } else { + continuation.resume(throwing: TransportError.sendFailed) + } + }) + } + } + + private func receive(on connection: NWConnection) { + connection.receive(minimumIncompleteLength: 1, maximumLength: RelayProtocolV1.maximumRecordLength) { [weak self] data, _, isComplete, error in + guard let self else { return } + + if let data, !data.isEmpty { + do { + let records = try self.decoder.append(data) + for record in records { + let frame = try RelayFrameCodec.decode(record, crypto: self.sessionCrypto) + self.continuation?.yield(TransportInboundFrame( + frame: frame, + remoteEndpoint: self.relayEndpoint + )) + } + } catch { + self.connection = nil + self.continuation?.finish() + connection.cancel() + return + } + } + + guard error == nil, !isComplete else { + self.connection = nil + self.continuation?.finish() + return + } + + self.receive(on: connection) + } + } + + private func resumeStart(throwing error: Error? = nil) { + guard let continuation = startContinuation else { return } + startContinuation = nil + + if let error { + continuation.resume(throwing: error) + } else { + continuation.resume(returning: ()) + } + } +} + +enum RelayProtocolV1 { + static let tcpScheme = "tcp" + static let tlsScheme = "tls" + static let sequenceLength = 8 + static let lengthPrefixLength = 4 + static let maximumRecordLength = 64 * 1024 +} + +enum RelayTransportError: Error, Equatable { + case invalidURL(String) + case unsupportedScheme(String) +} + +enum RelayFrameCodec { + static func encode(_ frame: CoreFrame, crypto: SessionCrypto) throws -> Data { + let plaintext = try FrameCodec.encode(frame) + let ciphertext = try crypto.encrypt(sequence: frame.sequence, plaintext: plaintext) + + var record = Data() + record.reserveCapacity(RelayProtocolV1.sequenceLength + ciphertext.count) + record.appendUInt64(frame.sequence) + record.append(ciphertext) + + var data = Data() + data.reserveCapacity(RelayProtocolV1.lengthPrefixLength + record.count) + data.appendUInt32(UInt32(record.count)) + data.append(record) + return data + } + + static func decode(_ record: Data, crypto: SessionCrypto) throws -> CoreFrame { + guard record.count >= RelayProtocolV1.sequenceLength else { + throw TransportError.malformedRelayFrame + } + + let sequence = record.readUInt64(at: 0) + let ciphertext = record.dropFirst(RelayProtocolV1.sequenceLength) + let plaintext = try crypto.decrypt(sequence: sequence, ciphertext: Data(ciphertext)) + return try FrameCodec.decode(plaintext) + } +} + +final class RelayFrameStreamDecoder { + private var buffer = Data() + + func append(_ data: Data) throws -> [Data] { + buffer.append(data) + + var records: [Data] = [] + while buffer.count >= 4 { + let length = Int(buffer.prefix(4).readUInt32()) + guard buffer.count >= 4 + length else { break } + + records.append(Data(buffer.dropFirst(4).prefix(length))) + buffer.removeFirst(4 + length) + } + + return records + } +} + +private extension Data { + mutating func appendUInt32(_ value: UInt32) { + append(UInt8((value >> 24) & 0xFF)) + append(UInt8((value >> 16) & 0xFF)) + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + mutating func appendUInt64(_ value: UInt64) { + append(UInt8((value >> 56) & 0xFF)) + append(UInt8((value >> 48) & 0xFF)) + append(UInt8((value >> 40) & 0xFF)) + append(UInt8((value >> 32) & 0xFF)) + append(UInt8((value >> 24) & 0xFF)) + append(UInt8((value >> 16) & 0xFF)) + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + func readUInt32() -> UInt32 { + reduce(UInt32(0)) { ($0 << 8) | UInt32($1) } + } + + func readUInt64(at offset: Int) -> UInt64 { + let bytes = self[offset.. { get } + + func start() async throws + func stop() async + func send(_ frame: CoreFrame, to endpoint: TransportEndpoint) async throws +} + +protocol RelayBootstrapTransport: Transport {} + +enum TransportError: Error, Equatable { + case listenerUnavailable + case unsupportedListenerScheme + case unsupportedPeerScheme + case connectionUnavailable + case sendFailed + case malformedRelayFrame +} diff --git a/SpotierCore/Transport/TransportEndpoint.swift b/SpotierCore/Transport/TransportEndpoint.swift new file mode 100644 index 0000000..98efd94 --- /dev/null +++ b/SpotierCore/Transport/TransportEndpoint.swift @@ -0,0 +1,40 @@ +import Foundation +import Network + +struct TransportEndpoint: Hashable, Equatable, CustomStringConvertible { + var scheme: String + var host: String + var port: UInt16 + + init(scheme: String = "udp", host: String, port: UInt16) { + self.scheme = scheme + self.host = host + self.port = port + } + + init(urlString: String) throws { + guard let url = URL(string: urlString), + let scheme = url.scheme, + let host = url.host, + let port = url.port, + port >= 0, + port <= Int(UInt16.max) else { + throw TransportEndpointError.invalidURL(urlString) + } + self.scheme = scheme + self.host = host + self.port = UInt16(port) + } + + var nwEndpoint: NWEndpoint { + .hostPort(host: NWEndpoint.Host(host), port: NWEndpoint.Port(rawValue: port)!) + } + + var description: String { + "\(host):\(port)" + } +} + +enum TransportEndpointError: Error, Equatable { + case invalidURL(String) +} diff --git a/SpotierCore/Transport/UDPTransport.swift b/SpotierCore/Transport/UDPTransport.swift new file mode 100644 index 0000000..c368dd5 --- /dev/null +++ b/SpotierCore/Transport/UDPTransport.swift @@ -0,0 +1,82 @@ +import Foundation +import Network + +final class UDPTransport: Transport { + let inboundFrames: AsyncStream + + private let bindPort: UInt16 + private let queue = DispatchQueue(label: "spotier.udp.transport") + private var listener: NWListener? + private var continuation: AsyncStream.Continuation? + + init(bindPort: UInt16) { + self.bindPort = bindPort + let stream = AsyncStream.makeStream() + inboundFrames = stream.stream + continuation = stream.continuation + } + + func start() async throws { + let listener = try NWListener( + using: .udp, + on: NWEndpoint.Port(rawValue: bindPort)! + ) + self.listener = listener + + listener.newConnectionHandler = { [weak self] connection in + self?.receive(on: connection) + connection.start(queue: self?.queue ?? .main) + } + listener.start(queue: queue) + } + + func stop() async { + listener?.cancel() + listener = nil + continuation?.finish() + } + + func send(_ frame: CoreFrame, to endpoint: TransportEndpoint) async throws { + let data = try FrameCodec.encode(frame) + let connection = NWConnection(to: endpoint.nwEndpoint, using: .udp) + connection.start(queue: queue) + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + connection.send(content: data, completion: .contentProcessed { error in + connection.cancel() + if error == nil { + continuation.resume(returning: ()) + } else { + continuation.resume(throwing: TransportError.sendFailed) + } + }) + } + } + + private func receive(on connection: NWConnection) { + connection.receiveMessage { [weak self] data, _, _, _ in + guard let self else { return } + defer { + self.receive(on: connection) + } + + guard let data else { return } + guard let frame = try? FrameCodec.decode(data) else { return } + guard let remoteEndpoint = self.remoteEndpoint(from: connection.endpoint) else { return } + + self.continuation?.yield(TransportInboundFrame( + frame: frame, + remoteEndpoint: remoteEndpoint + )) + } + } + + private func remoteEndpoint(from endpoint: NWEndpoint) -> TransportEndpoint? { + switch endpoint { + case .hostPort(let host, let port): + return TransportEndpoint(host: String(describing: host), port: port.rawValue) + default: + return nil + } + } +} diff --git a/SpotierNE/AddressHelper.swift b/SpotierNE/AddressHelper.swift new file mode 100755 index 0000000..ecea16f --- /dev/null +++ b/SpotierNE/AddressHelper.swift @@ -0,0 +1,119 @@ +import Darwin +import Foundation + +func normalizeCIDR(_ cidr: String) -> RunningIPv4CIDR? { + guard var cidrStruct = RunningIPv4CIDR(from: cidr) else { return nil } + cidrStruct.address = ipv4MaskedSubnet(cidrStruct) + return cidrStruct +} + +func cidrToSubnetMask(_ cidr: Int) -> String? { + guard cidr >= 0 && cidr <= 32 else { return nil } + + let mask: UInt32 = cidr == 0 ? 0 : UInt32.max << (32 - cidr) + + let octet1 = (mask >> 24) & 0xFF + let octet2 = (mask >> 16) & 0xFF + let octet3 = (mask >> 8) & 0xFF + let octet4 = mask & 0xFF + + return "\(octet1).\(octet2).\(octet3).\(octet4)" +} + +func ipv4MaskedSubnet(_ cidr: RunningIPv4CIDR) -> RunningIPv4Addr { + let mask: UInt32 = cidr.networkLength == 0 ? 0 : UInt32.max << (32 - cidr.networkLength) + return RunningIPv4Addr(addr: cidr.address.addr & mask) +} + +func ipv4SubnetsOverlap(bigger: RunningIPv4CIDR, smaller: RunningIPv4CIDR) -> Bool { + if bigger.networkLength > smaller.networkLength { + return ipv4SubnetsOverlap(bigger: smaller, smaller: bigger) + } + let mask: UInt32 = bigger.networkLength == 0 ? 0 : UInt32.max << (32 - bigger.networkLength) + return (bigger.address.addr & mask) == (smaller.address.addr & mask) +} + +// Added from PacketTunnelProvider.swift to centralize logic + +func maskedAddress(_ addr: RunningIPv4Addr, networkLength: Int) -> String { + let mask = networkLength == 0 ? UInt32(0) : UInt32.max << (32 - networkLength) + let network = addr.addr & mask + return "\((network >> 24) & 0xFF).\((network >> 16) & 0xFF).\((network >> 8) & 0xFF).\(network & 0xFF)" +} + +func maskedAddressFromStrings(_ ip: String, mask: String) -> String { + let ipParts = ip.split(separator: ".").compactMap { UInt32($0) } + let maskParts = mask.split(separator: ".").compactMap { UInt32($0) } + guard ipParts.count == 4, maskParts.count == 4 else { return ip } + return "\(ipParts[0] & maskParts[0]).\(ipParts[1] & maskParts[1]).\(ipParts[2] & maskParts[2]).\(ipParts[3] & maskParts[3])" +} + +func parseCIDR(_ cidrStr: String) -> (address: String, mask: String)? { + let parts = cidrStr.split(separator: "/") + guard parts.count == 2, + let cidr = Int(parts[1]), + let mask = cidrToSubnetMask(cidr) else { return nil } + + // Apply mask to get network address + let ipParts = String(parts[0]).split(separator: ".").compactMap { UInt32($0) } + let maskParts = mask.split(separator: ".").compactMap { UInt32($0) } + guard ipParts.count == 4, maskParts.count == 4 else { return nil } + + let networkAddr = "\(ipParts[0] & maskParts[0]).\(ipParts[1] & maskParts[1]).\(ipParts[2] & maskParts[2]).\(ipParts[3] & maskParts[3])" + return (networkAddr, mask) +} + +func parseIPv6CIDR(_ cidrStr: String) -> (address: String, prefixLength: Int)? { + let parts = cidrStr.split(separator: "/") + guard parts.count == 2, + let prefixLength = Int(parts[1]), + (0...128).contains(prefixLength) else { return nil } + return (String(parts[0]), prefixLength) +} + +func maskedIPv6Address(_ address: String, networkLength: Int) -> String? { + guard (0...128).contains(networkLength) else { return nil } + + var ipv6 = in6_addr() + let parseResult = address.withCString { ptr in + inet_pton(AF_INET6, ptr, &ipv6) + } + guard parseResult == 1 else { return nil } + + var bytes = withUnsafeBytes(of: &ipv6) { Array($0) } + let fullBytes = networkLength / 8 + let remainingBits = networkLength % 8 + + if fullBytes < bytes.count { + if remainingBits > 0 { + let mask = UInt8(0xFF << (8 - remainingBits)) + bytes[fullBytes] &= mask + if fullBytes + 1 < bytes.count { + for index in (fullBytes + 1).. Bool { + maskedAddressFromStrings(address, mask: subnetMask) == destination +} diff --git a/SpotierNE/EasyTierShared.swift b/SpotierNE/EasyTierShared.swift new file mode 100755 index 0000000..228e91b --- /dev/null +++ b/SpotierNE/EasyTierShared.swift @@ -0,0 +1,236 @@ +import Foundation +import NetworkExtension +import os + +public let APP_BUNDLE_ID: String = "com.alick.spotier" +public let APP_GROUP_ID: String = "group.com.alick.spotier" +public let ICLOUD_CONTAINER_ID: String = "iCloud.com.alick.spotier" +public let LOG_FILENAME: String = "easytier.log" + +public func appGroupDefaults() -> UserDefaults? { + UserDefaults(suiteName: APP_GROUP_ID) +} + +public func appGroupContainerURL(fileManager: FileManager = .default) -> URL? { + fileManager.containerURL(forSecurityApplicationGroupIdentifier: APP_GROUP_ID) +} + +public func appGroupFileURL(_ filename: String, fileManager: FileManager = .default) -> URL? { + appGroupContainerURL(fileManager: fileManager)?.appendingPathComponent(filename) +} + +public enum LogLevel: String, Codable, CaseIterable { + case off = "off" + case trace = "trace" + case debug = "debug" + case info = "info" + case warn = "warn" + case error = "error" +} + +public enum StoredLogLevel: String, Codable, CaseIterable { + case off = "OFF" + case error = "ERROR" + case warn = "WARN" + case info = "INFO" + case debug = "DEBUG" + case trace = "TRACE" + + public init(storedValue: String) { + self = StoredLogLevel(rawValue: storedValue.uppercased()) ?? .info + } + + public var effectiveLogLevel: LogLevel { + switch self { + case .off: return .off + case .error: return .error + case .warn: return .warn + case .info: return .info + case .debug: return .debug + case .trace: return .trace + } + } + + public func allows(_ logLevel: LogLevel) -> Bool { + rank(of: logLevel) <= rank + } + + private var rank: Int { + switch self { + case .off: return 0 + case .error: return 1 + case .warn: return 2 + case .info: return 3 + case .debug: return 4 + case .trace: return 5 + } + } + + private func rank(of logLevel: LogLevel) -> Int { + switch logLevel { + case .off: return 0 + case .error: return 1 + case .warn: return 2 + case .info: return 3 + case .debug: return 4 + case .trace: return 5 + } + } +} + +public func readStoredLogLevel(defaults: UserDefaults? = appGroupDefaults()) -> StoredLogLevel { + StoredLogLevel(storedValue: defaults?.string(forKey: "logLevel") ?? StoredLogLevel.info.rawValue) +} + +public func writeStoredLogLevel(_ level: StoredLogLevel, defaults: UserDefaults? = appGroupDefaults()) { + defaults?.set(level.rawValue, forKey: "logLevel") +} + +public struct EasyTierOptions: Codable { + public var config: String = "" + public var ipv4: String? + public var ipv6: String? + public var mtu: Int? + public var routes: [String] = [] + public var logLevel: LogLevel = .info + public var magicDNS: Bool = false + public var dns: [String] = [] + + public init() {} +} + +public struct TunnelNetworkSettingsSnapshot: Codable, Equatable { + public struct IPv4Subnet: Codable, Hashable { + public var address: String + public var subnetMask: String + + public init(address: String, subnetMask: String) { + self.address = address + self.subnetMask = subnetMask + } + } + + public struct IPv6Subnet: Codable, Hashable { + public var address: String + public var networkPrefixLength: Int + + public init(address: String, networkPrefixLength: Int) { + self.address = address + self.networkPrefixLength = networkPrefixLength + } + } + + public struct IPv4: Codable, Equatable { + public var subnets: Set + public var includedRoutes: Set? + public var excludedRoutes: Set? + + public init( + addresses: [String], + subnetMasks: [String], + includedRoutes: [IPv4Subnet]? = nil, + excludedRoutes: [IPv4Subnet]? = nil + ) { + subnets = .init() + for (index, address) in addresses.enumerated() { + subnets.insert( + IPv4Subnet(address: address, subnetMask: subnetMasks[index]) + ) + } + if let includedRoutes, !includedRoutes.isEmpty { + self.includedRoutes = Set(includedRoutes) + } + if let excludedRoutes, !excludedRoutes.isEmpty { + self.excludedRoutes = Set(excludedRoutes) + } + } + } + + public struct IPv6: Codable, Equatable { + public var subnets: Set + public var includedRoutes: Set? + public var excludedRoutes: Set? + + public init( + addresses: [String], + networkPrefixLengths: [Int], + includedRoutes: [IPv6Subnet]? = nil, + excludedRoutes: [IPv6Subnet]? = nil + ) { + subnets = .init() + for (index, address) in addresses.enumerated() { + subnets.insert( + IPv6Subnet( + address: address, + networkPrefixLength: networkPrefixLengths[index] + ) + ) + } + if let includedRoutes { + self.includedRoutes = Set(includedRoutes) + } + if let excludedRoutes { + self.excludedRoutes = Set(excludedRoutes) + } + } + } + + public struct DNS: Codable, Equatable { + public var servers: Set + public var searchDomains: Set? + public var matchDomains: Set? + + public init( + servers: [String], + searchDomains: [String]? = nil, + matchDomains: [String]? = nil + ) { + self.servers = Set(servers) + if let searchDomains { + self.searchDomains = Set(searchDomains) + } + if let matchDomains { + self.matchDomains = Set(matchDomains) + } + } + } + + public var ipv4: IPv4? + public var ipv6: IPv6? + public var dns: DNS? + public var mtu: UInt32? + + public init(ipv4: IPv4? = nil, ipv6: IPv6? = nil, dns: DNS? = nil, mtu: UInt32? = nil) { + self.ipv4 = ipv4 + self.ipv6 = ipv6 + self.dns = dns + self.mtu = mtu + } +} + +public enum ProviderCommand: String, Codable, CaseIterable { + case exportOSLog = "export_oslog" + case runningInfo = "running_info" + case lastNetworkSettings = "last_network_settings" +} + +public func connectWithManager(_ manager: NETunnelProviderManager, logger: Logger? = nil) async throws { + manager.isEnabled = true + if let defaults = appGroupDefaults() { + manager.protocolConfiguration?.includeAllNetworks = defaults.bool(forKey: "includeAllNetworks") + manager.protocolConfiguration?.excludeLocalNetworks = defaults.bool(forKey: "excludeLocalNetworks") + if #available(iOS 16.4, *) { + manager.protocolConfiguration?.excludeCellularServices = defaults.bool(forKey: "excludeCellularServices") + manager.protocolConfiguration?.excludeAPNs = defaults.bool(forKey: "excludeAPNs") + } + if #available(iOS 17.4, macOS 14.4, *) { + manager.protocolConfiguration?.excludeDeviceCommunication = defaults.bool(forKey: "excludeDeviceCommunication") + } + manager.protocolConfiguration?.enforceRoutes = defaults.bool(forKey: "enforceRoutes") + if let logger { + logger.debug("connect with protocol configuration: \(manager.protocolConfiguration)") + } + } + try await manager.saveToPreferences() + try manager.connection.startVPNTunnel() +} diff --git a/SpotierNE/Info.plist b/SpotierNE/Info.plist new file mode 100644 index 0000000..3059459 --- /dev/null +++ b/SpotierNE/Info.plist @@ -0,0 +1,13 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.networkextension.packet-tunnel + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).PacketTunnelProvider + + + diff --git a/SpotierNE/InfoModels.swift b/SpotierNE/InfoModels.swift new file mode 100755 index 0000000..8b78626 --- /dev/null +++ b/SpotierNE/InfoModels.swift @@ -0,0 +1,135 @@ +import Darwin +import Foundation + +struct RunningInfo: Decodable { + var myNodeInfo: RunningNodeInfo? + var routes: [RunningRoute] + + enum CodingKeys: String, CodingKey { + case myNodeInfo = "my_node_info" + case routes + } +} + +struct RunningNodeInfo: Decodable { + var virtualIPv4: RunningIPv4CIDR? + var virtualIPv6: RunningIPv6CIDR? + + enum CodingKeys: String, CodingKey { + case virtualIPv4 = "virtual_ipv4" + case virtualIPv6 = "virtual_ipv6" + } +} + +struct RunningRoute: Decodable { + var proxyCIDRs: [String] + + enum CodingKeys: String, CodingKey { + case proxyCIDRs = "proxy_cidrs" + } +} + +struct RunningIPv4CIDR: Decodable, Hashable { + var address: RunningIPv4Addr + var networkLength: Int + + init?(from string: String) { + // Expect CIDR notation like "192.168.1.10/24" + let toParsed = string.contains("/") ? string : string + "/32" + let parts = toParsed.split(separator: "/") + guard parts.count == 2, + let addr = RunningIPv4Addr(from: String(parts[0])), + let length = Int(parts[1]), + (0...32).contains(length) else { + return nil + } + self.address = addr + self.networkLength = length + } + + init(address: RunningIPv4Addr, length: Int) { + self.address = address + networkLength = length + } + + enum CodingKeys: String, CodingKey { + case address + case networkLength = "network_length" + } +} + +struct RunningIPv4Addr: Decodable, Hashable { + var addr: UInt32 + + init(addr: UInt32) { + self.addr = addr + } + + init?(from string: String) { + // Expect dotted-quad IPv4, e.g., "192.168.1.10" + let parts = string.split(separator: ".") + guard parts.count == 4 else { return nil } + var bytes = [UInt32]() + bytes.reserveCapacity(4) + for p in parts { + guard let val = UInt32(p), val <= 255 else { return nil } + bytes.append(val) + } + // Pack into network-order (big-endian) 32-bit integer + self.addr = (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3] + } + + var description: String { + let ip = addr + return "\((ip >> 24) & 0xFF).\((ip >> 16) & 0xFF).\((ip >> 8) & 0xFF).\(ip & 0xFF)" + } +} + +struct RunningIPv6CIDR: Decodable, Hashable { + var address: RunningIPv6Addr + var networkLength: Int + + enum CodingKeys: String, CodingKey { + case address + case networkLength = "network_length" + } +} + +struct RunningIPv6Addr: Decodable, Hashable { + var part1: UInt32 + var part2: UInt32 + var part3: UInt32 + var part4: UInt32 + + var description: String { + var bytes = [UInt8]() + bytes.reserveCapacity(16) + bytes.append(contentsOf: part1.bigEndianBytes) + bytes.append(contentsOf: part2.bigEndianBytes) + bytes.append(contentsOf: part3.bigEndianBytes) + bytes.append(contentsOf: part4.bigEndianBytes) + + var ipv6 = in6_addr() + withUnsafeMutableBytes(of: &ipv6) { destination in + bytes.withUnsafeBytes { source in + destination.copyBytes(from: source) + } + } + + var buffer = [CChar](repeating: 0, count: Int(INET6_ADDRSTRLEN)) + let result = inet_ntop(AF_INET6, &ipv6, &buffer, socklen_t(buffer.count)) + guard result != nil else { return "::" } + return String(cString: buffer) + } +} + +private extension UInt32 { + var bigEndianBytes: [UInt8] { + return [ + UInt8((self >> 24) & 0xFF), + UInt8((self >> 16) & 0xFF), + UInt8((self >> 8) & 0xFF), + UInt8(self & 0xFF) + ] + } +} diff --git a/SpotierNE/Logger.swift b/SpotierNE/Logger.swift new file mode 100644 index 0000000..09877ba --- /dev/null +++ b/SpotierNE/Logger.swift @@ -0,0 +1,5 @@ +import os +import Foundation + +let loggerSubsystem = "\(APP_BUNDLE_ID).ne" +let logger = Logger(subsystem: loggerSubsystem, category: "swift") diff --git a/SpotierNE/OSLogExporter.swift b/SpotierNE/OSLogExporter.swift new file mode 100755 index 0000000..40c8fae --- /dev/null +++ b/SpotierNE/OSLogExporter.swift @@ -0,0 +1,80 @@ +import Foundation +import OSLog + +enum OSLogExporter { + private static let dateFormatter: ISO8601DateFormatter = { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + return formatter + }() + + enum ExportError: Error { + case containerUnavailable + case emptyLogs + } + + static func exportToAppGroup(appGroupID: String) throws -> URL { + guard let containerURL = FileManager.default.containerURL( + forSecurityApplicationGroupIdentifier: appGroupID + ) else { + throw ExportError.containerUnavailable + } + let store = try OSLogStore(scope: .currentProcessIdentifier) + let startPosition = store.position(timeIntervalSinceLatestBoot: 0) + let entries = try store.getEntries(at: startPosition) + var output = "" + + for entry in entries { + if let log = entry as? OSLogEntryLog { + output.append(format(log)) + output.append("\n") + } else if let signpost = entry as? OSLogEntrySignpost { + output.append(format(signpost)) + output.append("\n") + } + } + + guard !output.isEmpty else { + throw ExportError.emptyLogs + } + + let filename = "EasyTier-NE-oslog-\(Int(Date().timeIntervalSince1970)).log" + let url = containerURL.appendingPathComponent(filename) + try output.write(to: url, atomically: true, encoding: .utf8) + return url + } + + private static func format(_ log: OSLogEntryLog) -> String { + let timestamp = dateFormatter.string(from: log.date) + let level = formatLevel(log.level) + let subsystem = log.subsystem + let category = log.category + return "[\(timestamp)] [\(level)] [\(subsystem)] [\(category)] \(log.composedMessage)" + } + + private static func format(_ signpost: OSLogEntrySignpost) -> String { + let timestamp = dateFormatter.string(from: signpost.date) + let type = String(describing: signpost.signpostType).uppercased() + let subsystem = signpost.subsystem + let category = signpost.category + let name = signpost.signpostName + return "[\(timestamp)] [SIGNPOST \(type)] [\(subsystem)] [\(category)] \(name)" + } + + private static func formatLevel(_ level: OSLogEntryLog.Level) -> String { + switch level { + case .debug: + return "DEBUG" + case .info: + return "INFO" + case .notice: + return "NOTICE" + case .error: + return "ERROR" + case .fault: + return "FAULT" + default: + return "UNKNOWN" + } + } +} diff --git a/SpotierNE/PacketTunnelProvider.swift b/SpotierNE/PacketTunnelProvider.swift new file mode 100644 index 0000000..1ce8ef3 --- /dev/null +++ b/SpotierNE/PacketTunnelProvider.swift @@ -0,0 +1,365 @@ +import NetworkExtension +import os + + +let debounceInterval: TimeInterval = 0.5 + +class PacketTunnelProvider: NEPacketTunnelProvider { + private var lastAppliedSettings: SettingsSnapshot? + private var needReapplySettings = false + private var debounceTask: Task? + private var configHints = CoreConfigHints() + private var meshEngine: MeshEngine? + private var packetTunnelIO: PacketTunnelIO? + private var packetReadTask: Task? + private var packetWriteTask: Task? + + private let magicDNSResolver = "100.100.100.101" + + // MARK: - Config Loading + + private func loadConfig() -> String? { + guard let groupURL = appGroupContainerURL() else { + logger.error("无法访问 App Group 容器: \(APP_GROUP_ID)") + return nil + } + let configURL = groupURL.appendingPathComponent("config.toml") + do { + let content = try String(contentsOf: configURL, encoding: .utf8) + logger.info("成功从 App Group 读取配置文件") + return content + } catch { + logger.error("读取配置文件失败: \(error.localizedDescription)") + return nil + } + } + + // MARK: - Dynamic Network Settings + + private func enqueueSettingsUpdate() { + debounceTask?.cancel() + debounceTask = Task { @MainActor [weak self] in + guard let self else { return } + try? await Task.sleep(for: .seconds(debounceInterval)) + guard !Task.isCancelled else { return } + if self.reasserting { + logger.info("设置更新已在进行中,排队等待") + self.needReapplySettings = true + return + } + self.applyNetworkSettings { error in + if let error { + logger.error("设置更新失败: \(error)") + } + } + } + } + + private func applyNetworkSettings(_ completion: @escaping (Error?) -> Void) { + guard !reasserting else { + completion(NSError(domain: "SwiftierNE", code: 3, userInfo: [NSLocalizedDescriptionKey: "still in progress"])) + return + } + reasserting = true + + needReapplySettings = false + let settings = buildSettings() + let newSnapshot = SettingsSnapshot(from: settings) + + let wrappedCompletion: (Error?) -> Void = { error in + Task { @MainActor in + if error == nil { + self.lastAppliedSettings = newSnapshot + } + completion(error) + self.reasserting = false + if self.needReapplySettings { + self.needReapplySettings = false + self.applyNetworkSettings(completion) + } + } + } + + // Skip if settings haven't changed + if newSnapshot == lastAppliedSettings { + logger.info("网络设置未变化,跳过更新") + wrappedCompletion(nil) + return + } + + logger.info("应用网络设置") + + setTunnelNetworkSettings(settings) { [weak self] error in + guard self != nil else { + wrappedCompletion(error) + return + } + if let error { + logger.error("setTunnelNetworkSettings 失败: \(error)") + wrappedCompletion(error) + return + } + + logger.info("网络设置已应用") + wrappedCompletion(nil) + } + } + + /// Build NEPacketTunnelNetworkSettings dynamically from the Swift core running info snapshot. + private func buildSettings() -> NEPacketTunnelNetworkSettings { + let settings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "127.0.0.1") + let runningInfo = fetchRunningInfo() + + let runtimeIPv4 = runningInfo?.myNodeInfo?.virtualIPv4 + let ipv4Address = runtimeIPv4?.address.description ?? configHints.ipv4 + let subnetMask = runtimeIPv4 + .flatMap { cidrToSubnetMask($0.networkLength) } + ?? configHints.subnet + + if let ipv4Address, let subnetMask { + let ipv4Settings = NEIPv4Settings(addresses: [ipv4Address], subnetMasks: [subnetMask]) + var routes: [NEIPv4Route] = [] + + if let info = runningInfo { + for route in info.routes { + for cidrStr in route.proxyCIDRs { + if let parsed = parseCIDR(cidrStr) { + routes.append(NEIPv4Route( + destinationAddress: parsed.address, + subnetMask: parsed.mask + )) + } + } + } + + if let nodeIp = info.myNodeInfo?.virtualIPv4 { + let networkAddr = maskedAddress(nodeIp.address, networkLength: nodeIp.networkLength) + let netMask = cidrToSubnetMask(nodeIp.networkLength)! + routes.append(NEIPv4Route(destinationAddress: networkAddr, subnetMask: netMask)) + } + } + + if routes.isEmpty { + let networkAddr = maskedAddressFromStrings(ipv4Address, mask: subnetMask) + routes.append(NEIPv4Route(destinationAddress: networkAddr, subnetMask: subnetMask)) + } + + if configHints.magicDNS, + !routes.contains(where: { ipv4RouteContainsAddress(destination: $0.destinationAddress, subnetMask: $0.destinationSubnetMask, address: magicDNSResolver) }) { + routes.append(NEIPv4Route(destinationAddress: magicDNSResolver, subnetMask: "255.255.255.255")) + } + + ipv4Settings.includedRoutes = routes + settings.ipv4Settings = ipv4Settings + } + + let runtimeIPv6 = runningInfo?.myNodeInfo?.virtualIPv6 + let ipv6Address = runtimeIPv6?.address.description ?? configHints.ipv6 + let ipv6PrefixLength = runtimeIPv6?.networkLength ?? configHints.ipv6Prefix + + if let ipv6Address, let prefixLength = ipv6PrefixLength { + let ipv6Settings = NEIPv6Settings( + addresses: [ipv6Address], + networkPrefixLengths: [NSNumber(value: prefixLength)] + ) + if let networkAddress = maskedIPv6Address(ipv6Address, networkLength: prefixLength) { + ipv6Settings.includedRoutes = [ + NEIPv6Route( + destinationAddress: networkAddress, + networkPrefixLength: NSNumber(value: prefixLength) + ) + ] + } + settings.ipv6Settings = ipv6Settings + } + + if configHints.magicDNS { + let dnsSettings = NEDNSSettings(servers: [magicDNSResolver]) + dnsSettings.searchDomains = [configHints.magicDNSZone] + dnsSettings.matchDomains = [configHints.magicDNSZone] + settings.dnsSettings = dnsSettings + } + + settings.mtu = NSNumber(value: configHints.mtu ?? 1380) + + if settings.ipv4Settings == nil && settings.ipv6Settings == nil { + logger.warning("无可用 IP 地址,返回空设置") + } + + return settings + } + + // MARK: - Tunnel Lifecycle + + override func startTunnel(options: [String : NSObject]?, completionHandler: @escaping (Error?) -> Void) { + logger.info("正在启动 VPN Tunnel...") + + // 1. 读取配置 + guard let configToml = loadConfig() else { + let error = NSError(domain: "SwiftierNE", code: 1, userInfo: [NSLocalizedDescriptionKey: "无法读取 VPN 配置"]) + completionHandler(error) + return + } + + // 2. 解析配置中的 IPv4 和 MTU 信息 + let parsedConfig: CoreConfigParseResult + do { + parsedConfig = try CoreConfigParser.parse(configToml) + configHints = parsedConfig.hints + } catch { + logger.error("解析配置失败: \(error.localizedDescription)") + completionHandler(error) + return + } + + let engine = MeshEngine() + let packetIO = PacketTunnelIO(flow: packetFlow) + meshEngine = engine + packetTunnelIO = packetIO + + Task { + do { + try await engine.start(configuration: parsedConfig.configuration) + startPacketIO(engine: engine, packetIO: packetIO) + applyNetworkSettings(completionHandler) + } catch { + logger.error("Swift MeshEngine 启动失败: \(error.localizedDescription)") + completionHandler(error) + } + } + } + + override func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) { + logger.info("正在停止 VPN Tunnel, reason: \(reason.rawValue)") + stopPacketIO() + let engine = meshEngine + meshEngine = nil + packetTunnelIO = nil + + Task { + await engine?.stop() + completionHandler() + } + } + + // MARK: - App IPC (handleAppMessage) + + override func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)?) { + guard let handler = completionHandler else { return } + + // Command: "running_info" -> return Swift core running info JSON. + if let command = String(data: messageData, encoding: .utf8) { + switch command { + case "running_info": + handler(meshEngine?.runningInfoData()) + default: + handler(nil) + } + } else { + handler(nil) + } + } + + override func sleep(completionHandler: @escaping () -> Void) { + completionHandler() + } + + override func wake() { + // Trigger a settings refresh on wake + enqueueSettingsUpdate() + } + + // MARK: - Helpers + + private func fetchRunningInfo() -> RunningInfo? { + guard let data = meshEngine?.runningInfoData() else { return nil } + do { + return try JSONDecoder().decode(RunningInfo.self, from: data) + } catch { + logger.error("解析 running info 失败: \(error)") + return nil + } + } + + private func startPacketIO(engine: MeshEngine, packetIO: PacketTunnelIO) { + packetIO.startReading() + + packetReadTask = Task { + for await packet in packetIO.packets { + await engine.receivePacket(packet) + } + } + + packetWriteTask = Task { + for await packet in engine.outboundPackets { + packetIO.write(packet) + } + } + } + + private func stopPacketIO() { + packetReadTask?.cancel() + packetWriteTask?.cancel() + packetReadTask = nil + packetWriteTask = nil + packetTunnelIO?.stop() + } +} + +// MARK: - Helper Models + + + +// MARK: - Settings Snapshot (for change detection) + +struct SettingsSnapshot: Equatable { + var ipv4Addresses: [String] + var ipv4SubnetMasks: [String] + var ipv4Routes: [(String, String)] // (destination, mask) + var ipv6Addresses: [String] + var ipv6PrefixLengths: [Int] + var ipv6Routes: [(String, Int)] + var dnsServers: [String] + var dnsSearchDomains: [String] + var dnsMatchDomains: [String] + var mtu: Int? + + var hasIPAddresses: Bool { + (!ipv4Addresses.isEmpty && ipv4Addresses.first?.isEmpty == false) + || (!ipv6Addresses.isEmpty && ipv6Addresses.first?.isEmpty == false) + } + + init(from settings: NEPacketTunnelNetworkSettings) { + ipv4Addresses = settings.ipv4Settings?.addresses ?? [] + ipv4SubnetMasks = settings.ipv4Settings?.subnetMasks ?? [] + ipv4Routes = settings.ipv4Settings?.includedRoutes?.map { + ($0.destinationAddress, $0.destinationSubnetMask) + } ?? [] + ipv6Addresses = settings.ipv6Settings?.addresses ?? [] + ipv6PrefixLengths = settings.ipv6Settings?.networkPrefixLengths.map(\.intValue) ?? [] + ipv6Routes = settings.ipv6Settings?.includedRoutes?.map { + ($0.destinationAddress, $0.destinationNetworkPrefixLength.intValue) + } ?? [] + dnsServers = settings.dnsSettings?.servers ?? [] + dnsSearchDomains = settings.dnsSettings?.searchDomains ?? [] + dnsMatchDomains = settings.dnsSettings?.matchDomains ?? [] + mtu = settings.mtu?.intValue + } + + static func == (lhs: SettingsSnapshot, rhs: SettingsSnapshot) -> Bool { + lhs.ipv4Addresses == rhs.ipv4Addresses && + lhs.ipv4SubnetMasks == rhs.ipv4SubnetMasks && + lhs.ipv4Routes.count == rhs.ipv4Routes.count && + zip(lhs.ipv4Routes, rhs.ipv4Routes).allSatisfy { $0.0 == $1.0 && $0.1 == $1.1 } && + lhs.ipv6Addresses == rhs.ipv6Addresses && + lhs.ipv6PrefixLengths == rhs.ipv6PrefixLengths && + lhs.ipv6Routes.count == rhs.ipv6Routes.count && + zip(lhs.ipv6Routes, rhs.ipv6Routes).allSatisfy { $0.0 == $1.0 && $0.1 == $1.1 } && + lhs.dnsServers == rhs.dnsServers && + lhs.dnsSearchDomains == rhs.dnsSearchDomains && + lhs.dnsMatchDomains == rhs.dnsMatchDomains && + lhs.mtu == rhs.mtu + } +} + +// MARK: - Network Utility Functions diff --git a/SpotierNE/SpotierNE-Bridging-Header.h b/SpotierNE/SpotierNE-Bridging-Header.h new file mode 100644 index 0000000..d3e9af3 --- /dev/null +++ b/SpotierNE/SpotierNE-Bridging-Header.h @@ -0,0 +1,6 @@ +#ifndef SwiftierNE_Bridging_Header_h +#define SwiftierNE_Bridging_Header_h + +#include + +#endif /* SwiftierNE_Bridging_Header_h */ diff --git a/SpotierNE/SpotierNE.entitlements b/SpotierNE/SpotierNE.entitlements new file mode 100644 index 0000000..9fcc07d --- /dev/null +++ b/SpotierNE/SpotierNE.entitlements @@ -0,0 +1,20 @@ + + + + + com.apple.developer.networking.networkextension + + packet-tunnel-provider + + com.apple.security.app-sandbox + + com.apple.security.application-groups + + group.com.alick.spotier + + com.apple.security.network.client + + com.apple.security.network.server + + + diff --git a/SpotierNETests/AddressHelper.swift b/SpotierNETests/AddressHelper.swift new file mode 120000 index 0000000..0ffd3f0 --- /dev/null +++ b/SpotierNETests/AddressHelper.swift @@ -0,0 +1 @@ +../SpotierNE/AddressHelper.swift \ No newline at end of file diff --git a/SpotierNETests/InfoModelIPv6Tests.swift b/SpotierNETests/InfoModelIPv6Tests.swift new file mode 100644 index 0000000..c4eb06a --- /dev/null +++ b/SpotierNETests/InfoModelIPv6Tests.swift @@ -0,0 +1,19 @@ +import XCTest + +final class InfoModelIPv6Tests: XCTestCase { + func testRunningIPv6AddrDescriptionUsesNetworkByteOrder() { + let addr = RunningIPv6Addr( + part1: 0x20010DB8, + part2: 0x00010002, + part3: 0x00030004, + part4: 0x00050006 + ) + + XCTAssertEqual(addr.description, "2001:db8:1:2:3:4:5:6") + } + + func testMaskedIPv6AddressMasksHostBits() throws { + let masked = try XCTUnwrap(maskedIPv6Address("2001:db8:1:2:3:4:5:6", networkLength: 64)) + XCTAssertEqual(masked, "2001:db8:1:2::") + } +} diff --git a/SpotierNETests/InfoModels.swift b/SpotierNETests/InfoModels.swift new file mode 120000 index 0000000..9eb863f --- /dev/null +++ b/SpotierNETests/InfoModels.swift @@ -0,0 +1 @@ +../SpotierNE/InfoModels.swift \ No newline at end of file diff --git a/SpotierTests/ConfigGeneratorBehaviorTests.swift b/SpotierTests/ConfigGeneratorBehaviorTests.swift new file mode 100644 index 0000000..9f36b49 --- /dev/null +++ b/SpotierTests/ConfigGeneratorBehaviorTests.swift @@ -0,0 +1,84 @@ +import XCTest +@testable import Spotier + +final class ConfigGeneratorBehaviorTests: XCTestCase { + func testCIDRStringBehaviorParsesAndUpdatesConsistently() { + XCTAssertEqual(CIDRStringBehavior.ip(from: "10.0.0.1/16"), "10.0.0.1") + XCTAssertEqual(CIDRStringBehavior.mask(from: "10.0.0.1/16"), "16") + XCTAssertEqual(CIDRStringBehavior.mask(from: "10.0.0.1"), "24") + XCTAssertEqual(CIDRStringBehavior.updatingIP("10.0.0.9", in: "10.0.0.1/16"), "10.0.0.9/16") + XCTAssertEqual(CIDRStringBehavior.updatingMask("20", in: "10.0.0.1/16"), "10.0.0.1/20") + XCTAssertEqual(CIDRStringBehavior.updatingMask("", in: "10.0.0.1/16"), "10.0.0.1/24") + } + + func testVpnPortalBindingsUseCentralizedCIDRBehavior() { + var model = SpotierConfigModel() + model.vpnPortalClientCidr = "10.14.14.0/24" + + XCTAssertEqual(model.vpnPortalIpBinding, "10.14.14.0") + XCTAssertEqual(model.vpnPortalCidrBinding, "24") + + model.vpnPortalIpBinding = "10.20.30.0" + XCTAssertEqual(model.vpnPortalClientCidr, "10.20.30.0/24") + + model.vpnPortalCidrBinding = "20" + XCTAssertEqual(model.vpnPortalClientCidr, "10.20.30.0/20") + } + + func testEditableStringListBehaviorAppendsAndRemovesByStableIdentity() { + let first = EditableStringItem(value: "a") + let second = EditableStringItem(value: "b") + + let appended = ConfigGeneratorListBehavior.appended([first, second], value: "c") + XCTAssertEqual(appended.map(\.value), ["a", "b", "c"]) + + let removed = ConfigGeneratorListBehavior.removing(second.id, from: appended) + XCTAssertEqual(removed.map(\.value), ["a", "c"]) + } + + func testStructuredListBehaviorRemovesProxySubnetAndPortForwardByIdentity() { + let subnetA = SpotierConfigModel.ProxySubnet(cidr: "10.0.0.0/24") + let subnetB = SpotierConfigModel.ProxySubnet(cidr: "10.0.1.0/24") + XCTAssertEqual( + ConfigGeneratorListBehavior.removing(subnetA.id, from: [subnetA, subnetB]).map(\.cidr), + ["10.0.1.0/24"] + ) + + let ruleA = PortForwardRule(protocolType: "TCP", bindIp: "0.0.0.0", bindPort: "8080", targetIp: "10.0.0.8", targetPort: "80") + let ruleB = PortForwardRule(protocolType: "UDP", bindIp: "0.0.0.0", bindPort: "5353", targetIp: "10.0.0.9", targetPort: "53") + XCTAssertEqual( + ConfigGeneratorListBehavior.removing(ruleA.id, from: [ruleA, ruleB]).map(\.bindPort), + ["5353"] + ) + } + + func testFormExamplesUseSwiftCoreSupportedUDPEndpoints() { + XCTAssertFalse(ConfigGeneratorFormText.listenerPlaceholder.contains("tcp://")) + XCTAssertFalse(ConfigGeneratorFormText.mappedListenerFooter.contains("tcp://")) + XCTAssertFalse(ConfigGeneratorFormText.mappedListenerPlaceholder.contains("tcp://")) + + XCTAssertTrue(ConfigGeneratorFormText.listenerPlaceholder.contains("udp://")) + XCTAssertTrue(ConfigGeneratorFormText.mappedListenerFooter.contains("udp://")) + XCTAssertTrue(ConfigGeneratorFormText.mappedListenerPlaceholder.contains("udp://")) + } + + func testNewConfigNavigationOnlyExposesSwiftCoreGeneratedScreens() { + XCTAssertEqual(ConfigScreen.allCases, [.main, .advanced]) + } + + func testPeerModePickerOnlyExposesSwiftCoreGeneratedModes() { + XCTAssertEqual(PeerMode.allCases, [.manual, .standalone]) + XCTAssertFalse(PeerMode.allCases.contains(.publicServer)) + } + + func testAdvancedSectionsOnlyExposeSwiftCoreGeneratedFields() { + XCTAssertEqual( + ConfigGeneratorAdvancedSection.allCases, + [.general, .proxySubnet, .listeners, .manualRoutes, .exitNodes, .mappedListeners, .featureToggle] + ) + XCTAssertEqual( + ConfigGeneratorFeatureToggle.allCases, + [.latencyFirst, .disableIPv6, .disableP2P, .onlyP2P, .enableExitNode, .disableEncryption, .disableUdpHolePunching, .enableMagicDNS, .enablePrivateMode] + ) + } +} diff --git a/SpotierTests/ConfigGeneratorStoreTests.swift b/SpotierTests/ConfigGeneratorStoreTests.swift new file mode 100644 index 0000000..e68776f --- /dev/null +++ b/SpotierTests/ConfigGeneratorStoreTests.swift @@ -0,0 +1,110 @@ +import XCTest +@testable import Spotier + +final class ConfigGeneratorStoreTests: XCTestCase { + override func setUp() { + super.setUp() + ConfigDraftStore.shared.clearAll() + } + + override func tearDown() { + ConfigDraftStore.shared.clearAll() + super.tearDown() + } + + func testLoadModelReturnsDraftWhenPresent() { + let editingURL = URL(fileURLWithPath: "/tmp/example.toml") + var draft = SpotierConfigModel() + draft.instanceName = "draft-node" + ConfigDraftStore.shared.saveDraft(for: editingURL, model: draft) + + let result = ConfigGeneratorStore.loadModel( + editingFileURL: editingURL, + forceReset: false, + currentModel: SpotierConfigModel(), + lastLoadedURL: nil + ) + + XCTAssertEqual(result.model.instanceName, "draft-node") + XCTAssertEqual(result.lastLoadedURL, editingURL) + } + + func testLoadModelReturnsDraftWhenDraftMatchesCurrentState() { + let editingURL = URL(fileURLWithPath: "/tmp/example.toml") + var draft = SpotierConfigModel() + draft.instanceName = "same-model" + ConfigDraftStore.shared.saveDraft(for: editingURL, model: draft) + + let result = ConfigGeneratorStore.loadModel( + editingFileURL: editingURL, + forceReset: false, + currentModel: draft, + lastLoadedURL: nil + ) + + XCTAssertEqual(result.model, draft) + XCTAssertEqual(result.lastLoadedURL, editingURL) + } + + func testLoadModelReturnsCurrentModelWhenEditingURLDidNotChange() { + let editingURL = URL(fileURLWithPath: "/tmp/example.toml") + var current = SpotierConfigModel() + current.instanceName = "current-model" + + let result = ConfigGeneratorStore.loadModel( + editingFileURL: editingURL, + forceReset: false, + currentModel: current, + lastLoadedURL: editingURL + ) + + XCTAssertEqual(result.model, current) + XCTAssertEqual(result.lastLoadedURL, editingURL) + } + + func testForceResetClearsDraftForNewConfigFlow() { + var draft = SpotierConfigModel() + draft.instanceName = "stale-draft" + ConfigDraftStore.shared.saveDraft(for: nil, model: draft) + + let result = ConfigGeneratorStore.loadModel( + editingFileURL: nil, + forceReset: true, + currentModel: draft, + lastLoadedURL: nil + ) + + XCTAssertNil(ConfigDraftStore.shared.draft(for: nil)) + XCTAssertEqual(result.lastLoadedURL, nil) + XCTAssertNotEqual(result.model.instanceId, draft.instanceId) + } + + func testNewConfigDefaultsToStandaloneSwiftCoreMode() { + let result = ConfigGeneratorStore.loadModel( + editingFileURL: nil, + forceReset: true, + currentModel: SpotierConfigModel(), + lastLoadedURL: nil + ) + + XCTAssertEqual(result.model.peerMode, .standalone) + XCTAssertEqual(result.model.listeners.values, ["udp://0.0.0.0:11010"]) + XCTAssertEqual(result.model.manualPeers.values, ["udp://"]) + } + + func testVisiblePeerModesOnlyIncludeSwiftCoreSupportedModes() { + XCTAssertEqual(PeerMode.allCases, [.manual, .standalone]) + } + + func testSaveDraftAndClearDraftDelegateToDraftStore() { + let editingURL = URL(fileURLWithPath: "/tmp/example.toml") + var draft = SpotierConfigModel() + draft.instanceName = "draft-node" + + ConfigGeneratorStore.saveDraft(draft, editingFileURL: editingURL) + XCTAssertEqual(ConfigDraftStore.shared.draft(for: editingURL)?.instanceName, "draft-node") + + ConfigGeneratorStore.clearDraft(editingFileURL: editingURL) + XCTAssertNil(ConfigDraftStore.shared.draft(for: editingURL)) + } +} diff --git a/SpotierTests/ConfigTemplateFactoryTests.swift b/SpotierTests/ConfigTemplateFactoryTests.swift new file mode 100644 index 0000000..bbcd722 --- /dev/null +++ b/SpotierTests/ConfigTemplateFactoryTests.swift @@ -0,0 +1,23 @@ +import XCTest +@testable import Spotier + +final class ConfigTemplateFactoryTests: XCTestCase { + func testSanitizedNameFallsBackForBlankInput() { + XCTAssertEqual(ConfigTemplateFactory.sanitizedName(from: " "), "new-network") + XCTAssertEqual(ConfigTemplateFactory.filename(from: " "), "new-network.toml") + } + + func testFilenameAndContentUseTrimmedUserName() { + let content = ConfigTemplateFactory.content( + for: " office-node ", + instanceID: UUID(uuidString: "AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE")! + ) + + XCTAssertEqual(ConfigTemplateFactory.filename(from: " office-node "), "office-node.toml") + XCTAssertTrue(content.contains("instance_name = \"office-node\"")) + XCTAssertTrue(content.contains("instance_id = \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"")) + XCTAssertTrue(content.contains("listeners = [\"udp://0.0.0.0:11010\"]")) + XCTAssertTrue(content.contains("network_name = \"easytier\"")) + XCTAssertFalse(content.contains("[[peer]]")) + } +} diff --git a/SpotierTests/CoreConfigParserTests.swift b/SpotierTests/CoreConfigParserTests.swift new file mode 100644 index 0000000..d156b8e --- /dev/null +++ b/SpotierTests/CoreConfigParserTests.swift @@ -0,0 +1,172 @@ +import XCTest +@testable import Spotier + +final class CoreConfigParserTests: XCTestCase { + func testParsesCurrentSwiftCoreConfigShape() throws { + let result = try CoreConfigParser.parse(""" + instance_name = "Mac" + instance_id = "abc" + dhcp = false + listeners = ["udp://0.0.0.0:11010"] + mapped_listeners = ["udp://198.51.100.9:21010"] + ipv4 = "10.126.126.4/24" + routes = ["192.168.50.0/24", "10.88.0.0/16"] + exit_nodes = ["10.126.126.9", "fd00::9"] + + [network_identity] + network_name = "easytier" + network_secret = "secret" + + [[peer]] + uri = "udp://192.0.2.10:11010" + + [flags] + mtu = 1380 + enable_magic_dns = true + enable_exit_node = true + """) + + XCTAssertEqual(result.configuration.networkName, "easytier") + XCTAssertEqual(result.configuration.networkSecret, "secret") + XCTAssertEqual(result.configuration.instanceName, "Mac") + XCTAssertEqual(result.configuration.virtualIPv4, "10.126.126.4/24") + XCTAssertEqual(result.configuration.peers, ["udp://192.0.2.10:11010"]) + XCTAssertEqual(result.configuration.listeners, ["udp://0.0.0.0:11010"]) + XCTAssertEqual(result.configuration.mappedListeners, ["udp://198.51.100.9:21010"]) + XCTAssertEqual(result.configuration.mtu, 1380) + XCTAssertEqual(result.configuration.advertisedRoutes, ["192.168.50.0/24", "10.88.0.0/16"]) + XCTAssertEqual(result.configuration.exitNodes, ["10.126.126.9", "fd00::9"]) + XCTAssertTrue(result.configuration.enableExitNode) + XCTAssertTrue(result.configuration.magicDNS) + XCTAssertEqual(result.configuration.magicDNSZone, "et.net") + XCTAssertEqual(result.hints.ipv4, "10.126.126.4") + XCTAssertEqual(result.hints.subnet, "255.255.255.0") + XCTAssertTrue(result.hints.magicDNS) + } + + func testParsesIPv6CIDR() throws { + let result = try CoreConfigParser.parse(""" + ipv6 = "fd00::4/64" + + [network_identity] + network_name = "easytier" + network_secret = "secret" + """) + + XCTAssertEqual(result.configuration.virtualIPv6, "fd00::4/64") + XCTAssertEqual(result.hints.ipv6, "fd00::4") + XCTAssertEqual(result.hints.ipv6Prefix, 64) + } + + func testDisableIPv6ClearsVirtualIPv6() throws { + let result = try CoreConfigParser.parse(""" + ipv6 = "fd00::4/64" + + [network_identity] + network_name = "easytier" + network_secret = "secret" + + [flags] + disable_ipv6 = true + """) + + XCTAssertNil(result.configuration.virtualIPv6) + XCTAssertNil(result.hints.ipv6) + XCTAssertNil(result.hints.ipv6Prefix) + } + + func testParsesP2PDisableFlags() throws { + let result = try CoreConfigParser.parse(""" + [network_identity] + network_name = "easytier" + network_secret = "secret" + + [flags] + disable_p2p = true + p2p_only = true + disable_udp_hole_punching = true + """) + + XCTAssertTrue(result.configuration.disableP2P) + XCTAssertTrue(result.configuration.p2pOnly) + XCTAssertTrue(result.configuration.disableUDPHolePunching) + } + + func testParsesProxyNetworkCIDRsAsAdvertisedRoutes() throws { + let result = try CoreConfigParser.parse(""" + routes = ["10.88.0.0/16"] + + [network_identity] + network_name = "easytier" + network_secret = "secret" + + [[proxy_network]] + cidr = "192.168.1.0/24" + + [[proxy_network]] + cidr = "172.16.0.0/16" + """) + + XCTAssertEqual(result.configuration.advertisedRoutes, [ + "10.88.0.0/16", + "192.168.1.0/24", + "172.16.0.0/16" + ]) + } + + func testDefaultsMTUTo1380() throws { + let result = try CoreConfigParser.parse(""" + [network_identity] + network_name = "easytier" + network_secret = "secret" + """) + + XCTAssertEqual(result.configuration.mtu, 1380) + XCTAssertEqual(result.hints.mtu, 1380) + } + + func testAllowsEmptyNetworkSecretBecauseCurrentConfigTreatsItAsOptional() throws { + let result = try CoreConfigParser.parse(""" + [network_identity] + network_name = "easytier" + network_secret = "" + """) + + XCTAssertEqual(result.configuration.networkSecret, "") + } + + func testParsesMagicDNSZone() throws { + let result = try CoreConfigParser.parse(""" + [network_identity] + network_name = "easytier" + network_secret = "secret" + + [flags] + accept_dns = true + tld_dns_zone = ".spotier.test." + """) + + XCTAssertTrue(result.hints.magicDNS) + XCTAssertEqual(result.hints.magicDNSZone, "spotier.test") + XCTAssertTrue(result.configuration.magicDNS) + XCTAssertEqual(result.configuration.magicDNSZone, "spotier.test") + } + + func testRejectsMissingNetworkName() { + XCTAssertThrowsError(try CoreConfigParser.parse(""" + [network_identity] + network_secret = "secret" + """)) { error in + XCTAssertEqual(error as? CoreConfigParserError, .missingNetworkName) + } + } + + func testRejectsMissingNetworkSecret() { + XCTAssertThrowsError(try CoreConfigParser.parse(""" + [network_identity] + network_name = "easytier" + """)) { error in + XCTAssertEqual(error as? CoreConfigParserError, .missingNetworkSecret) + } + } +} diff --git a/SpotierTests/FrameCodecTests.swift b/SpotierTests/FrameCodecTests.swift new file mode 100644 index 0000000..5da3670 --- /dev/null +++ b/SpotierTests/FrameCodecTests.swift @@ -0,0 +1,102 @@ +import XCTest +@testable import Spotier + +final class FrameCodecTests: XCTestCase { + func testRoundTripEveryControlMessage() throws { + let messages: [ControlMessage] = [ + .hello(.init( + hostname: "mac", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: "fd00::2/64", + publicKey: Data([1, 2, 3, 4]), + version: "swift-core" + )), + .sessionOffer(Data([5, 6, 7])), + .sessionAnswer(Data([8, 9, 10])), + .routeUpdate(Data([11, 12, 13])), + .peerPing, + .peerPong, + .relayRequest(PeerID(42)), + .relayResponse(true), + .relayResponse(false), + .endpointCandidate("udp://203.0.113.10:11010") + ] + + for message in messages { + let frame = CoreFrame( + type: .control, + flags: 7, + sender: PeerID(1), + receiver: PeerID(2), + sequence: 99, + payload: .control(message) + ) + + let decoded = try FrameCodec.decode(try FrameCodec.encode(frame)) + + XCTAssertEqual(decoded, frame) + } + } + + func testRoundTripDataPacket() throws { + let frame = CoreFrame( + type: .data, + flags: 0, + sender: PeerID(10), + receiver: PeerID(20), + sequence: 30, + payload: .data(DataPacket(encryptedIPPacket: Data([0x45, 0x00, 0x00, 0x54]))) + ) + + let decoded = try FrameCodec.decode(try FrameCodec.encode(frame)) + + XCTAssertEqual(decoded, frame) + } + + func testRejectsUnknownProtocolVersion() throws { + var encoded = try FrameCodec.encode(sampleFrame()) + encoded[0] = 2 + + XCTAssertThrowsError(try FrameCodec.decode(encoded)) { error in + XCTAssertEqual(error as? FrameCodecError, .unknownProtocolVersion(2)) + } + } + + func testRejectsTruncatedFrame() { + XCTAssertThrowsError(try FrameCodec.decode(Data([1, 1, 0]))) { error in + XCTAssertEqual(error as? FrameCodecError, .truncatedFrame) + } + } + + func testRejectsInvalidPayloadLength() throws { + var encoded = try FrameCodec.encode(sampleFrame()) + encoded[28] = 0 + encoded[29] = 0 + encoded[30] = 0 + encoded[31] = 99 + + XCTAssertThrowsError(try FrameCodec.decode(encoded)) { error in + XCTAssertEqual(error as? FrameCodecError, .invalidPayloadLength) + } + } + + func testRejectsUnknownControlMessage() throws { + var encoded = try FrameCodec.encode(sampleFrame()) + encoded[CoreFrame.headerLength] = 99 + + XCTAssertThrowsError(try FrameCodec.decode(encoded)) { error in + XCTAssertEqual(error as? FrameCodecError, .unknownControlMessage(99)) + } + } + + private func sampleFrame() -> CoreFrame { + CoreFrame( + type: .control, + flags: 0, + sender: PeerID(1), + receiver: PeerID(2), + sequence: 3, + payload: .control(.peerPing) + ) + } +} diff --git a/SpotierTests/HolePunchCoordinatorTests.swift b/SpotierTests/HolePunchCoordinatorTests.swift new file mode 100644 index 0000000..845f259 --- /dev/null +++ b/SpotierTests/HolePunchCoordinatorTests.swift @@ -0,0 +1,167 @@ +import Foundation +import XCTest +@testable import Spotier + +final class HolePunchCoordinatorTests: XCTestCase { + func testConfiguredSTUNClientBuildsBindingRequest() throws { + let transactionID = Data([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) + let server = TransportEndpoint(host: "stun.example.com", port: 3478) + let client = STUNClient(server: server) + + let request = try client.bindingRequest(transactionID: transactionID) + + XCTAssertEqual(client.server, server) + XCTAssertEqual(request.count, 20) + XCTAssertEqual(request[0], 0) + XCTAssertEqual(request[1], 1) + XCTAssertEqual(request[8..<20], transactionID[0..<12]) + } + + func testSTUNResponseParsingUsingFixtureBytes() throws { + let transactionID = Data([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) + let response = stunBindingResponse( + transactionID: transactionID, + publicAddress: "203.0.113.9", + publicPort: 54321 + ) + + let client = STUNClient(server: TransportEndpoint(host: "stun.example.com", port: 3478)) + let endpoint = try client.discoverPublicEndpoint(from: response, transactionID: transactionID) + + XCTAssertEqual(endpoint, TransportEndpoint(host: "203.0.113.9", port: 54321)) + } + + func testEndpointCandidateExchange() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let local = try identity(seedByte: 1, network: network) + let remote = try identity(seedByte: 2, network: network) + let manager = PeerManager(localIdentity: local, network: network) + let endpoint = TransportEndpoint(host: "203.0.113.9", port: 11010) + + _ = try manager.receive(TransportInboundFrame( + frame: helloFrame(from: remote), + remoteEndpoint: TransportEndpoint(host: "127.0.0.1", port: 11010) + )) + let outgoingCandidate = manager.publishEndpointCandidate(endpoint, to: remote.peerID) + XCTAssertEqual(outgoingCandidate?.payload, .control(.endpointCandidate("udp://203.0.113.9:11010"))) + + let candidate = endpointCandidateFrame(from: remote.peerID, to: local.peerID, endpoint: endpoint) + _ = try manager.receive(TransportInboundFrame(frame: candidate, remoteEndpoint: endpoint)) + + XCTAssertTrue(manager.peerStore.peer(id: remote.peerID)?.knownEndpoints.contains(endpoint) == true) + } + + func testDisabledUDPHolePunchingDoesNotPublishOrAcceptCandidates() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let local = try identity(seedByte: 1, network: network) + let remote = try identity(seedByte: 2, network: network) + let manager = PeerManager(localIdentity: local, network: network, udpHolePunchingEnabled: false) + let endpoint = TransportEndpoint(host: "203.0.113.9", port: 11010) + + _ = try manager.receive(TransportInboundFrame( + frame: helloFrame(from: remote), + remoteEndpoint: TransportEndpoint(host: "127.0.0.1", port: 11010) + )) + + XCTAssertNil(manager.publishEndpointCandidate(endpoint, to: remote.peerID)) + + let candidate = endpointCandidateFrame(from: remote.peerID, to: local.peerID, endpoint: endpoint) + _ = try manager.receive(TransportInboundFrame(frame: candidate, remoteEndpoint: endpoint)) + + XCTAssertFalse(manager.peerStore.peer(id: remote.peerID)?.knownEndpoints.contains(endpoint) == true) + } + + func testDirectTransportPromotionAfterAuthenticatedProbe() throws { + let coordinator = HolePunchCoordinator() + let peerID = PeerID(2) + let endpoint = TransportEndpoint(host: "203.0.113.9", port: 11010) + + coordinator.setRelayActive(for: peerID) + _ = coordinator.receiveRemoteCandidate(endpoint, from: peerID) + + XCTAssertEqual(coordinator.transportPreference(for: peerID), .relay) + XCTAssertTrue(coordinator.relayPeers.contains(peerID)) + + coordinator.authenticateProbeResponse(from: peerID, endpoint: endpoint) + + XCTAssertEqual(coordinator.transportPreference(for: peerID), .direct) + XCTAssertTrue(coordinator.relayPeers.contains(peerID)) + } + + private func identity(seedByte: UInt8, network: NetworkSecret) throws -> NodeIdentity { + try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: seedByte, count: 32), + hostname: "host-\(seedByte)", + virtualIPv4: nil, + virtualIPv6: nil + ) + } + + private func helloFrame(from identity: NodeIdentity) -> CoreFrame { + CoreFrame( + type: .control, + sender: identity.peerID, + receiver: PeerID(0), + sequence: 1, + payload: .control(.hello(ControlMessage.Hello( + hostname: identity.hostname, + virtualIPv4: identity.virtualIPv4, + virtualIPv6: identity.virtualIPv6, + publicKey: identity.publicKey, + version: "swift-core" + ))) + ) + } + + private func endpointCandidateFrame(from sender: PeerID, to receiver: PeerID, endpoint: TransportEndpoint) -> CoreFrame { + CoreFrame( + type: .control, + sender: sender, + receiver: receiver, + sequence: 2, + payload: .control(.endpointCandidate("udp://\(endpoint.description)")) + ) + } + + private func stunBindingResponse(transactionID: Data, publicAddress: String, publicPort: UInt16) -> Data { + let cookie = STUNBindingRequest.magicCookie + let address = ipv4Value(publicAddress) + let xorPort = publicPort ^ UInt16(cookie >> 16) + let xorAddress = address ^ cookie + + var data = Data() + data.appendUInt16(0x0101) + data.appendUInt16(8) + data.appendUInt32(cookie) + data.append(transactionID) + data.appendUInt16(0x0020) + data.appendUInt16(8) + data.append(0) + data.append(0x01) + data.appendUInt16(xorPort) + data.appendUInt32(xorAddress) + return data + } + + private func ipv4Value(_ address: String) -> UInt32 { + address + .split(separator: ".") + .compactMap { UInt32($0) } + .reduce(UInt32(0)) { ($0 << 8) | $1 } + } +} + +private extension Data { + mutating func appendUInt16(_ value: UInt16) { + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } + + mutating func appendUInt32(_ value: UInt32) { + append(UInt8((value >> 24) & 0xFF)) + append(UInt8((value >> 16) & 0xFF)) + append(UInt8((value >> 8) & 0xFF)) + append(UInt8(value & 0xFF)) + } +} diff --git a/SpotierTests/IdentityTests.swift b/SpotierTests/IdentityTests.swift new file mode 100644 index 0000000..02fb1d3 --- /dev/null +++ b/SpotierTests/IdentityTests.swift @@ -0,0 +1,75 @@ +import XCTest +@testable import Spotier + +final class IdentityTests: XCTestCase { + func testDeterministicIdentityGenerationWithFixedSeed() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let seed = Data(repeating: 7, count: 32) + + let first = try NodeIdentity.derive( + network: network, + deviceSeed: seed, + hostname: "host-a", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: nil + ) + let second = try NodeIdentity.derive( + network: network, + deviceSeed: seed, + hostname: "host-b", + virtualIPv4: "10.0.0.9/24", + virtualIPv6: "fd00::9/64" + ) + + XCTAssertEqual(first.peerID, second.peerID) + XCTAssertEqual(first.publicKey, second.publicKey) + } + + func testDifferentSecretsProduceDifferentIdentities() throws { + let seed = Data(repeating: 3, count: 32) + let first = try NodeIdentity.derive( + network: NetworkSecret(networkName: "easytier", secret: "one"), + deviceSeed: seed, + hostname: "host", + virtualIPv4: nil, + virtualIPv6: nil + ) + let second = try NodeIdentity.derive( + network: NetworkSecret(networkName: "easytier", secret: "two"), + deviceSeed: seed, + hostname: "host", + virtualIPv4: nil, + virtualIPv6: nil + ) + + XCTAssertNotEqual(first.peerID, second.peerID) + XCTAssertNotEqual(first.publicKey, second.publicKey) + } + + func testRejectsEmptySeed() { + XCTAssertThrowsError(try NodeIdentity.derive( + network: NetworkSecret(networkName: "easytier", secret: "secret"), + deviceSeed: Data(), + hostname: "host", + virtualIPv4: nil, + virtualIPv6: nil + )) { error in + XCTAssertEqual(error as? NodeIdentityError, .emptyDeviceSeed) + } + } + + func testPersistedSeedReuse() throws { + let directory = FileManager.default.temporaryDirectory + .appendingPathComponent("spotier-seed-\(UUID().uuidString)", isDirectory: true) + defer { + try? FileManager.default.removeItem(at: directory) + } + + let store = DeviceSeedStore(directoryURL: directory) + let first = try store.loadOrCreate() + let second = try store.loadOrCreate() + + XCTAssertEqual(first.count, 32) + XCTAssertEqual(first, second) + } +} diff --git a/SpotierTests/LogContainerResolverTests.swift b/SpotierTests/LogContainerResolverTests.swift new file mode 100644 index 0000000..6b866d1 --- /dev/null +++ b/SpotierTests/LogContainerResolverTests.swift @@ -0,0 +1,23 @@ +import XCTest +@testable import Spotier + +final class LogContainerResolverTests: XCTestCase { + func testResolverUsesProvidedContainerURL() { + let expectedURL = URL(fileURLWithPath: "/tmp/easytier.log") + let resolver = LogContainerResolver( + fileManager: .default, + fileURLProvider: { _, _ in expectedURL } + ) + + XCTAssertEqual(resolver.logFileURL(), expectedURL) + } + + func testResolverReturnsNilWhenContainerURLMissing() { + let resolver = LogContainerResolver( + fileManager: .default, + fileURLProvider: { _, _ in nil } + ) + + XCTAssertNil(resolver.logFileURL()) + } +} diff --git a/SpotierTests/LogEventFormatterTests.swift b/SpotierTests/LogEventFormatterTests.swift new file mode 100644 index 0000000..2d1a61d --- /dev/null +++ b/SpotierTests/LogEventFormatterTests.swift @@ -0,0 +1,59 @@ +import XCTest +@testable import Spotier + +final class LogEventFormatterTests: XCTestCase { + func testParseEventEntryMapsWrappedEventTypeAndTimestamp() { + let input = """ + { + "time": "2026-03-22T10:20:30Z", + "event": { + "PeerAdded": { + "peer_id": 7, + "hostname": "demo" + } + } + } + """ + + let event = LogEventFormatter.parseEventEntry(from: input) + + XCTAssertEqual(event?.type, .peerAdded) + XCTAssertEqual(event?.name, "PeerAdded") + XCTAssertEqual(event?.timestamp, "2026-03-22 10:20:30") + XCTAssertTrue(event?.details.contains("\"peer_id\" : 7") ?? false) + } + + func testParseEventEntryReturnsUnknownForUnexpectedEventName() { + let input: [String: Any] = [ + "time": "2026-03-22T10:20:30Z", + "event": [ + "CustomEvent": [ + "enabled": true + ] + ] + ] + + let event = LogEventFormatter.parseEventEntry(from: input) + + XCTAssertEqual(event?.type, .unknown) + XCTAssertEqual(event?.name, "CustomEvent") + XCTAssertTrue(event?.details.contains("\"enabled\" : true") ?? false) + } + + func testCalculateHighlightsMarksStringsNumbersAndKeywords() { + let highlights = LogEventFormatter.calculateHighlights( + for: """ + { + "peer_id" : 7, + "enabled" : true, + "name" : "demo" + } + """ + ) + + XCTAssertTrue(highlights.contains(where: { $0.color == "green" })) + XCTAssertTrue(highlights.contains(where: { $0.color == "blue" && $0.bold })) + XCTAssertTrue(highlights.contains(where: { $0.color == "orange" })) + XCTAssertTrue(highlights.contains(where: { $0.color == "purple" && $0.bold })) + } +} diff --git a/SpotierTests/LogSettingsStoreTests.swift b/SpotierTests/LogSettingsStoreTests.swift new file mode 100644 index 0000000..2b4fa3d --- /dev/null +++ b/SpotierTests/LogSettingsStoreTests.swift @@ -0,0 +1,32 @@ +import XCTest +@testable import Spotier + +final class LogSettingsStoreTests: XCTestCase { + func testReadLevelDefaultsToInfo() { + let suiteName = "LogSettingsStoreTests.default.\(UUID().uuidString)" + let defaults = UserDefaults(suiteName: suiteName) + defaults?.removePersistentDomain(forName: suiteName) + let store = LogSettingsStore(defaults: defaults) + + XCTAssertEqual(store.readLevel(), .info) + } + + func testWriteLevelRoundTripsOffValue() { + let suiteName = "LogSettingsStoreTests.roundtrip.\(UUID().uuidString)" + let defaults = UserDefaults(suiteName: suiteName) + defaults?.removePersistentDomain(forName: suiteName) + let store = LogSettingsStore(defaults: defaults) + + store.writeLevel(.off) + + XCTAssertEqual(store.readLevel(), .off) + XCTAssertEqual(readStoredLogLevel(defaults: defaults), .off) + } + + func testStoredLogLevelAllowsExpectedRuntimeLevels() { + XCTAssertTrue(StoredLogLevel.warn.allows(.error)) + XCTAssertTrue(StoredLogLevel.warn.allows(.warn)) + XCTAssertFalse(StoredLogLevel.warn.allows(.info)) + XCTAssertFalse(StoredLogLevel.off.allows(.error)) + } +} diff --git a/SpotierTests/MagicDNSResponderTests.swift b/SpotierTests/MagicDNSResponderTests.swift new file mode 100644 index 0000000..13af91b --- /dev/null +++ b/SpotierTests/MagicDNSResponderTests.swift @@ -0,0 +1,292 @@ +import Foundation +import XCTest +@testable import Spotier + +final class MagicDNSResponderTests: XCTestCase { + func testRespondsWithPeerIPv4ForHostnameInZone() throws { + var store = PeerStore() + store.upsert(Peer( + id: PeerID(2), + hostname: "peer", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + lastSeen: Date() + )) + let responder = MagicDNSResponder( + resolverIPv4: "100.100.100.101", + zone: "et.net", + records: MagicDNSResponder.records(localIdentity: nil, peerStore: store) + ) + + let response = try XCTUnwrap(responder.response(to: dnsQueryPacket(name: "peer.et.net", sourcePort: 53001))) + + XCTAssertEqual(response[12..<16].map(Int.init), [100, 100, 100, 101]) + XCTAssertEqual(response[16..<20].map(Int.init), [10, 0, 0, 9]) + XCTAssertEqual(ipv4HeaderChecksum(response), 0) + XCTAssertEqual(response[20], 0) + XCTAssertEqual(response[21], 53) + XCTAssertEqual(response[22], 207) + XCTAssertEqual(response[23], 9) + XCTAssertNotEqual(response.readUInt16(at: 26), 0) + XCTAssertEqual(udpIPv4Checksum(packet: response), 0) + let answerOffset = 28 + 12 + dnsQuestionLength(name: "peer.et.net") + XCTAssertEqual(response.readUInt32(at: answerOffset + 6), 1) + XCTAssertEqual(response.suffix(4).map(Int.init), [10, 0, 0, 2]) + } + + func testDNSResponsePreservesIPv4HeaderOptions() throws { + let responder = MagicDNSResponder( + resolverIPv4: "100.100.100.101", + zone: "et.net", + records: ["peer": "10.0.0.2"] + ) + + let response = try XCTUnwrap(responder.response(to: dnsQueryPacket( + name: "peer.et.net", + sourcePort: 53001, + options: [1, 1, 1, 1] + ))) + + XCTAssertEqual(response[0] & 0x0F, 6) + XCTAssertEqual(response[20..<24].map(Int.init), [1, 1, 1, 1]) + XCTAssertEqual(ipv4HeaderChecksum(response), 0) + XCTAssertEqual(response[24], 0) + XCTAssertEqual(response[25], 53) + XCTAssertEqual(udpIPv4Checksum(packet: response), 0) + } + + func testIgnoresNamesOutsideConfiguredZone() { + let responder = MagicDNSResponder( + resolverIPv4: "100.100.100.101", + zone: "et.net", + records: ["peer.et.net": "10.0.0.2"] + ) + + XCTAssertNil(responder.response(to: dnsQueryPacket(name: "peer.example.com", sourcePort: 53001))) + } + + func testReturnsNXDomainForUnknownHostnameInConfiguredZone() throws { + let responder = MagicDNSResponder( + resolverIPv4: "100.100.100.101", + zone: "et.net", + records: ["peer": "10.0.0.2"] + ) + + let response = try XCTUnwrap(responder.response(to: dnsQueryPacket(name: "missing.et.net", sourcePort: 53001))) + + XCTAssertEqual(response[20], 0) + XCTAssertEqual(response[21], 53) + XCTAssertEqual(response[22], 207) + XCTAssertEqual(response[23], 9) + XCTAssertNotEqual(response.readUInt16(at: 26), 0) + XCTAssertEqual(udpIPv4Checksum(packet: response), 0) + XCTAssertEqual(response.readUInt16(at: 30), 0x8183) + XCTAssertEqual(response.readUInt16(at: 32), 1) + XCTAssertEqual(response.readUInt16(at: 34), 0) + } + + func testRespondsWithSOAForConfiguredZone() throws { + let responder = MagicDNSResponder( + resolverIPv4: "100.100.100.101", + zone: "et.net", + records: ["peer": "10.0.0.2"] + ) + + let response = try XCTUnwrap(responder.response(to: dnsQueryPacket(name: "et.net", sourcePort: 53001, queryType: 6))) + + XCTAssertEqual(response.readUInt16(at: 30), 0x8180) + XCTAssertEqual(response.readUInt16(at: 32), 1) + XCTAssertEqual(response.readUInt16(at: 34), 1) + XCTAssertNotEqual(response.readUInt16(at: 26), 0) + XCTAssertEqual(udpIPv4Checksum(packet: response), 0) + XCTAssertEqual(response.readUInt16(at: 48), 6) + XCTAssertEqual(response.readUInt16(at: 50), 1) + } + + func testRecordsSkipInvalidDNSHostnamesButKeepUnicodeHostnames() { + var store = PeerStore() + store.upsert(Peer( + id: PeerID(2), + hostname: ".invalid", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + lastSeen: Date() + )) + store.upsert(Peer( + id: PeerID(3), + hostname: "中文", + virtualIPv4: "10.0.0.3/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + lastSeen: Date() + )) + + let records = MagicDNSResponder.records(localIdentity: nil, peerStore: store) + + XCTAssertNil(records[".invalid"]) + XCTAssertEqual(records["中文"], "10.0.0.3") + } + + func testRespondsToICMPEchoRequestForResolverAddress() throws { + let responder = MagicDNSResponder( + resolverIPv4: "100.100.100.101", + zone: "et.net", + records: [:] + ) + + let response = try XCTUnwrap(responder.response(to: icmpEchoRequestPacket())) + + XCTAssertEqual(response[12..<16].map(Int.init), [100, 100, 100, 101]) + XCTAssertEqual(response[16..<20].map(Int.init), [10, 0, 0, 9]) + XCTAssertEqual(response[9], 1) + XCTAssertEqual(ipv4HeaderChecksum(response), 0) + XCTAssertEqual(response[20], 0) + XCTAssertEqual(response[21], 0) + XCTAssertEqual(response[24], 0x12) + XCTAssertEqual(response[25], 0x34) + XCTAssertEqual(response[26], 0x00) + XCTAssertEqual(response[27], 0x02) + XCTAssertEqual(response[28..<32].map(Int.init), [0x70, 0x69, 0x6E, 0x67]) + XCTAssertEqual(internetChecksum(response.subdata(in: 20.. Data { + let dnsPayload = dnsQueryPayload(name: name, queryType: queryType) + var udp = Data() + udp.appendUInt16(sourcePort) + udp.appendUInt16(53) + udp.appendUInt16(UInt16(8 + dnsPayload.count)) + udp.appendUInt16(0) + udp.append(dnsPayload) + return ipv4Packet( + source: [10, 0, 0, 9], + destination: [100, 100, 100, 101], + protocolNumber: 17, + payload: Array(udp), + options: options + ) + } + + private func dnsQueryPayload(name: String, queryType: UInt16) -> Data { + var data = Data([0x12, 0x34, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) + for label in name.split(separator: ".") { + let bytes = Array(label.utf8) + data.append(UInt8(bytes.count)) + data.append(contentsOf: bytes) + } + data.append(0) + data.appendUInt16(queryType) + data.appendUInt16(1) + return data + } + + private func dnsQuestionLength(name: String) -> Int { + name.split(separator: ".").reduce(1 + 4) { length, label in + length + 1 + label.utf8.count + } + } + + private func ipv4Packet( + source: [UInt8], + destination: [UInt8], + protocolNumber: UInt8, + payload: [UInt8], + options: [UInt8] = [] + ) -> Data { + let headerLength = 20 + options.count + let totalLength = UInt16(headerLength + payload.count) + var data = Data([ + 0x40 | UInt8(headerLength / 4), 0x00, + UInt8(totalLength >> 8), UInt8(totalLength & 0xFF), + 0x00, 0x00, 0x00, 0x00, + 64, protocolNumber, + 0x00, 0x00 + ]) + data.append(contentsOf: source) + data.append(contentsOf: destination) + data.append(contentsOf: options) + data.append(contentsOf: payload) + return data + } + + private func icmpEchoRequestPacket() -> Data { + var icmp = Data([8, 0, 0, 0, 0x12, 0x34, 0x00, 0x02, 0x70, 0x69, 0x6E, 0x67]) + let checksum = internetChecksum(icmp) + icmp[2] = UInt8(checksum >> 8) + icmp[3] = UInt8(checksum & 0xFF) + return ipv4Packet( + source: [10, 0, 0, 9], + destination: [100, 100, 100, 101], + protocolNumber: 1, + payload: Array(icmp) + ) + } + + private func ipv4HeaderChecksum(_ packet: Data) -> UInt16 { + let headerLength = Int(packet[0] & 0x0F) * 4 + var sum: UInt32 = 0 + for offset in stride(from: 0, to: headerLength, by: 2) { + sum += UInt32(packet.readUInt16(at: offset)) + } + while sum > 0xFFFF { + sum = (sum & 0xFFFF) + (sum >> 16) + } + return UInt16(~sum & 0xFFFF) + } + + private func internetChecksum(_ data: Data) -> UInt16 { + var sum: UInt32 = 0 + var offset = 0 + while offset + 1 < data.count { + sum += UInt32(data.readUInt16(at: offset)) + offset += 2 + } + if offset < data.count { + sum += UInt32(data[offset]) << 8 + } + while sum > 0xFFFF { + sum = (sum & 0xFFFF) + (sum >> 16) + } + return UInt16(~sum & 0xFFFF) + } + + private func udpIPv4Checksum(packet: Data) -> UInt16 { + let headerLength = Int(packet[0] & 0x0F) * 4 + var data = Data() + data.append(packet.subdata(in: 12..<16)) + data.append(packet.subdata(in: 16..<20)) + data.append(0) + data.append(packet[9]) + data.appendUInt16(packet.readUInt16(at: headerLength + 4)) + data.append(packet.subdata(in: headerLength..> 8)) + append(UInt8(value & 0xFF)) + } + + func readUInt16(at offset: Int) -> UInt16 { + (UInt16(self[offset]) << 8) | UInt16(self[offset + 1]) + } + + func readUInt32(at offset: Int) -> UInt32 { + (UInt32(self[offset]) << 24) + | (UInt32(self[offset + 1]) << 16) + | (UInt32(self[offset + 2]) << 8) + | UInt32(self[offset + 3]) + } +} diff --git a/SpotierTests/MainConnectionUseCaseTests.swift b/SpotierTests/MainConnectionUseCaseTests.swift new file mode 100644 index 0000000..28962bb --- /dev/null +++ b/SpotierTests/MainConnectionUseCaseTests.swift @@ -0,0 +1,119 @@ +import XCTest +@testable import Spotier + +final class MainConnectionUseCaseTests: XCTestCase { + func testCanToggleConnectionWhenVPNIsConnected() { + let vpnController = MockVPNController() + vpnController.isConnected = true + let useCase = MainConnectionUseCase( + configRepository: MockConfigRepository(), + vpnController: vpnController + ) + + XCTAssertTrue(useCase.canToggleConnection(selectedConfig: nil)) + } + + func testToggleConnectionStartsVPNWithSelectedConfigContent() { + let configURL = URL(fileURLWithPath: "/tmp/test.toml") + let repository = MockConfigRepository(readResults: [configURL: "instance_name = \"spotier\""]) + let vpnController = MockVPNController() + let useCase = MainConnectionUseCase( + configRepository: repository, + vpnController: vpnController + ) + + useCase.toggleConnection(selectedConfig: configURL) + + XCTAssertEqual(vpnController.startedContents, ["instance_name = \"spotier\""]) + XCTAssertFalse(vpnController.didStop) + } + + func testToggleConnectionStopsConnectedVPN() { + let vpnController = MockVPNController() + vpnController.isConnected = true + let useCase = MainConnectionUseCase( + configRepository: MockConfigRepository(), + vpnController: vpnController + ) + + useCase.toggleConnection(selectedConfig: nil) + + XCTAssertTrue(vpnController.didStop) + XCTAssertTrue(vpnController.startedContents.isEmpty) + } + + func testToggleConnectionReportsMissingSelection() { + let vpnController = MockVPNController() + let useCase = MainConnectionUseCase( + configRepository: MockConfigRepository(), + vpnController: vpnController + ) + + useCase.toggleConnection(selectedConfig: nil) + + XCTAssertEqual(vpnController.statusText, "未选择配置文件") + } + + func testToggleConnectionReportsReadFailureWithFilename() { + let configURL = URL(fileURLWithPath: "/tmp/test.toml") + let repository = MockConfigRepository(error: MockError.readFailed) + let vpnController = MockVPNController() + let useCase = MainConnectionUseCase( + configRepository: repository, + vpnController: vpnController + ) + + useCase.toggleConnection(selectedConfig: configURL) + + XCTAssertEqual(vpnController.statusText, "读取配置失败: test.toml") + XCTAssertTrue(vpnController.startedContents.isEmpty) + } +} + +private final class MockVPNController: VPNControlling { + var isConnected = false + var statusText = "" + var startedContents: [String] = [] + var didStop = false + + func startVPN(configContent: String) { + startedContents.append(configContent) + } + + func disableOnDemandAndStop() { + didStop = true + } +} + +private struct MockConfigRepository: ConfigFileAccessing { + var readResults: [URL: String] = [:] + var error: Error? + + func refreshConfigs() -> [URL] { + [] + } + + func readContent(at fileURL: URL) throws -> String { + if let error { + throw error + } + + if let content = readResults[fileURL] { + return content + } + + throw MockError.readFailed + } + + func createConfig(named filename: String, content: String) throws -> URL { + URL(fileURLWithPath: "/tmp/\(filename)") + } + + func updateContent(at fileURL: URL, content: String) throws {} + + func deleteConfig(at fileURL: URL) {} +} + +private enum MockError: Error { + case readFailed +} diff --git a/SpotierTests/MeshEngineConfigurationTests.swift b/SpotierTests/MeshEngineConfigurationTests.swift new file mode 100644 index 0000000..b952029 --- /dev/null +++ b/SpotierTests/MeshEngineConfigurationTests.swift @@ -0,0 +1,45 @@ +import XCTest +@testable import Spotier + +final class MeshEngineConfigurationTests: XCTestCase { + func testAcceptsCurrentSwiftCoreConfigurationFields() throws { + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.126.126.4/24", + virtualIPv6: "fd00::4/64", + peers: ["udp://192.0.2.10:11010"], + listeners: [ + "udp://0.0.0.0:11010", + "wg://0.0.0.0:11011" + ], + mtu: 1380 + ) + + XCTAssertNoThrow(try config.validate()) + XCTAssertEqual(config.networkName, "easytier") + XCTAssertEqual(config.mtu, 1380) + } + + func testRejectsEmptyNetworkName() { + let config = MeshEngineConfiguration(networkName: " ", networkSecret: "secret") + + XCTAssertThrowsError(try config.validate()) { error in + XCTAssertEqual(error as? MeshEngineConfigurationError, .emptyNetworkName) + } + } + + func testAllowsEmptyNetworkSecretBecauseCurrentConfigTreatsItAsOptional() { + let config = MeshEngineConfiguration(networkName: "easytier", networkSecret: "") + + XCTAssertNoThrow(try config.validate()) + } + + func testRejectsInvalidMTU() { + let config = MeshEngineConfiguration(networkName: "easytier", networkSecret: "secret", mtu: 128) + + XCTAssertThrowsError(try config.validate()) { error in + XCTAssertEqual(error as? MeshEngineConfigurationError, .invalidMTU(128)) + } + } +} diff --git a/SpotierTests/MeshEngineTransportTests.swift b/SpotierTests/MeshEngineTransportTests.swift new file mode 100644 index 0000000..bd3606a --- /dev/null +++ b/SpotierTests/MeshEngineTransportTests.swift @@ -0,0 +1,175 @@ +import XCTest +@testable import Spotier + +final class MeshEngineTransportTests: XCTestCase { + func testStartsUDPTransportFromConfiguredListener() async throws { + let engine = MeshEngine() + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + listeners: ["udp://127.0.0.1:19093"] + ) + + try await engine.start(configuration: config) + defer { + Task { await engine.stop() } + } + + XCTAssertEqual(engine.status, .running) + XCTAssertTrue(engine.events.contains(.statusChanged(.running))) + } + + func testTransportStartFailureEmitsFatalError() async throws { + let engine = MeshEngine(transport: FailingStartTransport()) + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + listeners: ["udp://127.0.0.1:19094"] + ) + + do { + try await engine.start(configuration: config) + XCTFail("Expected UDP bind failure") + } catch { + XCTAssertTrue(engine.events.contains { event in + if case .fatalError = event { + return true + } + return false + }) + } + } + + func testUDPBootstrapSkipsNonUDPPeers() async throws { + let transport = RecordingTransport() + let engine = MeshEngine(transport: transport) + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + peers: [ + "tcp://relay.example.com:11010", + "udp://198.51.100.20:11010" + ], + listeners: ["udp://127.0.0.1:19094"] + ) + + try await engine.start(configuration: config) + defer { + Task { await engine.stop() } + } + + XCTAssertEqual(transport.sentEndpoints, [ + TransportEndpoint(host: "198.51.100.20", port: 11010) + ]) + } + + func testRelayBootstrapUsesTCPPeerWhenTransportIsInjected() async throws { + let transport = RecordingRelayTransport() + let engine = MeshEngine(transport: transport) + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + peers: ["tcp://relay.example.com:11010"], + listeners: ["udp://127.0.0.1:19094"] + ) + + try await engine.start(configuration: config) + defer { + Task { await engine.stop() } + } + + XCTAssertEqual(engine.status, .running) + XCTAssertEqual(transport.sentEndpoints, [ + TransportEndpoint(scheme: "tcp", host: "relay.example.com", port: 11010) + ]) + } + + func testStartFailsWhenConfiguredPeersContainNoUDPPeer() async { + let transport = RecordingTransport() + let engine = MeshEngine(transport: transport) + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + peers: ["tcp://relay.example.com:11010"], + listeners: ["udp://127.0.0.1:19094"] + ) + + do { + try await engine.start(configuration: config) + XCTFail("Expected unsupported peer failure") + } catch { + XCTAssertEqual(error as? TransportError, .unsupportedPeerScheme) + XCTAssertTrue(engine.events.contains(.fatalError("unsupportedPeerScheme"))) + XCTAssertFalse(transport.didStart) + XCTAssertTrue(transport.sentEndpoints.isEmpty) + } + } + + func testStartFailsWhenListenersAreConfiguredButNoneAreUDP() async { + let engine = MeshEngine() + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + listeners: ["tcp://127.0.0.1:19095"] + ) + + do { + try await engine.start(configuration: config) + XCTFail("Expected unsupported listener failure") + } catch { + XCTAssertEqual(error as? TransportError, .unsupportedListenerScheme) + XCTAssertTrue(engine.events.contains(.fatalError("unsupportedListenerScheme"))) + } + } +} + +private final class FailingStartTransport: Transport { + let inboundFrames = AsyncStream { continuation in + continuation.finish() + } + + func start() async throws { + throw TransportError.listenerUnavailable + } + + func stop() async {} + + func send(_ frame: CoreFrame, to endpoint: TransportEndpoint) async throws { + throw TransportError.connectionUnavailable + } +} + +private final class RecordingTransport: Transport { + let inboundFrames = AsyncStream { continuation in + continuation.finish() + } + + private(set) var didStart = false + private(set) var sentEndpoints: [TransportEndpoint] = [] + + func start() async throws { + didStart = true + } + + func stop() async {} + + func send(_ frame: CoreFrame, to endpoint: TransportEndpoint) async throws { + sentEndpoints.append(endpoint) + } +} + +private final class RecordingRelayTransport: RelayBootstrapTransport { + let inboundFrames = AsyncStream { continuation in + continuation.finish() + } + + private(set) var sentEndpoints: [TransportEndpoint] = [] + + func start() async throws {} + + func stop() async {} + + func send(_ frame: CoreFrame, to endpoint: TransportEndpoint) async throws { + sentEndpoints.append(endpoint) + } +} diff --git a/SpotierTests/MeshIntegrationTests.swift b/SpotierTests/MeshIntegrationTests.swift new file mode 100644 index 0000000..f8f5ddb --- /dev/null +++ b/SpotierTests/MeshIntegrationTests.swift @@ -0,0 +1,902 @@ +import Foundation +import XCTest +@testable import Spotier + +final class MeshIntegrationTests: XCTestCase { + func testLocalMeshTransfersIPv4AndIPv6Packets() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "node-a", port: 10001)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "node-b", port: 10002)) + transportA.connect(to: transportB) + + let engineA = MeshEngine( + transport: transportA, + deviceSeed: Data(repeating: 1, count: 32) + ) + let engineB = MeshEngine( + transport: transportB, + deviceSeed: Data(repeating: 2, count: 32) + ) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + + try await exchangeHello(from: engineA, transport: transportA, to: engineB, endpoint: transportB.endpoint) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + try await waitUntil(engineB.sessionEstablished(with: engineA), timeout: .milliseconds(500)) + + let ipv4 = ipv4Packet(source: [10, 0, 0, 1], destination: [10, 0, 0, 2]) + var outputB = engineB.outboundPackets.makeAsyncIterator() + + await engineA.receivePacket(PacketTunnelPacket(data: ipv4, protocolFamily: AF_INET)) + + let receivedIPv4 = await withTimeout(milliseconds: 500) { + await outputB.next() + } + XCTAssertEqual(receivedIPv4, PacketTunnelPacket(data: ipv4, protocolFamily: AF_INET)) + + let ipv6 = ipv6Packet( + source: [0xfd00, 0, 0, 0, 0, 0, 0, 2], + destination: [0xfd00, 0, 0, 0, 0, 0, 0, 1] + ) + var outputA = engineA.outboundPackets.makeAsyncIterator() + + await engineB.receivePacket(PacketTunnelPacket(data: ipv6, protocolFamily: AF_INET6)) + + let receivedIPv6 = await withTimeout(milliseconds: 500) { + await outputA.next() + } + XCTAssertEqual(receivedIPv6, PacketTunnelPacket(data: ipv6, protocolFamily: AF_INET6)) + } + + func testRunningInfoAccumulatesPeerTrafficStats() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "node-a", port: 10003)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "node-b", port: 10004)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await exchangeHello(from: engineA, transport: transportA, to: engineB, endpoint: transportB.endpoint) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + try await waitUntil(engineB.sessionEstablished(with: engineA), timeout: .milliseconds(500)) + + let packet = ipv4Packet(source: [10, 0, 0, 1], destination: [10, 0, 0, 2]) + var outputB = engineB.outboundPackets.makeAsyncIterator() + + await engineA.receivePacket(PacketTunnelPacket(data: packet, protocolFamily: AF_INET)) + _ = await withTimeout(milliseconds: 500) { + await outputB.next() + } + + let statsA = try XCTUnwrap(peerStats(from: engineA)) + let statsB = try XCTUnwrap(peerStats(from: engineB)) + XCTAssertEqual(statsA["tx_bytes"] as? Int, packet.count) + XCTAssertEqual(statsA["tx_packets"] as? Int, 1) + XCTAssertEqual(statsA["rx_bytes"] as? Int, 0) + XCTAssertEqual(statsB["rx_bytes"] as? Int, packet.count) + XCTAssertEqual(statsB["rx_packets"] as? Int, 1) + XCTAssertEqual(statsB["tx_bytes"] as? Int, 0) + } + + func testIPv4BroadcastPacketIsForwardedToEveryEstablishedPeerExceptLocalPeer() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "node-a", port: 10007)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "node-b", port: 10008)) + let transportC = InMemoryTransport(endpoint: TransportEndpoint(host: "node-c", port: 10009)) + transportA.connect(to: transportB) + transportA.connect(to: transportC) + + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + let engineC = MeshEngine(transport: transportC, deviceSeed: Data(repeating: 3, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + await engineC.stop() + } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await engineC.start(configuration: configuration(ipv4: "10.0.0.3/24", ipv6: "fd00:0:0:0:0:0:0:3")) + try await exchangeHello(from: engineA, transport: transportA, to: engineB, endpoint: transportB.endpoint) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await exchangeHello(from: engineA, transport: transportA, to: engineC, endpoint: transportC.endpoint) + try await exchangeHello(from: engineC, transport: transportC, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + try await waitUntil(engineA.sessionEstablished(with: engineC), timeout: .milliseconds(500)) + + let broadcast = ipv4Packet(source: [10, 0, 0, 1], destination: [10, 0, 0, 255]) + var outputB = engineB.outboundPackets.makeAsyncIterator() + var outputC = engineC.outboundPackets.makeAsyncIterator() + + await engineA.receivePacket(PacketTunnelPacket(data: broadcast, protocolFamily: AF_INET)) + + let receivedB = await withTimeout(milliseconds: 500) { + await outputB.next() + } + let receivedC = await withTimeout(milliseconds: 500) { + await outputC.next() + } + XCTAssertEqual(receivedB, PacketTunnelPacket(data: broadcast, protocolFamily: AF_INET)) + XCTAssertEqual(receivedC, PacketTunnelPacket(data: broadcast, protocolFamily: AF_INET)) + } + + func testRunningInfoUpdatesLatencyFromPeerPingPong() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "node-a", port: 10005)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "node-b", port: 10006)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await exchangeHello(from: engineA, transport: transportA, to: engineB, endpoint: transportB.endpoint) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + + try await waitUntil((try? self.peerLatency(from: engineA)) ?? 0 > 0, timeout: .milliseconds(500)) + try await waitUntil((try? self.peerLatency(from: engineB)) ?? 0 > 0, timeout: .milliseconds(500)) + } + + func testConfiguredPeerReceivesBootstrapHelloOnStart() async throws { + let serverTransport = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19110)) + let clientTransport = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19111)) + clientTransport.connect(to: serverTransport) + let client = MeshEngine(transport: clientTransport) + var iterator = serverTransport.inboundFrames.makeAsyncIterator() + + try await client.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.10.0.1/24", + peers: ["udp://127.0.0.1:19110"], + listeners: ["udp://127.0.0.1:19111"] + )) + defer { + Task { await client.stop() } + } + + let inbound = await withTimeout(milliseconds: 100) { + await iterator.next() + } + + XCTAssertEqual(inbound?.remoteEndpoint, clientTransport.endpoint) + guard case .control(.hello) = inbound?.frame.payload else { + XCTFail("Expected bootstrap hello frame") + return + } + } + + func testEngineUsesConfiguredInstanceNameAsLocalHostname() async throws { + let engine = MeshEngine() + try await engine.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + instanceName: "office-node" + )) + defer { + Task { await engine.stop() } + } + + XCTAssertEqual(engine.localIdentity?.hostname, "office-node") + } + + func testEngineUsesStableDefaultHostnameWhenInstanceNameIsMissing() async throws { + let engine = MeshEngine() + try await engine.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret" + )) + defer { + Task { await engine.stop() } + } + + XCTAssertEqual(engine.localIdentity?.hostname, "spotier") + } + + func testMagicDNSQueryEmitsLocalDNSResponse() async throws { + let engine = MeshEngine(deviceSeed: Data(repeating: 1, count: 32)) + try await engine.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + instanceName: "local", + virtualIPv4: "10.0.0.1/24", + magicDNS: true, + magicDNSZone: "et.net" + )) + defer { + Task { await engine.stop() } + } + var output = engine.outboundPackets.makeAsyncIterator() + + await engine.receivePacket(PacketTunnelPacket( + data: dnsQueryPacket(name: "local.et.net", sourcePort: 53001), + protocolFamily: AF_INET + )) + + let response = await withTimeout(milliseconds: 500) { + await output.next() + } + let data = try XCTUnwrap(response?.data) + XCTAssertEqual(response?.protocolFamily, AF_INET) + XCTAssertEqual(data[12..<16].map(Int.init), [100, 100, 100, 101]) + XCTAssertEqual(data[16..<20].map(Int.init), [10, 0, 0, 9]) + XCTAssertEqual(data.suffix(4).map(Int.init), [10, 0, 0, 1]) + } + + func testOneWayConfiguredPeerEstablishesRouteAndTransfersPacket() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19120)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19121)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await engineA.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24", + virtualIPv6: "fd00:0:0:0:0:0:0:1", + peers: ["udp://127.0.0.1:19121"], + listeners: ["udp://127.0.0.1:19120"], + mtu: 1380 + )) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + try await waitUntil(engineB.sessionEstablished(with: engineA), timeout: .milliseconds(500)) + + let ipv4 = ipv4Packet(source: [10, 0, 0, 1], destination: [10, 0, 0, 2]) + var outputB = engineB.outboundPackets.makeAsyncIterator() + + await engineA.receivePacket(PacketTunnelPacket(data: ipv4, protocolFamily: AF_INET)) + + let receivedIPv4 = await withTimeout(milliseconds: 500) { + await outputB.next() + } + XCTAssertEqual(receivedIPv4, PacketTunnelPacket(data: ipv4, protocolFamily: AF_INET)) + } + + func testRouteUpdateInstallsSubnetProxyRoute() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19130)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19131)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + let updatePayload = routeUpdatePayload( + ipv4Address: "10.0.0.2", + ipv6Address: nil, + cost: 2, + proxyCIDRs: ["192.168.77.0/24"] + ) + try await transportB.send(CoreFrame( + type: .control, + sender: try XCTUnwrap(engineB.localIdentity?.peerID), + receiver: try XCTUnwrap(engineA.localIdentity?.peerID), + sequence: 50, + payload: .control(.routeUpdate(updatePayload)) + ), to: transportA.endpoint) + + try await waitUntil(engineA.routeTable.bestRoute(for: "192.168.77.9") != nil, timeout: .milliseconds(500)) + + XCTAssertEqual(engineA.routeTable.bestRoute(for: "192.168.77.9")?.ownerPeerID, engineB.localIdentity?.peerID) + XCTAssertEqual(engineA.routeTable.bestRoute(for: "192.168.77.9")?.cost, 2) + } + + func testRouteUpdateFromUnauthenticatedPeerIsIgnored() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19132)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19133)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + let updatePayload = routeUpdatePayload( + ipv4Address: "10.0.0.2", + ipv6Address: nil, + cost: 1, + proxyCIDRs: ["192.168.88.0/24"] + ) + try await transportB.send(CoreFrame( + type: .control, + sender: try XCTUnwrap(engineB.localIdentity?.peerID), + receiver: try XCTUnwrap(engineA.localIdentity?.peerID), + sequence: 51, + payload: .control(.routeUpdate(updatePayload)) + ), to: transportA.endpoint) + + try? await Task.sleep(for: .milliseconds(100)) + + XCTAssertNil(engineA.routeTable.bestRoute(for: "192.168.88.9")) + } + + func testRouteUpdateAddressedToAnotherPeerIsIgnored() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19134)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19135)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + let updatePayload = routeUpdatePayload( + ipv4Address: "10.0.0.2", + ipv6Address: nil, + cost: 1, + proxyCIDRs: ["192.168.99.0/24"] + ) + try await transportB.send(CoreFrame( + type: .control, + sender: try XCTUnwrap(engineB.localIdentity?.peerID), + receiver: PeerID(999), + sequence: 52, + payload: .control(.routeUpdate(updatePayload)) + ), to: transportA.endpoint) + + try? await Task.sleep(for: .milliseconds(100)) + + XCTAssertNil(engineA.routeTable.bestRoute(for: "192.168.99.9")) + } + + func testStopClearsMeshStateFromRunningInfo() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19140)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19141)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { await engineB.stop() } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.routeTable.bestRoute(for: "10.0.0.2") != nil, timeout: .milliseconds(500)) + + await engineA.stop() + + let data = try XCTUnwrap(engineA.runningInfoData()) + let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] + XCTAssertEqual(json?["running"] as? Bool, false) + XCTAssertNil(json?["my_node_info"] as? [String: Any]) + XCTAssertEqual((json?["peers"] as? [[String: Any]])?.count, 0) + XCTAssertEqual((json?["routes"] as? [[String: Any]])?.count, 0) + XCTAssertEqual((json?["peer_route_pairs"] as? [[String: Any]])?.count, 0) + } + + func testAdvertisedRoutesAreSentAfterSessionEstablishes() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19150)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19151)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24", + virtualIPv6: "fd00:0:0:0:0:0:0:1", + advertisedRoutes: ["192.168.55.0/24"], + mtu: 1380 + )) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await exchangeHello(from: engineA, transport: transportA, to: engineB, endpoint: transportB.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + try await waitUntil(engineB.sessionEstablished(with: engineA), timeout: .milliseconds(500)) + try await waitUntil(engineB.routeTable.bestRoute(for: "192.168.55.8") != nil, timeout: .milliseconds(500)) + + XCTAssertEqual(engineB.routeTable.bestRoute(for: "192.168.55.8")?.ownerPeerID, engineA.localIdentity?.peerID) + XCTAssertEqual(engineB.routeTable.bestRoute(for: "192.168.55.8")?.kind, .subnetProxy) + } + + func testEndpointCandidateIsSentAfterSessionEstablishes() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19140)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19141)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24", + listeners: ["udp://127.0.0.1:20140"], + mtu: 1380 + )) + try await engineB.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.2/24", + listeners: ["udp://127.0.0.1:20141"], + mtu: 1380 + )) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + + let peerID = try XCTUnwrap(engineA.localIdentity?.peerID) + try await waitUntil( + engineB.peerStore.peer(id: peerID)?.knownEndpoints.contains(TransportEndpoint(host: "127.0.0.1", port: 20140)) == true, + timeout: .milliseconds(500) + ) + } + + func testMappedUDPListenerIsPublishedAsEndpointCandidate() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19144)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19145)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24", + listeners: ["udp://127.0.0.1:20144"], + mappedListeners: ["udp://198.51.100.9:21010"], + mtu: 1380 + )) + try await engineB.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.2/24", + listeners: ["udp://127.0.0.1:20145"], + mtu: 1380 + )) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + + let peerID = try XCTUnwrap(engineA.localIdentity?.peerID) + try await waitUntil( + engineB.peerStore.peer(id: peerID)?.knownEndpoints.contains(TransportEndpoint(host: "198.51.100.9", port: 21010)) == true, + timeout: .milliseconds(500) + ) + XCTAssertFalse( + engineB.peerStore.peer(id: peerID)?.knownEndpoints.contains(TransportEndpoint(host: "127.0.0.1", port: 20144)) == true + ) + } + + func testDisabledUDPHolePunchingDoesNotSendEndpointCandidateAfterSessionEstablishes() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19142)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19143)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24", + listeners: ["udp://127.0.0.1:20142"], + mtu: 1380, + disableUDPHolePunching: true + )) + try await engineB.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.2/24", + listeners: ["udp://127.0.0.1:20143"], + mtu: 1380 + )) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + + let peerID = try XCTUnwrap(engineA.localIdentity?.peerID) + try? await Task.sleep(for: .milliseconds(100)) + XCTAssertFalse( + engineB.peerStore.peer(id: peerID)?.knownEndpoints.contains(TransportEndpoint(host: "127.0.0.1", port: 20142)) == true + ) + } + + func testExitNodeForwardedDataFrameSetsExitNodeFlag() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19146)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19147)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24", + exitNodes: ["10.0.0.2"], + mtu: 1380 + )) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await exchangeHello(from: engineA, transport: transportA, to: engineB, endpoint: transportB.endpoint) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + try await waitUntil(engineB.sessionEstablished(with: engineA), timeout: .milliseconds(500)) + + let packet = ipv4Packet(source: [10, 0, 0, 1], destination: [203, 0, 113, 10]) + await engineA.receivePacket(PacketTunnelPacket(data: packet, protocolFamily: AF_INET)) + + try await waitUntil( + transportA.sentFrames.contains { frame in + frame.type == .data && (frame.flags & CoreFrame.exitNodeFlag) != 0 + }, + timeout: .milliseconds(500) + ) + } + + func testExitNodeFlaggedFrameIsDroppedWhenExitNodeIsDisabled() async throws { + let packet = ipv4Packet(source: [10, 0, 0, 1], destination: [203, 0, 113, 10]) + let received = try await receiveExitNodeFlaggedPacket( + packet, + receiverConfiguration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2") + ) + + XCTAssertNil(received) + } + + func testExitNodeFlaggedFrameIsAcceptedWhenExitNodeIsEnabled() async throws { + let packet = ipv4Packet(source: [10, 0, 0, 1], destination: [203, 0, 113, 10]) + let received = try await receiveExitNodeFlaggedPacket( + packet, + receiverConfiguration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: "fd00:0:0:0:0:0:0:2", + enableExitNode: true, + mtu: 1380 + ) + ) + + XCTAssertEqual(received, PacketTunnelPacket(data: packet, protocolFamily: AF_INET)) + } + + func testBroadcastDataFrameIsIgnored() async throws { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19152)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19153)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: configuration(ipv4: "10.0.0.1/24", ipv6: "fd00:0:0:0:0:0:0:1")) + try await engineB.start(configuration: configuration(ipv4: "10.0.0.2/24", ipv6: "fd00:0:0:0:0:0:0:2")) + try await exchangeHello(from: engineA, transport: transportA, to: engineB, endpoint: transportB.endpoint) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + try await waitUntil(engineB.sessionEstablished(with: engineA), timeout: .milliseconds(500)) + + let identityA = try XCTUnwrap(engineA.localIdentity) + let identityB = try XCTUnwrap(engineB.localIdentity) + let crypto = try SessionCrypto.establish( + localIdentity: identityA, + handshake: HandshakeState( + network: NetworkSecret(networkName: "easytier", secret: "secret"), + localPeerID: identityA.peerID, + remotePeerID: identityB.peerID, + remotePublicKey: identityB.publicKey, + role: .initiator + ) + ) + let sequence: UInt64 = 9_001 + let packet = ipv4Packet(source: [10, 0, 0, 1], destination: [10, 0, 0, 2]) + let encrypted = try crypto.encrypt(sequence: sequence, plaintext: packet) + var outputB = engineB.outboundPackets.makeAsyncIterator() + + try await transportA.send(CoreFrame( + type: .data, + sender: identityA.peerID, + receiver: PeerID(0), + sequence: sequence, + payload: .data(DataPacket(encryptedIPPacket: encrypted)) + ), to: transportB.endpoint) + + let received = await withTimeout(milliseconds: 200) { + await outputB.next() + } + XCTAssertNil(received) + } + + private func routeUpdatePayload( + ipv4Address: String?, + ipv6Address: String?, + cost: Int, + proxyCIDRs: [String] + ) -> Data { + var data = Data() + appendOptionalString(ipv4Address, to: &data) + appendOptionalString(ipv6Address, to: &data) + data.append(UInt8(cost)) + data.append(UInt8(proxyCIDRs.count)) + for cidr in proxyCIDRs { + appendString(cidr, to: &data) + } + return data + } + + private func appendOptionalString(_ value: String?, to data: inout Data) { + guard let value else { + data.append(0) + return + } + data.append(1) + appendString(value, to: &data) + } + + private func appendString(_ value: String, to data: inout Data) { + let bytes = Data(value.utf8) + data.append(UInt8((bytes.count >> 8) & 0xFF)) + data.append(UInt8(bytes.count & 0xFF)) + data.append(bytes) + } + + private func configuration(ipv4: String, ipv6: String) -> MeshEngineConfiguration { + MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: ipv4, + virtualIPv6: ipv6, + mtu: 1380 + ) + } + + private func exchangeHello( + from engine: MeshEngine, + transport: InMemoryTransport, + to remote: MeshEngine, + endpoint: TransportEndpoint + ) async throws { + guard let identity = engine.localIdentity else { + XCTFail("Missing local identity") + return + } + let frame = CoreFrame( + type: .control, + sender: identity.peerID, + receiver: PeerID(0), + sequence: 1, + payload: .control(.hello(ControlMessage.Hello( + hostname: identity.hostname, + virtualIPv4: identity.virtualIPv4, + virtualIPv6: identity.virtualIPv6, + publicKey: identity.publicKey, + version: "swift-core" + ))) + ) + try await transport.send(frame, to: endpoint) + try await waitUntil(remote.peerStore.peer(id: identity.peerID) != nil, timeout: .milliseconds(500)) + } + + private func receiveExitNodeFlaggedPacket( + _ packet: Data, + receiverConfiguration: MeshEngineConfiguration + ) async throws -> PacketTunnelPacket? { + let transportA = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19148)) + let transportB = InMemoryTransport(endpoint: TransportEndpoint(host: "127.0.0.1", port: 19149)) + transportA.connect(to: transportB) + let engineA = MeshEngine(transport: transportA, deviceSeed: Data(repeating: 1, count: 32)) + let engineB = MeshEngine(transport: transportB, deviceSeed: Data(repeating: 2, count: 32)) + defer { + Task { + await engineA.stop() + await engineB.stop() + } + } + + try await engineA.start(configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24", + exitNodes: ["10.0.0.2"], + mtu: 1380 + )) + try await engineB.start(configuration: receiverConfiguration) + try await exchangeHello(from: engineA, transport: transportA, to: engineB, endpoint: transportB.endpoint) + try await exchangeHello(from: engineB, transport: transportB, to: engineA, endpoint: transportA.endpoint) + try await waitUntil(engineA.sessionEstablished(with: engineB), timeout: .milliseconds(500)) + try await waitUntil(engineB.sessionEstablished(with: engineA), timeout: .milliseconds(500)) + + var outputB = engineB.outboundPackets.makeAsyncIterator() + await engineA.receivePacket(PacketTunnelPacket(data: packet, protocolFamily: AF_INET)) + + return await withTimeout(milliseconds: 200) { + await outputB.next() + } + } + + private func ipv4Packet(source: [UInt8], destination: [UInt8]) -> Data { + var data = Data([ + 0x45, 0x00, + 0x00, 0x14, + 0x00, 0x00, 0x00, 0x00, + 64, 17, + 0x00, 0x00 + ]) + data.append(contentsOf: source) + data.append(contentsOf: destination) + return data + } + + private func dnsQueryPacket(name: String, sourcePort: UInt16) -> Data { + var dnsPayload = Data([0x12, 0x34, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) + for label in name.split(separator: ".") { + let bytes = Array(label.utf8) + dnsPayload.append(UInt8(bytes.count)) + dnsPayload.append(contentsOf: bytes) + } + dnsPayload.append(0) + dnsPayload.appendUInt16(1) + dnsPayload.appendUInt16(1) + + var udp = Data() + udp.appendUInt16(sourcePort) + udp.appendUInt16(53) + udp.appendUInt16(UInt16(8 + dnsPayload.count)) + udp.appendUInt16(0) + udp.append(dnsPayload) + + let totalLength = UInt16(20 + udp.count) + var data = Data([ + 0x45, 0x00, + UInt8(totalLength >> 8), UInt8(totalLength & 0xFF), + 0x00, 0x00, 0x00, 0x00, + 64, 17, + 0x00, 0x00 + ]) + data.append(contentsOf: [10, 0, 0, 9]) + data.append(contentsOf: [100, 100, 100, 101]) + data.append(udp) + return data + } + + private func ipv6Packet(source: [UInt16], destination: [UInt16]) -> Data { + var data = Data([0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 58, 64]) + appendIPv6(source, to: &data) + appendIPv6(destination, to: &data) + return data + } + + private func appendIPv6(_ groups: [UInt16], to data: inout Data) { + for group in groups { + data.append(UInt8(group >> 8)) + data.append(UInt8(group & 0xFF)) + } + } + + private func peerStats(from engine: MeshEngine) throws -> [String: Any]? { + let data = try XCTUnwrap(engine.runningInfoData()) + let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] + let peers = json?["peers"] as? [[String: Any]] + let connection = (peers?.first?["conns"] as? [[String: Any]])?.first + return connection?["stats"] as? [String: Any] + } + + private func peerLatency(from engine: MeshEngine) throws -> Int { + let stats = try XCTUnwrap(peerStats(from: engine)) + return stats["latency_us"] as? Int ?? 0 + } +} + +private extension MeshEngine { + func sessionEstablished(with remote: MeshEngine) -> Bool { + guard let peerID = remote.localIdentity?.peerID else { return false } + return hasEstablishedSession(with: peerID) + } +} + +private extension Data { + mutating func appendUInt16(_ value: UInt16) { + append(UInt8(value >> 8)) + append(UInt8(value & 0xFF)) + } +} + +private func waitUntil( + _ condition: @autoclosure @escaping () -> Bool, + timeout: Duration +) async throws { + let start = ContinuousClock.now + while !condition() { + if ContinuousClock.now - start > timeout { + XCTFail("Timed out waiting for condition") + return + } + try await Task.sleep(for: .milliseconds(10)) + } +} + +private func withTimeout( + milliseconds: UInt64, + operation: @escaping () async -> T? +) async -> T? { + await withTaskGroup(of: T?.self) { group in + group.addTask { + await operation() + } + group.addTask { + try? await Task.sleep(for: .milliseconds(milliseconds)) + return nil + } + + let result = await group.next() ?? nil + group.cancelAll() + return result + } +} diff --git a/SpotierTests/PacketClassifierTests.swift b/SpotierTests/PacketClassifierTests.swift new file mode 100644 index 0000000..5456409 --- /dev/null +++ b/SpotierTests/PacketClassifierTests.swift @@ -0,0 +1,475 @@ +import Foundation +import XCTest +@testable import Spotier + +final class PacketClassifierTests: XCTestCase { + func testIPv4ClassificationAndRouting() throws { + let packetData = ipv4Packet( + source: [10, 0, 0, 1], + destination: [10, 0, 0, 2], + protocolNumber: 17, + payload: [1, 2, 3, 4] + ) + + let packet = try PacketClassifier.parse(packetData) + XCTAssertEqual(packet, .ipv4(IPv4Packet( + sourceAddress: "10.0.0.1", + destinationAddress: "10.0.0.2", + protocolNumber: 17, + payloadLength: 4 + ))) + + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: "10.0.0.2", + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + + XCTAssertEqual(PacketRouter(routeTable: table).route(packet), .peer(PeerID(2))) + } + + func testIPv6ClassificationAndLocalRouting() throws { + let packetData = ipv6Packet( + source: [0xfd00, 0, 0, 0, 0, 0, 0, 1], + destination: [0xfd00, 0, 0, 0, 0, 0, 0, 2], + nextHeader: 58, + payload: [9, 9] + ) + + let packet = try PacketClassifier.parse(packetData) + XCTAssertEqual(packet, .ipv6(IPv6Packet( + sourceAddress: "fd00:0:0:0:0:0:0:1", + destinationAddress: "fd00:0:0:0:0:0:0:2", + nextHeader: 58, + payloadLength: 2 + ))) + + let router = PacketRouter(routeTable: RouteTable(), localIPv6: "fd00:0:0:0:0:0:0:2") + XCTAssertEqual(router.route(packet), .local) + } + + func testLocalRoutingMatchesConfiguredCIDRAddress() throws { + let ipv4 = try PacketClassifier.parse(ipv4Packet( + source: [10, 0, 0, 2], + destination: [10, 0, 0, 1], + protocolNumber: 17, + payload: [] + )) + let ipv6 = try PacketClassifier.parse(ipv6Packet( + source: [0xfd00, 0, 0, 0, 0, 0, 0, 2], + destination: [0xfd00, 0, 0, 0, 0, 0, 0, 1], + nextHeader: 58, + payload: [] + )) + + let router = PacketRouter( + routeTable: RouteTable(), + localIPv4: "10.0.0.1/24", + localIPv6: "fd00:0:0:0:0:0:0:1/64" + ) + + XCTAssertEqual(router.route(ipv4), .local) + XCTAssertEqual(router.route(ipv6), .local) + } + + func testSubnetProxyRouting() throws { + let packet = try PacketClassifier.parse(ipv4Packet( + source: [10, 0, 0, 1], + destination: [192, 168, 1, 10], + protocolNumber: 6, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(3), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(3), + cost: 2, + proxyCIDRs: ["192.168.1.0/24"] + )) + + XCTAssertEqual(PacketRouter(routeTable: table).route(packet), .subnetProxy(PeerID(3))) + } + + func testUnknownRouteProducesDrop() throws { + let packet = try PacketClassifier.parse(ipv4Packet( + source: [10, 0, 0, 1], + destination: [203, 0, 113, 10], + protocolNumber: 17, + payload: [] + )) + + XCTAssertEqual(PacketRouter(routeTable: RouteTable()).route(packet), .drop) + } + + func testExternalIPv4UsesFirstAvailableExitNodeInConfiguredOrder() throws { + let packet = try PacketClassifier.parse(ipv4Packet( + source: [10, 126, 126, 4], + destination: [203, 0, 113, 10], + protocolNumber: 6, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(1), + ipv4Address: "10.126.126.9", + ipv6Address: nil, + nextHopPeerID: PeerID(1), + cost: 1, + proxyCIDRs: [] + )) + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: "10.126.126.10", + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localIPv4: "10.126.126.4", + localIPv6: nil, + exitNodes: ["10.126.126.10", "10.126.126.9"] + ) + + XCTAssertEqual(router.route(packet), .exitNode(PeerID(2))) + } + + func testP2POnlyDropsExternalIPv4InsteadOfUsingExitNode() throws { + let packet = try PacketClassifier.parse(ipv4Packet( + source: [10, 126, 126, 4], + destination: [203, 0, 113, 10], + protocolNumber: 6, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: "10.126.126.10", + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localIPv4: "10.126.126.4/24", + localIPv6: nil, + exitNodes: ["10.126.126.10"], + p2pOnly: true + ) + + XCTAssertEqual(router.route(packet), .drop) + } + + func testSameVirtualIPv4NetworkUnknownPeerDoesNotUseExitNode() throws { + let packet = try PacketClassifier.parse(ipv4Packet( + source: [10, 126, 126, 4], + destination: [10, 126, 126, 99], + protocolNumber: 6, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: "10.126.126.10", + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localIPv4: "10.126.126.4/24", + localIPv6: nil, + exitNodes: ["10.126.126.10"] + ) + + XCTAssertEqual(router.route(packet), .drop) + } + + func testSameVirtualIPv6NetworkUnknownPeerDoesNotUseExitNode() throws { + let packet = try PacketClassifier.parse(ipv6Packet( + source: [0xfd00, 0, 0, 0, 0, 0, 0, 4], + destination: [0xfd00, 0, 0, 0, 0, 0, 0, 99], + nextHeader: 6, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: nil, + ipv6Address: "fd00:0:0:0:0:0:0:10", + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localIPv4: nil, + localIPv6: "fd00:0:0:0:0:0:0:4/64", + exitNodes: ["fd00:0:0:0:0:0:0:10"] + ) + + XCTAssertEqual(router.route(packet), .drop) + } + + func testIPv6LinkLocalSourceIsDroppedUnlessItIsLocalAddress() throws { + let remoteLinkLocalPacket = try PacketClassifier.parse(ipv6Packet( + source: [0xfe80, 0, 0, 0, 0, 0, 0, 8], + destination: [0xfd00, 0, 0, 0, 0, 0, 0, 2], + nextHeader: 17, + payload: [] + )) + let localLinkLocalPacket = try PacketClassifier.parse(ipv6Packet( + source: [0xfe80, 0, 0, 0, 0, 0, 0, 1], + destination: [0xfd00, 0, 0, 0, 0, 0, 0, 2], + nextHeader: 17, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: nil, + ipv6Address: "fd00:0:0:0:0:0:0:2", + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localIPv4: nil, + localIPv6: "fe80:0:0:0:0:0:0:1/64" + ) + + XCTAssertEqual(router.route(remoteLinkLocalPacket), .drop) + XCTAssertEqual(router.route(localLinkLocalPacket), .peer(PeerID(2))) + } + + func testIPv6LinkLocalDestinationDoesNotUseExitNode() throws { + let packet = try PacketClassifier.parse(ipv6Packet( + source: [0xfd00, 0, 0, 0, 0, 0, 0, 1], + destination: [0xfe80, 0, 0, 0, 0, 0, 0, 8], + nextHeader: 17, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: nil, + ipv6Address: "fd00:0:0:0:0:0:0:2", + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localIPv6: "fd00:0:0:0:0:0:0:1/64", + exitNodes: ["fd00:0:0:0:0:0:0:2"] + ) + + XCTAssertEqual(router.route(packet), .drop) + } + + func testIPv4BroadcastAndMulticastForwardToAllKnownPeersExceptLocalPeer() throws { + let broadcast = try PacketClassifier.parse(ipv4Packet( + source: [10, 126, 126, 4], + destination: [10, 126, 126, 255], + protocolNumber: 17, + payload: [] + )) + let multicast = try PacketClassifier.parse(ipv4Packet( + source: [10, 126, 126, 4], + destination: [224, 0, 0, 251], + protocolNumber: 17, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(1), + ipv4Address: "10.126.126.4", + ipv6Address: nil, + nextHopPeerID: PeerID(1), + cost: 1, + proxyCIDRs: [] + )) + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: "10.126.126.2", + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + table.apply(RouteUpdate( + peerID: PeerID(3), + ipv4Address: "10.126.126.3", + ipv6Address: nil, + nextHopPeerID: PeerID(3), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localPeerID: PeerID(1), + localIPv4: "10.126.126.4/24" + ) + + XCTAssertEqual(router.route(broadcast), .peers([PeerID(2), PeerID(3)])) + XCTAssertEqual(router.route(multicast), .peers([PeerID(2), PeerID(3)])) + } + + func testIPv6MulticastForwardsToAllKnownPeers() throws { + let multicast = try PacketClassifier.parse(ipv6Packet( + source: [0xfd00, 0, 0, 0, 0, 0, 0, 1], + destination: [0xff02, 0, 0, 0, 0, 0, 0, 1], + nextHeader: 17, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: nil, + ipv6Address: "fd00:0:0:0:0:0:0:2", + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + table.apply(RouteUpdate( + peerID: PeerID(3), + ipv4Address: nil, + ipv6Address: "fd00:0:0:0:0:0:0:3", + nextHopPeerID: PeerID(3), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter(routeTable: table, localIPv6: "fd00:0:0:0:0:0:0:1/64") + + XCTAssertEqual(router.route(multicast), .peers([PeerID(2), PeerID(3)])) + } + + func testNetworkLastAddressForwardsToKnownPeersUsingLocalPrefixLength() throws { + let ipv4LastAddress = try PacketClassifier.parse(ipv4Packet( + source: [10, 126, 126, 4], + destination: [192, 168, 44, 255], + protocolNumber: 17, + payload: [] + )) + let ipv6LastAddress = try PacketClassifier.parse(ipv6Packet( + source: [0xfd00, 0, 0, 0, 0, 0, 0, 1], + destination: [0xfd01, 0, 0, 0, 0xffff, 0xffff, 0xffff, 0xffff], + nextHeader: 17, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: "10.126.126.2", + ipv6Address: "fd00:0:0:0:0:0:0:2", + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localIPv4: "10.126.126.4/24", + localIPv6: "fd00:0:0:0:0:0:0:1/64" + ) + + XCTAssertEqual(router.route(ipv4LastAddress), .peers([PeerID(2)])) + XCTAssertEqual(router.route(ipv6LastAddress), .peers([PeerID(2)])) + } + + func testIPv4MulticastDoesNotUseExitNodeWhenThereAreNoRemotePeers() throws { + let ipv4Multicast = try PacketClassifier.parse(ipv4Packet( + source: [10, 126, 126, 4], + destination: [224, 0, 0, 251], + protocolNumber: 17, + payload: [] + )) + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(9), + ipv4Address: "10.126.126.9", + ipv6Address: nil, + nextHopPeerID: PeerID(9), + cost: 1, + proxyCIDRs: [] + )) + + let router = PacketRouter( + routeTable: table, + localPeerID: PeerID(9), + localIPv4: "10.126.126.4/24", + exitNodes: ["10.126.126.9"] + ) + + XCTAssertEqual(router.route(ipv4Multicast), .drop) + } + + func testRejectsNonIPPacket() { + XCTAssertThrowsError(try PacketClassifier.parse(Data([0x10, 0x00]))) { error in + XCTAssertEqual(error as? IPPacketError, .nonIPPacket) + } + } + + private func ipv4Packet( + source: [UInt8], + destination: [UInt8], + protocolNumber: UInt8, + payload: [UInt8] + ) -> Data { + let totalLength = UInt16(20 + payload.count) + var data = Data([ + 0x45, 0x00, + UInt8(totalLength >> 8), UInt8(totalLength & 0xFF), + 0x00, 0x00, 0x00, 0x00, + 64, protocolNumber, + 0x00, 0x00 + ]) + data.append(contentsOf: source) + data.append(contentsOf: destination) + data.append(contentsOf: payload) + return data + } + + private func ipv6Packet( + source: [UInt16], + destination: [UInt16], + nextHeader: UInt8, + payload: [UInt8] + ) -> Data { + let payloadLength = UInt16(payload.count) + var data = Data([ + 0x60, 0x00, 0x00, 0x00, + UInt8(payloadLength >> 8), UInt8(payloadLength & 0xFF), + nextHeader, 64 + ]) + appendIPv6(source, to: &data) + appendIPv6(destination, to: &data) + data.append(contentsOf: payload) + return data + } + + private func appendIPv6(_ groups: [UInt16], to data: inout Data) { + for group in groups { + data.append(UInt8(group >> 8)) + data.append(UInt8(group & 0xFF)) + } + } +} diff --git a/SpotierTests/PacketTunnelIOTests.swift b/SpotierTests/PacketTunnelIOTests.swift new file mode 100644 index 0000000..aa4409b --- /dev/null +++ b/SpotierTests/PacketTunnelIOTests.swift @@ -0,0 +1,51 @@ +import Foundation +import XCTest +@testable import Spotier + +final class PacketTunnelIOTests: XCTestCase { + func testReadsPacketsFromFlow() async { + let flow = FakePacketFlow() + flow.readBatches = [ + ([Data([0x45, 0x00])], [NSNumber(value: AF_INET)]) + ] + let io = PacketTunnelIO(flow: flow) + + var iterator = io.packets.makeAsyncIterator() + io.startReading() + + let packet = await withPacketTimeout(milliseconds: 100) { + await iterator.next() + } + + XCTAssertEqual(packet, PacketTunnelPacket(data: Data([0x45, 0x00]), protocolFamily: AF_INET)) + } + + func testWritesPacketsToFlow() { + let flow = FakePacketFlow() + let io = PacketTunnelIO(flow: flow) + + io.write(PacketTunnelPacket(data: Data([0x60, 0x00]), protocolFamily: AF_INET6)) + + XCTAssertEqual(flow.writtenPackets, [Data([0x60, 0x00])]) + XCTAssertEqual(flow.writtenProtocols, [NSNumber(value: AF_INET6)]) + } +} + +private func withPacketTimeout( + milliseconds: UInt64, + operation: @escaping () async -> T? +) async -> T? { + await withTaskGroup(of: T?.self) { group in + group.addTask { + await operation() + } + group.addTask { + try? await Task.sleep(for: .milliseconds(milliseconds)) + return nil + } + + let result = await group.next() ?? nil + group.cancelAll() + return result + } +} diff --git a/SpotierTests/PeerManagerTests.swift b/SpotierTests/PeerManagerTests.swift new file mode 100644 index 0000000..0b18dd9 --- /dev/null +++ b/SpotierTests/PeerManagerTests.swift @@ -0,0 +1,165 @@ +import Foundation +import XCTest +@testable import Spotier + +final class PeerManagerTests: XCTestCase { + func testPeerAdditionFromHello() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let local = try identity(seedByte: 1, network: network) + let manager = PeerManager(localIdentity: local, network: network) + let remote = try identity(seedByte: 2, network: network) + let endpoint = TransportEndpoint(host: "127.0.0.1", port: 11010) + let hello = helloFrame(from: remote) + + let responses = try manager.receive(TransportInboundFrame(frame: hello, remoteEndpoint: endpoint)) + + let peer = manager.peerStore.peer(id: remote.peerID) + XCTAssertEqual(peer?.hostname, "host-2") + XCTAssertEqual(peer?.virtualIPv4, "10.0.0.2/24") + XCTAssertEqual(peer?.knownEndpoints, [endpoint]) + XCTAssertEqual(peer?.routeCost, 1) + XCTAssertEqual(peer?.version, "swift-core") + XCTAssertEqual(responses.first?.payload, .control(.sessionOffer(local.publicKey))) + } + + func testSessionEstablishment() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let clientIdentity = try identity(seedByte: 1, network: network) + let serverIdentity = try identity(seedByte: 2, network: network) + let client = PeerManager(localIdentity: clientIdentity, network: network) + let server = PeerManager(localIdentity: serverIdentity, network: network) + let endpoint = TransportEndpoint(host: "127.0.0.1", port: 11010) + + let offers = try server.receive(TransportInboundFrame(frame: client.makeHelloFrame(), remoteEndpoint: endpoint)) + let answers = try client.receive(TransportInboundFrame(frame: offers[0], remoteEndpoint: endpoint)) + _ = try server.receive(TransportInboundFrame(frame: answers[0], remoteEndpoint: endpoint)) + + XCTAssertEqual(client.session(for: serverIdentity.peerID)?.health, .established) + XCTAssertEqual(server.session(for: clientIdentity.peerID)?.health, .established) + XCTAssertNotNil(client.session(for: serverIdentity.peerID)?.crypto) + XCTAssertNotNil(server.session(for: clientIdentity.peerID)?.crypto) + } + + func testPingPongRefreshesPeer() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let manager = try peerManager(seedByte: 1, network: network) + let remote = try identity(seedByte: 2, network: network) + let endpoint = TransportEndpoint(host: "127.0.0.1", port: 11010) + let base = Date(timeIntervalSince1970: 100) + + _ = try manager.receive(TransportInboundFrame(frame: helloFrame(from: remote), remoteEndpoint: endpoint), now: base) + let pong = try manager.receive( + TransportInboundFrame(frame: pingFrame(from: remote), remoteEndpoint: endpoint), + now: base.addingTimeInterval(3) + ) + + XCTAssertEqual(pong.first?.payload, .control(.peerPong)) + XCTAssertEqual(manager.peerStore.peer(id: remote.peerID)?.lastSeen, base.addingTimeInterval(3)) + } + + func testPeerPingFromUnknownPeerIsIgnored() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let manager = try peerManager(seedByte: 1, network: network) + let remote = try identity(seedByte: 2, network: network) + let endpoint = TransportEndpoint(host: "127.0.0.1", port: 11010) + + let responses = try manager.receive( + TransportInboundFrame(frame: pingFrame(from: remote), remoteEndpoint: endpoint) + ) + + XCTAssertTrue(responses.isEmpty) + XCTAssertNil(manager.peerStore.peer(id: remote.peerID)) + } + + func testRouteUpdateDoesNotRefreshPeerLiveness() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let manager = try peerManager(seedByte: 1, network: network) + let remote = try identity(seedByte: 2, network: network) + let endpoint = TransportEndpoint(host: "127.0.0.1", port: 11010) + let base = Date(timeIntervalSince1970: 100) + + _ = try manager.receive(TransportInboundFrame(frame: helloFrame(from: remote), remoteEndpoint: endpoint), now: base) + let responses = try manager.receive( + TransportInboundFrame(frame: routeUpdateFrame(from: remote), remoteEndpoint: endpoint), + now: base.addingTimeInterval(3) + ) + + XCTAssertTrue(responses.isEmpty) + XCTAssertEqual(manager.peerStore.peer(id: remote.peerID)?.lastSeen, base) + } + + func testStalePeerRemoval() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let manager = try peerManager(seedByte: 1, network: network, staleTimeout: 10) + let remote = try identity(seedByte: 2, network: network) + let endpoint = TransportEndpoint(host: "127.0.0.1", port: 11010) + let base = Date(timeIntervalSince1970: 100) + + _ = try manager.receive(TransportInboundFrame(frame: helloFrame(from: remote), remoteEndpoint: endpoint), now: base) + + let removed = manager.cleanupStalePeers(now: base.addingTimeInterval(10)) + + XCTAssertEqual(removed, [remote.peerID]) + XCTAssertNil(manager.peerStore.peer(id: remote.peerID)) + XCTAssertNil(manager.session(for: remote.peerID)) + } + + private func peerManager( + seedByte: UInt8, + network: NetworkSecret, + staleTimeout: TimeInterval = 30 + ) throws -> PeerManager { + PeerManager( + localIdentity: try identity(seedByte: seedByte, network: network), + network: network, + staleTimeout: staleTimeout + ) + } + + private func identity(seedByte: UInt8, network: NetworkSecret) throws -> NodeIdentity { + try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: seedByte, count: 32), + hostname: "host-\(seedByte)", + virtualIPv4: "10.0.0.\(seedByte)/24", + virtualIPv6: nil + ) + } + + private func helloFrame(from identity: NodeIdentity) -> CoreFrame { + CoreFrame( + type: .control, + sender: identity.peerID, + receiver: PeerID(0), + sequence: 1, + payload: .control(.hello(ControlMessage.Hello( + hostname: identity.hostname, + virtualIPv4: identity.virtualIPv4, + virtualIPv6: identity.virtualIPv6, + publicKey: identity.publicKey, + version: "swift-core" + ))) + ) + } + + private func pingFrame(from identity: NodeIdentity) -> CoreFrame { + CoreFrame( + type: .control, + sender: identity.peerID, + receiver: PeerID(1), + sequence: 2, + payload: .control(.peerPing) + ) + } + + private func routeUpdateFrame(from identity: NodeIdentity) -> CoreFrame { + CoreFrame( + type: .control, + sender: identity.peerID, + receiver: PeerID(1), + sequence: 3, + payload: .control(.routeUpdate(Data([0]))) + ) + } + +} diff --git a/SpotierTests/RelayProtocolContractTests.swift b/SpotierTests/RelayProtocolContractTests.swift new file mode 100644 index 0000000..c2d12f5 --- /dev/null +++ b/SpotierTests/RelayProtocolContractTests.swift @@ -0,0 +1,131 @@ +import Foundation +import XCTest +@testable import Spotier + +final class RelayProtocolContractTests: XCTestCase { + func testRelayV1LengthPrefixedEncryptedRecord() throws { + let pair = try relayContractSessionPair() + let frame = CoreFrame( + type: .control, + sender: PeerID(1), + receiver: PeerID(2), + sequence: 41, + payload: .control(.peerPing) + ) + + let encoded = try RelayFrameCodec.encode(frame, crypto: pair.client) + let recordLength = encoded.readUInt32(at: 0) + let sequence = encoded.readUInt64(at: RelayProtocolV1.lengthPrefixLength) + let record = Data(encoded[RelayProtocolV1.lengthPrefixLength.. CoreFrame { + CoreFrame( + type: .control, + sender: PeerID(1), + receiver: PeerID(2), + sequence: sequence, + payload: .control(.peerPing) + ) + } + + private func assertPeerPingFrame( + _ frame: CoreFrame, + sequence: UInt64, + file: StaticString = #filePath, + line: UInt = #line + ) { + XCTAssertEqual(frame.type.rawValue, CoreFrameType.control.rawValue, file: file, line: line) + XCTAssertEqual(frame.sender.rawValue, 1, file: file, line: line) + XCTAssertEqual(frame.receiver.rawValue, 2, file: file, line: line) + XCTAssertEqual(frame.sequence, sequence, file: file, line: line) + guard case .control(.peerPing) = frame.payload else { + XCTFail("Expected peer ping control frame", file: file, line: line) + return + } + } +} + +private func relayContractSessionPair() throws -> (client: SessionCrypto, server: SessionCrypto) { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let clientIdentity = try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: 1, count: 32), + hostname: "client", + virtualIPv4: nil, + virtualIPv6: nil + ) + let serverIdentity = try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: 2, count: 32), + hostname: "server", + virtualIPv4: nil, + virtualIPv6: nil + ) + + return ( + try SessionCrypto.establish( + localIdentity: clientIdentity, + handshake: HandshakeState( + network: network, + localPeerID: clientIdentity.peerID, + remotePeerID: serverIdentity.peerID, + remotePublicKey: serverIdentity.publicKey, + role: .initiator + ) + ), + try SessionCrypto.establish( + localIdentity: serverIdentity, + handshake: HandshakeState( + network: network, + localPeerID: serverIdentity.peerID, + remotePeerID: clientIdentity.peerID, + remotePublicKey: clientIdentity.publicKey, + role: .responder + ) + ) + ) +} + +private extension Data { + func readUInt32(at offset: Int) -> UInt32 { + self[offset.. UInt64 { + self[offset..] = [] + private(set) var connectionCount = 0 + + init(port: UInt16, crypto: SessionCrypto, closeConnectionsImmediately: Bool = false) throws { + listener = try NWListener(using: .tcp, on: NWEndpoint.Port(rawValue: port)!) + self.crypto = crypto + self.closeConnectionsImmediately = closeConnectionsImmediately + } + + func start() async throws { + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + continuations.append(continuation) + listener.stateUpdateHandler = { [weak self] state in + guard let self else { return } + + switch state { + case .ready: + self.resumeStart() + case .failed(let error): + self.resumeStart(throwing: error) + default: + break + } + } + listener.newConnectionHandler = { [weak self] connection in + self?.connectionCount += 1 + if self?.closeConnectionsImmediately == true { + connection.cancel() + return + } + + let decoder = RelayFrameStreamDecoder() + self?.receive(on: connection, decoder: decoder) + connection.start(queue: self?.queue ?? .main) + } + listener.start(queue: queue) + } + } + + func stop() async { + listener.cancel() + } + + private func receive(on connection: NWConnection, decoder: RelayFrameStreamDecoder) { + connection.receive(minimumIncompleteLength: 1, maximumLength: 64 * 1024) { [weak self] data, _, isComplete, error in + guard let self else { return } + + if let data, !data.isEmpty { + do { + let records = try decoder.append(data) + for record in records { + let frame = try RelayFrameCodec.decode(record, crypto: self.crypto) + let encoded = try RelayFrameCodec.encode(frame, crypto: self.crypto) + connection.send(content: encoded, completion: .contentProcessed { _ in }) + } + } catch { + connection.cancel() + return + } + } + + guard error == nil, !isComplete else { return } + self.receive(on: connection, decoder: decoder) + } + } + + private func resumeStart(throwing error: Error? = nil) { + let pending = continuations + continuations.removeAll() + + for continuation in pending { + if let error { + continuation.resume(throwing: error) + } else { + continuation.resume(returning: ()) + } + } + } +} + +private func relaySessionPair() throws -> (client: SessionCrypto, server: SessionCrypto) { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let clientIdentity = try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: 1, count: 32), + hostname: "client", + virtualIPv4: nil, + virtualIPv6: nil + ) + let serverIdentity = try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: 2, count: 32), + hostname: "server", + virtualIPv4: nil, + virtualIPv6: nil + ) + + return ( + try SessionCrypto.establish( + localIdentity: clientIdentity, + handshake: HandshakeState( + network: network, + localPeerID: clientIdentity.peerID, + remotePeerID: serverIdentity.peerID, + remotePublicKey: serverIdentity.publicKey, + role: .initiator + ) + ), + try SessionCrypto.establish( + localIdentity: serverIdentity, + handshake: HandshakeState( + network: network, + localPeerID: serverIdentity.peerID, + remotePeerID: clientIdentity.peerID, + remotePublicKey: clientIdentity.publicKey, + role: .responder + ) + ) + ) +} + +private func withRelayTimeout( + milliseconds: UInt64, + operation: @escaping () async -> T? +) async -> T? { + await withTaskGroup(of: T?.self) { group in + group.addTask { + await operation() + } + group.addTask { + try? await Task.sleep(for: .milliseconds(milliseconds)) + return nil + } + + let result = await group.next() ?? nil + group.cancelAll() + return result + } +} diff --git a/SpotierTests/RouteTableTests.swift b/SpotierTests/RouteTableTests.swift new file mode 100644 index 0000000..6a7601b --- /dev/null +++ b/SpotierTests/RouteTableTests.swift @@ -0,0 +1,197 @@ +import Foundation +import XCTest +@testable import Spotier + +final class RouteTableTests: XCTestCase { + func testDirectPeerHostRoute() { + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(1), + ipv4Address: "10.1.1.2", + ipv6Address: "fd00::2", + nextHopPeerID: PeerID(1), + cost: 1, + proxyCIDRs: [] + )) + + XCTAssertEqual(table.bestRoute(for: "10.1.1.2")?.ownerPeerID, PeerID(1)) + XCTAssertEqual(table.bestRoute(for: "fd00::2")?.ownerPeerID, PeerID(1)) + XCTAssertNil(table.bestRoute(for: "10.1.1.3")) + } + + func testDirectPeerCIDRAddressIsHostRouteOnly() { + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(7), + ipv4Address: "10.1.1.2/24", + ipv6Address: "fd00:0:0:0:0:0:0:2/64", + nextHopPeerID: PeerID(7), + cost: 1, + proxyCIDRs: [] + )) + + XCTAssertEqual(table.bestRoute(for: "10.1.1.2")?.ownerPeerID, PeerID(7)) + XCTAssertNil(table.bestRoute(for: "10.1.1.99")) + XCTAssertEqual(table.bestRoute(for: "fd00:0:0:0:0:0:0:2")?.ownerPeerID, PeerID(7)) + XCTAssertNil(table.bestRoute(for: "fd00:0:0:0:0:0:0:99")) + } + + func testSubnetRouteSelectionUsesLowestCostThenNewestUpdate() { + var table = RouteTable() + let base = Date(timeIntervalSince1970: 100) + + table.apply(RouteUpdate( + peerID: PeerID(1), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(1), + cost: 10, + proxyCIDRs: ["192.168.0.0/16"] + ), now: base) + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 2, + proxyCIDRs: ["192.168.1.0/24"] + ), now: base.addingTimeInterval(1)) + + XCTAssertEqual(table.bestRoute(for: "192.168.1.10")?.ownerPeerID, PeerID(2)) + + table.apply(RouteUpdate( + peerID: PeerID(3), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(3), + cost: 2, + proxyCIDRs: ["192.168.1.0/24"] + ), now: base.addingTimeInterval(2)) + + XCTAssertEqual(table.bestRoute(for: "192.168.1.10")?.ownerPeerID, PeerID(3)) + } + + func testMoreSpecificSubnetRouteWinsBeforeCost() { + var table = RouteTable() + let base = Date(timeIntervalSince1970: 100) + + table.apply(RouteUpdate( + peerID: PeerID(1), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(1), + cost: 1, + proxyCIDRs: ["192.168.0.0/16"] + ), now: base) + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 10, + proxyCIDRs: ["192.168.1.0/24"] + ), now: base.addingTimeInterval(1)) + + XCTAssertEqual(table.bestRoute(for: "192.168.1.10")?.ownerPeerID, PeerID(2)) + } + + func testMoreSpecificIPv6SubnetRouteWinsBeforeCost() { + var table = RouteTable() + let base = Date(timeIntervalSince1970: 100) + + table.apply(RouteUpdate( + peerID: PeerID(1), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(1), + cost: 1, + proxyCIDRs: ["fd10:20::/32"] + ), now: base) + table.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 10, + proxyCIDRs: ["fd10:20:30:40::/64"] + ), now: base.addingTimeInterval(1)) + + XCTAssertEqual(table.bestRoute(for: "fd10:20:30:40::1234")?.ownerPeerID, PeerID(2)) + } + + func testIPv6SubnetProxyRouteMatchesPrefix() { + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(6), + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: PeerID(6), + cost: 1, + proxyCIDRs: ["fd10:20:30:40::/64"] + )) + + XCTAssertEqual(table.bestRoute(for: "fd10:20:30:40::1234")?.ownerPeerID, PeerID(6)) + XCTAssertNil(table.bestRoute(for: "fd10:20:30:41::1234")) + } + + func testRouteRemovalWhenPeerIsRemoved() { + var table = RouteTable() + table.apply(RouteUpdate( + peerID: PeerID(1), + ipv4Address: "10.1.1.2", + ipv6Address: nil, + nextHopPeerID: PeerID(1), + cost: 1, + proxyCIDRs: ["192.168.1.0/24"] + )) + + table.removeRoutes(ownedBy: PeerID(1)) + + XCTAssertNil(table.bestRoute(for: "10.1.1.2")) + XCTAssertNil(table.bestRoute(for: "192.168.1.10")) + } + + func testRouteCalculatorAddsDirectPeerRoutes() { + var table = RouteTable() + let peer = Peer( + id: PeerID(4), + hostname: "peer", + virtualIPv4: "10.4.0.2", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + lastSeen: Date() + ) + + RouteCalculator.apply(peer: peer, to: &table) + + XCTAssertEqual(table.bestRoute(for: "10.4.0.2")?.nextHopPeerID, PeerID(4)) + } + + func testRouteCalculatorPreservesPeerSubnetProxyRoutes() { + var table = RouteTable() + let peer = Peer( + id: PeerID(5), + hostname: "peer", + virtualIPv4: "10.5.0.2", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + lastSeen: Date() + ) + table.apply(RouteUpdate( + peerID: peer.id, + ipv4Address: nil, + ipv6Address: nil, + nextHopPeerID: peer.id, + cost: 1, + proxyCIDRs: ["192.168.55.0/24"] + )) + + RouteCalculator.apply(peer: peer, to: &table) + + XCTAssertEqual(table.bestRoute(for: "10.5.0.2")?.ownerPeerID, peer.id) + XCTAssertEqual(table.bestRoute(for: "192.168.55.8")?.ownerPeerID, peer.id) + XCTAssertEqual(table.bestRoute(for: "192.168.55.8")?.kind, .subnetProxy) + } +} diff --git a/SpotierTests/RunningInfoSnapshotTests.swift b/SpotierTests/RunningInfoSnapshotTests.swift new file mode 100644 index 0000000..1feaaf8 --- /dev/null +++ b/SpotierTests/RunningInfoSnapshotTests.swift @@ -0,0 +1,342 @@ +import Foundation +import XCTest +@testable import Spotier + +final class RunningInfoSnapshotTests: XCTestCase { + func testPreservesConsumedRunningInfoFields() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let local = try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: 1, count: 32), + hostname: "local", + virtualIPv4: "10.0.0.1/24", + virtualIPv6: nil + ) + var store = PeerStore() + store.upsert(Peer( + id: PeerID(2), + hostname: "peer", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + version: "swift-core", + lastSeen: Date() + )) + var routes = RouteTable() + routes.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: "10.0.0.2", + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 1, + proxyCIDRs: ["192.168.1.0/24"] + )) + + let snapshot = RunningInfoSnapshot.make( + localIdentity: local, + configuration: MeshEngineConfiguration(networkName: "easytier", networkSecret: "secret"), + peerStore: store, + routeTable: routes, + events: [.statusChanged(.running)], + running: true, + errorMessage: nil + ) + let json = try JSONSerialization.jsonObject(with: snapshot.jsonData()) as? [String: Any] + + XCTAssertEqual(json?["dev_name"] as? String, "local") + XCTAssertNotNil(json?["my_node_info"]) + XCTAssertNotNil(json?["events"]) + XCTAssertNotNil(json?["routes"]) + XCTAssertNotNil(json?["peers"]) + XCTAssertNotNil(json?["peer_route_pairs"]) + XCTAssertEqual(json?["running"] as? Bool, true) + } + + func testMeshEngineServesRunningInfoData() async throws { + let engine = MeshEngine() + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24" + ) + + try await engine.start(configuration: config) + defer { + Task { await engine.stop() } + } + + let data = try XCTUnwrap(engine.runningInfoData()) + let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] + + XCTAssertEqual(json?["running"] as? Bool, true) + XCTAssertNotNil(json?["my_node_info"]) + } + + func testProviderRunningInfoCommandReturnsSwiftCoreSnapshot() async throws { + let engine = MeshEngine() + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24" + ) + + try await engine.start(configuration: config) + defer { + Task { await engine.stop() } + } + + let data = try XCTUnwrap(engine.sendProviderCommand("running_info")) + let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] + + XCTAssertEqual(json?["dev_name"] as? String, engine.localIdentity?.hostname) + XCTAssertNotNil(json?["my_node_info"]) + XCTAssertEqual(json?["running"] as? Bool, true) + } + + func testRunningInfoNodeInfoExposesConfiguredListeners() async throws { + let engine = MeshEngine() + let config = MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + virtualIPv4: "10.0.0.1/24", + listeners: ["udp://0.0.0.0:11010"], + mappedListeners: ["udp://198.51.100.9:21010"] + ) + + try await engine.start(configuration: config) + defer { + Task { await engine.stop() } + } + + let data = try XCTUnwrap(engine.runningInfoData()) + let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] + let nodeInfo = json?["my_node_info"] as? [String: Any] + let listeners = nodeInfo?["listeners"] as? [[String: Any]] + let urls = listeners?.compactMap { $0["url"] as? String } + + XCTAssertEqual(urls, ["udp://0.0.0.0:11010", "udp://198.51.100.9:21010"]) + } + + func testRunningInfoNodeInfoExposesPeerIDAndIPv6() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let local = try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: 1, count: 32), + hostname: "local", + virtualIPv4: "10.0.0.1/24", + virtualIPv6: "fd00:0:0:0:0:0:0:1/64" + ) + let snapshot = RunningInfoSnapshot.make( + localIdentity: local, + configuration: MeshEngineConfiguration(networkName: "easytier", networkSecret: "secret"), + peerStore: PeerStore(), + routeTable: RouteTable(), + events: [], + running: true, + errorMessage: nil + ) + let json = try JSONSerialization.jsonObject(with: snapshot.jsonData()) as? [String: Any] + let nodeInfo = json?["my_node_info"] as? [String: Any] + let virtualIPv6 = nodeInfo?["virtual_ipv6"] as? [String: Any] + + XCTAssertEqual(nodeInfo?["peer_id"] as? Int, Int(UInt32(truncatingIfNeeded: local.peerID.rawValue))) + XCTAssertNotNil(virtualIPv6) + XCTAssertEqual(virtualIPv6?["network_length"] as? Int, 64) + } + + func testRunningInfoGroupsPeerHostRouteWithProxyCIDRs() throws { + var store = PeerStore() + store.upsert(Peer( + id: PeerID(2), + hostname: "peer", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + lastSeen: Date() + )) + var routes = RouteTable() + routes.apply(RouteUpdate( + peerID: PeerID(2), + ipv4Address: "10.0.0.2", + ipv6Address: nil, + nextHopPeerID: PeerID(2), + cost: 2, + proxyCIDRs: ["192.168.77.0/24", "192.168.88.0/24"] + )) + + let snapshot = RunningInfoSnapshot.make( + localIdentity: nil, + configuration: MeshEngineConfiguration(networkName: "easytier", networkSecret: "secret"), + peerStore: store, + routeTable: routes, + events: [], + running: true, + errorMessage: nil + ) + let json = try JSONSerialization.jsonObject(with: snapshot.jsonData()) as? [String: Any] + let routeRows = json?["routes"] as? [[String: Any]] + let route = try XCTUnwrap(routeRows?.first) + let ipv4Address = route["ipv4_addr"] as? [String: Any] + let address = ipv4Address?["address"] as? [String: Any] + + XCTAssertEqual(routeRows?.count, 1) + XCTAssertEqual(address?["addr"] as? Int, 167772162) + XCTAssertEqual(route["proxy_cidrs"] as? [String], ["192.168.77.0/24", "192.168.88.0/24"]) + XCTAssertEqual(route["version"] as? String, "swift-core") + } + + func testRunningInfoRoutesAreSortedByIPv4Address() throws { + var store = PeerStore() + store.upsert(Peer( + id: PeerID(3), + hostname: "later", + virtualIPv4: "10.0.0.3/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + lastSeen: Date() + )) + store.upsert(Peer( + id: PeerID(2), + hostname: "earlier", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [], + lastSeen: Date() + )) + var routes = RouteTable() + routes.apply(RouteUpdate(peerID: PeerID(3), ipv4Address: "10.0.0.3", ipv6Address: nil, nextHopPeerID: PeerID(3), cost: 1, proxyCIDRs: [])) + routes.apply(RouteUpdate(peerID: PeerID(2), ipv4Address: "10.0.0.2", ipv6Address: nil, nextHopPeerID: PeerID(2), cost: 1, proxyCIDRs: [])) + + let snapshot = RunningInfoSnapshot.make( + localIdentity: nil, + configuration: MeshEngineConfiguration(networkName: "easytier", networkSecret: "secret"), + peerStore: store, + routeTable: routes, + events: [], + running: true, + errorMessage: nil + ) + let json = try JSONSerialization.jsonObject(with: snapshot.jsonData()) as? [String: Any] + let routeRows = try XCTUnwrap(json?["routes"] as? [[String: Any]]) + let peerRoutePairs = try XCTUnwrap(json?["peer_route_pairs"] as? [[String: Any]]) + + XCTAssertEqual(routeRows.compactMap { $0["peer_id"] as? Int }, [2, 3]) + XCTAssertEqual(peerRoutePairs.compactMap { ($0["route"] as? [String: Any])?["peer_id"] as? Int }, [2, 3]) + } + + func testRunningInfoPeerConnectionExposesDefaultUDPTunnel() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let local = try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: 1, count: 32), + hostname: "local", + virtualIPv4: "10.0.0.1/24", + virtualIPv6: nil + ) + var store = PeerStore() + store.upsert(Peer( + id: PeerID(2), + hostname: "peer", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [TransportEndpoint(host: "198.51.100.20", port: 22010)], + lastSeen: Date() + )) + + let snapshot = RunningInfoSnapshot.make( + localIdentity: local, + configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + listeners: ["udp://0.0.0.0:11010"] + ), + peerStore: store, + routeTable: RouteTable(), + events: [], + running: true, + errorMessage: nil + ) + let json = try JSONSerialization.jsonObject(with: snapshot.jsonData()) as? [String: Any] + let peers = json?["peers"] as? [[String: Any]] + let peer = try XCTUnwrap(peers?.first) + let connections = peer["conns"] as? [[String: Any]] + let connection = try XCTUnwrap(connections?.first) + let tunnel = connection["tunnel"] as? [String: Any] + let localAddress = tunnel?["local_addr"] as? [String: Any] + let remoteAddress = tunnel?["remote_addr"] as? [String: Any] + let connectionID = try XCTUnwrap(connection["conn_id"] as? String) + let defaultConnectionID = try XCTUnwrap(peer["default_conn_id"] as? [String: Any]) + let directlyConnected = try XCTUnwrap(peer["directly_connected_conns"] as? [[String: Any]]) + + XCTAssertEqual(connectionID, uuidString(defaultConnectionID)) + XCTAssertEqual(directlyConnected.map(uuidString), [connectionID]) + XCTAssertEqual(tunnel?["tunnel_type"] as? String, "udp") + XCTAssertEqual(localAddress?["url"] as? String, "udp://0.0.0.0:11010") + XCTAssertEqual(remoteAddress?["url"] as? String, "udp://198.51.100.20:22010") + } + + func testRunningInfoPeerConnectionPreservesRemoteEndpointScheme() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let local = try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: 1, count: 32), + hostname: "local", + virtualIPv4: "10.0.0.1/24", + virtualIPv6: nil + ) + var store = PeerStore() + store.upsert(Peer( + id: PeerID(2), + hostname: "peer", + virtualIPv4: "10.0.0.2/24", + virtualIPv6: nil, + publicKey: Data(), + knownEndpoints: [try TransportEndpoint(urlString: "tcp://relay.example.com:11010")], + lastSeen: Date() + )) + + let snapshot = RunningInfoSnapshot.make( + localIdentity: local, + configuration: MeshEngineConfiguration( + networkName: "easytier", + networkSecret: "secret", + listeners: ["udp://0.0.0.0:11010"] + ), + peerStore: store, + routeTable: RouteTable(), + events: [], + running: true, + errorMessage: nil + ) + let json = try JSONSerialization.jsonObject(with: snapshot.jsonData()) as? [String: Any] + let peers = json?["peers"] as? [[String: Any]] + let peer = try XCTUnwrap(peers?.first) + let connections = peer["conns"] as? [[String: Any]] + let connection = try XCTUnwrap(connections?.first) + let tunnel = connection["tunnel"] as? [String: Any] + let remoteAddress = tunnel?["remote_addr"] as? [String: Any] + + XCTAssertEqual(tunnel?["tunnel_type"] as? String, "tcp") + XCTAssertEqual(remoteAddress?["url"] as? String, "tcp://relay.example.com:11010") + } + + private func uuidString(_ parts: [String: Any]) -> String { + String( + format: "%08x-%08x-%08x-%08x", + uuidPart(parts, "part1"), + uuidPart(parts, "part2"), + uuidPart(parts, "part3"), + uuidPart(parts, "part4") + ) + } + + private func uuidPart(_ parts: [String: Any], _ key: String) -> UInt32 { + let number = parts[key] as? NSNumber + return number?.uint32Value ?? 0 + } +} diff --git a/SpotierTests/SessionCryptoTests.swift b/SpotierTests/SessionCryptoTests.swift new file mode 100644 index 0000000..6e14a96 --- /dev/null +++ b/SpotierTests/SessionCryptoTests.swift @@ -0,0 +1,125 @@ +import XCTest +@testable import Spotier + +final class SessionCryptoTests: XCTestCase { + func testTwoPeersDeriveMatchingSessionKeys() throws { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let alice = try identity(seedByte: 1, network: network) + let bob = try identity(seedByte: 2, network: network) + + let aliceCrypto = try SessionCrypto.establish( + localIdentity: alice, + handshake: HandshakeState( + network: network, + localPeerID: alice.peerID, + remotePeerID: bob.peerID, + remotePublicKey: bob.publicKey, + role: .initiator + ) + ) + let bobCrypto = try SessionCrypto.establish( + localIdentity: bob, + handshake: HandshakeState( + network: network, + localPeerID: bob.peerID, + remotePeerID: alice.peerID, + remotePublicKey: alice.publicKey, + role: .responder + ) + ) + + let ciphertext = try aliceCrypto.encrypt(sequence: 1, plaintext: Data("hello".utf8)) + let plaintext = try bobCrypto.decrypt(sequence: 1, ciphertext: ciphertext) + + XCTAssertEqual(String(data: plaintext, encoding: .utf8), "hello") + } + + func testWrongNetworkSecretFailsAuthentication() throws { + let correctNetwork = NetworkSecret(networkName: "easytier", secret: "secret") + let wrongNetwork = NetworkSecret(networkName: "easytier", secret: "wrong") + let alice = try identity(seedByte: 1, network: correctNetwork) + let bob = try identity(seedByte: 2, network: correctNetwork) + + let aliceCrypto = try SessionCrypto.establish( + localIdentity: alice, + handshake: HandshakeState( + network: correctNetwork, + localPeerID: alice.peerID, + remotePeerID: bob.peerID, + remotePublicKey: bob.publicKey, + role: .initiator + ) + ) + let bobCrypto = try SessionCrypto.establish( + localIdentity: bob, + handshake: HandshakeState( + network: wrongNetwork, + localPeerID: bob.peerID, + remotePeerID: alice.peerID, + remotePublicKey: alice.publicKey, + role: .responder + ) + ) + + let ciphertext = try aliceCrypto.encrypt(sequence: 1, plaintext: Data("hello".utf8)) + + XCTAssertThrowsError(try bobCrypto.decrypt(sequence: 1, ciphertext: ciphertext)) + } + + func testRejectsReplay() throws { + let (aliceCrypto, bobCrypto) = try sessionPair() + let ciphertext = try aliceCrypto.encrypt(sequence: 7, plaintext: Data("hello".utf8)) + + _ = try bobCrypto.decrypt(sequence: 7, ciphertext: ciphertext) + + XCTAssertThrowsError(try bobCrypto.decrypt(sequence: 7, ciphertext: ciphertext)) { error in + XCTAssertEqual(error as? SessionCryptoError, .replayedSequence(7)) + } + } + + func testRejectsTamperedCiphertext() throws { + let (aliceCrypto, bobCrypto) = try sessionPair() + var ciphertext = try aliceCrypto.encrypt(sequence: 1, plaintext: Data("hello".utf8)) + ciphertext[ciphertext.count - 1] ^= 0xFF + + XCTAssertThrowsError(try bobCrypto.decrypt(sequence: 1, ciphertext: ciphertext)) + } + + private func sessionPair() throws -> (SessionCrypto, SessionCrypto) { + let network = NetworkSecret(networkName: "easytier", secret: "secret") + let alice = try identity(seedByte: 1, network: network) + let bob = try identity(seedByte: 2, network: network) + return ( + try SessionCrypto.establish( + localIdentity: alice, + handshake: HandshakeState( + network: network, + localPeerID: alice.peerID, + remotePeerID: bob.peerID, + remotePublicKey: bob.publicKey, + role: .initiator + ) + ), + try SessionCrypto.establish( + localIdentity: bob, + handshake: HandshakeState( + network: network, + localPeerID: bob.peerID, + remotePeerID: alice.peerID, + remotePublicKey: alice.publicKey, + role: .responder + ) + ) + ) + } + + private func identity(seedByte: UInt8, network: NetworkSecret) throws -> NodeIdentity { + try NodeIdentity.derive( + network: network, + deviceSeed: Data(repeating: seedByte, count: 32), + hostname: "host-\(seedByte)", + virtualIPv4: nil, + virtualIPv6: nil + ) + } +} diff --git a/SpotierTests/SpotierConfigCodecTests.swift b/SpotierTests/SpotierConfigCodecTests.swift new file mode 100644 index 0000000..5f5e7ba --- /dev/null +++ b/SpotierTests/SpotierConfigCodecTests.swift @@ -0,0 +1,249 @@ +import XCTest +@testable import Spotier + +final class SpotierConfigCodecTests: XCTestCase { + func testParseBuildsModelFromStructuredToml() throws { + let content = """ + instance_name = "office-node" + instance_id = "fixed-id" + dhcp = false + ipv4 = "10.20.30.40/16" + listeners = ["tcp://0.0.0.0:12010", "udp://0.0.0.0:12010"] + mapped_listeners = ["tcp://198.51.100.1:12010"] + socks5_proxy = "socks5://0.0.0.0:2080" + exit_nodes = ["exit-a", "exit-b"] + routes = ["10.0.0.0/24", "10.0.1.0/24"] + + [network_identity] + network_name = "teamnet" + network_secret = "topsecret" + + [[peer]] + uri = "tcp://peer-1:11010" + + [[peer]] + uri = "udp://peer-2:11010" + + [flags] + mtu = 1440 + latency_first = true + disable_ipv6 = true + disable_encryption = true + use_smoltcp = true + no_tun = true + disable_p2p = true + p2p_only = true + disable_udp_hole_punching = true + enable_exit_node = true + bind_device = true + enable_kcp_proxy = true + disable_kcp_input = true + enable_quic_proxy = true + disable_quic_input = true + relay_all_peer_rpc = true + multi_thread = false + proxy_forward_by_system = true + disable_sym_hole_punching = true + enable_magic_dns = true + enable_private_mode = true + relay_network_whitelist = "corp office" + + [vpn_portal_config] + client_cidr = "10.14.14.0/24" + wireguard_listen = "0.0.0.0:22022" + + [[proxy_network]] + cidr = "192.168.0.0/24" + + [[port_forward]] + proto = "udp" + bind_addr = "0.0.0.0:8080" + dst_addr = "10.0.0.8:80" + """ + + let model = SpotierConfigCodec.parse(content) + + XCTAssertEqual(model.instanceName, "office-node") + XCTAssertEqual(model.instanceId, "fixed-id") + XCTAssertFalse(model.dhcp) + XCTAssertEqual(model.ipv4, "10.20.30.40") + XCTAssertEqual(model.cidr, "16") + XCTAssertEqual(model.networkName, "teamnet") + XCTAssertEqual(model.networkSecret, "topsecret") + XCTAssertEqual(model.listeners.values, ["tcp://0.0.0.0:12010", "udp://0.0.0.0:12010"]) + XCTAssertEqual(model.mappedListeners.values, ["tcp://198.51.100.1:12010"]) + XCTAssertTrue(model.enableSocks5) + XCTAssertEqual(model.socks5Port, 2080) + XCTAssertEqual(model.exitNodes.values, ["exit-a", "exit-b"]) + XCTAssertTrue(model.enableManualRoutes) + XCTAssertEqual(model.manualRoutes.values, ["10.0.0.0/24", "10.0.1.0/24"]) + XCTAssertEqual(model.peerMode, .manual) + XCTAssertEqual(model.manualPeers.values, ["tcp://peer-1:11010", "udp://peer-2:11010"]) + XCTAssertEqual(model.mtu, 1440) + XCTAssertTrue(model.latencyFirst) + XCTAssertFalse(model.enableIPv6) + XCTAssertFalse(model.enableEncryption) + XCTAssertTrue(model.useSmoltcp) + XCTAssertTrue(model.noTun) + XCTAssertTrue(model.disableP2P) + XCTAssertTrue(model.onlyP2P) + XCTAssertTrue(model.disableUdpHolePunching) + XCTAssertTrue(model.enableExitNode) + XCTAssertTrue(model.bindDevice) + XCTAssertTrue(model.enableKcpProxy) + XCTAssertTrue(model.disableKcpInput) + XCTAssertTrue(model.enableQuicProxy) + XCTAssertTrue(model.disableQuicInput) + XCTAssertTrue(model.relayAllPeerRpc) + XCTAssertFalse(model.multiThread) + XCTAssertTrue(model.proxyForwardBySystem) + XCTAssertTrue(model.disableSymHolePunching) + XCTAssertTrue(model.enableMagicDns) + XCTAssertTrue(model.enablePrivateMode) + XCTAssertTrue(model.enableRelayNetworkWhitelist) + XCTAssertEqual(model.relayNetworkWhitelist.values, ["corp", "office"]) + XCTAssertTrue(model.enableVpnPortal) + XCTAssertEqual(model.vpnPortalClientCidr, "10.14.14.0/24") + XCTAssertEqual(model.vpnPortalListenPort, 22022) + XCTAssertEqual(model.proxySubnets.map(\.cidr), ["192.168.0.0/24"]) + XCTAssertEqual(model.portForwards.count, 1) + XCTAssertEqual(model.portForwards[0].protocolType, "UDP") + XCTAssertEqual(model.portForwards[0].bindIp, "0.0.0.0") + XCTAssertEqual(model.portForwards[0].bindPort, "8080") + XCTAssertEqual(model.portForwards[0].targetIp, "10.0.0.8") + XCTAssertEqual(model.portForwards[0].targetPort, "80") + } + + func testGenerateWritesExpectedSectionsFromModel() { + var model = SpotierConfigModel() + model.instanceName = "generated-node" + model.instanceId = "generated-id" + model.dhcp = false + model.ipv4 = "10.99.0.5" + model.cidr = "24" + model.networkName = "prodnet" + model.networkSecret = "secret" + model.listeners = .init(values: ["udp://0.0.0.0:11010", ""]) + model.mappedListeners = .init(values: ["udp://203.0.113.8:11010"]) + model.enableSocks5 = true + model.socks5Port = 1088 + model.exitNodes = .init(values: ["exit-1"]) + model.enableManualRoutes = true + model.manualRoutes = .init(values: ["10.8.0.0/16"]) + model.peerMode = .manual + model.manualPeers = .init(values: ["udp://peer-a:11010", ""]) + model.mtu = 1500 + model.latencyFirst = true + model.enableIPv6 = false + model.enableEncryption = false + model.useSmoltcp = true + model.noTun = true + model.disableP2P = true + model.onlyP2P = true + model.disableUdpHolePunching = true + model.enableExitNode = true + model.bindDevice = true + model.enableKcpProxy = true + model.disableKcpInput = true + model.enableQuicProxy = true + model.disableQuicInput = true + model.relayAllPeerRpc = true + model.multiThread = false + model.proxyForwardBySystem = true + model.disableSymHolePunching = true + model.enableMagicDns = true + model.enablePrivateMode = true + model.enableRelayNetworkWhitelist = true + model.relayNetworkWhitelist = .init(values: ["corp", "office"]) + model.enableVpnPortal = true + model.vpnPortalClientCidr = "10.14.14.0/24" + model.vpnPortalListenPort = 22022 + model.proxySubnets = [.init(cidr: "192.168.1.0/24")] + model.portForwards = [ + PortForwardRule(protocolType: "TCP", bindIp: "0.0.0.0", bindPort: "8080", targetIp: "10.0.0.8", targetPort: "80") + ] + + let generated = SpotierConfigCodec.generate(from: model, peers: model.manualPeers.values) + + XCTAssertTrue(generated.contains("instance_name = \"generated-node\"")) + XCTAssertTrue(generated.contains("instance_id = \"generated-id\"")) + XCTAssertTrue(generated.contains("dhcp = false")) + XCTAssertTrue(generated.contains("listeners = [\"udp://0.0.0.0:11010\"]")) + XCTAssertTrue(generated.contains("mapped_listeners = [\"udp://203.0.113.8:11010\"]")) + XCTAssertTrue(generated.contains("ipv4 = \"10.99.0.5/24\"")) + XCTAssertTrue(generated.contains("exit_nodes = [\"exit-1\"]")) + XCTAssertTrue(generated.contains("routes = [\"10.8.0.0/16\"]")) + XCTAssertTrue(generated.contains("[network_identity]")) + XCTAssertTrue(generated.contains("network_name = \"prodnet\"")) + XCTAssertTrue(generated.contains("network_secret = \"secret\"")) + XCTAssertTrue(generated.contains("[[peer]]\nuri = \"udp://peer-a:11010\"")) + XCTAssertTrue(generated.contains("[flags]")) + XCTAssertTrue(generated.contains("mtu = 1500")) + XCTAssertTrue(generated.contains("latency_first = true")) + XCTAssertTrue(generated.contains("disable_ipv6 = true")) + XCTAssertTrue(generated.contains("disable_encryption = true")) + XCTAssertTrue(generated.contains("disable_p2p = true")) + XCTAssertTrue(generated.contains("p2p_only = true")) + XCTAssertTrue(generated.contains("disable_udp_hole_punching = true")) + XCTAssertTrue(generated.contains("enable_exit_node = true")) + XCTAssertTrue(generated.contains("enable_magic_dns = true")) + XCTAssertTrue(generated.contains("enable_private_mode = true")) + XCTAssertTrue(generated.contains("[[proxy_network]]\ncidr = \"192.168.1.0/24\"")) + XCTAssertFalse(generated.contains("socks5_proxy")) + XCTAssertFalse(generated.contains("use_smoltcp")) + XCTAssertFalse(generated.contains("no_tun")) + XCTAssertFalse(generated.contains("bind_device")) + XCTAssertFalse(generated.contains("enable_kcp_proxy")) + XCTAssertFalse(generated.contains("disable_kcp_input")) + XCTAssertFalse(generated.contains("enable_quic_proxy")) + XCTAssertFalse(generated.contains("disable_quic_input")) + XCTAssertFalse(generated.contains("relay_all_peer_rpc")) + XCTAssertFalse(generated.contains("multi_thread")) + XCTAssertFalse(generated.contains("proxy_forward_by_system")) + XCTAssertFalse(generated.contains("disable_sym_hole_punching")) + XCTAssertFalse(generated.contains("relay_network_whitelist")) + XCTAssertFalse(generated.contains("[vpn_portal_config]")) + XCTAssertFalse(generated.contains("[[port_forward]]")) + XCTAssertFalse(generated.contains("\"\"")) + } + + func testGenerateOmitsFieldsTheSwiftCoreDoesNotExecute() { + var model = SpotierConfigModel() + model.enableSocks5 = true + model.useSmoltcp = true + model.noTun = true + model.bindDevice = true + model.enableKcpProxy = true + model.disableKcpInput = true + model.enableQuicProxy = true + model.disableQuicInput = true + model.relayAllPeerRpc = true + model.multiThread = false + model.proxyForwardBySystem = true + model.disableSymHolePunching = true + model.enableRelayNetworkWhitelist = true + model.relayNetworkWhitelist = .init(values: ["corp"]) + model.enableVpnPortal = true + model.portForwards = [ + PortForwardRule(protocolType: "TCP", bindIp: "0.0.0.0", bindPort: "8080", targetIp: "10.0.0.8", targetPort: "80") + ] + + let generated = SpotierConfigCodec.generate(from: model, peers: []) + + XCTAssertFalse(generated.contains("socks5_proxy")) + XCTAssertFalse(generated.contains("use_smoltcp")) + XCTAssertFalse(generated.contains("no_tun")) + XCTAssertFalse(generated.contains("bind_device")) + XCTAssertFalse(generated.contains("enable_kcp_proxy")) + XCTAssertFalse(generated.contains("disable_kcp_input")) + XCTAssertFalse(generated.contains("enable_quic_proxy")) + XCTAssertFalse(generated.contains("disable_quic_input")) + XCTAssertFalse(generated.contains("relay_all_peer_rpc")) + XCTAssertFalse(generated.contains("multi_thread")) + XCTAssertFalse(generated.contains("proxy_forward_by_system")) + XCTAssertFalse(generated.contains("disable_sym_hole_punching")) + XCTAssertFalse(generated.contains("relay_network_whitelist")) + XCTAssertFalse(generated.contains("[vpn_portal_config]")) + XCTAssertFalse(generated.contains("[[port_forward]]")) + } +} diff --git a/SpotierTests/SpotierStatusDecodingTests.swift b/SpotierTests/SpotierStatusDecodingTests.swift new file mode 100644 index 0000000..421a845 --- /dev/null +++ b/SpotierTests/SpotierStatusDecodingTests.swift @@ -0,0 +1,42 @@ +import Foundation +import XCTest +@testable import Spotier + +final class SpotierStatusDecodingTests: XCTestCase { + func testNodeInfoDecodesPeerIDAndIPv6() throws { + let json = """ + { + "dev_name": "local", + "my_node_info": { + "virtual_ipv4": { + "address": { "addr": 167772161 }, + "network_length": 24 + }, + "virtual_ipv6": { + "address": { + "part1": 4244635648, + "part2": 0, + "part3": 0, + "part4": 1 + }, + "network_length": 64 + }, + "hostname": "local", + "version": "swift-core", + "peer_id": 42 + }, + "events": [], + "routes": [], + "peers": [], + "peer_route_pairs": [], + "running": true + } + """ + + let status = try JSONDecoder().decode(SpotierStatus.self, from: Data(json.utf8)) + + XCTAssertEqual(status.myNodeInfo?.peerId, 42) + XCTAssertEqual(status.myNodeInfo?.virtualIPv6?.networkLength, 64) + XCTAssertEqual(status.myNodeInfo?.virtualIPv6?.description, "fd00::1/64") + } +} diff --git a/SpotierTests/TestDoubles/FakePacketFlow.swift b/SpotierTests/TestDoubles/FakePacketFlow.swift new file mode 100644 index 0000000..6370f5c --- /dev/null +++ b/SpotierTests/TestDoubles/FakePacketFlow.swift @@ -0,0 +1,20 @@ +import Foundation +@testable import Spotier + +final class FakePacketFlow: PacketTunnelFlowIO { + var readBatches: [([Data], [NSNumber])] = [] + private(set) var writtenPackets: [Data] = [] + private(set) var writtenProtocols: [NSNumber] = [] + + func readPackets(completionHandler: @escaping @Sendable ([Data], [NSNumber]) -> Void) { + guard !readBatches.isEmpty else { return } + let batch = readBatches.removeFirst() + completionHandler(batch.0, batch.1) + } + + func writePackets(_ packets: [Data], withProtocols protocols: [NSNumber]) -> Bool { + writtenPackets.append(contentsOf: packets) + writtenProtocols.append(contentsOf: protocols) + return true + } +} diff --git a/SpotierTests/TestDoubles/InMemoryTransport.swift b/SpotierTests/TestDoubles/InMemoryTransport.swift new file mode 100644 index 0000000..3721392 --- /dev/null +++ b/SpotierTests/TestDoubles/InMemoryTransport.swift @@ -0,0 +1,37 @@ +import Foundation +@testable import Spotier + +final class InMemoryTransport: Transport { + let endpoint: TransportEndpoint + let inboundFrames: AsyncStream + + private(set) var sentFrames: [CoreFrame] = [] + private var continuation: AsyncStream.Continuation? + private var peers: [TransportEndpoint: InMemoryTransport] = [:] + + init(endpoint: TransportEndpoint) { + self.endpoint = endpoint + let stream = AsyncStream.makeStream() + inboundFrames = stream.stream + continuation = stream.continuation + } + + func connect(to peer: InMemoryTransport) { + peers[peer.endpoint] = peer + peer.peers[endpoint] = self + } + + func start() async throws {} + + func stop() async { + continuation?.finish() + } + + func send(_ frame: CoreFrame, to endpoint: TransportEndpoint) async throws { + guard let peer = peers[endpoint] else { + throw TransportError.sendFailed + } + sentFrames.append(frame) + peer.continuation?.yield(TransportInboundFrame(frame: frame, remoteEndpoint: self.endpoint)) + } +} diff --git a/SpotierTests/UDPTransportTests.swift b/SpotierTests/UDPTransportTests.swift new file mode 100644 index 0000000..2e5cacc --- /dev/null +++ b/SpotierTests/UDPTransportTests.swift @@ -0,0 +1,109 @@ +import Foundation +import Network +import XCTest +@testable import Spotier + +final class UDPTransportTests: XCTestCase { + func testEndpointParsing() throws { + let endpoint = try TransportEndpoint(urlString: "udp://127.0.0.1:11010") + + XCTAssertEqual(endpoint.host, "127.0.0.1") + XCTAssertEqual(endpoint.port, 11010) + XCTAssertEqual(endpoint.description, "127.0.0.1:11010") + } + + func testRejectsInvalidEndpointURL() { + XCTAssertThrowsError(try TransportEndpoint(urlString: "not-a-url")) { error in + XCTAssertEqual(error as? TransportEndpointError, .invalidURL("not-a-url")) + } + } + + func testLocalUDPSendReceiveOnLoopback() async throws { + let receiver = UDPTransport(bindPort: 19091) + try await receiver.start() + defer { + Task { await receiver.stop() } + } + + let sender = UDPTransport(bindPort: 0) + let frame = CoreFrame( + type: .control, + sender: PeerID(1), + receiver: PeerID(2), + sequence: 3, + payload: .control(.peerPing) + ) + + try await sender.send(frame, to: TransportEndpoint(host: "127.0.0.1", port: 19091)) + + var iterator = receiver.inboundFrames.makeAsyncIterator() + let received = await iterator.next() + + XCTAssertEqual(received?.frame, frame) + } + + func testInvalidFrameDoesNotCrashTransport() async throws { + let receiver = UDPTransport(bindPort: 19092) + try await receiver.start() + defer { + Task { await receiver.stop() } + } + + let endpoint = TransportEndpoint(host: "127.0.0.1", port: 19092) + let rawSender = UDPTransport(bindPort: 0) + let invalid = CoreFrame( + type: .data, + sender: PeerID(1), + receiver: PeerID(2), + sequence: 1, + payload: .data(DataPacket(encryptedIPPacket: Data([1, 2, 3]))) + ) + var encoded = try FrameCodec.encode(invalid) + encoded[0] = 99 + + try await rawSender.sendRaw(encoded, to: endpoint) + try await Task.sleep(for: .milliseconds(100)) + + var iterator = receiver.inboundFrames.makeAsyncIterator() + let next = await withTimeout(milliseconds: 100) { + await iterator.next() + } + XCTAssertNil(next) + } +} + +private extension UDPTransport { + func sendRaw(_ data: Data, to endpoint: TransportEndpoint) async throws { + let connection = NWConnection(to: endpoint.nwEndpoint, using: .udp) + connection.start(queue: DispatchQueue(label: "spotier.udp.test.raw")) + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + connection.send(content: data, completion: .contentProcessed { error in + connection.cancel() + if error == nil { + continuation.resume(returning: ()) + } else { + continuation.resume(throwing: TransportError.sendFailed) + } + }) + } + } +} + +private func withTimeout( + milliseconds: UInt64, + operation: @escaping () async -> T? +) async -> T? { + await withTaskGroup(of: T?.self) { group in + group.addTask { + await operation() + } + group.addTask { + try? await Task.sleep(for: .milliseconds(milliseconds)) + return nil + } + + let result = await group.next() ?? nil + group.cancelAll() + return result + } +} diff --git a/SpotierTests/VPNProfileSelectionTests.swift b/SpotierTests/VPNProfileSelectionTests.swift new file mode 100644 index 0000000..f07a3b1 --- /dev/null +++ b/SpotierTests/VPNProfileSelectionTests.swift @@ -0,0 +1,30 @@ +import XCTest +@testable import Spotier + +final class VPNProfileSelectionTests: XCTestCase { + func testSelectsProfileWithCurrentProviderBundleIdentifier() { + let profiles = [ + VPNProfileDescriptor( + localizedDescription: "Spotier VPN", + providerBundleIdentifier: "com.alick.spotier.testflight.SpotierNE" + ), + VPNProfileDescriptor( + localizedDescription: "Spotier VPN", + providerBundleIdentifier: VPNProfileSelection.expectedProviderBundleIdentifier + ) + ] + + XCTAssertEqual(VPNProfileSelection.firstMatchingProfileIndex(in: profiles), 1) + } + + func testRejectsNonSpotierProfiles() { + let profiles = [ + VPNProfileDescriptor( + localizedDescription: "Other VPN", + providerBundleIdentifier: VPNProfileSelection.expectedProviderBundleIdentifier + ) + ] + + XCTAssertNil(VPNProfileSelection.firstMatchingProfileIndex(in: profiles)) + } +} diff --git a/Swiftier.xcarchive/Info.plist b/Swiftier.xcarchive/Info.plist deleted file mode 100644 index 4efb882..0000000 --- a/Swiftier.xcarchive/Info.plist +++ /dev/null @@ -1,34 +0,0 @@ - - - - - ApplicationProperties - - ApplicationPath - Applications/Swiftier.app - Architectures - - x86_64 - arm64 - - CFBundleIdentifier - com.alick.swiftier - CFBundleShortVersionString - 2.9.9 - CFBundleVersion - 1 - SigningIdentity - Apple Development: Ning Huang (HYA6ZQR537) - Team - KLU8GF65GP - - ArchiveVersion - 2 - CreationDate - 2026-02-10T16:04:37Z - Name - Swiftier - SchemeName - Swiftier - - diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Info.plist b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Info.plist deleted file mode 100644 index f777ee9..0000000 --- a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Info.plist +++ /dev/null @@ -1,73 +0,0 @@ - - - - - BuildMachineOSBuild - 25C56 - CFBundleDevelopmentRegion - en - CFBundleDisplayName - Swiftier - CFBundleExecutable - Swiftier - CFBundleIconFile - Swiftier - CFBundleIconName - Swiftier - CFBundleIdentifier - com.alick.swiftier - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Swiftier - CFBundlePackageType - APPL - CFBundleShortVersionString - 2.9.9 - CFBundleSupportedPlatforms - - MacOSX - - CFBundleVersion - 1 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 25C58 - DTPlatformName - macosx - DTPlatformVersion - 26.2 - DTSDKBuild - 25C58 - DTSDKName - macosx26.2 - DTXcode - 2630 - DTXcodeBuild - 17C519 - LSApplicationCategoryType - public.app-category.utilities - LSMinimumSystemVersion - 13.5 - LSUIElement - - NSUbiquitousContainers - - iCloud.com.alick.swiftier - - NSUbiquitousContainerIsDocumentScopePublic - - NSUbiquitousContainerName - Swiftier - NSUbiquitousContainerSupportedFolderLevels - Any - - - SMPrivilegedExecutables - - com.alick.swiftier.helper - identifier "com.alick.swiftier.helper" and anchor apple generic - - - diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Library/LaunchDaemons/com.alick.swiftier.helper.plist b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Library/LaunchDaemons/com.alick.swiftier.helper.plist deleted file mode 100644 index 18dce1d..0000000 --- a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Library/LaunchDaemons/com.alick.swiftier.helper.plist +++ /dev/null @@ -1,40 +0,0 @@ - - - - - Label - com.alick.swiftier.helper - - - - BundleProgram - Contents/MacOS/SwiftierHelper - - MachServices - - - com.alick.swiftier.helper - - - - RunAtLoad - - - KeepAlive - - SuccessfulExit - - - - StandardOutPath - /var/log/swiftier-helper-stdout.log - - StandardErrorPath - /var/log/swiftier-helper-stderr.log - - AssociatedBundleIdentifiers - - com.alick.swiftier - - - diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/MacOS/Swiftier b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/MacOS/Swiftier deleted file mode 100755 index d4b4db5..0000000 Binary files a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/MacOS/Swiftier and /dev/null differ diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/MacOS/SwiftierHelper b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/MacOS/SwiftierHelper deleted file mode 100755 index 961fa79..0000000 Binary files a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/MacOS/SwiftierHelper and /dev/null differ diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/PkgInfo b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/PkgInfo deleted file mode 100644 index bd04210..0000000 --- a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -APPL???? \ No newline at end of file diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/Assets.car b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/Assets.car deleted file mode 100644 index 2db9adc..0000000 Binary files a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/Assets.car and /dev/null differ diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/Swiftier.icns b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/Swiftier.icns deleted file mode 100644 index 30e4821..0000000 Binary files a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/Swiftier.icns and /dev/null differ diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/com.alick.swiftier.helper.plist b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/com.alick.swiftier.helper.plist deleted file mode 100644 index 18dce1d..0000000 --- a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/com.alick.swiftier.helper.plist +++ /dev/null @@ -1,40 +0,0 @@ - - - - - Label - com.alick.swiftier.helper - - - - BundleProgram - Contents/MacOS/SwiftierHelper - - MachServices - - - com.alick.swiftier.helper - - - - RunAtLoad - - - KeepAlive - - SuccessfulExit - - - - StandardOutPath - /var/log/swiftier-helper-stdout.log - - StandardErrorPath - /var/log/swiftier-helper-stderr.log - - AssociatedBundleIdentifiers - - com.alick.swiftier - - - diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/en.lproj/Localizable.strings b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/en.lproj/Localizable.strings deleted file mode 100644 index 75e1016..0000000 Binary files a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/en.lproj/Localizable.strings and /dev/null differ diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/zh-Hans.lproj/Localizable.strings b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index a378dee..0000000 Binary files a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/Resources/zh-Hans.lproj/Localizable.strings and /dev/null differ diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/_CodeSignature/CodeResources b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/_CodeSignature/CodeResources deleted file mode 100644 index 5677d93..0000000 --- a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/_CodeSignature/CodeResources +++ /dev/null @@ -1,209 +0,0 @@ - - - - - files - - Resources/Assets.car - - SEbIZBfzpiEh/ebh5fMnJiq+DPU= - - Resources/Swiftier.icns - - j1N5fAbo3v21XZq4ZJnNRQKbEEc= - - Resources/com.alick.swiftier.helper.plist - - xEYLaGnng5zxGPRWe1CUs5Pv3bY= - - Resources/en.lproj/Localizable.strings - - hash - - JqJu2cSjNaPtivG1UVzXTbQ2UP4= - - optional - - - Resources/zh-Hans.lproj/Localizable.strings - - hash - - LHmblqvTXazfMrKN+9qKZvif7Wo= - - optional - - - - files2 - - Library/LaunchDaemons/com.alick.swiftier.helper.plist - - hash2 - - rDo1OuFzG8TKaozCEUb8Q28YJ0z/mjsnJc9Rooa0yIM= - - - MacOS/SwiftierHelper - - cdhash - - mZS50dMl9Jl6qJxjOglm8Hx1EI4= - - requirement - identifier SwiftierHelper and anchor apple generic and certificate leaf[subject.CN] = "Apple Development: Ning Huang (HYA6ZQR537)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */ - - Resources/Assets.car - - hash2 - - ZUjCd/wTwDHBA9qM/RWZ9ok1db7J0f2nsRtEW3hLpjs= - - - Resources/Swiftier.icns - - hash2 - - 3EesdhZeJnzEWaoUO4HpGCpWbf5mbYWRpWF/Ta9hmnM= - - - Resources/com.alick.swiftier.helper.plist - - hash2 - - rDo1OuFzG8TKaozCEUb8Q28YJ0z/mjsnJc9Rooa0yIM= - - - Resources/en.lproj/Localizable.strings - - hash2 - - wrZY2gyTW77DOyCgjE822s5naIC3ZwBu+bmIQ2Pd1gE= - - optional - - - Resources/zh-Hans.lproj/Localizable.strings - - hash2 - - yqZd+SXV4hnoLtu+aXZgdXf9ZDzju29TxDoA+vnYH/A= - - optional - - - embedded.provisionprofile - - hash2 - - XWeAsVcsTCr9fNL6dbZqUcdA3sZCJVW64nRIaJYGV4Y= - - - - rules - - ^Resources/ - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Resources/Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ - - nested - - weight - 10 - - ^.* - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^Resources/ - - weight - 20 - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Resources/Base\.lproj/ - - weight - 1010 - - ^[^/]+$ - - nested - - weight - 10 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/embedded.provisionprofile b/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/embedded.provisionprofile deleted file mode 100644 index fdef70d..0000000 Binary files a/Swiftier.xcarchive/Products/Applications/Swiftier.app/Contents/embedded.provisionprofile and /dev/null differ diff --git a/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Info.plist b/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Info.plist deleted file mode 100644 index 897bb32..0000000 --- a/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleIdentifier - com.apple.xcode.dsym.com.alick.swiftier - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - dSYM - CFBundleSignature - ???? - CFBundleShortVersionString - 2.9.9 - CFBundleVersion - 1 - - diff --git a/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/DWARF/Swiftier b/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/DWARF/Swiftier deleted file mode 100644 index c4c3f23..0000000 Binary files a/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/DWARF/Swiftier and /dev/null differ diff --git a/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/Relocations/aarch64/Swiftier.yml b/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/Relocations/aarch64/Swiftier.yml deleted file mode 100644 index 2c0ccff..0000000 --- a/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/Relocations/aarch64/Swiftier.yml +++ /dev/null @@ -1,2575 +0,0 @@ ---- -triple: 'arm64-apple-darwin' -binary-path: '/Users/alick/Library/Developer/Xcode/DerivedData/Swiftier-ctkjodxpxqqyhsbthnbqoqrbkuwb/Build/Intermediates.noindex/ArchiveIntermediates/Swiftier/InstallationBuildProductsLocation/Applications/Swiftier.app/Contents/MacOS/Swiftier' -relocations: - - { offset: 0xFE216, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier8LogLevelO_Tg5', symObjAddr: 0x170, symBinAddr: 0x1000018B8, symSize: 0x154 } - - { offset: 0xFE2AF, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysO_Tg5', symObjAddr: 0x2C4, symBinAddr: 0x100001A0C, symSize: 0x1AC } - - { offset: 0xFE374, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysO_Tg5', symObjAddr: 0x470, symBinAddr: 0x100001BB8, symSize: 0x150 } - - { offset: 0xFE461, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysO_Tg5', symObjAddr: 0x5C0, symBinAddr: 0x100001D08, symSize: 0x1A0 } - - { offset: 0xFE4FC, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysO_Tg5', symObjAddr: 0x760, symBinAddr: 0x100001EA8, symSize: 0x240 } - - { offset: 0xFE587, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysO_Tg5', symObjAddr: 0x9A0, symBinAddr: 0x1000020E8, symSize: 0x17C } - - { offset: 0xFE6A0, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysO_Tg5', symObjAddr: 0xB1C, symBinAddr: 0x100002264, symSize: 0x154 } - - { offset: 0xFE72B, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV10CodingKeysO_Tg5', symObjAddr: 0xC70, symBinAddr: 0x1000023B8, symSize: 0x278 } - - { offset: 0xFE805, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0xF1C, symBinAddr: 0x100002664, symSize: 0x5C } - - { offset: 0xFE828, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0xF78, symBinAddr: 0x1000026C0, symSize: 0x4C } - - { offset: 0xFE887, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE04hashB0Sivg8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysO_Tg5', symObjAddr: 0xFC4, symBinAddr: 0x10000270C, symSize: 0x10C } - - { offset: 0xFE93D, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE4hash4intoys6HasherVz_tF8Swiftier14EasyTierStatusV10CodingKeysO_Tg5', symObjAddr: 0x10D0, symBinAddr: 0x100002818, symSize: 0x120 } - - { offset: 0xFE9CE, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE08_rawHashB04seedS2i_tF8Swiftier14EasyTierStatusV10CodingKeysO_Tg5', symObjAddr: 0x11F0, symBinAddr: 0x100002938, symSize: 0x144 } - - { offset: 0xFEA91, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE08_rawHashB04seedS2i_tF8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysO_Tg5', symObjAddr: 0x1334, symBinAddr: 0x100002A7C, symSize: 0x138 } - - { offset: 0xFEB08, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE08_rawHashB04seedS2i_tF8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysO_Tg5', symObjAddr: 0x146C, symBinAddr: 0x100002BB4, symSize: 0x108 } - - { offset: 0xFEEBE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x1610, symBinAddr: 0x100002D58, symSize: 0x28 } - - { offset: 0xFEEDA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x1638, symBinAddr: 0x100002D80, symSize: 0x28 } - - { offset: 0xFEF51, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1A00, symBinAddr: 0x100003114, symSize: 0xC } - - { offset: 0xFEFB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x1A0C, symBinAddr: 0x100003120, symSize: 0xFC } - - { offset: 0xFF08B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x1B08, symBinAddr: 0x10000321C, symSize: 0xD8 } - - { offset: 0xFF11A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x1BE0, symBinAddr: 0x1000032F4, symSize: 0xF8 } - - { offset: 0xFF1D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x1EC4, symBinAddr: 0x1000035CC, symSize: 0x28 } - - { offset: 0xFF1EE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x1EEC, symBinAddr: 0x1000035F4, symSize: 0x28 } - - { offset: 0xFF216, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x208C, symBinAddr: 0x100003794, symSize: 0x90 } - - { offset: 0xFF3A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x2334, symBinAddr: 0x100003A30, symSize: 0x28 } - - { offset: 0xFF3C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x235C, symBinAddr: 0x100003A58, symSize: 0x28 } - - { offset: 0xFF40C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x25F0, symBinAddr: 0x100003CEC, symSize: 0x40 } - - { offset: 0xFF49A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x28CC, symBinAddr: 0x100003FBC, symSize: 0x28 } - - { offset: 0xFF4B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x28F4, symBinAddr: 0x100003FE4, symSize: 0x28 } - - { offset: 0xFF4FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x29FC, symBinAddr: 0x1000040EC, symSize: 0x58 } - - { offset: 0xFF703, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x30B4, symBinAddr: 0x100004764, symSize: 0x28 } - - { offset: 0xFF71F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x30DC, symBinAddr: 0x10000478C, symSize: 0x28 } - - { offset: 0xFF73B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x361C, symBinAddr: 0x100004CC0, symSize: 0x28 } - - { offset: 0xFF757, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x3644, symBinAddr: 0x100004CE8, symSize: 0x28 } - - { offset: 0xFF7A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x390C, symBinAddr: 0x100004FB0, symSize: 0x88 } - - { offset: 0xFF91B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x3B28, symBinAddr: 0x1000051B8, symSize: 0x28 } - - { offset: 0xFF937, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x3B50, symBinAddr: 0x1000051E0, symSize: 0x28 } - - { offset: 0xFF980, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x3DE0, symBinAddr: 0x100005470, symSize: 0x44 } - - { offset: 0xFFA84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x4260, symBinAddr: 0x1000058F0, symSize: 0xC } - - { offset: 0xFFAEB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x426C, symBinAddr: 0x1000058FC, symSize: 0xFC } - - { offset: 0xFFB8E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x4368, symBinAddr: 0x1000059F8, symSize: 0xD0 } - - { offset: 0xFFBED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x4438, symBinAddr: 0x100005AC8, symSize: 0xF8 } - - { offset: 0xFFC75, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs28CustomDebugStringConvertibleAAsAJP16debugDescriptionSSvgTW', symObjAddr: 0x4710, symBinAddr: 0x100005D94, symSize: 0x28 } - - { offset: 0xFFC91, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs23CustomStringConvertibleAAsAJP11descriptionSSvgTW', symObjAddr: 0x4738, symBinAddr: 0x100005DBC, symSize: 0x28 } - - { offset: 0xFFCDA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x4800, symBinAddr: 0x100005E84, symSize: 0x38 } - - { offset: 0xFFD34, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x4D84, symBinAddr: 0x100006408, symSize: 0xC } - - { offset: 0xFFD6E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x4D90, symBinAddr: 0x100006414, symSize: 0xC } - - { offset: 0xFFD8E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x4D90, symBinAddr: 0x100006414, symSize: 0xC } - - { offset: 0xFFDA2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x4D90, symBinAddr: 0x100006414, symSize: 0xC } - - { offset: 0xFFDB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x4D9C, symBinAddr: 0x100006420, symSize: 0x114 } - - { offset: 0xFFE03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x4EB0, symBinAddr: 0x100006534, symSize: 0x8 } - - { offset: 0xFFE1E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x510C, symBinAddr: 0x100006784, symSize: 0x28 } - - { offset: 0xFFE3A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x5134, symBinAddr: 0x1000067AC, symSize: 0x28 } - - { offset: 0xFFE83, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x5210, symBinAddr: 0x100006888, symSize: 0x38 } - - { offset: 0xFFF04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x5614, symBinAddr: 0x100006C8C, symSize: 0xC } - - { offset: 0xFFF20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x5620, symBinAddr: 0x100006C98, symSize: 0x8 } - - { offset: 0xFFF3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x5628, symBinAddr: 0x100006CA0, symSize: 0xDC } - - { offset: 0xFFFB1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x5704, symBinAddr: 0x100006D7C, symSize: 0x8 } - - { offset: 0xFFFCC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x58F0, symBinAddr: 0x100006F5C, symSize: 0x28 } - - { offset: 0xFFFE8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x5918, symBinAddr: 0x100006F84, symSize: 0x28 } - - { offset: 0x100031, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x59E0, symBinAddr: 0x10000704C, symSize: 0x38 } - - { offset: 0x10008B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x63A8, symBinAddr: 0x100007A04, symSize: 0x28 } - - { offset: 0x1000A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x63D0, symBinAddr: 0x100007A2C, symSize: 0x28 } - - { offset: 0x1000F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x64E0, symBinAddr: 0x100007B3C, symSize: 0x38 } - - { offset: 0x10017F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x6930, symBinAddr: 0x100007F8C, symSize: 0xC } - - { offset: 0x1001E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x693C, symBinAddr: 0x100007F98, symSize: 0xCC } - - { offset: 0x1002A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x6A08, symBinAddr: 0x100008064, symSize: 0xA8 } - - { offset: 0x100326, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x6AB0, symBinAddr: 0x10000810C, symSize: 0xC8 } - - { offset: 0x1003CD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x6CE8, symBinAddr: 0x100008338, symSize: 0x28 } - - { offset: 0x1003E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x6D10, symBinAddr: 0x100008360, symSize: 0x28 } - - { offset: 0x100432, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x6DCC, symBinAddr: 0x10000841C, symSize: 0x38 } - - { offset: 0x10048C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x76AC, symBinAddr: 0x100008CE0, symSize: 0x28 } - - { offset: 0x1004A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x76D4, symBinAddr: 0x100008D08, symSize: 0x28 } - - { offset: 0x1004F1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x77B0, symBinAddr: 0x100008DE4, symSize: 0x38 } - - { offset: 0x100536, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x803C, symBinAddr: 0x1000095B8, symSize: 0x28 } - - { offset: 0x100552, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x8064, symBinAddr: 0x1000095E0, symSize: 0x28 } - - { offset: 0x1005A2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8214, symBinAddr: 0x100009790, symSize: 0x9C } - - { offset: 0x10068B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x8310, symBinAddr: 0x100009880, symSize: 0x11C } - - { offset: 0x1007A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x842C, symBinAddr: 0x10000999C, symSize: 0xB4 } - - { offset: 0x100855, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x84E0, symBinAddr: 0x100009A50, symSize: 0x90 } - - { offset: 0x1008C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8570, symBinAddr: 0x100009AE0, symSize: 0xB0 } - - { offset: 0x10095E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x876C, symBinAddr: 0x100009CD0, symSize: 0x28 } - - { offset: 0x10097A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x8794, symBinAddr: 0x100009CF8, symSize: 0x28 } - - { offset: 0x1009C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x88E8, symBinAddr: 0x100009E4C, symSize: 0x7C } - - { offset: 0x100B2E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x8A48, symBinAddr: 0x100009FAC, symSize: 0xC } - - { offset: 0x100B95, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x8A54, symBinAddr: 0x100009FB8, symSize: 0xD0 } - - { offset: 0x100C28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x8B24, symBinAddr: 0x10000A088, symSize: 0xAC } - - { offset: 0x100C77, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8BD0, symBinAddr: 0x10000A134, symSize: 0xCC } - - { offset: 0x100CEF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x8E24, symBinAddr: 0x10000A37C, symSize: 0x28 } - - { offset: 0x100D0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x8E4C, symBinAddr: 0x10000A3A4, symSize: 0x28 } - - { offset: 0x100D54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8FB8, symBinAddr: 0x10000A510, symSize: 0x88 } - - { offset: 0x100E7F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x9080, symBinAddr: 0x10000A5D8, symSize: 0xC } - - { offset: 0x100EB9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x908C, symBinAddr: 0x10000A5E4, symSize: 0xC } - - { offset: 0x100ED9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x908C, symBinAddr: 0x10000A5E4, symSize: 0xC } - - { offset: 0x100EED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x908C, symBinAddr: 0x10000A5E4, symSize: 0xC } - - { offset: 0x100EFF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x9098, symBinAddr: 0x10000A5F0, symSize: 0x8 } - - { offset: 0x100F13, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x90A0, symBinAddr: 0x10000A5F8, symSize: 0x8 } - - { offset: 0x100F2E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs28CustomDebugStringConvertibleAAsAFP16debugDescriptionSSvgTW', symObjAddr: 0x9314, symBinAddr: 0x10000A860, symSize: 0x28 } - - { offset: 0x100F4A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x933C, symBinAddr: 0x10000A888, symSize: 0x28 } - - { offset: 0x100F7C, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas21_ObjectiveCBridgeableSCsACP09_bridgeToD1C01_D5CTypeQzyFTW', symObjAddr: 0xA120, symBinAddr: 0x10000AFDC, symSize: 0x8 } - - { offset: 0x100FED, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas21_ObjectiveCBridgeableSCsACP016_forceBridgeFromD1C_6resulty01_D5CTypeQz_xSgztFZTW', symObjAddr: 0xA128, symBinAddr: 0x10000AFE4, symSize: 0x74 } - - { offset: 0x10109B, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas21_ObjectiveCBridgeableSCsACP024_conditionallyBridgeFromD1C_6resultSb01_D5CTypeQz_xSgztFZTW', symObjAddr: 0xA19C, symBinAddr: 0x10000B058, symSize: 0x7C } - - { offset: 0x101149, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas21_ObjectiveCBridgeableSCsACP026_unconditionallyBridgeFromD1Cyx01_D5CTypeQzSgFZTW', symObjAddr: 0xA218, symBinAddr: 0x10000B0D4, symSize: 0x40 } - - { offset: 0x1011C8, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSHSCSH9hashValueSivgTW', symObjAddr: 0xA258, symBinAddr: 0x10000B114, symSize: 0x38 } - - { offset: 0x101246, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSHSCSH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xA290, symBinAddr: 0x10000B14C, symSize: 0x40 } - - { offset: 0x1012C4, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSHSCSH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0xA2D0, symBinAddr: 0x10000B18C, symSize: 0x70 } - - { offset: 0x101342, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSQSCSQ2eeoiySbx_xtFZTW', symObjAddr: 0xA360, symBinAddr: 0x10000B1FC, symSize: 0x84 } - - { offset: 0x1013EC, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas35_HasCustomAnyHashableRepresentationSCsACP03_toefG0s0fG0VSgyFTW', symObjAddr: 0xA450, symBinAddr: 0x10000B2EC, symSize: 0x84 } - - { offset: 0x101408, size: 0x8, addend: 0x0, symName: '_$sSS7cStringSSSays4Int8VG_tcfCTf4gn_n', symObjAddr: 0xA848, symBinAddr: 0x10000B6E4, symSize: 0x4C } - - { offset: 0x103D53, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4TextV7StorageOWOy', symObjAddr: 0xEC98, symBinAddr: 0x10000FB34, symSize: 0x10 } - - { offset: 0x103D67, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameV2, symObjAddr: 0xED9C, symBinAddr: 0x10000FC38, symSize: 0x50 } - - { offset: 0x103D7B, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstractV2, symObjAddr: 0xEDEC, symBinAddr: 0x10000FC88, symSize: 0x54 } - - { offset: 0x103D8F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier14PeerDetailViewVAA12_FrameLayoutVGACyxq_GAA0H0A2aKRzAA0H8ModifierR_rlWl', symObjAddr: 0xEE40, symBinAddr: 0x10000FCDC, symSize: 0x90 } - - { offset: 0x103DA3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwxx', symObjAddr: 0xEF10, symBinAddr: 0x10000FDAC, symSize: 0x60 } - - { offset: 0x103DB7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwcp', symObjAddr: 0xEF70, symBinAddr: 0x10000FE0C, symSize: 0x128 } - - { offset: 0x103DCB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwca', symObjAddr: 0xF098, symBinAddr: 0x10000FF34, symSize: 0x228 } - - { offset: 0x103DDF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVWOh', symObjAddr: 0xF2C0, symBinAddr: 0x10001015C, symSize: 0x2C } - - { offset: 0x103DF3, size: 0x8, addend: 0x0, symName: ___swift_memcpy192_8, symObjAddr: 0xF2EC, symBinAddr: 0x100010188, symSize: 0x34 } - - { offset: 0x103E07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwta', symObjAddr: 0xF320, symBinAddr: 0x1000101BC, symSize: 0x140 } - - { offset: 0x103E1B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwet', symObjAddr: 0xF460, symBinAddr: 0x1000102FC, symSize: 0x48 } - - { offset: 0x103E2F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwst', symObjAddr: 0xF4A8, symBinAddr: 0x100010344, symSize: 0x70 } - - { offset: 0x103E43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVMa', symObjAddr: 0xF518, symBinAddr: 0x1000103B4, symSize: 0x10 } - - { offset: 0x103E57, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwxx', symObjAddr: 0xF554, symBinAddr: 0x1000103F0, symSize: 0x30 } - - { offset: 0x103E6B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwcp', symObjAddr: 0xF584, symBinAddr: 0x100010420, symSize: 0x6C } - - { offset: 0x103E7F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwca', symObjAddr: 0xF5F0, symBinAddr: 0x10001048C, symSize: 0x94 } - - { offset: 0x103E93, size: 0x8, addend: 0x0, symName: ___swift_memcpy56_8, symObjAddr: 0xF684, symBinAddr: 0x100010520, symSize: 0x1C } - - { offset: 0x103EA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwta', symObjAddr: 0xF6A0, symBinAddr: 0x10001053C, symSize: 0x6C } - - { offset: 0x103EBB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwet', symObjAddr: 0xF70C, symBinAddr: 0x1000105A8, symSize: 0x5C } - - { offset: 0x103ECF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwst', symObjAddr: 0xF768, symBinAddr: 0x100010604, symSize: 0x60 } - - { offset: 0x103EE3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVMa', symObjAddr: 0xF7C8, symBinAddr: 0x100010664, symSize: 0x10 } - - { offset: 0x103EF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwxx', symObjAddr: 0xF7D8, symBinAddr: 0x100010674, symSize: 0x60 } - - { offset: 0x103F0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwcp', symObjAddr: 0xF838, symBinAddr: 0x1000106D4, symSize: 0x17C } - - { offset: 0x103F1F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwca', symObjAddr: 0xF9B4, symBinAddr: 0x100010850, symSize: 0x254 } - - { offset: 0x103F3A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVWOh', symObjAddr: 0xFC08, symBinAddr: 0x100010AA4, symSize: 0x30 } - - { offset: 0x103F63, size: 0x8, addend: 0x0, symName: ___swift_memcpy296_8, symObjAddr: 0xFC38, symBinAddr: 0x100010AD4, symSize: 0x8 } - - { offset: 0x103F77, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwta', symObjAddr: 0xFC40, symBinAddr: 0x100010ADC, symSize: 0x184 } - - { offset: 0x103F8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwet', symObjAddr: 0xFDC4, symBinAddr: 0x100010C60, symSize: 0x48 } - - { offset: 0x103F9F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwst', symObjAddr: 0xFE0C, symBinAddr: 0x100010CA8, symSize: 0x8C } - - { offset: 0x103FB3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVMa', symObjAddr: 0xFE98, symBinAddr: 0x100010D34, symSize: 0x10 } - - { offset: 0x103FC7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVwxx', symObjAddr: 0xFEA8, symBinAddr: 0x100010D44, symSize: 0x28 } - - { offset: 0x103FDB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVwcp', symObjAddr: 0xFED0, symBinAddr: 0x100010D6C, symSize: 0x4C } - - { offset: 0x103FEF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVwca', symObjAddr: 0xFF1C, symBinAddr: 0x100010DB8, symSize: 0x74 } - - { offset: 0x104003, size: 0x8, addend: 0x0, symName: ___swift_memcpy48_8, symObjAddr: 0xFF90, symBinAddr: 0x100010E2C, symSize: 0x14 } - - { offset: 0x104017, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVwta', symObjAddr: 0xFFA4, symBinAddr: 0x100010E40, symSize: 0x54 } - - { offset: 0x10402B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVMa', symObjAddr: 0xFFF8, symBinAddr: 0x100010E94, symSize: 0x10 } - - { offset: 0x10403F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVs12IdentifiableAA2IDsAFP_SHWT', symObjAddr: 0x10008, symBinAddr: 0x100010EA4, symSize: 0xC } - - { offset: 0x104053, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSHAASQWb', symObjAddr: 0x10014, symBinAddr: 0x100010EB0, symSize: 0x4 } - - { offset: 0x104067, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVAESQAAWl', symObjAddr: 0x10018, symBinAddr: 0x100010EB4, symSize: 0x40 } - - { offset: 0x10407B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSHAASQWb', symObjAddr: 0x10064, symBinAddr: 0x100010EF4, symSize: 0x4 } - - { offset: 0x10408F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVAESQAAWl', symObjAddr: 0x10068, symBinAddr: 0x100010EF8, symSize: 0x40 } - - { offset: 0x1040A3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSHAASQWb', symObjAddr: 0x100A8, symBinAddr: 0x100010F38, symSize: 0x4 } - - { offset: 0x1040B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVAGSQAAWl', symObjAddr: 0x100AC, symBinAddr: 0x100010F3C, symSize: 0x40 } - - { offset: 0x1040CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSHAASQWb', symObjAddr: 0x100EC, symBinAddr: 0x100010F7C, symSize: 0x4 } - - { offset: 0x1040DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVAESQAAWl', symObjAddr: 0x100F0, symBinAddr: 0x100010F80, symSize: 0x40 } - - { offset: 0x1040F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSgWOe', symObjAddr: 0x10130, symBinAddr: 0x100010FC0, symSize: 0x30 } - - { offset: 0x104107, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVWOc', symObjAddr: 0x10160, symBinAddr: 0x100010FF0, symSize: 0x34 } - - { offset: 0x10411B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVWOh', symObjAddr: 0x10194, symBinAddr: 0x100011024, symSize: 0x2C } - - { offset: 0x10412F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSgWOy', symObjAddr: 0x101C0, symBinAddr: 0x100011050, symSize: 0x3C } - - { offset: 0x104143, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSgWOe', symObjAddr: 0x101FC, symBinAddr: 0x10001108C, symSize: 0x3C } - - { offset: 0x104157, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSgWOe', symObjAddr: 0x10238, symBinAddr: 0x1000110C8, symSize: 0x40 } - - { offset: 0x10416B, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_1, symObjAddr: 0x10278, symBinAddr: 0x100011108, symSize: 0x24 } - - { offset: 0x10417F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x1029C, symBinAddr: 0x10001112C, symSize: 0x40 } - - { offset: 0x104193, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_1, symObjAddr: 0x102DC, symBinAddr: 0x10001116C, symSize: 0x20 } - - { offset: 0x1041A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVAESeAAWl', symObjAddr: 0x102FC, symBinAddr: 0x10001118C, symSize: 0x40 } - - { offset: 0x1041BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVAGSeAAWl', symObjAddr: 0x1033C, symBinAddr: 0x1000111CC, symSize: 0x40 } - - { offset: 0x1041CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVAESeAAWl', symObjAddr: 0x1037C, symBinAddr: 0x10001120C, symSize: 0x40 } - - { offset: 0x1041E3, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV3UrlVGSayxGSesSeRzlWl', symObjAddr: 0x103BC, symBinAddr: 0x10001124C, symSize: 0x70 } - - { offset: 0x1041F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVAESeAAWl', symObjAddr: 0x1042C, symBinAddr: 0x1000112BC, symSize: 0x40 } - - { offset: 0x10420B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVWOc', symObjAddr: 0x1046C, symBinAddr: 0x1000112FC, symSize: 0x34 } - - { offset: 0x10421F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVWOh', symObjAddr: 0x104A0, symBinAddr: 0x100011330, symSize: 0x2C } - - { offset: 0x104233, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVAESEAAWl', symObjAddr: 0x104CC, symBinAddr: 0x10001135C, symSize: 0x40 } - - { offset: 0x104247, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVAGSEAAWl', symObjAddr: 0x1050C, symBinAddr: 0x10001139C, symSize: 0x40 } - - { offset: 0x10425B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVAESEAAWl', symObjAddr: 0x1054C, symBinAddr: 0x1000113DC, symSize: 0x40 } - - { offset: 0x10426F, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV3UrlVGSayxGSEsSERzlWl', symObjAddr: 0x1058C, symBinAddr: 0x10001141C, symSize: 0x70 } - - { offset: 0x104283, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVAESEAAWl', symObjAddr: 0x105FC, symBinAddr: 0x10001148C, symSize: 0x40 } - - { offset: 0x104297, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOAIs0H3KeyAAWl', symObjAddr: 0x1063C, symBinAddr: 0x1000114CC, symSize: 0x40 } - - { offset: 0x1042AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVAESeAAWl', symObjAddr: 0x1067C, symBinAddr: 0x10001150C, symSize: 0x40 } - - { offset: 0x1042BF, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8IPv4AddrVGSayxGSesSeRzlWl', symObjAddr: 0x106BC, symBinAddr: 0x10001154C, symSize: 0x70 } - - { offset: 0x1042D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVAESeAAWl', symObjAddr: 0x1072C, symBinAddr: 0x1000115BC, symSize: 0x40 } - - { offset: 0x1042E7, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8IPv6AddrVGSayxGSesSeRzlWl', symObjAddr: 0x1076C, symBinAddr: 0x1000115FC, symSize: 0x70 } - - { offset: 0x1042FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVWOc', symObjAddr: 0x107DC, symBinAddr: 0x10001166C, symSize: 0x34 } - - { offset: 0x10430F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVAESEAAWl', symObjAddr: 0x10810, symBinAddr: 0x1000116A0, symSize: 0x40 } - - { offset: 0x104323, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8IPv4AddrVGSayxGSEsSERzlWl', symObjAddr: 0x10850, symBinAddr: 0x1000116E0, symSize: 0x70 } - - { offset: 0x104337, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVAESEAAWl', symObjAddr: 0x108C0, symBinAddr: 0x100011750, symSize: 0x40 } - - { offset: 0x10434B, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8IPv6AddrVGSayxGSEsSERzlWl', symObjAddr: 0x10900, symBinAddr: 0x100011790, symSize: 0x70 } - - { offset: 0x10435F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0H3KeyAAWl', symObjAddr: 0x10970, symBinAddr: 0x100011800, symSize: 0x40 } - - { offset: 0x104373, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVAESeAAWl', symObjAddr: 0x109B0, symBinAddr: 0x100011840, symSize: 0x40 } - - { offset: 0x104387, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVAESeAAWl', symObjAddr: 0x109F0, symBinAddr: 0x100011880, symSize: 0x40 } - - { offset: 0x10439B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVWOh', symObjAddr: 0x10A30, symBinAddr: 0x1000118C0, symSize: 0x2C } - - { offset: 0x1043AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVWOc', symObjAddr: 0x10A5C, symBinAddr: 0x1000118EC, symSize: 0x34 } - - { offset: 0x1043C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVWOh', symObjAddr: 0x10A90, symBinAddr: 0x100011920, symSize: 0x2C } - - { offset: 0x1043D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVWOc', symObjAddr: 0x10ABC, symBinAddr: 0x10001194C, symSize: 0x34 } - - { offset: 0x1043EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVAESEAAWl', symObjAddr: 0x10AF0, symBinAddr: 0x100011980, symSize: 0x40 } - - { offset: 0x1043FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVAESEAAWl', symObjAddr: 0x10B30, symBinAddr: 0x1000119C0, symSize: 0x40 } - - { offset: 0x104413, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x10B70, symBinAddr: 0x100011A00, symSize: 0x40 } - - { offset: 0x104427, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV12PeerConnInfoVGSayxGSesSeRzlWl', symObjAddr: 0x10BB0, symBinAddr: 0x100011A40, symSize: 0x70 } - - { offset: 0x10443B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVAESeAAWl', symObjAddr: 0x10C20, symBinAddr: 0x100011AB0, symSize: 0x40 } - - { offset: 0x10444F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVAESeAAWl', symObjAddr: 0x10C60, symBinAddr: 0x100011AF0, symSize: 0x40 } - - { offset: 0x104463, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV4UUIDVGSayxGSesSeRzlWl', symObjAddr: 0x10CA0, symBinAddr: 0x100011B30, symSize: 0x70 } - - { offset: 0x104477, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV12PeerConnInfoVGSayxGSEsSERzlWl', symObjAddr: 0x10D10, symBinAddr: 0x100011BA0, symSize: 0x70 } - - { offset: 0x10448B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVAESEAAWl', symObjAddr: 0x10D80, symBinAddr: 0x100011C10, symSize: 0x40 } - - { offset: 0x10449F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVAESEAAWl', symObjAddr: 0x10DC0, symBinAddr: 0x100011C50, symSize: 0x40 } - - { offset: 0x1044B3, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV4UUIDVGSayxGSEsSERzlWl', symObjAddr: 0x10E00, symBinAddr: 0x100011C90, symSize: 0x70 } - - { offset: 0x1044C7, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_8, symObjAddr: 0x10E84, symBinAddr: 0x100011D14, symSize: 0xC } - - { offset: 0x1044DB, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x10E90, symBinAddr: 0x100011D20, symSize: 0x4 } - - { offset: 0x1044EF, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x10EBC, symBinAddr: 0x100011D4C, symSize: 0xC } - - { offset: 0x104503, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOwup', symObjAddr: 0x10EC8, symBinAddr: 0x100011D58, symSize: 0x4 } - - { offset: 0x104517, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOMa', symObjAddr: 0x10ECC, symBinAddr: 0x100011D5C, symSize: 0x10 } - - { offset: 0x10452B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x10EFC, symBinAddr: 0x100011D88, symSize: 0x10 } - - { offset: 0x10453F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOMa', symObjAddr: 0x10F20, symBinAddr: 0x100011DA0, symSize: 0x10 } - - { offset: 0x104553, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOwet', symObjAddr: 0x10F30, symBinAddr: 0x100011DB0, symSize: 0x90 } - - { offset: 0x104567, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOwst', symObjAddr: 0x10FC0, symBinAddr: 0x100011E40, symSize: 0xB0 } - - { offset: 0x10457B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOMa', symObjAddr: 0x11074, symBinAddr: 0x100011EF0, symSize: 0x10 } - - { offset: 0x10458F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwxx', symObjAddr: 0x11098, symBinAddr: 0x100011F14, symSize: 0x8 } - - { offset: 0x1045A3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwcp', symObjAddr: 0x110A0, symBinAddr: 0x100011F1C, symSize: 0x54 } - - { offset: 0x1045B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwca', symObjAddr: 0x110F4, symBinAddr: 0x100011F70, symSize: 0x7C } - - { offset: 0x1045CB, size: 0x8, addend: 0x0, symName: ___swift_memcpy49_8, symObjAddr: 0x11170, symBinAddr: 0x100011FEC, symSize: 0x1C } - - { offset: 0x1045DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwta', symObjAddr: 0x1118C, symBinAddr: 0x100012008, symSize: 0x64 } - - { offset: 0x1045F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwet', symObjAddr: 0x111F0, symBinAddr: 0x10001206C, symSize: 0x48 } - - { offset: 0x104607, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwst', symObjAddr: 0x11238, symBinAddr: 0x1000120B4, symSize: 0x50 } - - { offset: 0x10461B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVMa', symObjAddr: 0x11288, symBinAddr: 0x100012104, symSize: 0x10 } - - { offset: 0x10462F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVMa', symObjAddr: 0x112E0, symBinAddr: 0x10001215C, symSize: 0x10 } - - { offset: 0x104643, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwxx', symObjAddr: 0x1131C, symBinAddr: 0x100012198, symSize: 0x8 } - - { offset: 0x104657, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwca', symObjAddr: 0x11324, symBinAddr: 0x1000121A0, symSize: 0x40 } - - { offset: 0x10466B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwta', symObjAddr: 0x11364, symBinAddr: 0x1000121E0, symSize: 0x30 } - - { offset: 0x10467F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwet', symObjAddr: 0x11394, symBinAddr: 0x100012210, symSize: 0x48 } - - { offset: 0x104693, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwst', symObjAddr: 0x113DC, symBinAddr: 0x100012258, symSize: 0x3C } - - { offset: 0x1046A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVMa', symObjAddr: 0x11418, symBinAddr: 0x100012294, symSize: 0x10 } - - { offset: 0x1046BB, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_4, symObjAddr: 0x11428, symBinAddr: 0x1000122A4, symSize: 0xC } - - { offset: 0x1046CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVMa', symObjAddr: 0x11434, symBinAddr: 0x1000122B0, symSize: 0x10 } - - { offset: 0x1046E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVMa', symObjAddr: 0x11444, symBinAddr: 0x1000122C0, symSize: 0x10 } - - { offset: 0x1046F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVMa', symObjAddr: 0x1147C, symBinAddr: 0x1000122D0, symSize: 0x10 } - - { offset: 0x10470B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwxx', symObjAddr: 0x1148C, symBinAddr: 0x1000122E0, symSize: 0x4C } - - { offset: 0x10471F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwcp', symObjAddr: 0x114D8, symBinAddr: 0x10001232C, symSize: 0xD8 } - - { offset: 0x104733, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwca', symObjAddr: 0x115B0, symBinAddr: 0x100012404, symSize: 0x1A4 } - - { offset: 0x104747, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVWOh', symObjAddr: 0x11754, symBinAddr: 0x1000125A8, symSize: 0x2C } - - { offset: 0x10475B, size: 0x8, addend: 0x0, symName: ___swift_memcpy169_8, symObjAddr: 0x11780, symBinAddr: 0x1000125D4, symSize: 0x3C } - - { offset: 0x10476F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwta', symObjAddr: 0x117BC, symBinAddr: 0x100012610, symSize: 0xDC } - - { offset: 0x104783, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwet', symObjAddr: 0x11898, symBinAddr: 0x1000126EC, symSize: 0x48 } - - { offset: 0x104797, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwst', symObjAddr: 0x118E0, symBinAddr: 0x100012734, symSize: 0x6C } - - { offset: 0x1047AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVMa', symObjAddr: 0x1194C, symBinAddr: 0x1000127A0, symSize: 0x10 } - - { offset: 0x1047BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVwxx', symObjAddr: 0x1195C, symBinAddr: 0x1000127B0, symSize: 0x30 } - - { offset: 0x1047D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVwcp', symObjAddr: 0x1198C, symBinAddr: 0x1000127E0, symSize: 0x54 } - - { offset: 0x1047E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVwca', symObjAddr: 0x119E0, symBinAddr: 0x100012834, symSize: 0x8C } - - { offset: 0x1047FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVwta', symObjAddr: 0x11A6C, symBinAddr: 0x1000128C0, symSize: 0x54 } - - { offset: 0x10480F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVMa', symObjAddr: 0x11B5C, symBinAddr: 0x1000129B0, symSize: 0x10 } - - { offset: 0x104823, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwxx', symObjAddr: 0x11B6C, symBinAddr: 0x1000129C0, symSize: 0x40 } - - { offset: 0x104837, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwcp', symObjAddr: 0x11BAC, symBinAddr: 0x100012A00, symSize: 0x114 } - - { offset: 0x10484B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwca', symObjAddr: 0x11CC0, symBinAddr: 0x100012B14, symSize: 0x174 } - - { offset: 0x10485F, size: 0x8, addend: 0x0, symName: ___swift_memcpy246_8, symObjAddr: 0x11E34, symBinAddr: 0x100012C88, symSize: 0x4C } - - { offset: 0x104873, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwta', symObjAddr: 0x11E80, symBinAddr: 0x100012CD4, symSize: 0x114 } - - { offset: 0x104887, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwet', symObjAddr: 0x11F94, symBinAddr: 0x100012DE8, symSize: 0x48 } - - { offset: 0x10489B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwst', symObjAddr: 0x11FDC, symBinAddr: 0x100012E30, symSize: 0x84 } - - { offset: 0x1048AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVMa', symObjAddr: 0x12060, symBinAddr: 0x100012EB4, symSize: 0x10 } - - { offset: 0x1048C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwxx', symObjAddr: 0x12070, symBinAddr: 0x100012EC4, symSize: 0x94 } - - { offset: 0x1048D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwcp', symObjAddr: 0x12104, symBinAddr: 0x100012F58, symSize: 0x1B8 } - - { offset: 0x1048EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwca', symObjAddr: 0x122BC, symBinAddr: 0x100013110, symSize: 0x478 } - - { offset: 0x1048FF, size: 0x8, addend: 0x0, symName: ___swift_memcpy264_8, symObjAddr: 0x12734, symBinAddr: 0x100013588, symSize: 0x8 } - - { offset: 0x104913, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwta', symObjAddr: 0x1273C, symBinAddr: 0x100013590, symSize: 0x1F0 } - - { offset: 0x104927, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwet', symObjAddr: 0x1292C, symBinAddr: 0x100013780, symSize: 0x48 } - - { offset: 0x10493B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwst', symObjAddr: 0x12974, symBinAddr: 0x1000137C8, symSize: 0x80 } - - { offset: 0x10494F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVMa', symObjAddr: 0x129F4, symBinAddr: 0x100013848, symSize: 0x10 } - - { offset: 0x104963, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSHAASQWb', symObjAddr: 0x12A10, symBinAddr: 0x100013858, symSize: 0x4 } - - { offset: 0x104977, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVAESQAAWl', symObjAddr: 0x12A14, symBinAddr: 0x10001385C, symSize: 0x40 } - - { offset: 0x10498B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSHAASQWb', symObjAddr: 0x12A54, symBinAddr: 0x10001389C, symSize: 0x4 } - - { offset: 0x10499F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVAESQAAWl', symObjAddr: 0x12A58, symBinAddr: 0x1000138A0, symSize: 0x40 } - - { offset: 0x1049B3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSHAASQWb', symObjAddr: 0x12A98, symBinAddr: 0x1000138E0, symSize: 0x4 } - - { offset: 0x1049C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVAESQAAWl', symObjAddr: 0x12A9C, symBinAddr: 0x1000138E4, symSize: 0x40 } - - { offset: 0x1049DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVSHAASQWb', symObjAddr: 0x12ADC, symBinAddr: 0x100013924, symSize: 0x4 } - - { offset: 0x1049EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVAESQAAWl', symObjAddr: 0x12AE0, symBinAddr: 0x100013928, symSize: 0x40 } - - { offset: 0x104A03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSHAASQWb', symObjAddr: 0x12B20, symBinAddr: 0x100013968, symSize: 0x4 } - - { offset: 0x104A17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVAESQAAWl', symObjAddr: 0x12B24, symBinAddr: 0x10001396C, symSize: 0x40 } - - { offset: 0x104A2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVSHAASQWb', symObjAddr: 0x12B64, symBinAddr: 0x1000139AC, symSize: 0x4 } - - { offset: 0x104A3F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVAESQAAWl', symObjAddr: 0x12B68, symBinAddr: 0x1000139B0, symSize: 0x40 } - - { offset: 0x104A53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSHAASQWb', symObjAddr: 0x12BA8, symBinAddr: 0x1000139F0, symSize: 0x4 } - - { offset: 0x104A67, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVAESQAAWl', symObjAddr: 0x12BAC, symBinAddr: 0x1000139F4, symSize: 0x40 } - - { offset: 0x104A7B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSHAASQWb', symObjAddr: 0x12BEC, symBinAddr: 0x100013A34, symSize: 0x4 } - - { offset: 0x104A8F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVAESQAAWl', symObjAddr: 0x12BF0, symBinAddr: 0x100013A38, symSize: 0x40 } - - { offset: 0x104AA3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSHAASQWb', symObjAddr: 0x12C30, symBinAddr: 0x100013A78, symSize: 0x4 } - - { offset: 0x104AB7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVAESQAAWl', symObjAddr: 0x12C34, symBinAddr: 0x100013A7C, symSize: 0x40 } - - { offset: 0x104ACB, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas20_SwiftNewtypeWrapperSCSYWb', symObjAddr: 0x12C74, symBinAddr: 0x100013ABC, symSize: 0x2C } - - { offset: 0x104ADF, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas20_SwiftNewtypeWrapperSCs35_HasCustomAnyHashableRepresentationPWb', symObjAddr: 0x12CA0, symBinAddr: 0x100013AE8, symSize: 0x2C } - - { offset: 0x104AF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x12CCC, symBinAddr: 0x100013B14, symSize: 0x4 } - - { offset: 0x104B07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x12CD0, symBinAddr: 0x100013B18, symSize: 0x40 } - - { offset: 0x104B1B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSHAASQWb', symObjAddr: 0x12D10, symBinAddr: 0x100013B58, symSize: 0x4 } - - { offset: 0x104B2F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOAISQAAWl', symObjAddr: 0x12D14, symBinAddr: 0x100013B5C, symSize: 0x40 } - - { offset: 0x104B43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x12D54, symBinAddr: 0x100013B9C, symSize: 0x4 } - - { offset: 0x104B57, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x12D58, symBinAddr: 0x100013BA0, symSize: 0x40 } - - { offset: 0x104B6B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x12D98, symBinAddr: 0x100013BE0, symSize: 0x4 } - - { offset: 0x104B7F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x12D9C, symBinAddr: 0x100013BE4, symSize: 0x40 } - - { offset: 0x104B93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x12DDC, symBinAddr: 0x100013C24, symSize: 0x4 } - - { offset: 0x104BA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x12DE0, symBinAddr: 0x100013C28, symSize: 0x40 } - - { offset: 0x104BBB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x12E20, symBinAddr: 0x100013C68, symSize: 0x4 } - - { offset: 0x104BCF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x12E24, symBinAddr: 0x100013C6C, symSize: 0x40 } - - { offset: 0x104BE3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x12E64, symBinAddr: 0x100013CAC, symSize: 0x4 } - - { offset: 0x104BF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x12E68, symBinAddr: 0x100013CB0, symSize: 0x40 } - - { offset: 0x104C0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x12EA8, symBinAddr: 0x100013CF0, symSize: 0x4 } - - { offset: 0x104C1F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x12EAC, symBinAddr: 0x100013CF4, symSize: 0x40 } - - { offset: 0x104C33, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x12EEC, symBinAddr: 0x100013D34, symSize: 0x4 } - - { offset: 0x104C47, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOAIs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x12EF0, symBinAddr: 0x100013D38, symSize: 0x40 } - - { offset: 0x104C5B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x12F30, symBinAddr: 0x100013D78, symSize: 0x4 } - - { offset: 0x104C6F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOAIs23CustomStringConvertibleAAWl', symObjAddr: 0x12F34, symBinAddr: 0x100013D7C, symSize: 0x40 } - - { offset: 0x104C83, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x12F74, symBinAddr: 0x100013DBC, symSize: 0x4 } - - { offset: 0x104C97, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x12F78, symBinAddr: 0x100013DC0, symSize: 0x40 } - - { offset: 0x104CAB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x12FB8, symBinAddr: 0x100013E00, symSize: 0x4 } - - { offset: 0x104CBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x12FBC, symBinAddr: 0x100013E04, symSize: 0x40 } - - { offset: 0x104CD3, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSHSCSQWb', symObjAddr: 0x12FFC, symBinAddr: 0x100013E44, symSize: 0x2C } - - { offset: 0x104CE7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSgWOi0_', symObjAddr: 0x13028, symBinAddr: 0x100013E70, symSize: 0x20 } - - { offset: 0x104CFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOAEs0E3KeyAAWl', symObjAddr: 0x13048, symBinAddr: 0x100013E90, symSize: 0x40 } - - { offset: 0x104D0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSgWOh', symObjAddr: 0x13088, symBinAddr: 0x100013ED0, symSize: 0x48 } - - { offset: 0x104D23, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVAESeAAWl', symObjAddr: 0x130D0, symBinAddr: 0x100013F18, symSize: 0x40 } - - { offset: 0x104D37, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV5RouteVGSayxGSesSeRzlWl', symObjAddr: 0x13110, symBinAddr: 0x100013F58, symSize: 0x70 } - - { offset: 0x104D4B, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8PeerInfoVGSayxGSesSeRzlWl', symObjAddr: 0x13180, symBinAddr: 0x100013FC8, symSize: 0x70 } - - { offset: 0x104D5F, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV13PeerRoutePairVGSayxGSesSeRzlWl', symObjAddr: 0x131F0, symBinAddr: 0x100014038, symSize: 0x70 } - - { offset: 0x104D73, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVAESeAAWl', symObjAddr: 0x13260, symBinAddr: 0x1000140A8, symSize: 0x40 } - - { offset: 0x104D87, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVWOc', symObjAddr: 0x132A0, symBinAddr: 0x1000140E8, symSize: 0x34 } - - { offset: 0x104D9B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVWOh', symObjAddr: 0x132D4, symBinAddr: 0x10001411C, symSize: 0x2C } - - { offset: 0x104DAF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x13300, symBinAddr: 0x100014148, symSize: 0x40 } - - { offset: 0x104DC3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOAGs0F3KeyAAWl', symObjAddr: 0x13340, symBinAddr: 0x100014188, symSize: 0x40 } - - { offset: 0x104DD7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOAESeAAWl', symObjAddr: 0x13380, symBinAddr: 0x1000141C8, symSize: 0x40 } - - { offset: 0x104DEB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0F3KeyAAWl', symObjAddr: 0x133C0, symBinAddr: 0x100014208, symSize: 0x40 } - - { offset: 0x104DFF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOAESEAAWl', symObjAddr: 0x13400, symBinAddr: 0x100014248, symSize: 0x40 } - - { offset: 0x104E13, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0G3KeyAAWl', symObjAddr: 0x134A8, symBinAddr: 0x1000142F0, symSize: 0x40 } - - { offset: 0x104E27, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0G3KeyAAWl', symObjAddr: 0x134E8, symBinAddr: 0x100014330, symSize: 0x40 } - - { offset: 0x104E3B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOAGs0F3KeyAAWl', symObjAddr: 0x13528, symBinAddr: 0x100014370, symSize: 0x40 } - - { offset: 0x104E4F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVAESeAAWl', symObjAddr: 0x13568, symBinAddr: 0x1000143B0, symSize: 0x40 } - - { offset: 0x104E63, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVAESeAAWl', symObjAddr: 0x135A8, symBinAddr: 0x1000143F0, symSize: 0x40 } - - { offset: 0x104E77, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVAESEAAWl', symObjAddr: 0x135E8, symBinAddr: 0x100014430, symSize: 0x40 } - - { offset: 0x104E8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVAESEAAWl', symObjAddr: 0x13628, symBinAddr: 0x100014470, symSize: 0x40 } - - { offset: 0x104E9F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOAGs0H3KeyAAWl', symObjAddr: 0x13668, symBinAddr: 0x1000144B0, symSize: 0x40 } - - { offset: 0x104EB3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVAESeAAWl', symObjAddr: 0x136A8, symBinAddr: 0x1000144F0, symSize: 0x40 } - - { offset: 0x104EC7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVAESeAAWl', symObjAddr: 0x136E8, symBinAddr: 0x100014530, symSize: 0x40 } - - { offset: 0x104EDB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0F3KeyAAWl', symObjAddr: 0x13728, symBinAddr: 0x100014570, symSize: 0x40 } - - { offset: 0x104EEF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVAESEAAWl', symObjAddr: 0x13768, symBinAddr: 0x1000145B0, symSize: 0x40 } - - { offset: 0x104F03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVAESEAAWl', symObjAddr: 0x137A8, symBinAddr: 0x1000145F0, symSize: 0x40 } - - { offset: 0x104F17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x1382C, symBinAddr: 0x100014674, symSize: 0x40 } - - { offset: 0x104F2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVAESEAAWl', symObjAddr: 0x138B4, symBinAddr: 0x1000146FC, symSize: 0x40 } - - { offset: 0x104F3F, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV5RouteVGSayxGSEsSERzlWl', symObjAddr: 0x138F4, symBinAddr: 0x10001473C, symSize: 0x70 } - - { offset: 0x104F53, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8PeerInfoVGSayxGSEsSERzlWl', symObjAddr: 0x13964, symBinAddr: 0x1000147AC, symSize: 0x70 } - - { offset: 0x104F67, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV13PeerRoutePairVGSayxGSEsSERzlWl', symObjAddr: 0x139D4, symBinAddr: 0x10001481C, symSize: 0x70 } - - { offset: 0x104F7B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVAESEAAWl', symObjAddr: 0x13A44, symBinAddr: 0x10001488C, symSize: 0x40 } - - { offset: 0x104F8F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOwet', symObjAddr: 0x13A84, symBinAddr: 0x1000148CC, symSize: 0x90 } - - { offset: 0x104FA3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOwst', symObjAddr: 0x13B14, symBinAddr: 0x10001495C, symSize: 0xB0 } - - { offset: 0x104FB7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOMa', symObjAddr: 0x13BC8, symBinAddr: 0x100014A0C, symSize: 0x10 } - - { offset: 0x104FCB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x13BE4, symBinAddr: 0x100014A24, symSize: 0x10 } - - { offset: 0x104FDF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOMa', symObjAddr: 0x13C00, symBinAddr: 0x100014A3C, symSize: 0x10 } - - { offset: 0x104FF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOwet', symObjAddr: 0x13C10, symBinAddr: 0x100014A4C, symSize: 0x90 } - - { offset: 0x105007, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOwst', symObjAddr: 0x13CA0, symBinAddr: 0x100014ADC, symSize: 0xB0 } - - { offset: 0x10501B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOMa', symObjAddr: 0x13D54, symBinAddr: 0x100014B8C, symSize: 0x10 } - - { offset: 0x10502F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x13EA8, symBinAddr: 0x100014CDC, symSize: 0x10 } - - { offset: 0x105043, size: 0x8, addend: 0x0, symName: ___swift_memcpy0_1, symObjAddr: 0x13EB8, symBinAddr: 0x100014CEC, symSize: 0x4 } - - { offset: 0x105057, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOwug', symObjAddr: 0x13EBC, symBinAddr: 0x100014CF0, symSize: 0x8 } - - { offset: 0x10506B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x13ECC, symBinAddr: 0x100014CF8, symSize: 0x10 } - - { offset: 0x10507F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x13FC0, symBinAddr: 0x100014DDC, symSize: 0x10 } - - { offset: 0x105093, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOwet', symObjAddr: 0x13FD0, symBinAddr: 0x100014DEC, symSize: 0x90 } - - { offset: 0x1050A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOwst', symObjAddr: 0x14060, symBinAddr: 0x100014E7C, symSize: 0xB0 } - - { offset: 0x1050BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOMa', symObjAddr: 0x14114, symBinAddr: 0x100014F2C, symSize: 0x10 } - - { offset: 0x1050CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOMa', symObjAddr: 0x14128, symBinAddr: 0x100014F3C, symSize: 0x10 } - - { offset: 0x1050E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOwet', symObjAddr: 0x14138, symBinAddr: 0x100014F4C, symSize: 0x90 } - - { offset: 0x1050F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOwst', symObjAddr: 0x141C8, symBinAddr: 0x100014FDC, symSize: 0xB0 } - - { offset: 0x10510B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOMa', symObjAddr: 0x1427C, symBinAddr: 0x10001508C, symSize: 0x10 } - - { offset: 0x10511F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOMa', symObjAddr: 0x143D0, symBinAddr: 0x1000151DC, symSize: 0x10 } - - { offset: 0x105133, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0x143E0, symBinAddr: 0x1000151EC, symSize: 0x14 } - - { offset: 0x105147, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVwet', symObjAddr: 0x143F4, symBinAddr: 0x100015200, symSize: 0x20 } - - { offset: 0x10515B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVwst', symObjAddr: 0x14414, symBinAddr: 0x100015220, symSize: 0x34 } - - { offset: 0x10516F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVMa', symObjAddr: 0x14448, symBinAddr: 0x100015254, symSize: 0x10 } - - { offset: 0x105183, size: 0x8, addend: 0x0, symName: ___swift_memcpy5_1, symObjAddr: 0x14458, symBinAddr: 0x100015264, symSize: 0x14 } - - { offset: 0x105197, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVwet', symObjAddr: 0x1446C, symBinAddr: 0x100015278, symSize: 0x54 } - - { offset: 0x1051AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVwst', symObjAddr: 0x144C0, symBinAddr: 0x1000152CC, symSize: 0x44 } - - { offset: 0x1051BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVMa', symObjAddr: 0x14504, symBinAddr: 0x100015310, symSize: 0x10 } - - { offset: 0x1051D3, size: 0x8, addend: 0x0, symName: ___swift_memcpy24_8, symObjAddr: 0x14514, symBinAddr: 0x100015320, symSize: 0x14 } - - { offset: 0x1051E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVwet', symObjAddr: 0x14528, symBinAddr: 0x100015334, symSize: 0x20 } - - { offset: 0x1051FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVwst', symObjAddr: 0x14548, symBinAddr: 0x100015354, symSize: 0x2C } - - { offset: 0x10520F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVMa', symObjAddr: 0x14574, symBinAddr: 0x100015380, symSize: 0x10 } - - { offset: 0x105223, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSHAASQWb', symObjAddr: 0x14584, symBinAddr: 0x100015390, symSize: 0x4 } - - { offset: 0x105237, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVAESQAAWl', symObjAddr: 0x14588, symBinAddr: 0x100015394, symSize: 0x40 } - - { offset: 0x10524B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSHAASQWb', symObjAddr: 0x145C8, symBinAddr: 0x1000153D4, symSize: 0x4 } - - { offset: 0x10525F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVAESQAAWl', symObjAddr: 0x145CC, symBinAddr: 0x1000153D8, symSize: 0x40 } - - { offset: 0x105273, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSHAASQWb', symObjAddr: 0x1460C, symBinAddr: 0x100015418, symSize: 0x4 } - - { offset: 0x105287, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVAESQAAWl', symObjAddr: 0x14610, symBinAddr: 0x10001541C, symSize: 0x40 } - - { offset: 0x10529B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSHAASQWb', symObjAddr: 0x14650, symBinAddr: 0x10001545C, symSize: 0x4 } - - { offset: 0x1052AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOAESQAAWl', symObjAddr: 0x14654, symBinAddr: 0x100015460, symSize: 0x40 } - - { offset: 0x1052C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASQWb', symObjAddr: 0x14694, symBinAddr: 0x1000154A0, symSize: 0x4 } - - { offset: 0x1052D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOAESQAAWl', symObjAddr: 0x14698, symBinAddr: 0x1000154A4, symSize: 0x40 } - - { offset: 0x1052EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOSHAASQWb', symObjAddr: 0x146D8, symBinAddr: 0x1000154E4, symSize: 0x4 } - - { offset: 0x1052FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOAGSQAAWl', symObjAddr: 0x146DC, symBinAddr: 0x1000154E8, symSize: 0x40 } - - { offset: 0x105313, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x1471C, symBinAddr: 0x100015528, symSize: 0x4 } - - { offset: 0x105327, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x14720, symBinAddr: 0x10001552C, symSize: 0x40 } - - { offset: 0x10533B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x14760, symBinAddr: 0x10001556C, symSize: 0x4 } - - { offset: 0x10534F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x14764, symBinAddr: 0x100015570, symSize: 0x40 } - - { offset: 0x105363, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x147A4, symBinAddr: 0x1000155B0, symSize: 0x4 } - - { offset: 0x105377, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x147A8, symBinAddr: 0x1000155B4, symSize: 0x40 } - - { offset: 0x10538B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x147E8, symBinAddr: 0x1000155F4, symSize: 0x4 } - - { offset: 0x10539F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x147EC, symBinAddr: 0x1000155F8, symSize: 0x40 } - - { offset: 0x1053B3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOSHAASQWb', symObjAddr: 0x1482C, symBinAddr: 0x100015638, symSize: 0x4 } - - { offset: 0x1053C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOAGSQAAWl', symObjAddr: 0x14830, symBinAddr: 0x10001563C, symSize: 0x40 } - - { offset: 0x1053DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x14870, symBinAddr: 0x10001567C, symSize: 0x4 } - - { offset: 0x1053EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x14874, symBinAddr: 0x100015680, symSize: 0x40 } - - { offset: 0x105403, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x148B4, symBinAddr: 0x1000156C0, symSize: 0x4 } - - { offset: 0x105417, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x148B8, symBinAddr: 0x1000156C4, symSize: 0x40 } - - { offset: 0x10542B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x148F8, symBinAddr: 0x100015704, symSize: 0x4 } - - { offset: 0x10543F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x148FC, symBinAddr: 0x100015708, symSize: 0x40 } - - { offset: 0x105453, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x1493C, symBinAddr: 0x100015748, symSize: 0x4 } - - { offset: 0x105467, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14940, symBinAddr: 0x10001574C, symSize: 0x40 } - - { offset: 0x10547B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14980, symBinAddr: 0x10001578C, symSize: 0x4 } - - { offset: 0x10548F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x14984, symBinAddr: 0x100015790, symSize: 0x40 } - - { offset: 0x1054A3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x149C4, symBinAddr: 0x1000157D0, symSize: 0x4 } - - { offset: 0x1054B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x149C8, symBinAddr: 0x1000157D4, symSize: 0x40 } - - { offset: 0x1054CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14A08, symBinAddr: 0x100015814, symSize: 0x4 } - - { offset: 0x1054DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x14A0C, symBinAddr: 0x100015818, symSize: 0x40 } - - { offset: 0x1054F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x14A4C, symBinAddr: 0x100015858, symSize: 0x4 } - - { offset: 0x105507, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14A50, symBinAddr: 0x10001585C, symSize: 0x40 } - - { offset: 0x10551B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14A90, symBinAddr: 0x10001589C, symSize: 0x4 } - - { offset: 0x10552F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x14A94, symBinAddr: 0x1000158A0, symSize: 0x40 } - - { offset: 0x105543, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x14AD4, symBinAddr: 0x1000158E0, symSize: 0x4 } - - { offset: 0x105557, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14AD8, symBinAddr: 0x1000158E4, symSize: 0x40 } - - { offset: 0x10556B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14B18, symBinAddr: 0x100015924, symSize: 0x4 } - - { offset: 0x10557F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x14B1C, symBinAddr: 0x100015928, symSize: 0x40 } - - { offset: 0x105593, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x14B5C, symBinAddr: 0x100015968, symSize: 0x4 } - - { offset: 0x1055A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14B60, symBinAddr: 0x10001596C, symSize: 0x40 } - - { offset: 0x1055BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14BA0, symBinAddr: 0x1000159AC, symSize: 0x4 } - - { offset: 0x1055CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x14BA4, symBinAddr: 0x1000159B0, symSize: 0x40 } - - { offset: 0x1055E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x14BE4, symBinAddr: 0x1000159F0, symSize: 0x4 } - - { offset: 0x1055F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14BE8, symBinAddr: 0x1000159F4, symSize: 0x40 } - - { offset: 0x10560B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14C28, symBinAddr: 0x100015A34, symSize: 0x4 } - - { offset: 0x10561F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x14C2C, symBinAddr: 0x100015A38, symSize: 0x40 } - - { offset: 0x105633, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x14C6C, symBinAddr: 0x100015A78, symSize: 0x4 } - - { offset: 0x105647, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14C70, symBinAddr: 0x100015A7C, symSize: 0x40 } - - { offset: 0x10565B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14CB0, symBinAddr: 0x100015ABC, symSize: 0x4 } - - { offset: 0x10566F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x14CB4, symBinAddr: 0x100015AC0, symSize: 0x40 } - - { offset: 0x105683, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x14CF4, symBinAddr: 0x100015B00, symSize: 0x4 } - - { offset: 0x105697, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14CF8, symBinAddr: 0x100015B04, symSize: 0x40 } - - { offset: 0x1056AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14D38, symBinAddr: 0x100015B44, symSize: 0x4 } - - { offset: 0x1056BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x14D3C, symBinAddr: 0x100015B48, symSize: 0x40 } - - { offset: 0x1056D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x14D7C, symBinAddr: 0x100015B88, symSize: 0x4 } - - { offset: 0x1056E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14D80, symBinAddr: 0x100015B8C, symSize: 0x40 } - - { offset: 0x1056FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14DC0, symBinAddr: 0x100015BCC, symSize: 0x4 } - - { offset: 0x10570F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x14DC4, symBinAddr: 0x100015BD0, symSize: 0x40 } - - { offset: 0x105723, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x14E04, symBinAddr: 0x100015C10, symSize: 0x4 } - - { offset: 0x105737, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOAEs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x14E08, symBinAddr: 0x100015C14, symSize: 0x40 } - - { offset: 0x10574B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x14E48, symBinAddr: 0x100015C54, symSize: 0x4 } - - { offset: 0x10575F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOAEs23CustomStringConvertibleAAWl', symObjAddr: 0x14E4C, symBinAddr: 0x100015C58, symSize: 0x40 } - - { offset: 0x105773, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOAESYAAWl', symObjAddr: 0x14E8C, symBinAddr: 0x100015C98, symSize: 0x40 } - - { offset: 0x105787, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x14ECC, symBinAddr: 0x100015CD8, symSize: 0x40 } - - { offset: 0x10579B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOAGs0H3KeyAAWl', symObjAddr: 0x14F0C, symBinAddr: 0x100015D18, symSize: 0x40 } - - { offset: 0x1057AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOAGs0H3KeyAAWl', symObjAddr: 0x14F4C, symBinAddr: 0x100015D58, symSize: 0x40 } - - { offset: 0x1057C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOMa', symObjAddr: 0x14F98, symBinAddr: 0x100015DA0, symSize: 0x10 } - - { offset: 0x1057D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOMa', symObjAddr: 0x150EC, symBinAddr: 0x100015EF0, symSize: 0x10 } - - { offset: 0x1057EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOMa', symObjAddr: 0x15240, symBinAddr: 0x100016040, symSize: 0x10 } - - { offset: 0x1057FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOSHAASQWb', symObjAddr: 0x152A8, symBinAddr: 0x1000160A8, symSize: 0x4 } - - { offset: 0x105813, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOAGSQAAWl', symObjAddr: 0x152AC, symBinAddr: 0x1000160AC, symSize: 0x40 } - - { offset: 0x105827, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSHAASQWb', symObjAddr: 0x152EC, symBinAddr: 0x1000160EC, symSize: 0x4 } - - { offset: 0x10583B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOAGSQAAWl', symObjAddr: 0x152F0, symBinAddr: 0x1000160F0, symSize: 0x40 } - - { offset: 0x10584F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSHAASQWb', symObjAddr: 0x15330, symBinAddr: 0x100016130, symSize: 0x4 } - - { offset: 0x105863, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOAGSQAAWl', symObjAddr: 0x15334, symBinAddr: 0x100016134, symSize: 0x40 } - - { offset: 0x105877, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15374, symBinAddr: 0x100016174, symSize: 0x4 } - - { offset: 0x10588B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15378, symBinAddr: 0x100016178, symSize: 0x40 } - - { offset: 0x10589F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x153B8, symBinAddr: 0x1000161B8, symSize: 0x4 } - - { offset: 0x1058B3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x153BC, symBinAddr: 0x1000161BC, symSize: 0x40 } - - { offset: 0x1058C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x153FC, symBinAddr: 0x1000161FC, symSize: 0x4 } - - { offset: 0x1058DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15400, symBinAddr: 0x100016200, symSize: 0x40 } - - { offset: 0x1058EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x15440, symBinAddr: 0x100016240, symSize: 0x4 } - - { offset: 0x105903, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x15444, symBinAddr: 0x100016244, symSize: 0x40 } - - { offset: 0x105917, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15484, symBinAddr: 0x100016284, symSize: 0x4 } - - { offset: 0x10592B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15488, symBinAddr: 0x100016288, symSize: 0x40 } - - { offset: 0x10593F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x154C8, symBinAddr: 0x1000162C8, symSize: 0x4 } - - { offset: 0x105953, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x154CC, symBinAddr: 0x1000162CC, symSize: 0x40 } - - { offset: 0x105968, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeO11descriptionSSvg', symObjAddr: 0x0, symBinAddr: 0x100001748, symSize: 0x170 } - - { offset: 0x105AD1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSYAASY8rawValuexSg03RawG0Qz_tcfCTW', symObjAddr: 0xEE8, symBinAddr: 0x100002630, symSize: 0x28 } - - { offset: 0x105AFA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0xF10, symBinAddr: 0x100002658, symSize: 0xC } - - { offset: 0x105B2A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAsAIP8intValueSiSgvgTW', symObjAddr: 0x15F8, symBinAddr: 0x100002D40, symSize: 0xC } - - { offset: 0x105B3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV6encode2toys7Encoder_p_tKF', symObjAddr: 0x1694, symBinAddr: 0x100002DA8, symSize: 0x18C } - - { offset: 0x105B76, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV4hash4intoys6HasherVz_tF', symObjAddr: 0x1820, symBinAddr: 0x100002F34, symSize: 0x48 } - - { offset: 0x105C94, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV9hashValueSivg', symObjAddr: 0x1868, symBinAddr: 0x100002F7C, symSize: 0x74 } - - { offset: 0x105DF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x1910, symBinAddr: 0x100003024, symSize: 0x38 } - - { offset: 0x105E20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x1954, symBinAddr: 0x100003068, symSize: 0xA8 } - - { offset: 0x105EA1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSYAASY8rawValuexSg03RawK0Qz_tcfCTW', symObjAddr: 0x1CD8, symBinAddr: 0x1000033EC, symSize: 0x34 } - - { offset: 0x105ECA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSYAASY8rawValue03RawK0QzvgTW', symObjAddr: 0x1D0C, symBinAddr: 0x100003420, symSize: 0xBC } - - { offset: 0x105F3D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs0H3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x1DC8, symBinAddr: 0x1000034DC, symSize: 0xB8 } - - { offset: 0x105FC2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs0H3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x1E80, symBinAddr: 0x100003594, symSize: 0x2C } - - { offset: 0x10601F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x1F14, symBinAddr: 0x10000361C, symSize: 0x60 } - - { offset: 0x106048, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x1F74, symBinAddr: 0x10000367C, symSize: 0x68 } - - { offset: 0x10605C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSHAASH9hashValueSivgTW', symObjAddr: 0x1FDC, symBinAddr: 0x1000036E4, symSize: 0x58 } - - { offset: 0x106070, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x2034, symBinAddr: 0x10000373C, symSize: 0x58 } - - { offset: 0x1060A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x211C, symBinAddr: 0x100003824, symSize: 0x58 } - - { offset: 0x1060D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV11descriptionSSvg', symObjAddr: 0x2174, symBinAddr: 0x10000387C, symSize: 0x118 } - - { offset: 0x1061AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x228C, symBinAddr: 0x100003994, symSize: 0x8 } - - { offset: 0x1061C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAsAIP11stringValueSSvgTW', symObjAddr: 0x2294, symBinAddr: 0x10000399C, symSize: 0x10 } - - { offset: 0x1061EE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAsAIP11stringValuexSgSS_tcfCTW', symObjAddr: 0x22A4, symBinAddr: 0x1000039AC, symSize: 0x84 } - - { offset: 0x106268, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x2384, symBinAddr: 0x100003A80, symSize: 0x114 } - - { offset: 0x1062AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x2498, symBinAddr: 0x100003B94, symSize: 0xEC } - - { offset: 0x10630D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSHAASH9hashValueSivgTW', symObjAddr: 0x2584, symBinAddr: 0x100003C80, symSize: 0x44 } - - { offset: 0x1063D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x25C8, symBinAddr: 0x100003CC4, symSize: 0x28 } - - { offset: 0x106430, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x2630, symBinAddr: 0x100003D2C, symSize: 0x8 } - - { offset: 0x106460, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2638, symBinAddr: 0x100003D34, symSize: 0x14 } - - { offset: 0x106489, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV6encode2toys7Encoder_p_tKF', symObjAddr: 0x264C, symBinAddr: 0x100003D48, symSize: 0x148 } - - { offset: 0x1064D6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x291C, symBinAddr: 0x10000400C, symSize: 0x2C } - - { offset: 0x1064FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x2948, symBinAddr: 0x100004038, symSize: 0x1C } - - { offset: 0x106549, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSHAASH9hashValueSivgTW', symObjAddr: 0x2964, symBinAddr: 0x100004054, symSize: 0x5C } - - { offset: 0x106681, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x29C0, symBinAddr: 0x1000040B0, symSize: 0x3C } - - { offset: 0x10675C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x2A54, symBinAddr: 0x100004144, symSize: 0x74 } - - { offset: 0x1067C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2AC8, symBinAddr: 0x1000041B8, symSize: 0x2C } - - { offset: 0x1067FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV11descriptionSSvg', symObjAddr: 0x2AF4, symBinAddr: 0x1000041E4, symSize: 0x384 } - - { offset: 0x106F89, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x317C, symBinAddr: 0x10000482C, symSize: 0x38 } - - { offset: 0x106F9D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x32FC, symBinAddr: 0x1000049AC, symSize: 0x8 } - - { offset: 0x106FB1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV6encode2toys7Encoder_p_tKF', symObjAddr: 0x366C, symBinAddr: 0x100004D10, symSize: 0x160 } - - { offset: 0x106FF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x37CC, symBinAddr: 0x100004E70, symSize: 0x38 } - - { offset: 0x107018, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x3804, symBinAddr: 0x100004EA8, symSize: 0x1C } - - { offset: 0x10707B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSHAASH9hashValueSivgTW', symObjAddr: 0x3820, symBinAddr: 0x100004EC4, symSize: 0x8C } - - { offset: 0x10722E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x38AC, symBinAddr: 0x100004F50, symSize: 0x60 } - - { offset: 0x1073BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x3994, symBinAddr: 0x100005038, symSize: 0x38 } - - { offset: 0x1073F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAsAIP11stringValueSSvgTW', symObjAddr: 0x3A7C, symBinAddr: 0x100005118, symSize: 0x10 } - - { offset: 0x107424, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAsAIP11stringValuexSgSS_tcfCTW', symObjAddr: 0x3A8C, symBinAddr: 0x100005128, symSize: 0x84 } - - { offset: 0x107499, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x3B78, symBinAddr: 0x100005208, symSize: 0x128 } - - { offset: 0x1074D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x3CA0, symBinAddr: 0x100005330, symSize: 0xF0 } - - { offset: 0x10752A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSHAASH9hashValueSivgTW', symObjAddr: 0x3D90, symBinAddr: 0x100005420, symSize: 0x48 } - - { offset: 0x1075F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x3DD8, symBinAddr: 0x100005468, symSize: 0x8 } - - { offset: 0x10766D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x3E24, symBinAddr: 0x1000054B4, symSize: 0x30 } - - { offset: 0x1076C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV6encode2toys7Encoder_p_tKF', symObjAddr: 0x3E54, symBinAddr: 0x1000054E4, symSize: 0x254 } - - { offset: 0x107714, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV4hash4intoys6HasherVz_tF', symObjAddr: 0x40A8, symBinAddr: 0x100005738, symSize: 0x1B8 } - - { offset: 0x107C94, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSYAASY8rawValuexSg03RawK0Qz_tcfCTW', symObjAddr: 0x4530, symBinAddr: 0x100005BC0, symSize: 0x34 } - - { offset: 0x107CBD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSYAASY8rawValue03RawK0QzvgTW', symObjAddr: 0x4564, symBinAddr: 0x100005BF4, symSize: 0xC4 } - - { offset: 0x107CF8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs0H3KeyAAsAJP11stringValueSSvgTW', symObjAddr: 0x4628, symBinAddr: 0x100005CB8, symSize: 0xB0 } - - { offset: 0x107D48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs0H3KeyAAsAJP11stringValuexSgSS_tcfCTW', symObjAddr: 0x46D8, symBinAddr: 0x100005D68, symSize: 0x2C } - - { offset: 0x107DA5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x4760, symBinAddr: 0x100005DE4, symSize: 0x4C } - - { offset: 0x107DCE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x47AC, symBinAddr: 0x100005E30, symSize: 0x14 } - - { offset: 0x107E00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSHAASH9hashValueSivgTW', symObjAddr: 0x47C0, symBinAddr: 0x100005E44, symSize: 0x3C } - - { offset: 0x107E7D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x47FC, symBinAddr: 0x100005E80, symSize: 0x4 } - - { offset: 0x107E98, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x4838, symBinAddr: 0x100005EBC, symSize: 0x58 } - - { offset: 0x107EC1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x4890, symBinAddr: 0x100005F14, symSize: 0x300 } - - { offset: 0x107F15, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV4hash4intoys6HasherVz_tF', symObjAddr: 0x4B90, symBinAddr: 0x100006214, symSize: 0x1F4 } - - { offset: 0x108268, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSYAASY8rawValuexSg03RawJ0Qz_tcfCTW', symObjAddr: 0x4EB8, symBinAddr: 0x10000653C, symSize: 0x2C } - - { offset: 0x108291, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSYAASY8rawValue03RawJ0QzvgTW', symObjAddr: 0x4EE4, symBinAddr: 0x100006568, symSize: 0xF8 } - - { offset: 0x1082C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x4FDC, symBinAddr: 0x100006660, symSize: 0xF4 } - - { offset: 0x108304, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x50D0, symBinAddr: 0x100006754, symSize: 0x24 } - - { offset: 0x10834C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x5100, symBinAddr: 0x100006778, symSize: 0xC } - - { offset: 0x108375, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x515C, symBinAddr: 0x1000067D4, symSize: 0x60 } - - { offset: 0x10839E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x51BC, symBinAddr: 0x100006834, symSize: 0x14 } - - { offset: 0x1083D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x51D0, symBinAddr: 0x100006848, symSize: 0x3C } - - { offset: 0x10844D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x520C, symBinAddr: 0x100006884, symSize: 0x4 } - - { offset: 0x108468, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x5248, symBinAddr: 0x1000068C0, symSize: 0x90 } - - { offset: 0x108491, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x52D8, symBinAddr: 0x100006950, symSize: 0x248 } - - { offset: 0x1084DE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV4hash4intoys6HasherVz_tF', symObjAddr: 0x5520, symBinAddr: 0x100006B98, symSize: 0xF4 } - - { offset: 0x10870B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSYAASY8rawValuexSg03RawI0Qz_tcfCTW', symObjAddr: 0x570C, symBinAddr: 0x100006D84, symSize: 0x2C } - - { offset: 0x108734, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSYAASY8rawValue03RawI0QzvgTW', symObjAddr: 0x5738, symBinAddr: 0x100006DB0, symSize: 0xC0 } - - { offset: 0x108785, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x57F8, symBinAddr: 0x100006E70, symSize: 0xBC } - - { offset: 0x1087EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x58B4, symBinAddr: 0x100006F2C, symSize: 0x24 } - - { offset: 0x108833, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x58E4, symBinAddr: 0x100006F50, symSize: 0xC } - - { offset: 0x10885C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x5940, symBinAddr: 0x100006FAC, symSize: 0x4C } - - { offset: 0x108885, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x598C, symBinAddr: 0x100006FF8, symSize: 0x14 } - - { offset: 0x1088B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x59A0, symBinAddr: 0x10000700C, symSize: 0x3C } - - { offset: 0x10892D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x59DC, symBinAddr: 0x100007048, symSize: 0x4 } - - { offset: 0x108948, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x5A18, symBinAddr: 0x100007084, symSize: 0x58 } - - { offset: 0x108971, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV6encode2toys7Encoder_p_tKF', symObjAddr: 0x5C20, symBinAddr: 0x100007288, symSize: 0x3F8 } - - { offset: 0x1089B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV4hash4intoys6HasherVz_tF', symObjAddr: 0x6018, symBinAddr: 0x100007680, symSize: 0x2B8 } - - { offset: 0x109068, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOSYAASY8rawValuexSg03RawI0Qz_tcfCTW', symObjAddr: 0x6300, symBinAddr: 0x100007968, symSize: 0x2C } - - { offset: 0x109091, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOSYAASY8rawValue03RawI0QzvgTW', symObjAddr: 0x632C, symBinAddr: 0x100007994, symSize: 0x28 } - - { offset: 0x1090A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x6354, symBinAddr: 0x1000079BC, symSize: 0x18 } - - { offset: 0x1090CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x636C, symBinAddr: 0x1000079D4, symSize: 0x24 } - - { offset: 0x109113, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x639C, symBinAddr: 0x1000079F8, symSize: 0xC } - - { offset: 0x10913C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x63F8, symBinAddr: 0x100007A54, symSize: 0x94 } - - { offset: 0x109165, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x648C, symBinAddr: 0x100007AE8, symSize: 0x14 } - - { offset: 0x109197, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSHAASH9hashValueSivgTW', symObjAddr: 0x64A0, symBinAddr: 0x100007AFC, symSize: 0x3C } - - { offset: 0x109214, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x64DC, symBinAddr: 0x100007B38, symSize: 0x4 } - - { offset: 0x109228, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVs12IdentifiableAAsAFP2id2IDQzvgTW', symObjAddr: 0x6518, symBinAddr: 0x100007B74, symSize: 0xC } - - { offset: 0x109243, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x6524, symBinAddr: 0x100007B80, symSize: 0xC4 } - - { offset: 0x10926C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x65E8, symBinAddr: 0x100007C44, symSize: 0x1E0 } - - { offset: 0x1092E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV4hash4intoys6HasherVz_tF', symObjAddr: 0x67C8, symBinAddr: 0x100007E24, symSize: 0x168 } - - { offset: 0x109677, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSYAASY8rawValuexSg03RawJ0Qz_tcfCTW', symObjAddr: 0x6B78, symBinAddr: 0x1000081D4, symSize: 0x2C } - - { offset: 0x1096A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSYAASY8rawValue03RawJ0QzvgTW', symObjAddr: 0x6BA4, symBinAddr: 0x100008200, symSize: 0x8C } - - { offset: 0x1096F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs0G3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x6C30, symBinAddr: 0x10000828C, symSize: 0x88 } - - { offset: 0x109759, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs0G3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x6CB8, symBinAddr: 0x100008314, symSize: 0x24 } - - { offset: 0x1097B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x6D38, symBinAddr: 0x100008388, symSize: 0x40 } - - { offset: 0x1097DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x6D78, symBinAddr: 0x1000083C8, symSize: 0x14 } - - { offset: 0x109811, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x6D8C, symBinAddr: 0x1000083DC, symSize: 0x3C } - - { offset: 0x10988E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x6DC8, symBinAddr: 0x100008418, symSize: 0x4 } - - { offset: 0x1098A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x6E10, symBinAddr: 0x100008454, symSize: 0x44 } - - { offset: 0x1098D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x6FAC, symBinAddr: 0x1000085EC, symSize: 0x2E0 } - - { offset: 0x109960, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV4hash4intoys6HasherVz_tF', symObjAddr: 0x728C, symBinAddr: 0x1000088CC, symSize: 0x1BC } - - { offset: 0x109E39, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOSYAASY8rawValuexSg03RawK0Qz_tcfCTW', symObjAddr: 0x7604, symBinAddr: 0x100008C44, symSize: 0x2C } - - { offset: 0x109E62, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOSYAASY8rawValue03RawK0QzvgTW', symObjAddr: 0x7630, symBinAddr: 0x100008C70, symSize: 0x28 } - - { offset: 0x109E76, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x7658, symBinAddr: 0x100008C98, symSize: 0x18 } - - { offset: 0x109E9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x7670, symBinAddr: 0x100008CB0, symSize: 0x24 } - - { offset: 0x109EE4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x76A0, symBinAddr: 0x100008CD4, symSize: 0xC } - - { offset: 0x109F0D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x76FC, symBinAddr: 0x100008D30, symSize: 0x60 } - - { offset: 0x109F36, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x775C, symBinAddr: 0x100008D90, symSize: 0x14 } - - { offset: 0x109F61, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x7770, symBinAddr: 0x100008DA4, symSize: 0x3C } - - { offset: 0x109FDE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x77AC, symBinAddr: 0x100008DE0, symSize: 0x4 } - - { offset: 0x109FF9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x77E8, symBinAddr: 0x100008E1C, symSize: 0x94 } - - { offset: 0x10A022, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV6encode2toys7Encoder_p_tKF', symObjAddr: 0x787C, symBinAddr: 0x100008EB0, symSize: 0x2F0 } - - { offset: 0x10A053, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x7B6C, symBinAddr: 0x1000091A0, symSize: 0x170 } - - { offset: 0x10A084, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV6encode2toys7Encoder_p_tKF', symObjAddr: 0x7CDC, symBinAddr: 0x100009310, symSize: 0x18C } - - { offset: 0x10A0E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x7E68, symBinAddr: 0x10000949C, symSize: 0x18 } - - { offset: 0x10A132, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0H3KeyAAsAIP11stringValueSSvgTW', symObjAddr: 0x7F2C, symBinAddr: 0x1000094B4, symSize: 0x30 } - - { offset: 0x10A178, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0H3KeyAAsAIP11stringValuexSgSS_tcfCTW', symObjAddr: 0x7F5C, symBinAddr: 0x1000094E4, symSize: 0xD4 } - - { offset: 0x10A1FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x808C, symBinAddr: 0x100009608, symSize: 0x48 } - - { offset: 0x10A224, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x80D4, symBinAddr: 0x100009650, symSize: 0x14 } - - { offset: 0x10A266, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSHAASH9hashValueSivgTW', symObjAddr: 0x80E8, symBinAddr: 0x100009664, symSize: 0xA0 } - - { offset: 0x10A37F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x8188, symBinAddr: 0x100009704, symSize: 0x8C } - - { offset: 0x10A416, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x82BC, symBinAddr: 0x10000982C, symSize: 0x54 } - - { offset: 0x10A472, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSYAASY8rawValuexSg03RawJ0Qz_tcfCTW', symObjAddr: 0x8620, symBinAddr: 0x100009B90, symSize: 0x2C } - - { offset: 0x10A49B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSYAASY8rawValue03RawJ0QzvgTW', symObjAddr: 0x864C, symBinAddr: 0x100009BBC, symSize: 0x74 } - - { offset: 0x10A4E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x86C0, symBinAddr: 0x100009C30, symSize: 0x70 } - - { offset: 0x10A542, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x8730, symBinAddr: 0x100009CA0, symSize: 0x24 } - - { offset: 0x10A58A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x8760, symBinAddr: 0x100009CC4, symSize: 0xC } - - { offset: 0x10A5B3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x87BC, symBinAddr: 0x100009D20, symSize: 0x40 } - - { offset: 0x10A5DC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x87FC, symBinAddr: 0x100009D60, symSize: 0x14 } - - { offset: 0x10A5F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x8810, symBinAddr: 0x100009D74, symSize: 0x80 } - - { offset: 0x10A7A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x8890, symBinAddr: 0x100009DF4, symSize: 0x58 } - - { offset: 0x10A8FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x8964, symBinAddr: 0x100009EC8, symSize: 0xE4 } - - { offset: 0x10A9C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSYAASY8rawValuexSg03RawK0Qz_tcfCTW', symObjAddr: 0x8C9C, symBinAddr: 0x10000A200, symSize: 0x34 } - - { offset: 0x10A9EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSYAASY8rawValue03RawK0QzvgTW', symObjAddr: 0x8CD0, symBinAddr: 0x10000A234, symSize: 0x90 } - - { offset: 0x10AA1D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs0H3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x8D60, symBinAddr: 0x10000A2C4, symSize: 0x8C } - - { offset: 0x10AA5D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs0H3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x8DEC, symBinAddr: 0x10000A350, symSize: 0x2C } - - { offset: 0x10AABA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x8E74, symBinAddr: 0x10000A3CC, symSize: 0x44 } - - { offset: 0x10AAE3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x8EB8, symBinAddr: 0x10000A410, symSize: 0x14 } - - { offset: 0x10AAFE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSHAASH9hashValueSivgTW', symObjAddr: 0x8ECC, symBinAddr: 0x10000A424, symSize: 0x8C } - - { offset: 0x10AC68, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x8F58, symBinAddr: 0x10000A4B0, symSize: 0x60 } - - { offset: 0x10AD89, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x9040, symBinAddr: 0x10000A598, symSize: 0x40 } - - { offset: 0x10ADBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSYAASY8rawValuexSg03RawH0Qz_tcfCTW', symObjAddr: 0x90A8, symBinAddr: 0x10000A600, symSize: 0x2C } - - { offset: 0x10ADE8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSYAASY8rawValue03RawH0QzvgTW', symObjAddr: 0x90D4, symBinAddr: 0x10000A62C, symSize: 0x104 } - - { offset: 0x10AE3A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAsAFP11stringValueSSvgTW', symObjAddr: 0x91D8, symBinAddr: 0x10000A730, symSize: 0x100 } - - { offset: 0x10AEA1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAsAFP11stringValuexSgSS_tcfCTW', symObjAddr: 0x92D8, symBinAddr: 0x10000A830, symSize: 0x24 } - - { offset: 0x10AEE9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAsAFP8intValuexSgSi_tcfCTW', symObjAddr: 0x9308, symBinAddr: 0x10000A854, symSize: 0xC } - - { offset: 0x10AEFD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV6encode2toys7Encoder_p_tKF', symObjAddr: 0x9364, symBinAddr: 0x10000A8B0, symSize: 0x3E4 } - - { offset: 0x10AF43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x9748, symBinAddr: 0x10000AC94, symSize: 0x48 } - - { offset: 0x10AF6C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x9790, symBinAddr: 0x10000ACDC, symSize: 0x14 } - - { offset: 0x10B37E, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSYSCSY8rawValuexSg03RawE0Qz_tcfCTW', symObjAddr: 0xA3E4, symBinAddr: 0x10000B280, symSize: 0x44 } - - { offset: 0x10B3A8, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSYSCSY8rawValue03RawE0QzvgTW', symObjAddr: 0xA428, symBinAddr: 0x10000B2C4, symSize: 0x28 } - - { offset: 0x10B3D1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeO8rawValueAESgSi_tcfCTf4nd_n', symObjAddr: 0xA4D4, symBinAddr: 0x10000B370, symSize: 0x10 } - - { offset: 0x10B3F4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xA4E4, symBinAddr: 0x10000B380, symSize: 0x1F8 } - - { offset: 0x10B417, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xA6DC, symBinAddr: 0x10000B578, symSize: 0x16C } - - { offset: 0x10B441, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xAB88, symBinAddr: 0x10000BA24, symSize: 0x170 } - - { offset: 0x10B472, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV23__derived_struct_equalsySbAG_AGtFZTf4nnd_n', symObjAddr: 0xACF8, symBinAddr: 0x10000BB94, symSize: 0x148 } - - { offset: 0x10B5E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV4fromAGs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xAE40, symBinAddr: 0x10000BCDC, symSize: 0x400 } - - { offset: 0x10B613, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xB240, symBinAddr: 0x10000C0DC, symSize: 0x64 } - - { offset: 0x10B64A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xB2A4, symBinAddr: 0x10000C140, symSize: 0xC8 } - - { offset: 0x10B67B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xB36C, symBinAddr: 0x10000C208, symSize: 0x3A4 } - - { offset: 0x10B74F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xB710, symBinAddr: 0x10000C5AC, symSize: 0x594 } - - { offset: 0x10B772, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xBCA4, symBinAddr: 0x10000CB40, symSize: 0x64 } - - { offset: 0x10B7A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xBD08, symBinAddr: 0x10000CBA4, symSize: 0x2D4 } - - { offset: 0x10B7CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xBFDC, symBinAddr: 0x10000CE78, symSize: 0x64 } - - { offset: 0x10B803, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xC040, symBinAddr: 0x10000CEDC, symSize: 0x330 } - - { offset: 0x10B936, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xC370, symBinAddr: 0x10000D20C, symSize: 0x820 } - - { offset: 0x10B959, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xCB90, symBinAddr: 0x10000DA2C, symSize: 0x64 } - - { offset: 0x10B990, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xCBF4, symBinAddr: 0x10000DA90, symSize: 0x448 } - - { offset: 0x10BB13, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xD03C, symBinAddr: 0x10000DED8, symSize: 0x194 } - - { offset: 0x10BC8A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xD1D0, symBinAddr: 0x10000E06C, symSize: 0x280 } - - { offset: 0x10BCAD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xD450, symBinAddr: 0x10000E2EC, symSize: 0x64 } - - { offset: 0x10BCE4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xD4B4, symBinAddr: 0x10000E350, symSize: 0x590 } - - { offset: 0x10BD07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xDA44, symBinAddr: 0x10000E8E0, symSize: 0x2D0 } - - { offset: 0x10BD58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xDD14, symBinAddr: 0x10000EBB0, symSize: 0x3B4 } - - { offset: 0x10BD7B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xE0C8, symBinAddr: 0x10000EF64, symSize: 0x64 } - - { offset: 0x10BDB2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xE12C, symBinAddr: 0x10000EFC8, symSize: 0x210 } - - { offset: 0x10BDD5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xE3A8, symBinAddr: 0x10000F244, symSize: 0x1C8 } - - { offset: 0x10BDF8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysO8rawValueAESgSS_tcfCTf4nd_n', symObjAddr: 0xE570, symBinAddr: 0x10000F40C, symSize: 0x64 } - - { offset: 0x10BE2F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4fromACs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xE5D4, symBinAddr: 0x10000F470, symSize: 0x6C4 } - - { offset: 0x10BFD3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoV9stableKey33_030860012336D326239E887B8F6C4FB2LLSSvg', symObjAddr: 0x0, symBinAddr: 0x1000163B4, symSize: 0x2AC } - - { offset: 0x10C16B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9CliClientCMa', symObjAddr: 0x4F8, symBinAddr: 0x1000168AC, symSize: 0x20 } - - { offset: 0x10C17F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwCP', symObjAddr: 0x518, symBinAddr: 0x1000168CC, symSize: 0x46C } - - { offset: 0x10C193, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwxx', symObjAddr: 0x984, symBinAddr: 0x100016D38, symSize: 0x198 } - - { offset: 0x10C1A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwcp', symObjAddr: 0xB1C, symBinAddr: 0x100016ED0, symSize: 0x440 } - - { offset: 0x10C1BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwca', symObjAddr: 0xF5C, symBinAddr: 0x100017310, symSize: 0x984 } - - { offset: 0x10C1CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwtk', symObjAddr: 0x19B0, symBinAddr: 0x100017C94, symSize: 0x10C } - - { offset: 0x10C1E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwta', symObjAddr: 0x1ABC, symBinAddr: 0x100017DA0, symSize: 0x488 } - - { offset: 0x10C1F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwet', symObjAddr: 0x1F44, symBinAddr: 0x100018228, symSize: 0xC } - - { offset: 0x10C20B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwst', symObjAddr: 0x1FD0, symBinAddr: 0x1000182B4, symSize: 0xC } - - { offset: 0x10C21F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVMa', symObjAddr: 0x2058, symBinAddr: 0x10001833C, symSize: 0x38 } - - { offset: 0x10C233, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVMr', symObjAddr: 0x2090, symBinAddr: 0x100018374, symSize: 0xA4 } - - { offset: 0x10C247, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVs12IdentifiableAA2IDsADP_SHWT', symObjAddr: 0x2134, symBinAddr: 0x100018418, symSize: 0xC } - - { offset: 0x10C25B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSgWOg', symObjAddr: 0x214C, symBinAddr: 0x100018430, symSize: 0x18 } - - { offset: 0x10C26F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSgWOg', symObjAddr: 0x2A60, symBinAddr: 0x100018CF4, symSize: 0x18 } - - { offset: 0x10C348, size: 0x8, addend: 0x0, symName: '_$sSDsSQR_rlE2eeoiySbSDyxq_G_ABtFZSS_SSTt1g5', symObjAddr: 0x2AC, symBinAddr: 0x100016660, symSize: 0x1F8 } - - { offset: 0x10C44B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoV9stableKey33_030860012336D326239E887B8F6C4FB2LLSSvg', symObjAddr: 0x0, symBinAddr: 0x1000163B4, symSize: 0x2AC } - - { offset: 0x10C754, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVs12IdentifiableAAsADP2id2IDQzvgTW', symObjAddr: 0x4A4, symBinAddr: 0x100016858, symSize: 0x24 } - - { offset: 0x10C79D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x4C8, symBinAddr: 0x10001687C, symSize: 0x4 } - - { offset: 0x10C7B5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x4C8, symBinAddr: 0x10001687C, symSize: 0x4 } - - { offset: 0x10C7EE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9CliClientCfD', symObjAddr: 0x4CC, symBinAddr: 0x100016880, symSize: 0x2C } - - { offset: 0x10C839, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9CliClientCScAAAScA15unownedExecutorScevgTW', symObjAddr: 0x2140, symBinAddr: 0x100018424, symSize: 0xC } - - { offset: 0x10C85B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x2164, symBinAddr: 0x100018448, symSize: 0x8AC } - - { offset: 0x10CB84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP09dismantleF0_11coordinatory0F4TypeQz_11CoordinatorQztFZTW', symObjAddr: 0xCA0, symBinAddr: 0x100019900, symSize: 0x4 } - - { offset: 0x10CBA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP19_identifiedViewTree2inAD011_IdentifiediJ0O0F4TypeQz_tFTW', symObjAddr: 0xD4C, symBinAddr: 0x1000199AC, symSize: 0x4 } - - { offset: 0x10CBBC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP12sizeThatFits_6nsView7contextSo6CGSizeVSgAD08ProposedL4SizeV_0F4TypeQzAD0fG7ContextVyxGtFTW', symObjAddr: 0xD50, symBinAddr: 0x1000199B0, symSize: 0x30 } - - { offset: 0x10CBD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP21_overrideSizeThatFits_2in6nsViewySo6CGSizeVz_AD09_ProposedI0V0F4TypeQztFTW', symObjAddr: 0xD80, symBinAddr: 0x1000199E0, symSize: 0x4 } - - { offset: 0x10CBF4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP21_overrideLayoutTraits_3foryAD01_iJ0Vz_0F4TypeQztFTW', symObjAddr: 0xD84, symBinAddr: 0x1000199E4, symSize: 0x4 } - - { offset: 0x10CC10, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP24_modifyBridgedViewInputsyyAD01_jK0VzFZTW', symObjAddr: 0xD88, symBinAddr: 0x1000199E8, symSize: 0x4 } - - { offset: 0x10CC2C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP35_invalidatesSizeOnConstraintChangesSbvgZTW', symObjAddr: 0xD8C, symBinAddr: 0x1000199EC, symSize: 0x4 } - - { offset: 0x10CC48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP14_layoutOptionsyAD013_PlatformViewg6LayoutI0V0F4TypeQzFZTW', symObjAddr: 0xD90, symBinAddr: 0x1000199F0, symSize: 0x4 } - - { offset: 0x10CC64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAadEP05_makeF04view6inputsAD01_F7OutputsVAD11_GraphValueVyxG_AD01_F6InputsVtFZTW', symObjAddr: 0xD94, symBinAddr: 0x1000199F4, symSize: 0x50 } - - { offset: 0x10CC80, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAadEP05_makeF4List4view6inputsAD01_fH7OutputsVAD11_GraphValueVyxG_AD01_fH6InputsVtFZTW', symObjAddr: 0xDE4, symBinAddr: 0x100019A44, symSize: 0x50 } - - { offset: 0x10CC9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0xE4C, symBinAddr: 0x100019AAC, symSize: 0x24 } - - { offset: 0x10D0AD, size: 0x8, addend: 0x0, symName: '_$sSo20NSTextCheckingResultCSgSo15NSMatchingFlagsVSpy10ObjectiveC8ObjCBoolVGIeggyy_AceIIyByyy_TR', symObjAddr: 0x1AC, symBinAddr: 0x100018E38, symSize: 0x58 } - - { offset: 0x10D0F1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCMa', symObjAddr: 0xA20, symBinAddr: 0x1000196AC, symSize: 0x20 } - - { offset: 0x10D105, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwxx', symObjAddr: 0xA6C, symBinAddr: 0x1000196CC, symSize: 0x30 } - - { offset: 0x10D119, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwcp', symObjAddr: 0xA9C, symBinAddr: 0x1000196FC, symSize: 0x54 } - - { offset: 0x10D12D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwca', symObjAddr: 0xAF0, symBinAddr: 0x100019750, symSize: 0x8C } - - { offset: 0x10D141, size: 0x8, addend: 0x0, symName: ___swift_memcpy34_8, symObjAddr: 0xB7C, symBinAddr: 0x1000197DC, symSize: 0x14 } - - { offset: 0x10D155, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwta', symObjAddr: 0xB90, symBinAddr: 0x1000197F0, symSize: 0x5C } - - { offset: 0x10D169, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwet', symObjAddr: 0xBEC, symBinAddr: 0x10001984C, symSize: 0x48 } - - { offset: 0x10D17D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwst', symObjAddr: 0xC34, symBinAddr: 0x100019894, symSize: 0x44 } - - { offset: 0x10D191, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVMa', symObjAddr: 0xC78, symBinAddr: 0x1000198D8, symSize: 0x10 } - - { offset: 0x10D1A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0xC88, symBinAddr: 0x1000198E8, symSize: 0xC } - - { offset: 0x10D1B9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAaD4ViewPWb', symObjAddr: 0xE70, symBinAddr: 0x100019AD0, symSize: 0x4 } - - { offset: 0x10D1CD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVAC7SwiftUI4ViewAAWl', symObjAddr: 0xE74, symBinAddr: 0x100019AD4, symSize: 0x40 } - - { offset: 0x10D1E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV9highlightyySo13NSTextStorageCF10applyStyleL_7pattern5color4boldySS_So7NSColorCSbtFySo0E14CheckingResultCSg_So15NSMatchingFlagsVSpy10ObjectiveC8ObjCBoolVGtXEfU_TA', symObjAddr: 0x3268, symBinAddr: 0x10001BE78, symSize: 0xC } - - { offset: 0x10D200, size: 0x8, addend: 0x0, symName: '_$sSo20NSTextCheckingResultCSgSo15NSMatchingFlagsVSpy10ObjectiveC8ObjCBoolVGIggyy_AceIIeggyy_TRTA', symObjAddr: 0x3274, symBinAddr: 0x10001BE84, symSize: 0x20 } - - { offset: 0x10D229, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x3294, symBinAddr: 0x10001BEA4, symSize: 0x10 } - - { offset: 0x10D23D, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x32A4, symBinAddr: 0x10001BEB4, symSize: 0x8 } - - { offset: 0x10D251, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVAC7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x3638, symBinAddr: 0x10001C248, symSize: 0x40 } - - { offset: 0x10D265, size: 0x8, addend: 0x0, symName: '_$sSo10NSTextViewCMa', symObjAddr: 0x3678, symBinAddr: 0x10001C288, symSize: 0x44 } - - { offset: 0x10D279, size: 0x8, addend: 0x0, symName: '_$sS2cMScAsWl', symObjAddr: 0x36BC, symBinAddr: 0x10001C2CC, symSize: 0x44 } - - { offset: 0x10D28D, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_TA', symObjAddr: 0x3750, symBinAddr: 0x10001C360, symSize: 0x84 } - - { offset: 0x10D2A1, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_TATQ0_', symObjAddr: 0x37D4, symBinAddr: 0x10001C3E4, symSize: 0x40 } - - { offset: 0x10D2B5, size: 0x8, addend: 0x0, symName: '_$sScPSgWOc', symObjAddr: 0x3814, symBinAddr: 0x10001C424, symSize: 0x50 } - - { offset: 0x10D2C9, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tgq5TA', symObjAddr: 0x38C8, symBinAddr: 0x10001C498, symSize: 0x70 } - - { offset: 0x10D2DD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV4ModeOMa', symObjAddr: 0x3ADC, symBinAddr: 0x10001C508, symSize: 0x10 } - - { offset: 0x10D2F1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV4ModeOSHAASQWb', symObjAddr: 0x3AEC, symBinAddr: 0x10001C518, symSize: 0x4 } - - { offset: 0x10D305, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV4ModeOAESQAAWl', symObjAddr: 0x3AF0, symBinAddr: 0x10001C51C, symSize: 0x40 } - - { offset: 0x10D496, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV9highlightyySo13NSTextStorageCF10applyStyleL_7pattern5color4boldySS_So7NSColorCSbtFySo0E14CheckingResultCSg_So15NSMatchingFlagsVSpy10ObjectiveC8ObjCBoolVGtXEfU_', symObjAddr: 0xC0, symBinAddr: 0x100018D4C, symSize: 0xEC } - - { offset: 0x10D545, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV12updateNSView_7contextySo12NSScrollViewC_7SwiftUI0E20RepresentableContextVyACGtF', symObjAddr: 0x204, symBinAddr: 0x100018E90, symSize: 0x200 } - - { offset: 0x10D674, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorC13textDidChangeyy10Foundation12NotificationVF', symObjAddr: 0x404, symBinAddr: 0x100019090, symSize: 0x1BC } - - { offset: 0x10D73F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorC13textDidChangeyy10Foundation12NotificationVFTo', symObjAddr: 0x5C0, symBinAddr: 0x10001924C, symSize: 0xA4 } - - { offset: 0x10D767, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCAEycfcTo', symObjAddr: 0x664, symBinAddr: 0x1000192F0, symSize: 0x2C } - - { offset: 0x10D7C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCfZ', symObjAddr: 0x690, symBinAddr: 0x10001931C, symSize: 0x3C } - - { offset: 0x10D80C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCfD', symObjAddr: 0x6CC, symBinAddr: 0x100019358, symSize: 0x318 } - - { offset: 0x10D84B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCfETo', symObjAddr: 0x9E4, symBinAddr: 0x100019670, symSize: 0x3C } - - { offset: 0x10D877, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP04makeF07context0F4TypeQzAD0fG7ContextVyxG_tFTW', symObjAddr: 0xC94, symBinAddr: 0x1000198F4, symSize: 0x8 } - - { offset: 0x10D8A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP06updateF0_7contexty0F4TypeQz_AD0fG7ContextVyxGtFTW', symObjAddr: 0xC9C, symBinAddr: 0x1000198FC, symSize: 0x4 } - - { offset: 0x10D8F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP15makeCoordinator0I0QzyFTW', symObjAddr: 0xCA4, symBinAddr: 0x100019904, symSize: 0xA8 } - - { offset: 0x10D95E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAadEP14_viewListCount6inputsSiSgAD01_fhI6InputsV_tFZTW', symObjAddr: 0xE34, symBinAddr: 0x100019A94, symSize: 0x18 } - - { offset: 0x10D9D5, size: 0x8, addend: 0x0, symName: '_$sSo19NSRegularExpressionC7pattern7optionsABSS_So0aB7OptionsVtKcfcTO', symObjAddr: 0xF04, symBinAddr: 0x100019B14, symSize: 0xE4 } - - { offset: 0x10DB6E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV9highlightyySo13NSTextStorageCFTf4nx_n', symObjAddr: 0xFE8, symBinAddr: 0x100019BF8, symSize: 0x2254 } - - { offset: 0x10E41B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV10makeNSView7contextSo12NSScrollViewC7SwiftUI0E20RepresentableContextVyACG_tFTf4nx_n', symObjAddr: 0x32BC, symBinAddr: 0x10001BECC, symSize: 0x37C } - - { offset: 0x10E637, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwCP', symObjAddr: 0x0, symBinAddr: 0x10001C654, symSize: 0x12C } - - { offset: 0x10E64B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwxx', symObjAddr: 0x12C, symBinAddr: 0x10001C780, symSize: 0x9C } - - { offset: 0x10E65F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwcp', symObjAddr: 0x1C8, symBinAddr: 0x10001C81C, symSize: 0x104 } - - { offset: 0x10E673, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwca', symObjAddr: 0x2CC, symBinAddr: 0x10001C920, symSize: 0x160 } - - { offset: 0x10E687, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwtk', symObjAddr: 0x42C, symBinAddr: 0x10001CA80, symSize: 0xB4 } - - { offset: 0x10E69B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwta', symObjAddr: 0x4E0, symBinAddr: 0x10001CB34, symSize: 0x108 } - - { offset: 0x10E6AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwet', symObjAddr: 0x5E8, symBinAddr: 0x10001CC3C, symSize: 0xC } - - { offset: 0x10E6C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwst', symObjAddr: 0x670, symBinAddr: 0x10001CCC4, symSize: 0xC } - - { offset: 0x10E6D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVMa', symObjAddr: 0x6F0, symBinAddr: 0x10001CD44, symSize: 0x38 } - - { offset: 0x10E6EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVMr', symObjAddr: 0x728, symBinAddr: 0x10001CD7C, symSize: 0x88 } - - { offset: 0x10E6FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x7B0, symBinAddr: 0x10001CE04, symSize: 0x10 } - - { offset: 0x10E83E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVWOc', symObjAddr: 0x1AB0, symBinAddr: 0x10001E09C, symSize: 0x44 } - - { offset: 0x10E852, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVWOb', symObjAddr: 0x1AF8, symBinAddr: 0x10001E0E4, symSize: 0x44 } - - { offset: 0x10E866, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4TextVAA14_PaddingLayoutVGACyxq_GAA4ViewA2aJRzAA0H8ModifierR_rlWl', symObjAddr: 0x1C34, symBinAddr: 0x10001E198, symSize: 0x70 } - - { offset: 0x10E87A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier10CodeEditorVAA14_PaddingLayoutVGACyxq_GAA4ViewA2aKRzAA0J8ModifierR_rlWl', symObjAddr: 0x1CF8, symBinAddr: 0x10001E208, symSize: 0x78 } - - { offset: 0x10E88E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4TextV7StorageOWOe', symObjAddr: 0x1DB0, symBinAddr: 0x10001E280, symSize: 0x10 } - - { offset: 0x10E8A2, size: 0x8, addend: 0x0, symName: '_$sS2SSysWl', symObjAddr: 0x1E08, symBinAddr: 0x10001E2D8, symSize: 0x40 } - - { offset: 0x10E8B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV11saveContent33_4B3ABF61A162A81695F67A2F71DE639FLLyyFyyXEfU_TA', symObjAddr: 0x1E48, symBinAddr: 0x10001E318, symSize: 0x18 } - - { offset: 0x10E8CA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_AUycfU_yyScMYccfU_TA', symObjAddr: 0x1F38, symBinAddr: 0x10001E408, symSize: 0x2C } - - { offset: 0x10E8DE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_AlAEAMyQrqd__AaNRd__lFQOyAS_AA0p9ProminentnL0VQo_G_AA6ZStackVyAA012_ConditionalD0VyACyArA14_PaddingLayoutVGACyAH10CodeEditorVA4_GGGtGGAA011_BackgroundL8ModifierVyAA5ColorVGGAA017_AppearanceActionY0VGACyxq_GAak2aKRzAA0gY0R_rlWl', symObjAddr: 0x1FA8, symBinAddr: 0x10001E438, symSize: 0x78 } - - { offset: 0x10E8F2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_AlAEAMyQrqd__AaNRd__lFQOyAS_AA0p9ProminentnL0VQo_G_AA6ZStackVyAA012_ConditionalD0VyACyArA14_PaddingLayoutVGACyAH10CodeEditorVA4_GGGtGGAA011_BackgroundL8ModifierVyAA5ColorVGGACyxq_GAak2aKRzAA0gY0R_rlWl', symObjAddr: 0x2020, symBinAddr: 0x10001E4B0, symSize: 0xB8 } - - { offset: 0x10EC0A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV7SwiftUI0D0AadEP05_makeD04view6inputsAD01_D7OutputsVAD11_GraphValueVyxG_AD01_D6InputsVtFZTW', symObjAddr: 0x19A4, symBinAddr: 0x10001DFF8, symSize: 0x4 } - - { offset: 0x10EC26, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV7SwiftUI0D0AadEP05_makeD4List4view6inputsAD01_dH7OutputsVAD11_GraphValueVyxG_AD01_dH6InputsVtFZTW', symObjAddr: 0x19A8, symBinAddr: 0x10001DFFC, symSize: 0x4 } - - { offset: 0x10EDA5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg', symObjAddr: 0x7C0, symBinAddr: 0x10001CE14, symSize: 0x274 } - - { offset: 0x10EE54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_', symObjAddr: 0xA34, symBinAddr: 0x10001D088, symSize: 0x2B8 } - - { offset: 0x10EF48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_AUycfU_', symObjAddr: 0xCEC, symBinAddr: 0x10001D340, symSize: 0x280 } - - { offset: 0x10EF98, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_AUycfU_yyScMYccfU_', symObjAddr: 0xF6C, symBinAddr: 0x10001D5C0, symSize: 0x5C } - - { offset: 0x10EFD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_AXycfU0_', symObjAddr: 0xFC8, symBinAddr: 0x10001D61C, symSize: 0x214 } - - { offset: 0x10F028, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_A15_yXEfU1_', symObjAddr: 0x1494, symBinAddr: 0x10001DAE8, symSize: 0x308 } - - { offset: 0x10F28F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV11saveContent33_4B3ABF61A162A81695F67A2F71DE639FLLyyF', symObjAddr: 0x11DC, symBinAddr: 0x10001D830, symSize: 0x2B8 } - - { offset: 0x10F35E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV11loadContent33_4B3ABF61A162A81695F67A2F71DE639FLLyyF', symObjAddr: 0x179C, symBinAddr: 0x10001DDF0, symSize: 0x1A8 } - - { offset: 0x10F39A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x19C4, symBinAddr: 0x10001E000, symSize: 0x4 } - - { offset: 0x10F4DD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerC6sharedACvpZ', symObjAddr: 0x153900, symBinAddr: 0x10012EDC8, symSize: 0x0 } - - { offset: 0x10F7FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV18vpnPortalIpBindingSSvg', symObjAddr: 0x1B0, symBinAddr: 0x10001E734, symSize: 0xD4 } - - { offset: 0x10F8CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV20vpnPortalCidrBindingSSvg', symObjAddr: 0x284, symBinAddr: 0x10001E808, symSize: 0xD8 } - - { offset: 0x10FA6C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerC6shared_WZ', symObjAddr: 0x6E8, symBinAddr: 0x10001EC6C, symSize: 0x44 } - - { offset: 0x10FADB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerCMa', symObjAddr: 0xDFC, symBinAddr: 0x10001F380, symSize: 0x20 } - - { offset: 0x1112E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV18vpnPortalIpBindingSSvpACTk', symObjAddr: 0x96F0, symBinAddr: 0x100027BB4, symSize: 0xA8 } - - { offset: 0x1113D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV20vpnPortalCidrBindingSSvpACTk', symObjAddr: 0x9798, symBinAddr: 0x100027C5C, symSize: 0x98 } - - { offset: 0x111B0C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorCMa', symObjAddr: 0x23D9C, symBinAddr: 0x1000421FC, symSize: 0x20 } - - { offset: 0x111B20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorCMa', symObjAddr: 0x255C8, symBinAddr: 0x1000439C4, symSize: 0x20 } - - { offset: 0x111B34, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldCMa', symObjAddr: 0x25D08, symBinAddr: 0x1000440C8, symSize: 0x20 } - - { offset: 0x111B48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwcp', symObjAddr: 0x25D58, symBinAddr: 0x1000440E8, symSize: 0x4C } - - { offset: 0x111B5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwca', symObjAddr: 0x25DA4, symBinAddr: 0x100044134, symSize: 0x7C } - - { offset: 0x111B70, size: 0x8, addend: 0x0, symName: ___swift_memcpy32_8, symObjAddr: 0x25E20, symBinAddr: 0x1000441B0, symSize: 0xC } - - { offset: 0x111B84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwta', symObjAddr: 0x25E2C, symBinAddr: 0x1000441BC, symSize: 0x4C } - - { offset: 0x111B98, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwet', symObjAddr: 0x25E78, symBinAddr: 0x100044208, symSize: 0x48 } - - { offset: 0x111BAC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwst', symObjAddr: 0x25EC0, symBinAddr: 0x100044250, symSize: 0x40 } - - { offset: 0x111BC0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVMa', symObjAddr: 0x25F00, symBinAddr: 0x100044290, symSize: 0x10 } - - { offset: 0x111BD4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwCP', symObjAddr: 0x25F10, symBinAddr: 0x1000442A0, symSize: 0x454 } - - { offset: 0x111BE8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwxx', symObjAddr: 0x263B4, symBinAddr: 0x1000446F4, symSize: 0x1BC } - - { offset: 0x111BFC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwcp', symObjAddr: 0x26570, symBinAddr: 0x1000448B0, symSize: 0x430 } - - { offset: 0x111C10, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwca', symObjAddr: 0x269A0, symBinAddr: 0x100044CE0, symSize: 0x634 } - - { offset: 0x111C24, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwtk', symObjAddr: 0x26FD4, symBinAddr: 0x100045314, symSize: 0x1C0 } - - { offset: 0x111C38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwta', symObjAddr: 0x27194, symBinAddr: 0x1000454D4, symSize: 0x500 } - - { offset: 0x111C4C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwet', symObjAddr: 0x27694, symBinAddr: 0x1000459D4, symSize: 0xC } - - { offset: 0x111C60, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwst', symObjAddr: 0x27758, symBinAddr: 0x100045A98, symSize: 0xC } - - { offset: 0x111C74, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVMr', symObjAddr: 0x2782C, symBinAddr: 0x100045B6C, symSize: 0xC4 } - - { offset: 0x111C88, size: 0x8, addend: 0x0, symName: '_$s10Foundation3URLVSgMa', symObjAddr: 0x278F0, symBinAddr: 0x100045C30, symSize: 0x54 } - - { offset: 0x111C9C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5StateVy10Foundation3URLVSgGMa', symObjAddr: 0x27944, symBinAddr: 0x100045C84, symSize: 0x60 } - - { offset: 0x111CB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwxx', symObjAddr: 0x27A24, symBinAddr: 0x100045CE4, symSize: 0x48 } - - { offset: 0x111CC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwcp', symObjAddr: 0x27A6C, symBinAddr: 0x100045D2C, symSize: 0x7C } - - { offset: 0x111CD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwca', symObjAddr: 0x27AE8, symBinAddr: 0x100045DA8, symSize: 0xCC } - - { offset: 0x111CEC, size: 0x8, addend: 0x0, symName: ___swift_memcpy64_8, symObjAddr: 0x27BB4, symBinAddr: 0x100045E74, symSize: 0x14 } - - { offset: 0x111D00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwta', symObjAddr: 0x27BC8, symBinAddr: 0x100045E88, symSize: 0x7C } - - { offset: 0x111D14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwet', symObjAddr: 0x27C44, symBinAddr: 0x100045F04, symSize: 0x48 } - - { offset: 0x111D28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwst', symObjAddr: 0x27C8C, symBinAddr: 0x100045F4C, symSize: 0x50 } - - { offset: 0x111D3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVMa', symObjAddr: 0x27CDC, symBinAddr: 0x100045F9C, symSize: 0x10 } - - { offset: 0x111D50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwxx', symObjAddr: 0x27CEC, symBinAddr: 0x100045FAC, symSize: 0xA0 } - - { offset: 0x111D64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwcp', symObjAddr: 0x27D8C, symBinAddr: 0x10004604C, symSize: 0x1E4 } - - { offset: 0x111D78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwca', symObjAddr: 0x27F70, symBinAddr: 0x100046230, symSize: 0x30C } - - { offset: 0x111D8C, size: 0x8, addend: 0x0, symName: ___swift_memcpy311_8, symObjAddr: 0x2827C, symBinAddr: 0x10004653C, symSize: 0x8 } - - { offset: 0x111DA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwta', symObjAddr: 0x28284, symBinAddr: 0x100046544, symSize: 0x234 } - - { offset: 0x111DB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwet', symObjAddr: 0x284B8, symBinAddr: 0x100046778, symSize: 0x48 } - - { offset: 0x111DC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwst', symObjAddr: 0x28500, symBinAddr: 0x1000467C0, symSize: 0x9C } - - { offset: 0x111DDC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVMa', symObjAddr: 0x2859C, symBinAddr: 0x10004685C, symSize: 0x10 } - - { offset: 0x111DF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAaF0D0PWb', symObjAddr: 0x285B8, symBinAddr: 0x10004686C, symSize: 0x4 } - - { offset: 0x111E04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVAE7SwiftUI0D0AAWl', symObjAddr: 0x285BC, symBinAddr: 0x100046870, symSize: 0x40 } - - { offset: 0x111E18, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x285FC, symBinAddr: 0x1000468B0, symSize: 0x10 } - - { offset: 0x111E2C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAaF0D0PWb', symObjAddr: 0x28624, symBinAddr: 0x1000468C4, symSize: 0x4 } - - { offset: 0x111E40, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVAE7SwiftUI0D0AAWl', symObjAddr: 0x28628, symBinAddr: 0x1000468C8, symSize: 0x40 } - - { offset: 0x111EA1, size: 0x8, addend: 0x0, symName: '_$sSlsE5split9maxSplits25omittingEmptySubsequences14whereSeparatorSay11SubSequenceQzGSi_S2b7ElementQzKXEtKFSS_Tg5', symObjAddr: 0x28678, symBinAddr: 0x100046908, symSize: 0x3EC } - - { offset: 0x1122B3, size: 0x8, addend: 0x0, symName: '_$sSlsE5split9maxSplits25omittingEmptySubsequences14whereSeparatorSay11SubSequenceQzGSi_S2b7ElementQzKXEtKFSs_Tg5', symObjAddr: 0x28A64, symBinAddr: 0x100046CF4, symSize: 0x434 } - - { offset: 0x1126C7, size: 0x8, addend: 0x0, symName: '_$ss13_parseInteger5ascii5radixq_Sgx_SitSyRzs010FixedWidthB0R_r0_lFSs_SiTg5', symObjAddr: 0x28E98, symBinAddr: 0x100047128, symSize: 0xFC } - - { offset: 0x11275E, size: 0x8, addend: 0x0, symName: '_$ss13_parseInteger5ascii5radixq_Sgx_SitSyRzs010FixedWidthB0R_r0_lFSS_SiTg5', symObjAddr: 0x28F94, symBinAddr: 0x100047224, symSize: 0xF0 } - - { offset: 0x1127E3, size: 0x8, addend: 0x0, symName: '_$sSS8_copyingyS2SFZ', symObjAddr: 0x29308, symBinAddr: 0x100047598, symSize: 0x50 } - - { offset: 0x1127FB, size: 0x8, addend: 0x0, symName: '_$sSlsEy11SubSequenceQzqd__cSXRd__5BoundQyd__5IndexRtzluigSS_s16PartialRangeFromVySSAEVGTgq5', symObjAddr: 0x29358, symBinAddr: 0x1000475E8, symSize: 0x4C } - - { offset: 0x112845, size: 0x8, addend: 0x0, symName: '_$sSS8_copyingySSSsFZ', symObjAddr: 0x293A4, symBinAddr: 0x100047634, symSize: 0x144 } - - { offset: 0x11289F, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV19_uninitializedCount15minimumCapacityAByxGSi_SitcfCs5UInt8V_Tt1gq5', symObjAddr: 0x294E8, symBinAddr: 0x100047778, symSize: 0x70 } - - { offset: 0x1128E2, size: 0x8, addend: 0x0, symName: '_$sSTsE21_copySequenceContents12initializing8IteratorQz_SitSry7ElementQzG_tFSs8UTF8ViewV_Tgq5', symObjAddr: 0x29558, symBinAddr: 0x1000477E8, symSize: 0x21C } - - { offset: 0x112958, size: 0x8, addend: 0x0, symName: '_$ss11_StringGutsV27_slowEnsureMatchingEncodingySS5IndexVAEF', symObjAddr: 0x29774, symBinAddr: 0x100047A04, symSize: 0x78 } - - { offset: 0x112991, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_insert2at3key5valueys10_HashTableV6BucketV_xnq_ntF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0x297EC, symBinAddr: 0x100047A7C, symSize: 0xC4 } - - { offset: 0x112A3A, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV11removeValue6forKeyq_Sgx_tF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0x298B0, symBinAddr: 0x100047B40, symSize: 0x118 } - - { offset: 0x112AEF, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV8setValue_6forKey8isUniqueyq_n_xSbtF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0x299C8, symBinAddr: 0x100047C58, symSize: 0x184 } - - { offset: 0x112B49, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV22multilineTextAlignmentAA0fG0OvpACTKq', symObjAddr: 0x29B4C, symBinAddr: 0x100047DDC, symSize: 0x28 } - - { offset: 0x112B5D, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV22multilineTextAlignmentAA0fG0OvpACTkq', symObjAddr: 0x29B74, symBinAddr: 0x100047E04, symSize: 0x24 } - - { offset: 0x112B71, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesVAAE15textContentTypeSSSgvpACTKq', symObjAddr: 0x29B98, symBinAddr: 0x100047E28, symSize: 0x28 } - - { offset: 0x112B85, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesVAAE15textContentTypeSSSgvpACTkq', symObjAddr: 0x29BC0, symBinAddr: 0x100047E50, symSize: 0x3C } - - { offset: 0x112B99, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV9lineLimitSiSgvpACTKq', symObjAddr: 0x29BFC, symBinAddr: 0x100047E8C, symSize: 0x30 } - - { offset: 0x112BAD, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV9lineLimitSiSgvpACTkq', symObjAddr: 0x29C2C, symBinAddr: 0x100047EBC, symSize: 0x2C } - - { offset: 0x112BC1, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV14truncationModeAA4TextV010TruncationF0OvpACTKq', symObjAddr: 0x29C58, symBinAddr: 0x100047EE8, symSize: 0x20 } - - { offset: 0x112BD5, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV14truncationModeAA4TextV010TruncationF0OvpACTkq', symObjAddr: 0x29C78, symBinAddr: 0x100047F08, symSize: 0x7C } - - { offset: 0x112BED, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV15foregroundColorAA0F0VSgvpACTKq', symObjAddr: 0x29CF4, symBinAddr: 0x100047F84, symSize: 0x28 } - - { offset: 0x112C01, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV15foregroundColorAA0F0VSgvpACTkq', symObjAddr: 0x29D1C, symBinAddr: 0x100047FAC, symSize: 0x28 } - - { offset: 0x112C15, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV4fontAA4FontVSgvpACTKq', symObjAddr: 0x29D44, symBinAddr: 0x100047FD4, symSize: 0x28 } - - { offset: 0x112C29, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV4fontAA4FontVSgvpACTkq', symObjAddr: 0x29D6C, symBinAddr: 0x100047FFC, symSize: 0x28 } - - { offset: 0x112C3D, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV9isEnabledSbvpACTKq', symObjAddr: 0x29D94, symBinAddr: 0x100048024, symSize: 0x2C } - - { offset: 0x112C51, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV9isEnabledSbvpACTkq', symObjAddr: 0x29DC0, symBinAddr: 0x100048050, symSize: 0x24 } - - { offset: 0x112C65, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4ViewPAAE8disabledyQrSbFySbzcfU_', symObjAddr: 0x29DE4, symBinAddr: 0x100048074, symSize: 0x14 } - - { offset: 0x112C79, size: 0x8, addend: 0x0, symName: '_$sSS8UTF8ViewV32withContiguousStorageIfAvailableyxSgxSRys5UInt8VGKXEKlFSiSg_Tg5', symObjAddr: 0x29DF8, symBinAddr: 0x100048088, symSize: 0xBC } - - { offset: 0x112CE2, size: 0x8, addend: 0x0, symName: '_$sSTsE8contains5whereS2b7ElementQzKXE_tKFSS_Tg5', symObjAddr: 0x29EB4, symBinAddr: 0x100048144, symSize: 0xC8 } - - { offset: 0x112D33, size: 0x8, addend: 0x0, symName: '_$sSlsSQ7ElementRpzrlE5split9separator9maxSplits25omittingEmptySubsequencesSay11SubSequenceQzGAB_SiSbtFSbABXEfU_SS_TG5', symObjAddr: 0x29F7C, symBinAddr: 0x10004820C, symSize: 0x54 } - - { offset: 0x112DD0, size: 0x8, addend: 0x0, symName: '_$sSa17_customRemoveLastxSgyF8Swiftier19EasyTierConfigModelV11ProxySubnetV_Tg5', symObjAddr: 0x29FD0, symBinAddr: 0x100048260, symSize: 0xB4 } - - { offset: 0x112E81, size: 0x8, addend: 0x0, symName: '_$ss17FixedWidthIntegerPsE_5radixxSgqd___SitcSyRd__lufcADSRys5UInt8VGXEfU_Si_SsTG5', symObjAddr: 0x2A084, symBinAddr: 0x100048314, symSize: 0x27C } - - { offset: 0x112FB8, size: 0x8, addend: 0x0, symName: '_$ss5SliceV32withContiguousStorageIfAvailableyqd__Sgqd__SRy7ElementQzGKXEKlFqd__AGKXEfU_SS8UTF8ViewV_SiSgTG5', symObjAddr: 0x2A300, symBinAddr: 0x100048590, symSize: 0x44 } - - { offset: 0x113001, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVAE7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x2B968, symBinAddr: 0x100049BF8, symSize: 0x40 } - - { offset: 0x113015, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgy10Foundation3URLVSgcfU1_TA', symObjAddr: 0x2BBB0, symBinAddr: 0x100049E40, symSize: 0x3C } - - { offset: 0x11303E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgySbcfU2_TA', symObjAddr: 0x2BBEC, symBinAddr: 0x100049E7C, symSize: 0x4C } - - { offset: 0x11305F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgyAA08EasyTierB5ModelVcfU3_TA', symObjAddr: 0x2BC38, symBinAddr: 0x100049EC8, symSize: 0x3C } - - { offset: 0x113073, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVWOc', symObjAddr: 0x2BC74, symBinAddr: 0x100049F04, symSize: 0x34 } - - { offset: 0x113087, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVWOd', symObjAddr: 0x2BCA8, symBinAddr: 0x100049F38, symSize: 0x34 } - - { offset: 0x11309B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVWOh', symObjAddr: 0x2BCDC, symBinAddr: 0x100049F6C, symSize: 0x2C } - - { offset: 0x1130AF, size: 0x8, addend: 0x0, symName: '_$sS2sSysWl', symObjAddr: 0x2BDE4, symBinAddr: 0x10004A034, symSize: 0x40 } - - { offset: 0x1130C3, size: 0x8, addend: 0x0, symName: '_$ss17FixedWidthIntegerPsE_5radixxSgqd___SitcSyRd__lufcADSRys5UInt8VGXEfU_Si_SsTG5TA', symObjAddr: 0x2BEA4, symBinAddr: 0x10004A0F4, symSize: 0x18 } - - { offset: 0x1130D7, size: 0x8, addend: 0x0, symName: '_$ss5SliceV32withContiguousStorageIfAvailableyqd__Sgqd__SRy7ElementQzGKXEKlFqd__AGKXEfU_SS8UTF8ViewV_SiSgTG5TA', symObjAddr: 0x2BEBC, symBinAddr: 0x10004A10C, symSize: 0x1C } - - { offset: 0x1130EB, size: 0x8, addend: 0x0, symName: '_$sS2sSTsWl', symObjAddr: 0x2BED8, symBinAddr: 0x10004A128, symSize: 0x40 } - - { offset: 0x113115, size: 0x8, addend: 0x0, symName: '_$ss5SliceV32withContiguousStorageIfAvailableyqd__Sgqd__SRy7ElementQzGKXEKlFqd__AGKXEfU_SS8UTF8ViewV_SiSgTg5Tf4xnn_n', symObjAddr: 0x2C588, symBinAddr: 0x10004A7D8, symSize: 0x214 } - - { offset: 0x1131AA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_ACyAA08ModifiedD0VyAlAEAMyQrqd__AaNRd__lFQOyAS_AA0p9ProminentnL0VQo_AA32_EnvironmentKeyTransformModifierVySbGGAXyAvA07_HiddenV0VGGG_AlAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAlAE04formL0yQrqd__AA04FormL0Rd__lFQOyAA4FormVyAGyAA7SectionVyArGyAA6HStackVyAGyAR_AlAE21disableAutocorrectionyQrSbSgFQOyAXyAlAE06labelsW0QryFQOyAlAE09textFieldL0yQrqd__AA0o5FieldL0Rd__lFQOyAXyAA0O5FieldVyARGAA01_st7WritingV0VyAA0O9AlignmentOGG_AA05Plaino5FieldL0VQo__Qo_A29_ySSSgGG_Qo_tGG_A19_yAGyAXyArA16_FixedSizeLayoutVG_AA6SpacerVAlAE10monospacedyQrSbFQOyAXyAXyARA29_ySiSgGGA29_yAR14TruncationModeOGG_Qo_AlAE4helpyQrAA015LocalizedStringT0VFQOyAlAEAMyQrqd__AaNRd__lFQOyAPyAA5ImageVG_AA05PlainnL0VQo__Qo_tGGA19_yAGyAR_A48_AXyAlAEA22_QryFQOyAlAEA23_yQrqd__AAA24_Rd__lFQOyAXyA33_AA12_FrameLayoutVG_A35_Qo__Qo_A39_GtGGtGAA05EmptyG0VG_A17_yArGyAA6ToggleVyARG_AGyAA7ForEachVySnySiGSiA19_yAGyAR_A48_AXyAH015ConfigGeneratorG0V9IPv4FieldVA45_GAlAEAMyQrqd__AaNRd__lFQOyAPyAXyA62_A29_yAA5ColorVSgGGG_A65_Qo_tGGG_AlAEAMyQrqd__AaNRd__lFQOyAPyAXyA19_yAGyA62__ARtGGA96_GG_A65_Qo_tGSgtGARGA17_yArGyA86_yAA7BindingVySayAH19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA19_yAGyAR_A48_AXyA89_13IPv4CidrFieldVA45_GA99_tGGG_A107_tGA80_GA17_yArGyA84__AGyA19_yAGyAR_A48_A125_tGG_A19_yAGyAR_A48_AXyAlAEA22_QryFQOyA72__Qo_A39_GtGGtGSgtGA80_GA17_yArGyA86_yA87_SiA19_yAGyAlAEA20_yQrA21_FQOyAXyAlAEA22_QryFQOyAlAEA23_yQrqd__AAA24_Rd__lFQOyA27__A35_Qo__Qo_A39_G_Qo__A48_A99_tGGG_A107_tGA80_GA17_yArGyA84__AA5GroupVyAGyA147__AlAEAMyQrqd__AaNRd__lFQOyAPyAXyAA5LabelVyARA62_GA96_GG_A65_Qo_tGGSgtGARGA17_yArGyA84__AGyA86_yA87_SiA127_G_A107_tGSgtGARGA17_yArGyA84__A19_yAGyAR_A48_AXyA72_A39_GtGGSgtGARGA17_yARA108_ARGA17_yARA159_ARGA17_yArGyAXyAEyAGyA84__A46_tGGAA14_PaddingLayoutVG_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_tGA80_GtGG_AA011GroupedFormL0VQo__Qo_tGGAEyAGyA8__AlAEA9_yQrA11_FQOyAlAEA12_yQrqd__AAA13_Rd__lFQOyA15_yAGyA86_yA113_ySayAH15PortForwardRuleVGGA122_A17_yA19_yAGyA48__AlAEAMyQrqd__AaNRd__lFQOyAXyAXyASA29_yAA4FontVSgGGA96_G_A65_Qo_tGGAXyAEyAGyA19_yAGyAR_A48_AXyAlAE06pickerL0yQrqd__AA06PickerL0Rd__lFQOyAA6PickerVyARSSAGyAlAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAR_SSQo__A210_tGG_AA015SegmentedPickerL0VQo_A71_GtGG_AA7DividerVAlAEA22_QryFQOyAlAEA23_yQrqd__AAA24_Rd__lFQOyA19_yAGyAR_A48_A92_ArXyA27_A71_GtGG_A35_Qo__Qo_A19_yAGyA48__AXyAXyA62_A198_GA96_GARA48_tGGA225_tGGA179_GA80_GG_A17_yA80_A107_A80_GtGG_A186_Qo__Qo_tGGGACyxq_GAak2aKRzAaKR_rlWl', symObjAddr: 0x2C79C, symBinAddr: 0x10004A9EC, symSize: 0xC0 } - - { offset: 0x1131BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_TA', symObjAddr: 0x2C868, symBinAddr: 0x10004AAB8, symSize: 0x8 } - - { offset: 0x1131D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_TA', symObjAddr: 0x2C8B0, symBinAddr: 0x10004AAC0, symSize: 0x8 } - - { offset: 0x1131E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_TA', symObjAddr: 0x2C8B8, symBinAddr: 0x10004AAC8, symSize: 0x8 } - - { offset: 0x1131FA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_TA', symObjAddr: 0x2C8C0, symBinAddr: 0x10004AAD0, symSize: 0x8 } - - { offset: 0x11320E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A137_yXEfU2_TA', symObjAddr: 0x2C8C8, symBinAddr: 0x10004AAD8, symSize: 0x8 } - - { offset: 0x113222, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_TA', symObjAddr: 0x2C8D0, symBinAddr: 0x10004AAE0, symSize: 0x8 } - - { offset: 0x113236, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A155_yXEfU4_TA', symObjAddr: 0x2C8D8, symBinAddr: 0x10004AAE8, symSize: 0x8 } - - { offset: 0x11324A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_TA', symObjAddr: 0x2C8E0, symBinAddr: 0x10004AAF0, symSize: 0x8 } - - { offset: 0x11325E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A166_yXEfU6_TA', symObjAddr: 0x2C8E8, symBinAddr: 0x10004AAF8, symSize: 0x8 } - - { offset: 0x113272, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_TA', symObjAddr: 0x2C8F0, symBinAddr: 0x10004AB00, symSize: 0x8 } - - { offset: 0x113286, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A153_yXEfU8_TA', symObjAddr: 0x2C8F8, symBinAddr: 0x10004AB08, symSize: 0x8 } - - { offset: 0x11329A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5GroupVyAA9TupleViewVyAA7ForEachVySnySiGSiAA6HStackVyAEyAA0E0PAAE21disableAutocorrectionyQrSbSgFQOyAA15ModifiedContentVyAlAE12labelsHiddenQryFQOyAlAE14textFieldStyleyQrqd__AA04TextpQ0Rd__lFQOyAA0rP0VyAA0R0VG_AA05PlainrpQ0VQo__Qo_AA30_EnvironmentKeyWritingModifierVySSSgGG_Qo__AA6SpacerVAlAE06buttonQ0yQrqd__AA015PrimitiveButtonQ0Rd__lFQOyAA6ButtonVyAPyAA5ImageVA2_yAA5ColorVSgGGG_AA0s6ButtonQ0VQo_tGGG_AlAEA9_yQrqd__AAA10_Rd__lFQOyA12_yAPyAA5LabelVyAWA14_GA18_GG_A22_Qo_tGGACyxGAak2aKRzlWl', symObjAddr: 0x2C900, symBinAddr: 0x10004AB10, symSize: 0x90 } - - { offset: 0x1132AE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_TA', symObjAddr: 0x2C990, symBinAddr: 0x10004ABA0, symSize: 0x8 } - - { offset: 0x1132C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_TA', symObjAddr: 0x2CCC4, symBinAddr: 0x10004AEB4, symSize: 0x10 } - - { offset: 0x1132D6, size: 0x8, addend: 0x0, symName: '_$sSnySiGSnyxGSksSxRzSZ6StrideRpzrlWl', symObjAddr: 0x2CCD4, symBinAddr: 0x10004AEC4, symSize: 0x78 } - - { offset: 0x1132EA, size: 0x8, addend: 0x0, symName: '_$sS2iSZsWl', symObjAddr: 0x2CD4C, symBinAddr: 0x10004AF3C, symSize: 0x40 } - - { offset: 0x1132FE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_yyScMYccfU0_TA', symObjAddr: 0x2CD94, symBinAddr: 0x10004AF84, symSize: 0xC } - - { offset: 0x113312, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5LabelVyAA4TextVAA5ImageVGAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGACyxq_GAA4ViewA2aSRzAA0mK0R_rlWl', symObjAddr: 0x2CDA0, symBinAddr: 0x10004AF90, symSize: 0xB8 } - - { offset: 0x11333C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_SSyYbcfU_TA', symObjAddr: 0x2CEAC, symBinAddr: 0x10004B09C, symSize: 0x10 } - - { offset: 0x113350, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_ySSYbcfU0_TA', symObjAddr: 0x2CEF8, symBinAddr: 0x10004B0E8, symSize: 0x10 } - - { offset: 0x11337A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE12labelsHiddenQryFQOyAeAE14textFieldStyleyQrqd__AA04TextiJ0Rd__lFQOyAA0kI0VyAA0K0VG_AA05PlainkiJ0VQo__Qo_AA30_EnvironmentKeyWritingModifierVySSSgGGACyxq_GAad2aDRzAA0eP0R_rlWl', symObjAddr: 0x2CF6C, symBinAddr: 0x10004B15C, symSize: 0x164 } - - { offset: 0x11338E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_yyScMYccfU1_TA', symObjAddr: 0x2D118, symBinAddr: 0x10004B308, symSize: 0xC } - - { offset: 0x1133A2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGACyxq_GAA4ViewA2aNRzAA0kI0R_rlWl', symObjAddr: 0x2D124, symBinAddr: 0x10004B314, symSize: 0x98 } - - { offset: 0x1133B6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyAA5ImageV_AA4TextVtGGAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGACyxq_GAA0G0A2aVRzAA0gM0R_rlWl', symObjAddr: 0x2D1E4, symBinAddr: 0x10004B3D4, symSize: 0xB8 } - - { offset: 0x1133CA, size: 0x8, addend: 0x0, symName: '_$sS2iSzsWl', symObjAddr: 0x2D4D4, symBinAddr: 0x10004B6C4, symSize: 0x40 } - - { offset: 0x1133F4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA9TextFieldVyAA0E0VGAA30_EnvironmentKeyWritingModifierVyAA0E9AlignmentOGGAA12_FrameLayoutVGACyxq_GAA4ViewA2aSRzAA0nJ0R_rlWl', symObjAddr: 0x2D99C, symBinAddr: 0x10004BB8C, symSize: 0x78 } - - { offset: 0x113408, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA9TextFieldVyAA0E0VGAA30_EnvironmentKeyWritingModifierVyAA0E9AlignmentOGGACyxq_GAA4ViewA2aPRzAA0lJ0R_rlWl', symObjAddr: 0x2DA14, symBinAddr: 0x10004BC04, symSize: 0xB8 } - - { offset: 0x11341C, size: 0x8, addend: 0x0, symName: '_$sSSWOh', symObjAddr: 0x2DB24, symBinAddr: 0x10004BD14, symSize: 0x34 } - - { offset: 0x113430, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVySay8Swiftier19EasyTierConfigModelV11ProxySubnetVGGACyxGSkAASMRzSkRzlWl', symObjAddr: 0x2DB64, symBinAddr: 0x10004BD54, symSize: 0xC0 } - - { offset: 0x113444, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVy8Swiftier19EasyTierConfigModelV11ProxySubnetVGACyxGs12IdentifiableAAsAKRzlWl', symObjAddr: 0x2DC24, symBinAddr: 0x10004BE14, symSize: 0x88 } - - { offset: 0x113458, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_TA', symObjAddr: 0x2E10C, symBinAddr: 0x10004C2FC, symSize: 0x4C } - - { offset: 0x11346C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_A44_yYbcfU_TA', symObjAddr: 0x2E390, symBinAddr: 0x10004C580, symSize: 0x40 } - - { offset: 0x113480, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_yA44_YbcfU0_TA', symObjAddr: 0x2E3D0, symBinAddr: 0x10004C5C0, symSize: 0x40 } - - { offset: 0x1134B5, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGyAE14TruncationModeOGGACyxq_GAA4ViewA2aPRzAA0lI0R_rlWl', symObjAddr: 0x2E490, symBinAddr: 0x10004C680, symSize: 0x98 } - - { offset: 0x1134C9, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGACyxq_GAA4ViewA2aLRzAA0jI0R_rlWl', symObjAddr: 0x2E528, symBinAddr: 0x10004C718, symSize: 0x98 } - - { offset: 0x1134DD, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE12labelsHiddenQryFQOyAeAE14textFieldStyleyQrqd__AA04TextiJ0Rd__lFQOyACyAA0kI0VyAA0K0VGAA30_EnvironmentKeyWritingModifierVyAA0K9AlignmentOGG_AA05PlainkiJ0VQo__Qo_AOySSSgGGACyxq_GAad2aDRzAA0eO0R_rlWl', symObjAddr: 0x2E5CC, symBinAddr: 0x10004C7BC, symSize: 0x13C } - - { offset: 0x1134F1, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE11buttonStyleyQrqd__AA015PrimitiveButtonG0Rd__lFQOyAA0I0VyAA4TextVG_AA017BorderedProminentiG0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyxq_GAad2aDRzAA0eP0R_rlWl', symObjAddr: 0x2E708, symBinAddr: 0x10004C8F8, symSize: 0x12C } - - { offset: 0x113505, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE11buttonStyleyQrqd__AA015PrimitiveButtonG0Rd__lFQOyAA0I0VyAA4TextVG_AA08BorderediG0VQo_AA15_HiddenModifierVGACyxq_GAad2aDRzAA0eM0R_rlWl', symObjAddr: 0x2E834, symBinAddr: 0x10004CA24, symSize: 0x10C } - - { offset: 0x113519, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15_HiddenModifierVAcA04ViewD0AAWl', symObjAddr: 0x2E940, symBinAddr: 0x10004CB30, symSize: 0x40 } - - { offset: 0x11352D, size: 0x8, addend: 0x0, symName: '_$sIeg_SgWOy', symObjAddr: 0x2E980, symBinAddr: 0x10004CB70, symSize: 0x10 } - - { offset: 0x113541, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI18LocalizedStringKeyVSgWOy', symObjAddr: 0x2E990, symBinAddr: 0x10004CB80, symSize: 0x30 } - - { offset: 0x113576, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4ViewPAAE8disabledyQrSbFySbzcfU_TA', symObjAddr: 0x2EA20, symBinAddr: 0x10004CC10, symSize: 0x18 } - - { offset: 0x11359F, size: 0x8, addend: 0x0, symName: '_$sIeg_SgWOe', symObjAddr: 0x2EA38, symBinAddr: 0x10004CC28, symSize: 0x10 } - - { offset: 0x1135B3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_TA', symObjAddr: 0x2ED3C, symBinAddr: 0x10004CF2C, symSize: 0x8 } - - { offset: 0x1135C7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVySay8Swiftier15PortForwardRuleVGGACyxGSkAASMRzSkRzlWl', symObjAddr: 0x2EDAC, symBinAddr: 0x10004CF9C, symSize: 0xC0 } - - { offset: 0x1135DB, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7SectionVyAA6HStackVyAA9TupleViewVyAA6SpacerV_AA0F0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonI0Rd__lFQOyAA15ModifiedContentVyAOyAA0K0VyAA4TextVGAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAVyAA5ColorVSgGG_AA05PlainkI0VQo_tGGAOyAA6VStackVyAGyAEyAGyAS_AiOyAkAE06pickerI0yQrqd__AA06PickerI0Rd__lFQOyAA0X0VyASSSAGyAkAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAS_SSQo__A18_tGG_AA09SegmentedxI0VQo_AA12_FrameLayoutVGtGG_AA7DividerVAkAE12labelsHiddenQryFQOyAkAE09textFieldI0yQrqd__AA0n5FieldI0Rd__lFQOyAEyAGyAS_AiOy8Swiftier015ConfigGeneratorF0V9IPv4FieldVAA16_FixedSizeLayoutVGAsOyAA0N5FieldVyASGA25_GtGG_AA0un5FieldI0VQo__Qo_AEyAGyAI_AOyAOyAA5ImageVAZGA3_GAsItGGA51_tGGAA14_PaddingLayoutVGAA05EmptyF0VGACyxq_q0_GAaj2aJRzAaJR_AaJR0_rlWl', symObjAddr: 0x2EE6C, symBinAddr: 0x10004D05C, symSize: 0xA4 } - - { offset: 0x1135EF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyAA4TextV_AA6SpacerVACyAA0G0PAAE11pickerStyleyQrqd__AA06PickerL0Rd__lFQOyAA0M0VyAKSSAGyAoAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAK_SSQo__AVtGG_AA09SegmentedmL0VQo_AA12_FrameLayoutVGtGG_AA7DividerVAoAE12labelsHiddenQryFQOyAoAE09textFieldL0yQrqd__AA0ixL0Rd__lFQOyAIyAGyAK_AmCy8Swiftier015ConfigGeneratorG0V04IPv4X0VAA010_FixedSizeS0VGAkCyAA0iX0VyAKGA1_GtGG_AA05PlainixL0VQo__Qo_AIyAGyAM_ACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA31_yAA5ColorVSgGGAkMtGGA27_tGGAA08_PaddingS0VGACyxq_GAan2aNRzAA0G8ModifierR_rlWl', symObjAddr: 0x2EF10, symBinAddr: 0x10004D100, symSize: 0x98 } - - { offset: 0x113603, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVy8Swiftier15PortForwardRuleVGACyxGs12IdentifiableAAsAIRzlWl', symObjAddr: 0x2EFA8, symBinAddr: 0x10004D198, symSize: 0x88 } - - { offset: 0x113617, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A112_yXEfU0_TA', symObjAddr: 0x2F030, symBinAddr: 0x10004D220, symSize: 0x8 } - - { offset: 0x11362B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_TA', symObjAddr: 0x2F044, symBinAddr: 0x10004D234, symSize: 0x8 } - - { offset: 0x113655, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6ButtonVyAA4TextVGAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAJyAA5ColorVSgGGACyxq_GAA4ViewA2aVRzAA0mJ0R_rlWl', symObjAddr: 0x2F45C, symBinAddr: 0x10004D64C, symSize: 0x98 } - - { offset: 0x113669, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ButtonVyAA4TextVGAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGACyxq_GAA4ViewA2aQRzAA0lJ0R_rlWl', symObjAddr: 0x2F4F4, symBinAddr: 0x10004D6E4, symSize: 0xB8 } - - { offset: 0x11367D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_yycfU0_TA', symObjAddr: 0x2F5B8, symBinAddr: 0x10004D7A8, symSize: 0x38 } - - { offset: 0x1136A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_TA', symObjAddr: 0x2F718, symBinAddr: 0x10004D908, symSize: 0x8 } - - { offset: 0x1136BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A23_yXEfU_TA', symObjAddr: 0x2F720, symBinAddr: 0x10004D910, symSize: 0x8 } - - { offset: 0x1136CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_TA', symObjAddr: 0x2F728, symBinAddr: 0x10004D918, symSize: 0x8 } - - { offset: 0x1136E2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A140_yXEfU1_TA', symObjAddr: 0x2F730, symBinAddr: 0x10004D920, symSize: 0x8 } - - { offset: 0x1136F6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyAA4TextV_AA6SpacerVACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGAOyAA4FontVSgGGtGGAA01_d5ShapeN0VyAA9RectangleVGGACyxq_GAA0G0A2AA7_RzAA0gN0R_rlWl', symObjAddr: 0x2F740, symBinAddr: 0x10004D930, symSize: 0xB8 } - - { offset: 0x11370A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOACSHAAWl', symObjAddr: 0x2F840, symBinAddr: 0x10004DA30, symSize: 0x40 } - - { offset: 0x11371E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySay8Swiftier8PeerModeOGSSAA4ViewPAAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAA4TextV_AFQo_GACyxq_q0_GAah2aHR0_rlWl', symObjAddr: 0x2F880, symBinAddr: 0x10004DA70, symSize: 0xA4 } - - { offset: 0x113732, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOACs12IdentifiableAAWl', symObjAddr: 0x2FA9C, symBinAddr: 0x10004DC44, symSize: 0x40 } - - { offset: 0x113746, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA4ViewPAAE12labelsHiddenQryFQOyACyAA9TextFieldVyAA0H0VGAA30_EnvironmentKeyWritingModifierVyAA0H9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGAMySSSgGGACyxq_GAad2aDRzAA0eM0R_rlWl', symObjAddr: 0x2FB24, symBinAddr: 0x10004DC84, symSize: 0x98 } - - { offset: 0x11375A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE12labelsHiddenQryFQOyACyAA9TextFieldVyAA0H0VGAA30_EnvironmentKeyWritingModifierVyAA0H9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGACyxq_GAad2aDRzAA0eM0R_rlWl', symObjAddr: 0x2FBBC, symBinAddr: 0x10004DD1C, symSize: 0xA8 } - - { offset: 0x11376E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI6HStackVyAA9TupleViewVyAA4TextV_AA6SpacerVAA15ModifiedContentVy8Swiftier015ConfigGeneratorE0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgWOi0_', symObjAddr: 0x2FCA8, symBinAddr: 0x10004DDC4, symSize: 0x1C } - - { offset: 0x113782, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVWOc', symObjAddr: 0x2FCDC, symBinAddr: 0x10004DDE0, symSize: 0x34 } - - { offset: 0x113796, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVAE7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x2FD10, symBinAddr: 0x10004DE14, symSize: 0x40 } - - { offset: 0x1137AA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV22OctetTextFieldDelegate_pSgXwWOh', symObjAddr: 0x2FD50, symBinAddr: 0x10004DE54, symSize: 0x24 } - - { offset: 0x1137BE, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_TA', symObjAddr: 0x2FD9C, symBinAddr: 0x10004DEA0, symSize: 0x84 } - - { offset: 0x1137D2, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tgq5TA', symObjAddr: 0x2FE8C, symBinAddr: 0x10004DF48, symSize: 0x70 } - - { offset: 0x1137E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorC11syncToModelyyFyyScMYccfU_TA', symObjAddr: 0x2FF78, symBinAddr: 0x10004E034, symSize: 0x14 } - - { offset: 0x11383E, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x2FF8C, symBinAddr: 0x10004E048, symSize: 0x10 } - - { offset: 0x113852, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x2FF9C, symBinAddr: 0x10004E058, symSize: 0x8 } - - { offset: 0x113866, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC11syncToModelyyFyyScMYccfU_TA', symObjAddr: 0x30118, symBinAddr: 0x10004E060, symSize: 0x14 } - - { offset: 0x1138BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVSgWOi0_', symObjAddr: 0x302B4, symBinAddr: 0x10004E0C8, symSize: 0x38 } - - { offset: 0x1138D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12ConfigScreenOMa', symObjAddr: 0x3043C, symBinAddr: 0x10004E134, symSize: 0x10 } - - { offset: 0x1138E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwCP', symObjAddr: 0x3044C, symBinAddr: 0x10004E144, symSize: 0x94 } - - { offset: 0x1138FA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwxx', symObjAddr: 0x304E0, symBinAddr: 0x10004E1D8, symSize: 0x48 } - - { offset: 0x11390E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwcp', symObjAddr: 0x30528, symBinAddr: 0x10004E220, symSize: 0x68 } - - { offset: 0x113922, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwca', symObjAddr: 0x30590, symBinAddr: 0x10004E288, symSize: 0x7C } - - { offset: 0x113936, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwtk', symObjAddr: 0x3060C, symBinAddr: 0x10004E304, symSize: 0x5C } - - { offset: 0x11394A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwta', symObjAddr: 0x30668, symBinAddr: 0x10004E360, symSize: 0x6C } - - { offset: 0x11395E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwet', symObjAddr: 0x306D4, symBinAddr: 0x10004E3CC, symSize: 0xC } - - { offset: 0x113972, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwst', symObjAddr: 0x306E4, symBinAddr: 0x10004E3DC, symSize: 0xC } - - { offset: 0x113986, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVMr', symObjAddr: 0x306F4, symBinAddr: 0x10004E3EC, symSize: 0x70 } - - { offset: 0x11399A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwCP', symObjAddr: 0x30764, symBinAddr: 0x10004E45C, symSize: 0x104 } - - { offset: 0x1139AE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwxx', symObjAddr: 0x30868, symBinAddr: 0x10004E560, symSize: 0x88 } - - { offset: 0x1139C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwcp', symObjAddr: 0x308F0, symBinAddr: 0x10004E5E8, symSize: 0xD8 } - - { offset: 0x1139D6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwca', symObjAddr: 0x309C8, symBinAddr: 0x10004E6C0, symSize: 0x12C } - - { offset: 0x1139EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwtk', symObjAddr: 0x30AF4, symBinAddr: 0x10004E7EC, symSize: 0x84 } - - { offset: 0x1139FE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwta', symObjAddr: 0x30B78, symBinAddr: 0x10004E870, symSize: 0xDC } - - { offset: 0x113A12, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwet', symObjAddr: 0x30C54, symBinAddr: 0x10004E94C, symSize: 0xC } - - { offset: 0x113A26, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwst', symObjAddr: 0x30CE0, symBinAddr: 0x10004E9D8, symSize: 0xC } - - { offset: 0x113A3A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVMr', symObjAddr: 0x30D68, symBinAddr: 0x10004EA60, symSize: 0x78 } - - { offset: 0x113A4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOMa', symObjAddr: 0x30F24, symBinAddr: 0x10004EAD8, symSize: 0x10 } - - { offset: 0x113A62, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GAA017_AppearanceActionW0VGAA012_ValueActionW0VyA210_3URLVSgGGA326_ySbGGA326_yA205_GGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x30F38, symBinAddr: 0x10004EAEC, symSize: 0x98 } - - { offset: 0x113A76, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GAA017_AppearanceActionW0VGAA012_ValueActionW0VyA210_3URLVSgGGA326_ySbGGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x30FD0, symBinAddr: 0x10004EB84, symSize: 0x98 } - - { offset: 0x113A8A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GAA017_AppearanceActionW0VGAA012_ValueActionW0VyA210_3URLVSgGGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x31068, symBinAddr: 0x10004EC1C, symSize: 0x98 } - - { offset: 0x113A9E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GAA017_AppearanceActionW0VGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x31100, symBinAddr: 0x10004ECB4, symSize: 0x78 } - - { offset: 0x113AB2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x31178, symBinAddr: 0x10004ED2C, symSize: 0x98 } - - { offset: 0x113AC6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x31210, symBinAddr: 0x10004EDC4, symSize: 0x98 } - - { offset: 0x113ADA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x312A8, symBinAddr: 0x10004EE5C, symSize: 0xB8 } - - { offset: 0x113AEE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOs12CaseIterableAA8AllCasessADP_SlWT', symObjAddr: 0x31360, symBinAddr: 0x10004EF14, symSize: 0x34 } - - { offset: 0x113B02, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12ConfigScreenOSHAASQWb', symObjAddr: 0x313D8, symBinAddr: 0x10004EF48, symSize: 0x4 } - - { offset: 0x113B16, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12ConfigScreenOACSQAAWl', symObjAddr: 0x313DC, symBinAddr: 0x10004EF4C, symSize: 0x40 } - - { offset: 0x113B2A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSHAASQWb', symObjAddr: 0x31428, symBinAddr: 0x10004EF8C, symSize: 0x4 } - - { offset: 0x113B3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOACSQAAWl', symObjAddr: 0x3142C, symBinAddr: 0x10004EF90, symSize: 0x40 } - - { offset: 0x113CA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI0D0AafGP05_makeD04view6inputsAF01_D7OutputsVAF11_GraphValueVyxG_AF01_D6InputsVtFZTW', symObjAddr: 0x23EF4, symBinAddr: 0x100042308, symSize: 0x50 } - - { offset: 0x113CC3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI0D0AafGP05_makeD4List4view6inputsAF01_dK7OutputsVAF11_GraphValueVyxG_AF01_dK6InputsVtFZTW', symObjAddr: 0x23F44, symBinAddr: 0x100042358, symSize: 0x50 } - - { offset: 0x113CDF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI0D0AafGP4body4BodyQzvgTW', symObjAddr: 0x23FAC, symBinAddr: 0x1000423A8, symSize: 0x24 } - - { offset: 0x113CFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI0D0AafGP05_makeD04view6inputsAF01_D7OutputsVAF11_GraphValueVyxG_AF01_D6InputsVtFZTW', symObjAddr: 0x2578C, symBinAddr: 0x100043B4C, symSize: 0x50 } - - { offset: 0x113D17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI0D0AafGP05_makeD4List4view6inputsAF01_dJ7OutputsVAF11_GraphValueVyxG_AF01_dJ6InputsVtFZTW', symObjAddr: 0x257DC, symBinAddr: 0x100043B9C, symSize: 0x50 } - - { offset: 0x113D33, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI0D0AafGP4body4BodyQzvgTW', symObjAddr: 0x2582C, symBinAddr: 0x100043BEC, symSize: 0x24 } - - { offset: 0x113DD0, size: 0x8, addend: 0x0, symName: '_$sSmsSKRzrlE10removeLast7ElementSTQzyFSay8Swiftier15PortForwardRuleVG_Tg5', symObjAddr: 0x8, symBinAddr: 0x10001E58C, symSize: 0xA0 } - - { offset: 0x113F6B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x35C, symBinAddr: 0x10001E8E0, symSize: 0xF8 } - - { offset: 0x114081, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSHAASH9hashValueSivgTW', symObjAddr: 0x454, symBinAddr: 0x10001E9D8, symSize: 0xA4 } - - { offset: 0x114135, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x4F8, symBinAddr: 0x10001EA7C, symSize: 0x80 } - - { offset: 0x1141A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x578, symBinAddr: 0x10001EAFC, symSize: 0xA0 } - - { offset: 0x1147F6, size: 0x8, addend: 0x0, symName: '_$sSlsE9dropFirsty11SubSequenceQzSiFSS_Tg5Tf4ng_n', symObjAddr: 0x2ABFC, symBinAddr: 0x100048E8C, symSize: 0x9C } - - { offset: 0x11488B, size: 0x8, addend: 0x0, symName: '_$sSlsE8dropLasty11SubSequenceQzSiFSS_Tg5Tf4ng_n', symObjAddr: 0x2AC98, symBinAddr: 0x100048F28, symSize: 0xB8 } - - { offset: 0x114964, size: 0x8, addend: 0x0, symName: '_$sSlsE6prefixy11SubSequenceQzSiFSS_Tg5Tf4ng_n', symObjAddr: 0x2B49C, symBinAddr: 0x10004972C, symSize: 0x88 } - - { offset: 0x1167D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xAC, symBinAddr: 0x10001E630, symSize: 0x4 } - - { offset: 0x1167E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xAC, symBinAddr: 0x10001E630, symSize: 0x4 } - - { offset: 0x116828, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xE8, symBinAddr: 0x10001E66C, symSize: 0x74 } - - { offset: 0x1168A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x15C, symBinAddr: 0x10001E6E0, symSize: 0x54 } - - { offset: 0x116900, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSYAASY8rawValuexSg03RawE0Qz_tcfCTW', symObjAddr: 0x618, symBinAddr: 0x10001EB9C, symSize: 0x2C } - - { offset: 0x116937, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOs12CaseIterableAAsADP8allCases03AllG0QzvgZTW', symObjAddr: 0x6A8, symBinAddr: 0x10001EC2C, symSize: 0x40 } - - { offset: 0x1169BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerC05clearC03fory10Foundation3URLVSg_tF', symObjAddr: 0x72C, symBinAddr: 0x10001ECB0, symSize: 0x270 } - - { offset: 0x116A4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerCfZ', symObjAddr: 0x99C, symBinAddr: 0x10001EF20, symSize: 0xB4 } - - { offset: 0x116AB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerCfD', symObjAddr: 0xA50, symBinAddr: 0x10001EFD4, symSize: 0x3AC } - - { offset: 0x116B88, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvg', symObjAddr: 0xEDC, symBinAddr: 0x10001F3A0, symSize: 0x748 } - - { offset: 0x1170AA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE16allowsHitTestingyQrSbFQOyAiEE6zIndexyQrSdFQOyAC04mainD0QrvpQOy_Qo__Qo__Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEEAKyQrSdFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE5GroupVyAE19_ConditionalContentVyA1_yAC08advancedD0QrvpQOy_Qo_AC014portForwardingD0QrvpQOy_Qo_GAE05EmptyD0VGG_AE5ColorVQo__Qo__Qo_SgtGyXEfU_', symObjAddr: 0x1624, symBinAddr: 0x10001FAE8, symSize: 0x4BC } - - { offset: 0x117582, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE16allowsHitTestingyQrSbFQOyAiEE6zIndexyQrSdFQOyAC04mainD0QrvpQOy_Qo__Qo__Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEEAKyQrSdFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE5GroupVyAE19_ConditionalContentVyA1_yAC08advancedD0QrvpQOy_Qo_AC014portForwardingD0QrvpQOy_Qo_GAE05EmptyD0VGG_AE5ColorVQo__Qo__Qo_SgtGyXEfU_A9_yXEfU_', symObjAddr: 0x1AE0, symBinAddr: 0x10001FFA4, symSize: 0x460 } - - { offset: 0x11773B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgyycfU0_', symObjAddr: 0x1F40, symBinAddr: 0x100020404, symSize: 0xE8 } - - { offset: 0x117785, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgyAA08EasyTierB5ModelVcfU3_', symObjAddr: 0x27C4, symBinAddr: 0x100020C88, symSize: 0x110 } - - { offset: 0x117964, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV11loadContent33_45EEDC5FDAAB16083A3A535BA0EECC81LL10forceResetySb_tF', symObjAddr: 0x2028, symBinAddr: 0x1000204EC, symSize: 0x79C } - - { offset: 0x117A79, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV12loadFromFile33_45EEDC5FDAAB16083A3A535BA0EECC81LLyyF', symObjAddr: 0x28D4, symBinAddr: 0x100020D98, symSize: 0x204 } - - { offset: 0x117B6C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_', symObjAddr: 0x2AD8, symBinAddr: 0x100020F9C, symSize: 0x6DC } - - { offset: 0x117C06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_', symObjAddr: 0x31B4, symBinAddr: 0x100021678, symSize: 0x1234 } - - { offset: 0x117D07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_', symObjAddr: 0x43E8, symBinAddr: 0x1000228AC, symSize: 0x348 } - - { offset: 0x117E43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A33_yXEfU_', symObjAddr: 0x4730, symBinAddr: 0x100022BF4, symSize: 0x508 } - - { offset: 0x117F4C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A60_yXEfU0_', symObjAddr: 0x4C38, symBinAddr: 0x1000230FC, symSize: 0x770 } - - { offset: 0x118039, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A60_yXEfU0_yyScMYccfU_', symObjAddr: 0x53A8, symBinAddr: 0x10002386C, symSize: 0x190 } - - { offset: 0x118078, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A60_yXEfU0_A54_yXEfU0_', symObjAddr: 0x5538, symBinAddr: 0x1000239FC, symSize: 0x3C } - - { offset: 0x1180C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_', symObjAddr: 0x5574, symBinAddr: 0x100023A38, symSize: 0x7C4 } - - { offset: 0x118244, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_A44_yYbcfU_', symObjAddr: 0x5D38, symBinAddr: 0x1000241FC, symSize: 0xF4 } - - { offset: 0x11826A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_yA44_YbcfU0_', symObjAddr: 0x5E2C, symBinAddr: 0x1000242F0, symSize: 0x108 } - - { offset: 0x1182BD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_', symObjAddr: 0x5F34, symBinAddr: 0x1000243F8, symSize: 0x918 } - - { offset: 0x11833A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_', symObjAddr: 0x684C, symBinAddr: 0x100024D10, symSize: 0x64 } - - { offset: 0x1183E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_A98_yXEfU_', symObjAddr: 0x68B0, symBinAddr: 0x100024D74, symSize: 0x54C } - - { offset: 0x11847B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_A98_yXEfU_SSyYbcfU_', symObjAddr: 0x6DFC, symBinAddr: 0x1000252C0, symSize: 0x110 } - - { offset: 0x11852E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_A98_yXEfU_ySSYbcfU0_', symObjAddr: 0x6F0C, symBinAddr: 0x1000253D0, symSize: 0x1AC } - - { offset: 0x118665, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_A98_yXEfU_yyScMYccfU1_', symObjAddr: 0x70B8, symBinAddr: 0x10002557C, symSize: 0x168 } - - { offset: 0x11871C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_yyScMYccfU0_', symObjAddr: 0x7224, symBinAddr: 0x1000256E8, symSize: 0x16C } - - { offset: 0x118859, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_', symObjAddr: 0x73AC, symBinAddr: 0x100025870, symSize: 0x574 } - - { offset: 0x11890A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_', symObjAddr: 0x7920, symBinAddr: 0x100025DE4, symSize: 0xD8 } - - { offset: 0x118A09, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_', symObjAddr: 0x79F8, symBinAddr: 0x100025EBC, symSize: 0x8A0 } - - { offset: 0x118AC5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_SSyYbcfU_', symObjAddr: 0x8298, symBinAddr: 0x10002675C, symSize: 0x150 } - - { offset: 0x118C7B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_ySSYbcfU0_', symObjAddr: 0x83E8, symBinAddr: 0x1000268AC, symSize: 0x23C } - - { offset: 0x118F05, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_SSyYbcfU1_', symObjAddr: 0x8624, symBinAddr: 0x100026AE8, symSize: 0x154 } - - { offset: 0x1190B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_ySSYbcfU2_', symObjAddr: 0x8778, symBinAddr: 0x100026C3C, symSize: 0x220 } - - { offset: 0x11930D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_yyScMYccfU3_', symObjAddr: 0x8998, symBinAddr: 0x100026E5C, symSize: 0x2E0 } - - { offset: 0x1194D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_yyScMYccfU0_', symObjAddr: 0x8C78, symBinAddr: 0x10002713C, symSize: 0x1F8 } - - { offset: 0x11961E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A103_yXEfU1_A101_yXEfU_', symObjAddr: 0x8F20, symBinAddr: 0x1000273E4, symSize: 0xF0 } - - { offset: 0x1196CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A137_yXEfU2_', symObjAddr: 0x9010, symBinAddr: 0x1000274D4, symSize: 0x6E0 } - - { offset: 0x1197E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A137_yXEfU2_A133_yXEfU0_', symObjAddr: 0x9830, symBinAddr: 0x100027CF4, symSize: 0x558 } - - { offset: 0x11995E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_', symObjAddr: 0x9D88, symBinAddr: 0x10002824C, symSize: 0x5D0 } - - { offset: 0x1199BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A144_SicfU_A143_yXEfU_', symObjAddr: 0xA358, symBinAddr: 0x10002881C, symSize: 0x860 } - - { offset: 0x119AA9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A144_SicfU_A143_yXEfU_SSyYbcfU_', symObjAddr: 0xABB8, symBinAddr: 0x10002907C, symSize: 0xA8 } - - { offset: 0x119B1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A144_SicfU_A143_yXEfU_ySSYbcfU0_', symObjAddr: 0xAC60, symBinAddr: 0x100029124, symSize: 0x154 } - - { offset: 0x119C0C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A144_SicfU_A143_yXEfU_yyScMYccfU1_', symObjAddr: 0xADB4, symBinAddr: 0x100029278, symSize: 0x114 } - - { offset: 0x119C43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_yyScMYccfU0_', symObjAddr: 0xAEC8, symBinAddr: 0x10002938C, symSize: 0x16C } - - { offset: 0x119D72, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A103_yXEfU1_A101_yXEfU_', symObjAddr: 0xB040, symBinAddr: 0x100029504, symSize: 0xF0 } - - { offset: 0x119E1E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A155_yXEfU4_', symObjAddr: 0xB130, symBinAddr: 0x1000295F4, symSize: 0x46C } - - { offset: 0x119EE6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_', symObjAddr: 0xB59C, symBinAddr: 0x100029A60, symSize: 0x918 } - - { offset: 0x119F4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_', symObjAddr: 0xBEB4, symBinAddr: 0x10002A378, symSize: 0x7E0 } - - { offset: 0x119FF6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_SSyYbcfU_', symObjAddr: 0xC694, symBinAddr: 0x10002AB58, symSize: 0x174 } - - { offset: 0x11A1AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_ySSYbcfU0_', symObjAddr: 0xC808, symBinAddr: 0x10002ACCC, symSize: 0x2DC } - - { offset: 0x11A4D6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_SSyYbcfU1_', symObjAddr: 0xCAE4, symBinAddr: 0x10002AFA8, symSize: 0x178 } - - { offset: 0x11A6B9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_ySSYbcfU2_', symObjAddr: 0xCC5C, symBinAddr: 0x10002B120, symSize: 0x2C8 } - - { offset: 0x11A9A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_yyScMYccfU3_', symObjAddr: 0xCF24, symBinAddr: 0x10002B3E8, symSize: 0x114 } - - { offset: 0x11A9DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_yyScMYccfU0_', symObjAddr: 0xD038, symBinAddr: 0x10002B4FC, symSize: 0x180 } - - { offset: 0x11AB2D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A166_yXEfU6_', symObjAddr: 0xD288, symBinAddr: 0x10002B74C, symSize: 0x3D4 } - - { offset: 0x11ABE5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A166_yXEfU6_A163_yXEfU_', symObjAddr: 0xD65C, symBinAddr: 0x10002BB20, symSize: 0x4E0 } - - { offset: 0x11AD49, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_', symObjAddr: 0xDB3C, symBinAddr: 0x10002C000, symSize: 0x5D0 } - - { offset: 0x11AD9B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A99_SicfU_A98_yXEfU_', symObjAddr: 0xE10C, symBinAddr: 0x10002C5D0, symSize: 0x5C8 } - - { offset: 0x11AE29, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A99_SicfU_A98_yXEfU_SSyYbcfU_', symObjAddr: 0xE6D4, symBinAddr: 0x10002CB98, symSize: 0xA8 } - - { offset: 0x11AE9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A99_SicfU_A98_yXEfU_ySSYbcfU0_', symObjAddr: 0xE77C, symBinAddr: 0x10002CC40, symSize: 0x154 } - - { offset: 0x11AF8C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A99_SicfU_A98_yXEfU_yyScMYccfU1_', symObjAddr: 0xE8D0, symBinAddr: 0x10002CD94, symSize: 0x114 } - - { offset: 0x11AFC3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_yyScMYccfU0_', symObjAddr: 0xE9E4, symBinAddr: 0x10002CEA8, symSize: 0x16C } - - { offset: 0x11B0F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A103_yXEfU1_A101_yXEfU_', symObjAddr: 0xEB5C, symBinAddr: 0x10002D020, symSize: 0xF0 } - - { offset: 0x11B155, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A153_yXEfU8_', symObjAddr: 0xEC4C, symBinAddr: 0x10002D110, symSize: 0x128 } - - { offset: 0x11B239, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_', symObjAddr: 0xED74, symBinAddr: 0x10002D238, symSize: 0x30B4 } - - { offset: 0x11C168, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_SbyYbcfU_', symObjAddr: 0x11E28, symBinAddr: 0x1000302EC, symSize: 0x94 } - - { offset: 0x11C18E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_ySbYbcfU0_', symObjAddr: 0x11EBC, symBinAddr: 0x100030380, symSize: 0x100 } - - { offset: 0x11C1B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_SbyYbcfU1_', symObjAddr: 0x11FBC, symBinAddr: 0x100030480, symSize: 0x94 } - - { offset: 0x11C1DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_ySbYbcfU2_', symObjAddr: 0x12050, symBinAddr: 0x100030514, symSize: 0x100 } - - { offset: 0x11C20E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_', symObjAddr: 0x12150, symBinAddr: 0x100030614, symSize: 0x4A4 } - - { offset: 0x11C2F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_', symObjAddr: 0x125F4, symBinAddr: 0x100030AB8, symSize: 0x94 } - - { offset: 0x11C39F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_', symObjAddr: 0x12688, symBinAddr: 0x100030B4C, symSize: 0x7AC } - - { offset: 0x11C485, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_SSyYbcfU_', symObjAddr: 0x12E34, symBinAddr: 0x1000312F8, symSize: 0xE8 } - - { offset: 0x11C538, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_ySSYbcfU0_', symObjAddr: 0x12F1C, symBinAddr: 0x1000313E0, symSize: 0x110 } - - { offset: 0x11C63F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_yyScMYccfU1_', symObjAddr: 0x1302C, symBinAddr: 0x1000314F0, symSize: 0xD0 } - - { offset: 0x11C6F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_yyScMYccfU0_', symObjAddr: 0x130FC, symBinAddr: 0x1000315C0, symSize: 0xFC } - - { offset: 0x11C811, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A37_yXEfU1_', symObjAddr: 0x131F8, symBinAddr: 0x1000316BC, symSize: 0x94 } - - { offset: 0x11C8A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9toggleRow33_45EEDC5FDAAB16083A3A535BA0EECC81LL__4isOnQr7SwiftUI18LocalizedStringKeyV_AiG7BindingVySbGtFAG05TupleD0VyAG6ToggleVyAG4TextVG_AG0D0PAGE9fixedSize10horizontal8verticalQrSb_SbtFQOyAR_Qo_tGyXEfU_', symObjAddr: 0x1328C, symBinAddr: 0x100031750, symSize: 0x2C0 } - - { offset: 0x11C90F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV15safePeerBinding33_45EEDC5FDAAB16083A3A535BA0EECC81LL2at7SwiftUI0G0VySSGSi_tFSSyYbcfU_', symObjAddr: 0x1354C, symBinAddr: 0x100031A10, symSize: 0x10C } - - { offset: 0x11C9CA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV15safePeerBinding33_45EEDC5FDAAB16083A3A535BA0EECC81LL2at7SwiftUI0G0VySSGSi_tFySSYbcfU0_', symObjAddr: 0x13658, symBinAddr: 0x100031B1C, symSize: 0x1A8 } - - { offset: 0x11CB10, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_', symObjAddr: 0x13800, symBinAddr: 0x100031CC4, symSize: 0x7A0 } - - { offset: 0x11CBAA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_yycfU_', symObjAddr: 0x13FA0, symBinAddr: 0x100032464, symSize: 0xC0 } - - { offset: 0x11CC2E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV15generateAndSave33_45EEDC5FDAAB16083A3A535BA0EECC81LLyyF', symObjAddr: 0x140C0, symBinAddr: 0x100032524, symSize: 0x824 } - - { offset: 0x11CF17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_', symObjAddr: 0x148E4, symBinAddr: 0x100032D48, symSize: 0x4C8 } - - { offset: 0x11CF77, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A23_yXEfU_', symObjAddr: 0x14DAC, symBinAddr: 0x100033210, symSize: 0x490 } - - { offset: 0x11D066, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_', symObjAddr: 0x15528, symBinAddr: 0x10003398C, symSize: 0x1020 } - - { offset: 0x11D3B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A78_yXEfU1_', symObjAddr: 0x16A74, symBinAddr: 0x100034ED8, symSize: 0x124 } - - { offset: 0x11D420, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A78_yXEfU1_A77_A71_cfU_', symObjAddr: 0x16B98, symBinAddr: 0x100034FFC, symSize: 0x104 } - - { offset: 0x11D4CD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A111_SicfU2_A110_yXEfU_', symObjAddr: 0x16D0C, symBinAddr: 0x100035170, symSize: 0x854 } - - { offset: 0x11D5C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A111_SicfU2_A110_yXEfU_yyScMYccfU_', symObjAddr: 0x17560, symBinAddr: 0x1000359C4, symSize: 0x168 } - - { offset: 0x11D67C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_yyScMYccfU3_', symObjAddr: 0x17728, symBinAddr: 0x100035B8C, symSize: 0x178 } - - { offset: 0x11D7B9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A119_yXEfU5_', symObjAddr: 0x179A8, symBinAddr: 0x100035E0C, symSize: 0x218 } - - { offset: 0x11D848, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A140_yXEfU1_', symObjAddr: 0x17BC0, symBinAddr: 0x100036024, symSize: 0x440 } - - { offset: 0x11D8B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4push33_45EEDC5FDAAB16083A3A535BA0EECC81LLyyAA0B6ScreenOF', symObjAddr: 0x18000, symBinAddr: 0x100036464, symSize: 0x11C } - - { offset: 0x11D9EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_', symObjAddr: 0x183B4, symBinAddr: 0x100036818, symSize: 0x6DC } - - { offset: 0x11DA92, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_', symObjAddr: 0x18B70, symBinAddr: 0x100036FD4, symSize: 0x44C } - - { offset: 0x11DB59, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_', symObjAddr: 0x18FBC, symBinAddr: 0x100037420, symSize: 0x19C } - - { offset: 0x11DC9A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_', symObjAddr: 0x19158, symBinAddr: 0x1000375BC, symSize: 0xB0 } - - { offset: 0x11DDB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_A101_yXEfU_', symObjAddr: 0x19208, symBinAddr: 0x10003766C, symSize: 0x7D8 } - - { offset: 0x11DF8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_A101_yXEfU_A74_yXEfU_', symObjAddr: 0x199E0, symBinAddr: 0x100037E44, symSize: 0x444 } - - { offset: 0x11E071, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_A101_yXEfU_A74_yXEfU_A68_yXEfU_', symObjAddr: 0x19E24, symBinAddr: 0x100038288, symSize: 0x2B4 } - - { offset: 0x11E12E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_A101_yXEfU_A99_yXEfU1_', symObjAddr: 0x1A0D8, symBinAddr: 0x10003853C, symSize: 0x244 } - - { offset: 0x11E1EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A43_yXEfU0_A42_yXEfU_', symObjAddr: 0x1A76C, symBinAddr: 0x100038BD0, symSize: 0x3D0 } - - { offset: 0x11E320, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A43_yXEfU0_A42_yXEfU_yyScMYccfU_', symObjAddr: 0x1AB3C, symBinAddr: 0x100038FA0, symSize: 0x394 } - - { offset: 0x11E550, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A112_yXEfU0_', symObjAddr: 0x1AED0, symBinAddr: 0x100039334, symSize: 0x218 } - - { offset: 0x11E5A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A112_yXEfU0_yyScMYccfU_', symObjAddr: 0x1B0E8, symBinAddr: 0x10003954C, symSize: 0x250 } - - { offset: 0x11E6E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A112_yXEfU0_A110_yXEfU0_A108_yXEfU_', symObjAddr: 0x1B344, symBinAddr: 0x1000397A8, symSize: 0xF0 } - - { offset: 0x11E753, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0M4Role05rightN00M6Action0pQ0Qr7SwiftUI18LocalizedStringKeyV_AnL06ButtonO0VSgANSgyycyycSgtFAL0D0PALE11buttonStyleyQrqd__AL09PrimitivewY0Rd__lFQOyAL0W0VyAL4TextVG_AL08BorderedwY0VQo_ycfU_', symObjAddr: 0x1B434, symBinAddr: 0x100039898, symSize: 0x1F8 } - - { offset: 0x11E7C9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0M4Role05rightN00M6Action0pQ0Qr7SwiftUI18LocalizedStringKeyV_AnL06ButtonO0VSgANSgyycyycSgtFAL19_ConditionalContentVyAL0D0PALE8disabledyQrSbFQOyAwLE11buttonStyleyQrqd__AL09PrimitiveW5StyleRd__lFQOyAL0W0VyAL4TextVG_AL017BorderedProminentW5StyleVQo__Qo_AwLE6hiddenQryFQOyAwLEAYyQrqd__AlZRd__lFQOyA3__AL08BorderedW5StyleVQo__Qo_GycfU0_', symObjAddr: 0x1B62C, symBinAddr: 0x100039A90, symSize: 0x5EC } - - { offset: 0x11E915, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV12generateTOML33_45EEDC5FDAAB16083A3A535BA0EECC81LL5peersSSSaySSG_tF', symObjAddr: 0x1BC1C, symBinAddr: 0x10003A07C, symSize: 0x2AAC } - - { offset: 0x120DC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9parseTOML33_45EEDC5FDAAB16083A3A535BA0EECC81LLyAA08EasyTierB5ModelVSSF', symObjAddr: 0x1E6C8, symBinAddr: 0x10003CB28, symSize: 0x454C } - - { offset: 0x1239B1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC12updateFields4from4cidrySS_SStF', symObjAddr: 0x22C14, symBinAddr: 0x100041074, symSize: 0x568 } - - { offset: 0x123F8D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC11syncToModelyyF', symObjAddr: 0x2317C, symBinAddr: 0x1000415DC, symSize: 0x5C0 } - - { offset: 0x12446B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC11cidrChangedyySo13NSPopUpButtonCF', symObjAddr: 0x2373C, symBinAddr: 0x100041B9C, symSize: 0x158 } - - { offset: 0x1244DE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC11cidrChangedyySo13NSPopUpButtonCFTo', symObjAddr: 0x23894, symBinAddr: 0x100041CF4, symSize: 0x50 } - - { offset: 0x124517, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC7control_04textD011doCommandBySbSo9NSControlC_So06NSTextD0C10ObjectiveC8SelectorVtFTo', symObjAddr: 0x2390C, symBinAddr: 0x100041D6C, symSize: 0x94 } - - { offset: 0x124542, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorCfD', symObjAddr: 0x239D8, symBinAddr: 0x100041E38, symSize: 0x344 } - - { offset: 0x124583, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorCfETo', symObjAddr: 0x23D1C, symBinAddr: 0x10004217C, symSize: 0x80 } - - { offset: 0x1245B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAafGP04makeJ07context0J4TypeQzAF0jK7ContextVyxG_tFTW', symObjAddr: 0x23DBC, symBinAddr: 0x10004221C, symSize: 0x4 } - - { offset: 0x1245C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAafGP04makeJ07context0J4TypeQzAF0jK7ContextVyxG_tFTW', symObjAddr: 0x23DBC, symBinAddr: 0x10004221C, symSize: 0x4 } - - { offset: 0x1245E2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAafGP06updateJ0_7contexty0J4TypeQz_AF0jK7ContextVyxGtFTW', symObjAddr: 0x23DC0, symBinAddr: 0x100042220, symSize: 0x3C } - - { offset: 0x124652, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAafGP15makeCoordinator0M0QzyFTW', symObjAddr: 0x23E00, symBinAddr: 0x10004225C, symSize: 0xAC } - - { offset: 0x1246E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorC12updateFields4fromySS_tF', symObjAddr: 0x23FD0, symBinAddr: 0x1000423CC, symSize: 0x430 } - - { offset: 0x124C11, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorC11syncToModelyyF', symObjAddr: 0x24400, symBinAddr: 0x1000427FC, symSize: 0x55C } - - { offset: 0x1250D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorC7control_04textD011doCommandBySbSo9NSControlC_So06NSTextD0C10ObjectiveC8SelectorVtFTo', symObjAddr: 0x2518C, symBinAddr: 0x100043588, symSize: 0x94 } - - { offset: 0x1250FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorCfD', symObjAddr: 0x2522C, symBinAddr: 0x100043628, symSize: 0x344 } - - { offset: 0x12513E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorCfETo', symObjAddr: 0x25570, symBinAddr: 0x10004396C, symSize: 0x58 } - - { offset: 0x12516B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAafGP04makeI07context0I4TypeQzAF0iJ7ContextVyxG_tFTW', symObjAddr: 0x255E8, symBinAddr: 0x1000439E4, symSize: 0x4 } - - { offset: 0x125183, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAafGP04makeI07context0I4TypeQzAF0iJ7ContextVyxG_tFTW', symObjAddr: 0x255E8, symBinAddr: 0x1000439E4, symSize: 0x4 } - - { offset: 0x1251C9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAafGP06updateI0_7contexty0I4TypeQz_AF0iJ7ContextVyxGtFTW', symObjAddr: 0x255EC, symBinAddr: 0x1000439E8, symSize: 0xA8 } - - { offset: 0x12525F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAafGP15makeCoordinator0L0QzyFTW', symObjAddr: 0x25694, symBinAddr: 0x100043A90, symSize: 0xBC } - - { offset: 0x1252E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC5frameAESo6CGRectV_tcfcTo', symObjAddr: 0x25850, symBinAddr: 0x100043C10, symSize: 0x84 } - - { offset: 0x125342, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC5coderAESgSo7NSCoderC_tcfcTo', symObjAddr: 0x258D4, symBinAddr: 0x100043C94, symSize: 0x98 } - - { offset: 0x12537A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldCfD', symObjAddr: 0x259B4, symBinAddr: 0x100043D74, symSize: 0x344 } - - { offset: 0x1253BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldCfETo', symObjAddr: 0x25CF8, symBinAddr: 0x1000440B8, symSize: 0x10 } - - { offset: 0x1253E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x28614, symBinAddr: 0x1000468C0, symSize: 0x4 } - - { offset: 0x125418, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleV23__derived_struct_equalsySbAC_ACtFZTf4nnd_n', symObjAddr: 0x2A344, symBinAddr: 0x1000485D4, symSize: 0x130 } - - { offset: 0x125506, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV23__derived_struct_equalsySbAC_ACtFZTf4nnd_n', symObjAddr: 0x2A474, symBinAddr: 0x100048704, symSize: 0x4C0 } - - { offset: 0x125704, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVACycfCTf4d_n', symObjAddr: 0x2A934, symBinAddr: 0x100048BC4, symSize: 0x264 } - - { offset: 0x12575A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeO8rawValueACSgSS_tcfCTf4nd_n', symObjAddr: 0x2AB98, symBinAddr: 0x100048E28, symSize: 0x64 } - - { offset: 0x125825, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV10makeNSView7contextSo07NSStackD0C7SwiftUI0I20RepresentableContextVyAEG_tFTf4nd_n', symObjAddr: 0x2AD50, symBinAddr: 0x100048FE0, symSize: 0x67C } - - { offset: 0x125A2D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV12updateNSView_7contextySo07NSStackD0C_7SwiftUI0I20RepresentableContextVyAEGtFTf4dnn_n', symObjAddr: 0x2B3CC, symBinAddr: 0x10004965C, symSize: 0xD0 } - - { offset: 0x125ACD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV10makeNSView7contextSo07NSStackD0C7SwiftUI0H20RepresentableContextVyAEG_tFTf4nd_n', symObjAddr: 0x2B524, symBinAddr: 0x1000497B4, symSize: 0x444 } - - { offset: 0x125DF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC6sharedACvpZ', symObjAddr: 0x13E90, symBinAddr: 0x10012EDD0, symSize: 0x0 } - - { offset: 0x125F93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x10004F178, symSize: 0x3C } - - { offset: 0x126103, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCMU', symObjAddr: 0x3250, symBinAddr: 0x1000523C8, symSize: 0x8 } - - { offset: 0x126117, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCMa', symObjAddr: 0x3258, symBinAddr: 0x1000523D0, symSize: 0x38 } - - { offset: 0x12612B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCMr', symObjAddr: 0x3290, symBinAddr: 0x100052408, symSize: 0x7C } - - { offset: 0x12613F, size: 0x8, addend: 0x0, symName: '_$s7Combine9PublishedVySay10Foundation3URLVGGMa', symObjAddr: 0x330C, symBinAddr: 0x100052484, symSize: 0x60 } - - { offset: 0x126153, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC7Combine16ObservableObjectAA0F19WillChangePublisherAdEP_AD0I0PWT', symObjAddr: 0x33C0, symBinAddr: 0x1000524E4, symSize: 0xC } - - { offset: 0x126167, size: 0x8, addend: 0x0, symName: '_$sSo17OS_dispatch_queueCMa', symObjAddr: 0x3458, symBinAddr: 0x10005252C, symSize: 0x44 } - - { offset: 0x12617B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFyyScMYccfU_TA', symObjAddr: 0x349C, symBinAddr: 0x100052570, symSize: 0x8 } - - { offset: 0x12618F, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x34A4, symBinAddr: 0x100052578, symSize: 0x10 } - - { offset: 0x1261A3, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x34B4, symBinAddr: 0x100052588, symSize: 0x8 } - - { offset: 0x1261B7, size: 0x8, addend: 0x0, symName: '_$sSay8Dispatch0A13WorkItemFlagsVGSayxGSTsWl', symObjAddr: 0x34BC, symBinAddr: 0x100052590, symSize: 0x50 } - - { offset: 0x126222, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFyyScMYccfU2_TA', symObjAddr: 0x35B8, symBinAddr: 0x10005268C, symSize: 0x8 } - - { offset: 0x126291, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKF10Foundation3URLV_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1cn_n', symObjAddr: 0x35C8, symBinAddr: 0x10005269C, symSize: 0x108 } - - { offset: 0x1264D7, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFySryxGz_SiztKXEfU_10Foundation3URLV_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1nnncn_n', symObjAddr: 0x36D0, symBinAddr: 0x1000527A4, symSize: 0x878 } - - { offset: 0x1269CC, size: 0x8, addend: 0x0, symName: '_$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSry10Foundation3URLVG_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1nncn_n', symObjAddr: 0x3F48, symBinAddr: 0x10005301C, symSize: 0x274 } - - { offset: 0x126B32, size: 0x8, addend: 0x0, symName: '_$sSr13_mergeTopRuns_6buffer2bySbSaySnySiGGz_SpyxGSbx_xtKXEtKF10Foundation3URLV_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1nncn_n', symObjAddr: 0x41BC, symBinAddr: 0x100053290, symSize: 0x284 } - - { offset: 0x126EB7, size: 0x8, addend: 0x0, symName: '_$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlF10Foundation3URLV_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1nnnnc_n', symObjAddr: 0x4440, symBinAddr: 0x100053514, symSize: 0x5C4 } - - { offset: 0x126FE0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC15migrateToiCloudyyFyyScMYccfU0_TA', symObjAddr: 0x4A70, symBinAddr: 0x100053B44, symSize: 0x30 } - - { offset: 0x126FF4, size: 0x8, addend: 0x0, symName: '_$s10Foundation3URLVSgWOb', symObjAddr: 0x4AA0, symBinAddr: 0x100053B74, symSize: 0x50 } - - { offset: 0x127008, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOy', symObjAddr: 0x4AF0, symBinAddr: 0x100053BC4, symSize: 0x40 } - - { offset: 0x12701C, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOe', symObjAddr: 0x4B30, symBinAddr: 0x100053C04, symSize: 0x40 } - - { offset: 0x127030, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOe', symObjAddr: 0x4B70, symBinAddr: 0x100053C44, symSize: 0x14 } - - { offset: 0x127044, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC16currentDirectory10Foundation3URLVSgvgyyScMYccfU_TA', symObjAddr: 0x4BB0, symBinAddr: 0x100053C84, symSize: 0xC } - - { offset: 0x1271B2, size: 0x8, addend: 0x0, symName: '_$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFs15ContiguousArrayVy10Foundation3URLVG_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1cn_n', symObjAddr: 0x350C, symBinAddr: 0x1000525E0, symSize: 0x80 } - - { offset: 0x1272EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC11configFilesSay10Foundation3URLVGvg', symObjAddr: 0x3C, symBinAddr: 0x10004F1B4, symSize: 0x70 } - - { offset: 0x127370, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC16currentDirectory10Foundation3URLVSgvg', symObjAddr: 0xAC, symBinAddr: 0x10004F224, symSize: 0x818 } - - { offset: 0x12749F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC16currentDirectory10Foundation3URLVSgvgyyScMYccfU_', symObjAddr: 0x8C4, symBinAddr: 0x10004FA3C, symSize: 0x80 } - - { offset: 0x127556, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC7Combine16ObservableObjectAadEP16objectWillChange0fhI9PublisherQzvgTW', symObjAddr: 0x33CC, symBinAddr: 0x1000524F0, symSize: 0x3C } - - { offset: 0x1275BD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCACyc33_19B190CE439D0CF18D9BB158F630925FLlfc', symObjAddr: 0x944, symBinAddr: 0x10004FABC, symSize: 0x41C } - - { offset: 0x12772C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC18selectCustomFolderyyF', symObjAddr: 0xD60, symBinAddr: 0x10004FED8, symSize: 0x2F8 } - - { offset: 0x127801, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC16openiCloudFolderyyF', symObjAddr: 0x1058, symBinAddr: 0x1000501D0, symSize: 0x158 } - - { offset: 0x12783D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14iCloudDriveURL33_19B190CE439D0CF18D9BB158F630925FLL10Foundation0F0VSgvg', symObjAddr: 0x11B0, symBinAddr: 0x100050328, symSize: 0x380 } - - { offset: 0x1278C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC15migrateToiCloudyyF', symObjAddr: 0x1530, symBinAddr: 0x1000506A8, symSize: 0xE30 } - - { offset: 0x127DCE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC15migrateToiCloudyyFyyScMYccfU0_', symObjAddr: 0x2360, symBinAddr: 0x1000514D8, symSize: 0xCC } - - { offset: 0x127E52, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyF', symObjAddr: 0x242C, symBinAddr: 0x1000515A4, symSize: 0x850 } - - { offset: 0x128238, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFyyScMYccfU_', symObjAddr: 0x2C7C, symBinAddr: 0x100051DF4, symSize: 0x74 } - - { offset: 0x128283, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFyyScMYccfU2_', symObjAddr: 0x2CF0, symBinAddr: 0x100051E68, symSize: 0x78 } - - { offset: 0x128348, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCfZ', symObjAddr: 0x2D68, symBinAddr: 0x100051EE0, symSize: 0x100 } - - { offset: 0x1283B2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCfD', symObjAddr: 0x2E68, symBinAddr: 0x100051FE0, symSize: 0x3E8 } - - { offset: 0x128658, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE8containsySbABFSay10Foundation3URLVG_Tg5', symObjAddr: 0x0, symBinAddr: 0x100053D1C, symSize: 0xC8 } - - { offset: 0x129FE6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewCMa', symObjAddr: 0x11700, symBinAddr: 0x1000653F8, symSize: 0x20 } - - { offset: 0x129FFA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVMa', symObjAddr: 0x11770, symBinAddr: 0x100065418, symSize: 0x38 } - - { offset: 0x12A00E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15isWindowVisibleSbvpACTK', symObjAddr: 0x117A8, symBinAddr: 0x100065450, symSize: 0x7C } - - { offset: 0x12A03C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15isWindowVisibleSbvpACTk', symObjAddr: 0x11824, symBinAddr: 0x1000654CC, symSize: 0x70 } - - { offset: 0x12A06A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV11colorSchemeAA05ColorF0OvpACTk', symObjAddr: 0x118B8, symBinAddr: 0x100065560, symSize: 0x7C } - - { offset: 0x12A082, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwCP', symObjAddr: 0x11AF8, symBinAddr: 0x10006562C, symSize: 0x3B8 } - - { offset: 0x12A096, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwxx', symObjAddr: 0x11EB8, symBinAddr: 0x1000659EC, symSize: 0x1D4 } - - { offset: 0x12A0AA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwcp', symObjAddr: 0x12094, symBinAddr: 0x100065BC8, symSize: 0x398 } - - { offset: 0x12A0BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwca', symObjAddr: 0x1242C, symBinAddr: 0x100065F60, symSize: 0x4C4 } - - { offset: 0x12A0D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwtk', symObjAddr: 0x128F0, symBinAddr: 0x100066424, symSize: 0x28C } - - { offset: 0x12A0E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwta', symObjAddr: 0x12B7C, symBinAddr: 0x1000666B0, symSize: 0x418 } - - { offset: 0x12A0FA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwet', symObjAddr: 0x12F94, symBinAddr: 0x100066AC8, symSize: 0xC } - - { offset: 0x12A10E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwst', symObjAddr: 0x13058, symBinAddr: 0x100066B8C, symSize: 0xC } - - { offset: 0x12A122, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVMr', symObjAddr: 0x13118, symBinAddr: 0x100066C4C, symSize: 0xDC } - - { offset: 0x12A136, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5StateVy10Foundation4UUIDVGMa', symObjAddr: 0x131F4, symBinAddr: 0x100066D28, symSize: 0x54 } - - { offset: 0x12A14A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0x132FC, symBinAddr: 0x100066D7C, symSize: 0x10 } - - { offset: 0x12A15E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgySay10Foundation3URLVGcfU0_TA', symObjAddr: 0x13314, symBinAddr: 0x100066D94, symSize: 0x3C } - - { offset: 0x12A172, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgy10Foundation4UUIDVcfU5_TA', symObjAddr: 0x133CC, symBinAddr: 0x100066E4C, symSize: 0x3C } - - { offset: 0x12A186, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVyACyACyAA6HStackVyAGyAA0G0PAAE9menuStyleyQrqd__AA04MenuJ0Rd__lFQOyAA0K0VyACyACyACyAIyAGyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGA0_GAA11_ClipEffectVyAA16RoundedRectangleVGGAGyAA7SectionVyAsA012_ConditionalD0VyACyAA6ButtonVyASGAA01_no9TransformQ0VySbGGAA7ForEachVySay10Foundation3URLVGA24_A14_yAIyAGyAS_AQSgtGGGGGAA05EmptyG0VG_AA7DividerVA15_A19_A19_A36_A15_A15_A15_A36_A19_tGG_AA010BorderlesszkJ0VQo__AA6SpacerVAIyAGyAkAE06buttonJ0yQrqd__AA09PrimitivezJ0Rd__lFQOyA14_yACyACyACyAqUyAA4FontVSgGGA0_GAA01_d5ShapeQ0VyAA0W0VGGG_AA05PlainzJ0VQo__A61_AkAEA44_yQrqd__AAA45_Rd__lFQOyA14_yACyACyACyA50_AUyAA5ColorVSgGGA0_GA56_GG_A60_Qo_tGGtGGA0_GAA06_TraitpQ0VyAA011ZIndexTraitO0VGG_ACyAA6ZStackVyA12_yAA14GeometryReaderVyACyACyACyACyA83_yAGyACyACyACyACyACy8Swiftier011RippleRingsG0VAA06_FrameS0VGAA09_PositionS0VGAA017_AllowsHitTestingQ0VGA77_yAA015TransitionTraitO0VGGA80_GSg_ACyACyACyAA6IDViewVyA86_0dG0V12PeerListAreaVA22_4UUIDVGA90_GA100_GA80_GSgACyA107_14SpeedDashboardVA80_GSgtGGAA010_AnimationQ0VySbGGA125_GAA05_BlurU0VGAA08_OpacityU0VGGA63_GGAA010_FlexFrameS0VGtGGA90_GAA011_BackgroundjQ0VyA63_GGACyxq_GAaj2aJRzAA0gQ0R_rlWl', symObjAddr: 0x13418, symBinAddr: 0x100066E98, symSize: 0x98 } - - { offset: 0x12A19A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyACyACyAA6HStackVyAGyAA0G0PAAE9menuStyleyQrqd__AA04MenuJ0Rd__lFQOyAA0K0VyACyACyACyAIyAGyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGA0_GAA11_ClipEffectVyAA16RoundedRectangleVGGAGyAA7SectionVyAsA012_ConditionalD0VyACyAA6ButtonVyASGAA01_no9TransformQ0VySbGGAA7ForEachVySay10Foundation3URLVGA24_A14_yAIyAGyAS_AQSgtGGGGGAA05EmptyG0VG_AA7DividerVA15_A19_A19_A36_A15_A15_A15_A36_A19_tGG_AA010BorderlesszkJ0VQo__AA6SpacerVAIyAGyAkAE06buttonJ0yQrqd__AA09PrimitivezJ0Rd__lFQOyA14_yACyACyACyAqUyAA4FontVSgGGA0_GAA01_d5ShapeQ0VyAA0W0VGGG_AA05PlainzJ0VQo__A61_AkAEA44_yQrqd__AAA45_Rd__lFQOyA14_yACyACyACyA50_AUyAA5ColorVSgGGA0_GA56_GG_A60_Qo_tGGtGGA0_GAA06_TraitpQ0VyAA011ZIndexTraitO0VGG_ACyAA6ZStackVyA12_yAA14GeometryReaderVyACyACyACyACyA83_yAGyACyACyACyACyACy8Swiftier011RippleRingsG0VAA06_FrameS0VGAA09_PositionS0VGAA017_AllowsHitTestingQ0VGA77_yAA015TransitionTraitO0VGGA80_GSg_ACyACyACyAA6IDViewVyA86_0dG0V12PeerListAreaVA22_4UUIDVGA90_GA100_GA80_GSgACyA107_14SpeedDashboardVA80_GSgtGGAA010_AnimationQ0VySbGGA125_GAA05_BlurU0VGAA08_OpacityU0VGGA63_GGAA010_FlexFrameS0VGtGGA90_GACyxq_GAaj2aJRzAA0gQ0R_rlWl', symObjAddr: 0x134B0, symBinAddr: 0x100066F30, symSize: 0x98 } - - { offset: 0x12A1AE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ColorVAA12_FrameLayoutVGACyxq_GAA4ViewA2aJRzAA0H8ModifierR_rlWl', symObjAddr: 0x13548, symBinAddr: 0x100066FC8, symSize: 0x70 } - - { offset: 0x12A1C2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier12FDAGuideViewVAA21_TraitWritingModifierVyAA06ZIndexH3KeyVGGSgWOy', symObjAddr: 0x135B8, symBinAddr: 0x100067038, symSize: 0x38 } - - { offset: 0x12A1D6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier12FDAGuideViewVAA21_TraitWritingModifierVyAA06ZIndexH3KeyVGGSgWOe', symObjAddr: 0x135F0, symBinAddr: 0x100067070, symSize: 0x3C } - - { offset: 0x12A1EA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ColorVAA21_TraitWritingModifierVyAA06ZIndexF3KeyVGGACyxq_GAA4ViewA2aMRzAA0kH0R_rlWl', symObjAddr: 0x13678, symBinAddr: 0x1000670F8, symSize: 0x98 } - - { offset: 0x12A1FE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV18minimumScaleFactor14CoreFoundation7CGFloatVvpACTKq', symObjAddr: 0x1371C, symBinAddr: 0x10006719C, symSize: 0x28 } - - { offset: 0x12A212, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV18minimumScaleFactor14CoreFoundation7CGFloatVvpACTkq', symObjAddr: 0x13744, symBinAddr: 0x1000671C4, symSize: 0x24 } - - { offset: 0x12A226, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_ySbYbcfU1_TA', symObjAddr: 0x139B8, symBinAddr: 0x10006742C, symSize: 0x40 } - - { offset: 0x12A23A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_TA', symObjAddr: 0x13A6C, symBinAddr: 0x10006749C, symSize: 0x8 } - - { offset: 0x12A24E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A11_yXEfU0_TA', symObjAddr: 0x13A74, symBinAddr: 0x1000674A4, symSize: 0x8 } - - { offset: 0x12A262, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6HStackVyAA9TupleViewVyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGATGAA11_ClipEffectVyAA16RoundedRectangleVGGACyxq_GAA0G0A2AA2_RzAA0gM0R_rlWl', symObjAddr: 0x13A7C, symBinAddr: 0x1000674AC, symSize: 0x98 } - - { offset: 0x12A276, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6HStackVyAA9TupleViewVyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGATGACyxq_GAA0G0A2aXRzAA0gM0R_rlWl', symObjAddr: 0x13B14, symBinAddr: 0x100067544, symSize: 0x78 } - - { offset: 0x12A28A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGACyxq_GAA0G0A2aWRzAA0gM0R_rlWl', symObjAddr: 0x13B8C, symBinAddr: 0x1000675BC, symSize: 0x98 } - - { offset: 0x12A29E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAA14_PaddingLayoutVGAA01_d5ShapeI0VyAA9RectangleVGGACyxq_GAA4ViewA2aWRzAA0oI0R_rlWl', symObjAddr: 0x13C30, symBinAddr: 0x100067660, symSize: 0x98 } - - { offset: 0x12A2B2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAA14_PaddingLayoutVGACyxq_GAA4ViewA2aQRzAA0mI0R_rlWl', symObjAddr: 0x13CC8, symBinAddr: 0x1000676F8, symSize: 0x78 } - - { offset: 0x12A2C6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGACyxq_GAA4ViewA2aNRzAA0kI0R_rlWl', symObjAddr: 0x13D40, symBinAddr: 0x100067770, symSize: 0x98 } - - { offset: 0x12A2DA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAGyAA5ColorVSgGGAA14_PaddingLayoutVGAA01_d5ShapeI0VyAA9RectangleVGGACyxq_GAA4ViewA2AA0_RzAA0pI0R_rlWl', symObjAddr: 0x13DE4, symBinAddr: 0x100067814, symSize: 0x98 } - - { offset: 0x12A2EE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAGyAA5ColorVSgGGAA14_PaddingLayoutVGACyxq_GAA4ViewA2aVRzAA0nI0R_rlWl', symObjAddr: 0x13E7C, symBinAddr: 0x1000678AC, symSize: 0x78 } - - { offset: 0x12A302, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAGyAA5ColorVSgGGACyxq_GAA4ViewA2aSRzAA0lI0R_rlWl', symObjAddr: 0x13EF4, symBinAddr: 0x100067924, symSize: 0x98 } - - { offset: 0x12A316, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x13F9C, symBinAddr: 0x1000679CC, symSize: 0x10 } - - { offset: 0x12A32A, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x13FAC, symBinAddr: 0x1000679DC, symSize: 0x8 } - - { offset: 0x12A33E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU1_yyXEfU_TA', symObjAddr: 0x141F0, symBinAddr: 0x100067BDC, symSize: 0x18 } - - { offset: 0x12A352, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU_yyXEfU_TA', symObjAddr: 0x14208, symBinAddr: 0x100067BF4, symSize: 0x18 } - - { offset: 0x12A366, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_TA', symObjAddr: 0x14288, symBinAddr: 0x100067C14, symSize: 0x8 } - - { offset: 0x12A37A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA08ModifiedD0VyAA6ButtonVyAA4TextVGAA32_EnvironmentKeyTransformModifierVySbGGAA7ForEachVySay10Foundation3URLVGAsGyAA6HStackVyAA9TupleViewVyAI_AA5ImageVSgtGGGGGACyxq_GAA0R0A2AA6_RzAAA6_R_rlWl', symObjAddr: 0x14290, symBinAddr: 0x100067C1C, symSize: 0x78 } - - { offset: 0x12A38E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ButtonVyAA4TextVGAA32_EnvironmentKeyTransformModifierVySbGGACyxq_GAA4ViewA2aNRzAA0kJ0R_rlWl', symObjAddr: 0x14308, symBinAddr: 0x100067C94, symSize: 0xB8 } - - { offset: 0x12A3A2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySay10Foundation3URLVGAfA6ButtonVyAA6HStackVyAA9TupleViewVyAA4TextV_AA5ImageVSgtGGGGACyxq_q0_GAA0J0A2aXR0_rlWl', symObjAddr: 0x143C0, symBinAddr: 0x100067D4C, symSize: 0x90 } - - { offset: 0x12A3B6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4ViewPAAE8disabledyQrSbFySbzcfU_TA', symObjAddr: 0x144AC, symBinAddr: 0x100067E38, symSize: 0x8 } - - { offset: 0x12A3CA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU2_yyXEfU_TA', symObjAddr: 0x14544, symBinAddr: 0x100067ED0, symSize: 0x18 } - - { offset: 0x12A3DE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU1_yyXEfU_TA', symObjAddr: 0x1455C, symBinAddr: 0x100067EE8, symSize: 0x18 } - - { offset: 0x12A3F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU0_yyXEfU_TA', symObjAddr: 0x14574, symBinAddr: 0x100067F00, symSize: 0x1C } - - { offset: 0x12A406, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_yyScMYccfU_TA', symObjAddr: 0x14844, symBinAddr: 0x1000681D0, symSize: 0x60 } - - { offset: 0x12A41A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_A29_yXEfU0_TA', symObjAddr: 0x148A4, symBinAddr: 0x100068230, symSize: 0x8 } - - { offset: 0x12A42E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12createConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyFyyXEfU0_TA', symObjAddr: 0x148C0, symBinAddr: 0x10006824C, symSize: 0x18 } - - { offset: 0x12A442, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12createConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyFyyXEfU1_TA', symObjAddr: 0x148D8, symBinAddr: 0x100068264, symSize: 0x1C } - - { offset: 0x12A456, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_A123_yXEfU0_yyScMYccfU_yyXEfU_TA', symObjAddr: 0x148F4, symBinAddr: 0x100068280, symSize: 0x18 } - - { offset: 0x12A46A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE14textFieldStyleyQrqd__AA04TextgH0Rd__lFQOyAA0iG0VyAA0I0VG_AA013RoundedBorderigH0VQo_AA30_EnvironmentKeyWritingModifierVySSSgGGACyxq_GAad2aDRzAA0eO0R_rlWl', symObjAddr: 0x14914, symBinAddr: 0x1000682A0, symSize: 0x12C } - - { offset: 0x12A47E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwxx', symObjAddr: 0x14CA0, symBinAddr: 0x10006862C, symSize: 0x30 } - - { offset: 0x12A492, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwcp', symObjAddr: 0x14CD0, symBinAddr: 0x10006865C, symSize: 0x54 } - - { offset: 0x12A4A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwca', symObjAddr: 0x14D24, symBinAddr: 0x1000686B0, symSize: 0x84 } - - { offset: 0x12A4BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwta', symObjAddr: 0x14DBC, symBinAddr: 0x100068734, symSize: 0x54 } - - { offset: 0x12A4CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwet', symObjAddr: 0x14E10, symBinAddr: 0x100068788, symSize: 0x48 } - - { offset: 0x12A4E2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwst', symObjAddr: 0x14E58, symBinAddr: 0x1000687D0, symSize: 0x48 } - - { offset: 0x12A4F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVMa', symObjAddr: 0x14EA0, symBinAddr: 0x100068818, symSize: 0x10 } - - { offset: 0x12A50A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVwxx', symObjAddr: 0x14EDC, symBinAddr: 0x100068828, symSize: 0x28 } - - { offset: 0x12A51E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVwcp', symObjAddr: 0x14F04, symBinAddr: 0x100068850, symSize: 0x54 } - - { offset: 0x12A532, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVwca', symObjAddr: 0x14F58, symBinAddr: 0x1000688A4, symSize: 0x8C } - - { offset: 0x12A546, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVwta', symObjAddr: 0x14FF8, symBinAddr: 0x100068930, symSize: 0x5C } - - { offset: 0x12A55A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVMa', symObjAddr: 0x150EC, symBinAddr: 0x10006898C, symSize: 0x10 } - - { offset: 0x12A56E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwxx', symObjAddr: 0x150FC, symBinAddr: 0x10006899C, symSize: 0x30 } - - { offset: 0x12A582, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwcp', symObjAddr: 0x1512C, symBinAddr: 0x1000689CC, symSize: 0x60 } - - { offset: 0x12A596, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwca', symObjAddr: 0x1518C, symBinAddr: 0x100068A2C, symSize: 0x78 } - - { offset: 0x12A5AA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwta', symObjAddr: 0x15210, symBinAddr: 0x100068AA4, symSize: 0x54 } - - { offset: 0x12A5BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwet', symObjAddr: 0x15264, symBinAddr: 0x100068AF8, symSize: 0x48 } - - { offset: 0x12A5D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwst', symObjAddr: 0x152AC, symBinAddr: 0x100068B40, symSize: 0x40 } - - { offset: 0x12A5E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVMa', symObjAddr: 0x152EC, symBinAddr: 0x100068B80, symSize: 0x10 } - - { offset: 0x12A5FA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA16SubscriptionViewVy7Combine9PublishedV9PublisherVy10Foundation4UUIDV_GAEyAJySb_GAEyAoCyACyACyAA6ZStackVyAA05TupleF0VyAA012_ConditionalD0VyACyACyAA6VStackVyASyACyACyAA6HStackVyASyAA0F0PAAE9menuStyleyQrqd__AA04MenuR0Rd__lFQOyAA0S0VyACyACyACyAYyASyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGA16_GAA11_ClipEffectVyAA16RoundedRectangleVGGASyAA7SectionVyA7_AUyACyAA6ButtonVyA7_GAA01_vw9TransformY0VySbGGAA7ForEachVySayAK3URLVGA37_A28_yAYyASyA7__A5_SgtGGGGGAA05EmptyF0VG_AA7DividerVA29_A33_A33_A49_A29_A29_A29_A49_A33_tGG_AA016BorderlessButtonsR0VQo__AA6SpacerVAYyASyA_AAE06buttonR0yQrqd__AA015PrimitiveButtonR0Rd__lFQOyA28_yACyACyACyA5_A9_yAA4FontVSgGGA16_GAA01_d5ShapeY0VyAA9RectangleVGGG_AA011PlainButtonR0VQo__A74_A_AAEA57_yQrqd__AAA58_Rd__lFQOyA28_yACyACyACyA63_A9_yAA5ColorVSgGGA16_GA69_GG_A73_Qo_tGGtGGA16_GAA06_TraitxY0VyAA011ZIndexTraitW0VGG_ACyAQyAUyAA14GeometryReaderVyACyACyACyACyAQyASyACyACyACyACyACy8Swiftier011RippleRingsF0VAA12_FrameLayoutVGAA15_PositionLayoutVGAA017_AllowsHitTestingY0VGA90_yAA015TransitionTraitW0VGGA93_GSg_ACyACyACyAA6IDViewVyA97_0dF0V12PeerListAreaVAMGA101_GA111_GA93_GSgACyA118_14SpeedDashboardVA93_GSgtGGAA010_AnimationY0VySbGGA134_GAA11_BlurEffectVGAA14_OpacityEffectVGGA76_GGAA16_FlexFrameLayoutVGtGGA101_GAA011_BackgroundrY0VyA76_GGACyA76_A101_GG_ACyACyACyACyACyA97_03LogF0VA147_GA153_yAA8MaterialVGGAA23_CompositingGroupEffectVGA93_GA111_GSgACyACyACyACyA97_08SettingsF0VA147_GA163_GA93_GA111_GSgACyACyACyACyA97_012ConfigEditorF0VA147_GA163_GA93_GA111_GSgACyACyACyA116_yA97_015ConfigGeneratorF0VA37_SgGA147_GA93_GA111_GSgASyA_AAE12onTapGesture5count7performQrSi_yyctFQOyACyA76_A93_G_Qo__ACyACyACyACyACyACyAWyASyA7__ACyACyA7_A9_yAA0U9AlignmentOGGA16_GSgACyAWyASyA7__A_AAE8onSubmit2of_QrAA14SubmitTriggersV_yyctFQOyA_AAE21disableAutocorrectionyQrSbSgFQOyACyA_AAE09textFieldR0yQrqd__AA0u5FieldR0Rd__lFQOyAA0U5FieldVyA7_G_AA013RoundedBorderu5FieldR0VQo_A9_ySSSgGG_Qo__Qo_A7_tGGA16_GAYyASyA29__ACyA_AAEA57_yQrqd__AAA58_Rd__lFQOyA29__AA023BorderedProminentButtonR0VQo_A32_GtGGtGGA16_GA101_GAA011_BackgroundY0VyAA06_ShapeF0VyA22_A76_GGGAA13_ShadowEffectVGA93_GA111_GtGSgACyA97_08FDAGuideF0VA93_GSgtGGAA012_ValueActionY0VyA38_GGAA017_AppearanceActionY0VGA261_GGGGA237_yA97_11ScrollFixerVGGACyxq_GAaz2aZRzAA0fY0R_rlWl', symObjAddr: 0x15300, symBinAddr: 0x100068B94, symSize: 0xB8 } - - { offset: 0x12A60E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV7SwiftUI0C0AA4BodyAfGP_AIWT', symObjAddr: 0x153B8, symBinAddr: 0x100068C4C, symSize: 0x10 } - - { offset: 0x12A622, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV7SwiftUI0C0AA4BodyAfGP_AIWT', symObjAddr: 0x153C8, symBinAddr: 0x100068C5C, symSize: 0x10 } - - { offset: 0x12A636, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0x153D8, symBinAddr: 0x100068C6C, symSize: 0x10 } - - { offset: 0x12A64A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvgy10Foundation12NotificationVcfU0_TA', symObjAddr: 0x153EC, symBinAddr: 0x100068C80, symSize: 0x20 } - - { offset: 0x12A6A0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11TransactionVWOc', symObjAddr: 0x15454, symBinAddr: 0x100068CA0, symSize: 0x3C } - - { offset: 0x12A6B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_yyScMYccfU0_TA', symObjAddr: 0x15490, symBinAddr: 0x100068CDC, symSize: 0x8 } - - { offset: 0x12A6C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_yyScMYccfU0_yyXEfU_TA', symObjAddr: 0x15498, symBinAddr: 0x100068CE4, symSize: 0x64 } - - { offset: 0x12A724, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_yyScMYccfU_TA', symObjAddr: 0x154FC, symBinAddr: 0x100068D48, symSize: 0x4 } - - { offset: 0x12A73C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_yyScMYccfU_TA', symObjAddr: 0x154FC, symBinAddr: 0x100068D48, symSize: 0x4 } - - { offset: 0x12A750, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_yyScMYccfU_TA', symObjAddr: 0x154FC, symBinAddr: 0x100068D48, symSize: 0x4 } - - { offset: 0x12A764, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_yyScMYccfU0_TA', symObjAddr: 0x15534, symBinAddr: 0x100068D80, symSize: 0x8 } - - { offset: 0x12A778, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_yyScMYccfU_TA', symObjAddr: 0x15578, symBinAddr: 0x100068DC4, symSize: 0x8 } - - { offset: 0x12A78C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_A0_yXEfU0_TA', symObjAddr: 0x15580, symBinAddr: 0x100068DCC, symSize: 0x8 } - - { offset: 0x12A7A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVWOc', symObjAddr: 0x15588, symBinAddr: 0x100068DD4, symSize: 0x34 } - - { offset: 0x12A7B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVAC7SwiftUI4ViewAAWl', symObjAddr: 0x155BC, symBinAddr: 0x100068E08, symSize: 0x40 } - - { offset: 0x12A7C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVWOh', symObjAddr: 0x156F8, symBinAddr: 0x100068E78, symSize: 0x3C } - - { offset: 0x12A7DC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA9LazyHGridVyAA7ForEachVySay8Swiftier8PeerInfoVGSSACyACyACyAA13EquatableViewVyAH0J4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionU3KeyVGGGGAA08_PaddingP0VGAA01_d5ShapeW0VyAA0T0VGGACyxq_GAA0M0A2AA16_RzAA0mW0R_rlWl', symObjAddr: 0x15740, symBinAddr: 0x100068EC0, symSize: 0x98 } - - { offset: 0x12A7F0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA9LazyHGridVyAA7ForEachVySay8Swiftier8PeerInfoVGSSACyACyACyAA13EquatableViewVyAH0J4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionU3KeyVGGGGAA08_PaddingP0VGACyxq_GAA0M0A2AA10_RzAA0mW0R_rlWl', symObjAddr: 0x157D8, symBinAddr: 0x100068F58, symSize: 0x98 } - - { offset: 0x12A804, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySay8Swiftier8PeerInfoVGSSAA15ModifiedContentVyAIyAIyAA13EquatableViewVyAD0F4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionS3KeyVGGGACyxq_q0_GAA0K0A2AA4_R0_rlWl', symObjAddr: 0x158A0, symBinAddr: 0x100069020, symSize: 0x70 } - - { offset: 0x12A818, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA13EquatableViewVy8Swiftier8PeerCardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionP3KeyVGGACyxq_GAA0F0A2aZRzAA0fR0R_rlWl', symObjAddr: 0x15910, symBinAddr: 0x100069090, symSize: 0x98 } - - { offset: 0x12A82C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA13EquatableViewVy8Swiftier8PeerCardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGACyxq_GAA0F0A2aTRzAA0F8ModifierR_rlWl', symObjAddr: 0x159A8, symBinAddr: 0x100069128, symSize: 0x98 } - - { offset: 0x12A840, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA13EquatableViewVy8Swiftier8PeerCardVGAA12_FrameLayoutVGACyxq_GAA0F0A2aNRzAA0F8ModifierR_rlWl', symObjAddr: 0x15A40, symBinAddr: 0x1000691C0, symSize: 0x98 } - - { offset: 0x12A854, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVwca', symObjAddr: 0x15B58, symBinAddr: 0x100069290, symSize: 0x48 } - - { offset: 0x12A868, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVwta', symObjAddr: 0x15BB4, symBinAddr: 0x1000692D8, symSize: 0x38 } - - { offset: 0x12A87C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVwet', symObjAddr: 0x15BEC, symBinAddr: 0x100069310, symSize: 0x48 } - - { offset: 0x12A890, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVwst', symObjAddr: 0x15C34, symBinAddr: 0x100069358, symSize: 0x40 } - - { offset: 0x12A8A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVMa', symObjAddr: 0x15C74, symBinAddr: 0x100069398, symSize: 0x10 } - - { offset: 0x12A8B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwxx', symObjAddr: 0x15C84, symBinAddr: 0x1000693A8, symSize: 0x40 } - - { offset: 0x12A8CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwcp', symObjAddr: 0x15CC4, symBinAddr: 0x1000693E8, symSize: 0x8C } - - { offset: 0x12A8E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwca', symObjAddr: 0x15D50, symBinAddr: 0x100069474, symSize: 0xD4 } - - { offset: 0x12A8F4, size: 0x8, addend: 0x0, symName: ___swift_memcpy74_8, symObjAddr: 0x15E24, symBinAddr: 0x100069548, symSize: 0x24 } - - { offset: 0x12A908, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwta', symObjAddr: 0x15E48, symBinAddr: 0x10006956C, symSize: 0x8C } - - { offset: 0x12A91C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwet', symObjAddr: 0x15ED4, symBinAddr: 0x1000695F8, symSize: 0x48 } - - { offset: 0x12A930, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwst', symObjAddr: 0x15F1C, symBinAddr: 0x100069640, symSize: 0x54 } - - { offset: 0x12A944, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVMa', symObjAddr: 0x15F70, symBinAddr: 0x100069694, symSize: 0x10 } - - { offset: 0x12A958, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6HStackVyAA9TupleViewVyACyAA09EquatableG0Vy8Swiftier0dG0V9SpeedCardVGAA21_TraitWritingModifierVyAA010TransitionL3KeyVGGSg_ACyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonR0Rd__lFQOyAA0T0VyAJ09StartStopT4CoreVG_AA05PlaintR0VQo_AQyAA06ZIndexlP0VGGAVtGGAA14_PaddingLayoutVGAA12_FrameLayoutVGAA15_PositionLayoutVGACyxq_GAaw2aWRzAA0gN0R_rlWl', symObjAddr: 0x15FB8, symBinAddr: 0x1000696DC, symSize: 0x78 } - - { offset: 0x12A96C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6HStackVyAA9TupleViewVyACyAA09EquatableG0Vy8Swiftier0dG0V9SpeedCardVGAA21_TraitWritingModifierVyAA010TransitionL3KeyVGGSg_ACyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonR0Rd__lFQOyAA0T0VyAJ09StartStopT4CoreVG_AA05PlaintR0VQo_AQyAA06ZIndexlP0VGGAVtGGAA14_PaddingLayoutVGAA12_FrameLayoutVGACyxq_GAaw2aWRzAA0gN0R_rlWl', symObjAddr: 0x16030, symBinAddr: 0x100069754, symSize: 0x78 } - - { offset: 0x12A980, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyACyAA09EquatableG0Vy8Swiftier0dG0V9SpeedCardVGAA21_TraitWritingModifierVyAA010TransitionL3KeyVGGSg_ACyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonR0Rd__lFQOyAA0T0VyAJ09StartStopT4CoreVG_AA05PlaintR0VQo_AQyAA06ZIndexlP0VGGAVtGGAA14_PaddingLayoutVGACyxq_GAaw2aWRzAA0gN0R_rlWl', symObjAddr: 0x160A8, symBinAddr: 0x1000697CC, symSize: 0x98 } - - { offset: 0x12A994, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVyAA6SpacerV_ACyACyACyAA6ZStackVyAGyACyACyAA06ScrollG0VyACyACyAA9LazyHGridVyAA7ForEachVySay8Swiftier8PeerInfoVGSSACyACyACyAA09EquatableG0VyAR0P4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionZ3KeyVGGGGAA08_PaddingU0VGAA01_D13ShapeModifierVyAA0Y0VGGGAA19_BackgroundModifierVyAA14GeometryReaderVyACyAA5ColorVA27_yAR0J5FixerVGGGGGA0_G_ACyACyACyAEyAGyACyACyAA08ProgressG0VyAA05EmptyG0VA43_GAA06_ScaleW0VGAA30_EnvironmentKeyWritingModifierVyAA11ControlSizeOGG_AA4TextVtGGAA05_FlextU0VGA0_GA12_GSgtGGA59_GA0_GA17_GtGGA59_GAA18_AnimationModifierVySaySSGGGACyxq_GAA0G0A2AA78_RzAA0G8ModifierR_rlWl', symObjAddr: 0x16144, symBinAddr: 0x100069868, symSize: 0x98 } - - { offset: 0x12A9A8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAA6SpacerV_ACyACyACyAA6ZStackVyAGyACyACyAA06ScrollG0VyACyACyAA9LazyHGridVyAA7ForEachVySay8Swiftier8PeerInfoVGSSACyACyACyAA09EquatableG0VyAR0P4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionZ3KeyVGGGGAA08_PaddingU0VGAA01_D13ShapeModifierVyAA0Y0VGGGAA19_BackgroundModifierVyAA14GeometryReaderVyACyAA5ColorVA27_yAR0J5FixerVGGGGGA0_G_ACyACyACyAEyAGyACyACyAA08ProgressG0VyAA05EmptyG0VA43_GAA06_ScaleW0VGAA30_EnvironmentKeyWritingModifierVyAA11ControlSizeOGG_AA4TextVtGGAA05_FlextU0VGA0_GA12_GSgtGGA59_GA0_GA17_GtGGA59_GACyxq_GAA0G0A2AA73_RzAA0G8ModifierR_rlWl', symObjAddr: 0x161DC, symBinAddr: 0x100069900, symSize: 0x98 } - - { offset: 0x12A9BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV7SwiftUI0C0AA4BodyAfGP_AIWT', symObjAddr: 0x16274, symBinAddr: 0x100069998, symSize: 0x10 } - - { offset: 0x12A9D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x16284, symBinAddr: 0x1000699A8, symSize: 0x10 } - - { offset: 0x12A9E4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA4TextVAA12_FrameLayoutVGAA30_EnvironmentKeyWritingModifierVySiSgGGAJy12CoreGraphics7CGFloatVGGAA13_OffsetEffectVGSgWOi0_', symObjAddr: 0x16294, symBinAddr: 0x1000699B8, symSize: 0x1C } - - { offset: 0x12AA0E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6ZStackVyAA9TupleViewVyACyACyAA06_ShapeG0VyAA6CircleVAA5ColorVGAA12_FrameLayoutVGAA13_ShadowEffectVG_ACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAA016_ForegroundStyleS0VyAMGGACyACyACyACyAA4TextVAPGAXySiSgGGAXy12CoreGraphics7CGFloatVGGAA07_OffsetN0VGSgtGGAPGAA08_PaddingL0VGACyxq_GAA0G0A2AA28_RzAA0gS0R_rlWl', symObjAddr: 0x163D4, symBinAddr: 0x100069A24, symSize: 0x78 } - - { offset: 0x12AA22, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ZStackVyAA9TupleViewVyACyACyAA06_ShapeG0VyAA6CircleVAA5ColorVGAA12_FrameLayoutVGAA13_ShadowEffectVG_ACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAA016_ForegroundStyleS0VyAMGGACyACyACyACyAA4TextVAPGAXySiSgGGAXy12CoreGraphics7CGFloatVGGAA07_OffsetN0VGSgtGGAPGACyxq_GAA0G0A2AA25_RzAA0gS0R_rlWl', symObjAddr: 0x1644C, symBinAddr: 0x100069A9C, symSize: 0x98 } - - { offset: 0x12AA36, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyACy8Swiftier014SmartSparklineG0VAA16_FlexFrameLayoutVGAA08_PaddingM0VGAA21_TraitWritingModifierVyAA06ZIndexO3KeyVGGAA017_AllowsHitTestingQ0VG_ACyACyAA6VStackVyAGyACyAA6HStackVyAGyACyACyAA5ImageVAA012_EnvironmentspQ0VyAA5ColorVSgGGA5_yAA4FontVSgGG_AA4TextVtGGAOG_AA6SpacerVACyA1_yAGyA17__A17_tGGALGA22_ACyA7_AA01_lM0VGtGGAOGAUGtGGALGA27_GAA011_BackgroundQ0VyAA06_ShapeG0VyAA16RoundedRectangleVA7_GGGAA08_OverlayQ0VyA40_yAA13_StrokedShapeVyA42_GA7_GGGACyxq_GAA0G0A2AA55_RzAA0gQ0R_rlWl', symObjAddr: 0x164E8, symBinAddr: 0x100069B38, symSize: 0x98 } - - { offset: 0x12AA4A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyACy8Swiftier014SmartSparklineG0VAA16_FlexFrameLayoutVGAA08_PaddingM0VGAA21_TraitWritingModifierVyAA06ZIndexO3KeyVGGAA017_AllowsHitTestingQ0VG_ACyACyAA6VStackVyAGyACyAA6HStackVyAGyACyACyAA5ImageVAA012_EnvironmentspQ0VyAA5ColorVSgGGA5_yAA4FontVSgGG_AA4TextVtGGAOG_AA6SpacerVACyA1_yAGyA17__A17_tGGALGA22_ACyA7_AA01_lM0VGtGGAOGAUGtGGALGA27_GAA011_BackgroundQ0VyAA06_ShapeG0VyAA16RoundedRectangleVA7_GGGACyxq_GAA0G0A2AA47_RzAA0gQ0R_rlWl', symObjAddr: 0x16580, symBinAddr: 0x100069BD0, symSize: 0x98 } - - { offset: 0x12AA5E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6ZStackVyAA9TupleViewVyACyACyACyACy8Swiftier014SmartSparklineG0VAA16_FlexFrameLayoutVGAA08_PaddingM0VGAA21_TraitWritingModifierVyAA06ZIndexO3KeyVGGAA017_AllowsHitTestingQ0VG_ACyACyAA6VStackVyAGyACyAA6HStackVyAGyACyACyAA5ImageVAA012_EnvironmentspQ0VyAA5ColorVSgGGA5_yAA4FontVSgGG_AA4TextVtGGAOG_AA6SpacerVACyA1_yAGyA17__A17_tGGALGA22_ACyA7_AA01_lM0VGtGGAOGAUGtGGALGA27_GACyxq_GAA0G0A2AA38_RzAA0gQ0R_rlWl', symObjAddr: 0x16618, symBinAddr: 0x100069C68, symSize: 0x78 } - - { offset: 0x12AA72, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ZStackVyAA9TupleViewVyACyACyACyACy8Swiftier014SmartSparklineG0VAA16_FlexFrameLayoutVGAA08_PaddingM0VGAA21_TraitWritingModifierVyAA06ZIndexO3KeyVGGAA017_AllowsHitTestingQ0VG_ACyACyAA6VStackVyAGyACyAA6HStackVyAGyACyACyAA5ImageVAA012_EnvironmentspQ0VyAA5ColorVSgGGA5_yAA4FontVSgGG_AA4TextVtGGAOG_AA6SpacerVACyA1_yAGyA17__A17_tGGALGA22_ACyA7_AA01_lM0VGtGGAOGAUGtGGALGACyxq_GAA0G0A2AA37_RzAA0gQ0R_rlWl', symObjAddr: 0x16690, symBinAddr: 0x100069CE0, symSize: 0x98 } - - { offset: 0x12AA8E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV17isAnyOverlayShown33_FD6C0C263E4B6E937596903D0DEE615BLLSbvg', symObjAddr: 0x100, symBinAddr: 0x100053E1C, symSize: 0x188 } - - { offset: 0x12DCCC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg', symObjAddr: 0x288, symBinAddr: 0x100053FA4, symSize: 0x4FC } - - { offset: 0x12DF2A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_', symObjAddr: 0x784, symBinAddr: 0x1000544A0, symSize: 0x2348 } - - { offset: 0x12EC0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A21_yXEfU_', symObjAddr: 0x2ACC, symBinAddr: 0x1000567E8, symSize: 0x4EC } - - { offset: 0x12EEA9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_ySbYbcfU1_', symObjAddr: 0x2FB8, symBinAddr: 0x100056CD4, symSize: 0x120 } - - { offset: 0x12EED4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_yycfU2_', symObjAddr: 0x30D8, symBinAddr: 0x100056DF4, symSize: 0x8C } - - { offset: 0x12EEFF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_', symObjAddr: 0x3164, symBinAddr: 0x100056E80, symSize: 0x708 } - - { offset: 0x12F0A2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_A108_yXEfU_', symObjAddr: 0x386C, symBinAddr: 0x100057588, symSize: 0x768 } - - { offset: 0x12F19C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_A123_yXEfU0_', symObjAddr: 0x4B58, symBinAddr: 0x100058874, symSize: 0x568 } - - { offset: 0x12F25A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_A123_yXEfU0_yyScMYccfU_yyXEfU_', symObjAddr: 0x50C0, symBinAddr: 0x100058DDC, symSize: 0xC0 } - - { offset: 0x12F28B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgySay10Foundation3URLVGcfU0_', symObjAddr: 0x5180, symBinAddr: 0x100058E9C, symSize: 0x2B4 } - - { offset: 0x12F3AE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgyycfU1_', symObjAddr: 0x5434, symBinAddr: 0x100059150, symSize: 0x4A0 } - - { offset: 0x12F55E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgyycfU2_', symObjAddr: 0x58D4, symBinAddr: 0x1000595F0, symSize: 0x6C } - - { offset: 0x12F5A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgySbcfU3_', symObjAddr: 0x5940, symBinAddr: 0x10005965C, symSize: 0x5C } - - { offset: 0x12F5DD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgySbcfU4_', symObjAddr: 0x599C, symBinAddr: 0x1000596B8, symSize: 0x5C } - - { offset: 0x12F614, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgy10Foundation4UUIDVcfU5_', symObjAddr: 0x59F8, symBinAddr: 0x100059714, symSize: 0xB0 } - - { offset: 0x12F856, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12createConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyF', symObjAddr: 0x3FD4, symBinAddr: 0x100057CF0, symSize: 0xB84 } - - { offset: 0x12FE20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12createConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyFyyXEfU0_', symObjAddr: 0xE144, symBinAddr: 0x100061E3C, symSize: 0xBC } - - { offset: 0x12FEBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_', symObjAddr: 0x5AA8, symBinAddr: 0x1000597C4, symSize: 0x3C8 } - - { offset: 0x12FF6D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_', symObjAddr: 0x5E70, symBinAddr: 0x100059B8C, symSize: 0x119C } - - { offset: 0x1300BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_', symObjAddr: 0x700C, symBinAddr: 0x10005AD28, symSize: 0x504 } - - { offset: 0x1301DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_', symObjAddr: 0x7514, symBinAddr: 0x10005B22C, symSize: 0x1A8 } - - { offset: 0x13021F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_yyScMYccfU_', symObjAddr: 0x76BC, symBinAddr: 0x10005B3D4, symSize: 0x130 } - - { offset: 0x130269, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_A29_yXEfU0_', symObjAddr: 0x77EC, symBinAddr: 0x10005B504, symSize: 0x78 } - - { offset: 0x130317, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_A29_yXEfU0_A28_yXEfU_', symObjAddr: 0x7864, symBinAddr: 0x10005B57C, symSize: 0x44C } - - { offset: 0x13038E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU0_', symObjAddr: 0x7CB0, symBinAddr: 0x10005B9C8, symSize: 0xF0 } - - { offset: 0x1303C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU1_yyXEfU_', symObjAddr: 0x7DA0, symBinAddr: 0x10005BAB8, symSize: 0x78 } - - { offset: 0x1303ED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU2_yyXEfU_', symObjAddr: 0x7E18, symBinAddr: 0x10005BB30, symSize: 0x118 } - - { offset: 0x130412, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV20deleteSelectedConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyF', symObjAddr: 0x7FC4, symBinAddr: 0x10005BCDC, symSize: 0x270 } - - { offset: 0x130450, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A5_yXEfU7_', symObjAddr: 0x8234, symBinAddr: 0x10005BF4C, symSize: 0xF0 } - - { offset: 0x1304A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A11_yXEfU0_', symObjAddr: 0x8324, symBinAddr: 0x10005C03C, symSize: 0x1A8 } - - { offset: 0x130621, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A11_yXEfU0_A7_yXEfU_', symObjAddr: 0x84CC, symBinAddr: 0x10005C1E4, symSize: 0x2EC } - - { offset: 0x1306CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_', symObjAddr: 0x87B8, symBinAddr: 0x10005C4D0, symSize: 0x608 } - - { offset: 0x13074B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU_yyXEfU_', symObjAddr: 0x8DC0, symBinAddr: 0x10005CAD8, symSize: 0x78 } - - { offset: 0x130770, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU1_yyXEfU_', symObjAddr: 0x8EAC, symBinAddr: 0x10005CBC4, symSize: 0x78 } - - { offset: 0x1307C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_', symObjAddr: 0x9054, symBinAddr: 0x10005CD6C, symSize: 0x374 } - - { offset: 0x1308D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_A69_yXEfU4_', symObjAddr: 0x9430, symBinAddr: 0x10005D148, symSize: 0x138 } - - { offset: 0x13097D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV11contentArea33_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI0C0PAFE7opacityyQrSdFQOyAhFE4blur6radius6opaqueQr12CoreGraphics7CGFloatV_SbtFQOyAhFE9animation_5valueQrAF9AnimationVSg_qd__tSQRd__lFQOyAhFEAP_AQQrAT_qd__tSQRd__lFQOyAF6ZStackVyAF05TupleC0VyAhFE6zIndexyQrSdFQOyAhFE10transitionyQrAF13AnyTransitionVFQOyAhFE16allowsHitTestingyQrSbFQOyAhFE8position1x1yQrAO_AOtFQOyAhFE5frame5width6height9alignmentQrAOSg_A9_AF9AlignmentVtFQOyAA011RippleRingsC0V_Qo__Qo__Qo__Qo__Qo_Sg_AhFEAYyQrSdFQOyAhFEAZyQrA0_FQOyAhFEA5_A6_A7_A8_QrA9__A9_A11_tFQOyAhFE2idyQrqd__SHRd__lFQOyAC08PeerListE0V_10Foundation4UUIDVQo__Qo__Qo__Qo_SgAhFEAYyQrSdFQOyAC14SpeedDashboardV_Qo_SgtGG_SbQo__SbQo__Qo__Qo_AF13GeometryProxyVcfU_', symObjAddr: 0x9568, symBinAddr: 0x10005D280, symSize: 0x278 } - - { offset: 0x130BB6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV11contentArea33_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI0C0PAFE7opacityyQrSdFQOyAhFE4blur6radius6opaqueQr12CoreGraphics7CGFloatV_SbtFQOyAhFE9animation_5valueQrAF9AnimationVSg_qd__tSQRd__lFQOyAhFEAP_AQQrAT_qd__tSQRd__lFQOyAF6ZStackVyAF05TupleC0VyAhFE6zIndexyQrSdFQOyAhFE10transitionyQrAF13AnyTransitionVFQOyAhFE16allowsHitTestingyQrSbFQOyAhFE8position1x1yQrAO_AOtFQOyAhFE5frame5width6height9alignmentQrAOSg_A9_AF9AlignmentVtFQOyAA011RippleRingsC0V_Qo__Qo__Qo__Qo__Qo_Sg_AhFEAYyQrSdFQOyAhFEAZyQrA0_FQOyAhFEA5_A6_A7_A8_QrA9__A9_A11_tFQOyAhFE2idyQrqd__SHRd__lFQOyAC08PeerListE0V_10Foundation4UUIDVQo__Qo__Qo__Qo_SgAhFEAYyQrSdFQOyAC14SpeedDashboardV_Qo_SgtGG_SbQo__SbQo__Qo__Qo_AF13GeometryProxyVcfU_A35_yXEfU_', symObjAddr: 0x97E0, symBinAddr: 0x10005D4F8, symSize: 0xFA0 } - - { offset: 0x131144, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV10splitValue33_FD6C0C263E4B6E937596903D0DEE615BLLSS6number_SS4unittvg', symObjAddr: 0xA780, symBinAddr: 0x10005E498, symSize: 0xE0 } - - { offset: 0x13126E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg', symObjAddr: 0xA860, symBinAddr: 0x10005E578, symSize: 0x3BC } - - { offset: 0x1314A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE16allowsHitTestingyQrSbFQOyAkGE6zIndexyQrSdFQOyAkGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAkGE5frame8minWidth05idealV003maxV00U6Height0wY00xY09alignmentQrAV_A5vG9AlignmentVtFQOyAA014SmartSparklineC0V_Qo__Qo__Qo__Qo__AkGEAMyQrSdFQOyAkGEANyQrAR_AVtFQOyAG6VStackVyAIyAkGEANyQrAR_AVtFQOyAG6HStackVyAIyAkGE4fontyQrAG4FontVSgFQOyAkGE15foregroundColoryQrAG5ColorVSgFQOyAG5ImageV_Qo__Qo__AG4TextVtGG_Qo__AG6SpacerVAkGEAwxyZA_A0_A1_A2_QrAV_A5VA4_tFQOyA14_yAIyA28__A28_tGG_Qo_A33_AkGEAW5width6heightA2_QrAV_AVA4_tFQOyA21__Qo_tGG_Qo__Qo_tGyXEfU_', symObjAddr: 0xAC1C, symBinAddr: 0x10005E934, symSize: 0x434 } - - { offset: 0x131607, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE16allowsHitTestingyQrSbFQOyAkGE6zIndexyQrSdFQOyAkGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAkGE5frame8minWidth05idealV003maxV00U6Height0wY00xY09alignmentQrAV_A5vG9AlignmentVtFQOyAA014SmartSparklineC0V_Qo__Qo__Qo__Qo__AkGEAMyQrSdFQOyAkGEANyQrAR_AVtFQOyAG6VStackVyAIyAkGEANyQrAR_AVtFQOyAG6HStackVyAIyAkGE4fontyQrAG4FontVSgFQOyAkGE15foregroundColoryQrAG5ColorVSgFQOyAG5ImageV_Qo__Qo__AG4TextVtGG_Qo__AG6SpacerVAkGEAwxyZA_A0_A1_A2_QrAV_A5VA4_tFQOyA14_yAIyA28__A28_tGG_Qo_A33_AkGEAW5width6heightA2_QrAV_AVA4_tFQOyA21__Qo_tGG_Qo__Qo_tGyXEfU_A40_yXEfU_', symObjAddr: 0xB050, symBinAddr: 0x10005ED68, symSize: 0x640 } - - { offset: 0x131784, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE16allowsHitTestingyQrSbFQOyAkGE6zIndexyQrSdFQOyAkGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAkGE5frame8minWidth05idealV003maxV00U6Height0wY00xY09alignmentQrAV_A5vG9AlignmentVtFQOyAA014SmartSparklineC0V_Qo__Qo__Qo__Qo__AkGEAMyQrSdFQOyAkGEANyQrAR_AVtFQOyAG6VStackVyAIyAkGEANyQrAR_AVtFQOyAG6HStackVyAIyAkGE4fontyQrAG4FontVSgFQOyAkGE15foregroundColoryQrAG5ColorVSgFQOyAG5ImageV_Qo__Qo__AG4TextVtGG_Qo__AG6SpacerVAkGEAwxyZA_A0_A1_A2_QrAV_A5VA4_tFQOyA14_yAIyA28__A28_tGG_Qo_A33_AkGEAW5width6heightA2_QrAV_AVA4_tFQOyA21__Qo_tGG_Qo__Qo_tGyXEfU_A40_yXEfU_A29_yXEfU_', symObjAddr: 0xB690, symBinAddr: 0x10005F3A8, symSize: 0x30C } - - { offset: 0x131822, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE16allowsHitTestingyQrSbFQOyAkGE6zIndexyQrSdFQOyAkGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAkGE5frame8minWidth05idealV003maxV00U6Height0wY00xY09alignmentQrAV_A5vG9AlignmentVtFQOyAA014SmartSparklineC0V_Qo__Qo__Qo__Qo__AkGEAMyQrSdFQOyAkGEANyQrAR_AVtFQOyAG6VStackVyAIyAkGEANyQrAR_AVtFQOyAG6HStackVyAIyAkGE4fontyQrAG4FontVSgFQOyAkGE15foregroundColoryQrAG5ColorVSgFQOyAG5ImageV_Qo__Qo__AG4TextVtGG_Qo__AG6SpacerVAkGEAwxyZA_A0_A1_A2_QrAV_A5VA4_tFQOyA14_yAIyA28__A28_tGG_Qo_A33_AkGEAW5width6heightA2_QrAV_AVA4_tFQOyA21__Qo_tGG_Qo__Qo_tGyXEfU_A40_yXEfU_A34_yXEfU0_', symObjAddr: 0xB99C, symBinAddr: 0x10005F6B4, symSize: 0x310 } - - { offset: 0x1318F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV7SwiftUI0C0AafGP4body4BodyQzvgTW', symObjAddr: 0xBCAC, symBinAddr: 0x10005F9C4, symSize: 0x40 } - - { offset: 0x131920, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xBCEC, symBinAddr: 0x10005FA04, symSize: 0xB8 } - - { offset: 0x1319A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg', symObjAddr: 0xBDA4, symBinAddr: 0x10005FABC, symSize: 0x198 } - - { offset: 0x131B55, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_', symObjAddr: 0xBF3C, symBinAddr: 0x10005FC54, symSize: 0x860 } - - { offset: 0x131D7A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_yyScMYccfU_', symObjAddr: 0xC79C, symBinAddr: 0x1000604B4, symSize: 0xBC } - - { offset: 0x131DCC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_A0_yXEfU0_', symObjAddr: 0xC858, symBinAddr: 0x100060570, symSize: 0xD0 } - - { offset: 0x131ED3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV7SwiftUI0C0AafGP4body4BodyQzvgTW', symObjAddr: 0xC948, symBinAddr: 0x100060640, symSize: 0x38 } - - { offset: 0x131F1B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg', symObjAddr: 0xC9DC, symBinAddr: 0x1000606D4, symSize: 0x3E8 } - - { offset: 0x132226, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_', symObjAddr: 0xCDC4, symBinAddr: 0x100060ABC, symSize: 0x3EC } - - { offset: 0x1323B2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_', symObjAddr: 0xD1B0, symBinAddr: 0x100060EA8, symSize: 0x708 } - - { offset: 0x1326DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_A44_yXEfU_', symObjAddr: 0xD8B8, symBinAddr: 0x1000615B0, symSize: 0x1A8 } - - { offset: 0x1327C9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_A44_yXEfU_A39_yXEfU_', symObjAddr: 0xDA60, symBinAddr: 0x100061758, symSize: 0x188 } - - { offset: 0x13281E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_A44_yXEfU_A39_yXEfU_A38_A20_cfU_', symObjAddr: 0xDBE8, symBinAddr: 0x1000618E0, symSize: 0x228 } - - { offset: 0x1329D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_A66_yXEfU0_', symObjAddr: 0xDE10, symBinAddr: 0x100061B08, symSize: 0x31C } - - { offset: 0x132B6C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV7SwiftUI0C0AafGP4body4BodyQzvgTW', symObjAddr: 0xE12C, symBinAddr: 0x100061E24, symSize: 0x18 } - - { offset: 0x132B8C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVACycfC', symObjAddr: 0xE280, symBinAddr: 0x100061F78, symSize: 0x444 } - - { offset: 0x132D02, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0xE6C4, symBinAddr: 0x1000623BC, symSize: 0x4 } - - { offset: 0x132D40, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreV4bodyQrvg', symObjAddr: 0xE6C8, symBinAddr: 0x1000623C0, symSize: 0x160 } - - { offset: 0x132E4B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreV4bodyQrvg7SwiftUI9TupleViewVyAE0J0PAEE6shadow5color6radius1x1yQrAE5ColorV_0E8Graphics7CGFloatVA2StFQOyAiEE5frame5width6height9alignmentQrASSg_AxE9AlignmentVtFQOyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0vZ0Rd__lFQOyAE6CircleV_APQo__Qo__Qo__AiEE010foregroundZ0yQrqd__AEA5_Rd__lFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__APQo_AiEE6offsetAmNQrAS_AStFQOyAiEE18minimumScaleFactoryQrASFQOyAiEE9lineLimityQrSiSgFQOyAiEEAtuvWQrAX_AxZtFQOyAE4TextV_Qo__Qo__Qo__Qo_SgtGyXEfU_', symObjAddr: 0xE828, symBinAddr: 0x100062520, symSize: 0x5A0 } - - { offset: 0x133009, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0xEDC8, symBinAddr: 0x100062AC0, symSize: 0xC } - - { offset: 0x133040, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg', symObjAddr: 0xEDD4, symBinAddr: 0x100062ACC, symSize: 0x2C0 } - - { offset: 0x133153, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_', symObjAddr: 0xF094, symBinAddr: 0x100062D8C, symSize: 0x428 } - - { offset: 0x1333C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_', symObjAddr: 0xF4BC, symBinAddr: 0x1000631B4, symSize: 0x278 } - - { offset: 0x1334A3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_', symObjAddr: 0xF734, symBinAddr: 0x10006342C, symSize: 0x548 } - - { offset: 0x13362B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A42_yXEfU_', symObjAddr: 0xFC7C, symBinAddr: 0x100063974, symSize: 0x70C } - - { offset: 0x1337E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_', symObjAddr: 0x10388, symBinAddr: 0x100064080, symSize: 0x410 } - - { offset: 0x1338EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_', symObjAddr: 0x10798, symBinAddr: 0x100064490, symSize: 0x500 } - - { offset: 0x133971, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_yyScMYccfU0_', symObjAddr: 0x10C98, symBinAddr: 0x100064990, symSize: 0x154 } - - { offset: 0x1339E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_yyScMYccfU0_', symObjAddr: 0x10DEC, symBinAddr: 0x100064AE4, symSize: 0x5C } - - { offset: 0x133BC1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStF7SwiftUI05TupleC0VyAH0C0PAHE10background_9alignmentQrqd___AH9AlignmentVtAhKRd__lFQOyAlHE5frame5width6heightANQr12CoreGraphics7CGFloatVSg_AwPtFQOyAH4TextV_Qo__AH5ShapePAHE4fill_5styleQrqd___AH9FillStyleVtAH10ShapeStyleRd__lFQOyAH6CircleV_AH5ColorVQo_Qo__AYtGyXEfU_', symObjAddr: 0x10E48, symBinAddr: 0x100064B40, symSize: 0x354 } - - { offset: 0x133CA1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0x1119C, symBinAddr: 0x100064E94, symSize: 0x38 } - - { offset: 0x133CFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewC11scrollWheel4withySo7NSEventC_tFTo', symObjAddr: 0x111D4, symBinAddr: 0x100064ECC, symSize: 0xC0 } - - { offset: 0x133D99, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewC5frameACSo6CGRectV_tcfcTo', symObjAddr: 0x11294, symBinAddr: 0x100064F8C, symSize: 0x6C } - - { offset: 0x133DF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewC5coderACSgSo7NSCoderC_tcfcTo', symObjAddr: 0x11300, symBinAddr: 0x100064FF8, symSize: 0x80 } - - { offset: 0x133E2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewCfZ', symObjAddr: 0x11380, symBinAddr: 0x100065078, symSize: 0x3C } - - { offset: 0x133E72, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewCfD', symObjAddr: 0x113BC, symBinAddr: 0x1000650B4, symSize: 0x344 } - - { offset: 0x134007, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x100069E24, symSize: 0x28 } - - { offset: 0x13402B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC6sharedACvpZ', symObjAddr: 0x4A68, symBinAddr: 0x10012EDD8, symSize: 0x0 } - - { offset: 0x134116, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x100069E24, symSize: 0x28 } - - { offset: 0x1341D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceCMa', symObjAddr: 0x5A8, symBinAddr: 0x10006A3CC, symSize: 0x20 } - - { offset: 0x1341E7, size: 0x8, addend: 0x0, symName: '_$sScPSgWOh', symObjAddr: 0x7C0, symBinAddr: 0x10006A43C, symSize: 0x48 } - - { offset: 0x13429B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC5start10configPath10completionySS_ySbctFySb_SSSgtcfU_', symObjAddr: 0x28, symBinAddr: 0x100069E4C, symSize: 0x138 } - - { offset: 0x1343D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC4stop10completionyySbc_tFySbcfU_091$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05Tuplem5VyAF0m40PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyy2R0x36AjFE12cornerRadius_11antialiasedQr12b91Graphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackx78AHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7Sectionx22A5_AF012_ConditionalB0x31AjFE8disabledyQrSbFQOyAF6Buttonx18A5_G_Qo_AF7ForEachx60Say10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyM504VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_ySbcfU_Tf3npf_n', symObjAddr: 0x160, symBinAddr: 0x100069F84, symSize: 0x4 } - - { offset: 0x1343ED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC4stop10completionyySbc_tFySbcfU_091$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05Tuplem5VyAF0m40PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyy2R0x36AjFE12cornerRadius_11antialiasedQr12b91Graphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackx78AHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7Sectionx22A5_AF012_ConditionalB0x31AjFE8disabledyQrSbFQOyAF6Buttonx18A5_G_Qo_AF7ForEachx60Say10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyM504VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_ySbcfU_Tf3npf_n', symObjAddr: 0x160, symBinAddr: 0x100069F84, symSize: 0x4 } - - { offset: 0x134401, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC4stop10completionyySbc_tFySbcfU_091$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05Tuplem5VyAF0m40PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyy2R0x36AjFE12cornerRadius_11antialiasedQr12b91Graphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackx78AHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7Sectionx22A5_AF012_ConditionalB0x31AjFE8disabledyQrSbFQOyAF6Buttonx18A5_G_Qo_AF7ForEachx60Say10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyM504VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_ySbcfU_Tf3npf_n', symObjAddr: 0x160, symBinAddr: 0x100069F84, symSize: 0x4 } - - { offset: 0x134414, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC4stop10completionyySbc_tFySbcfU_', symObjAddr: 0x164, symBinAddr: 0x100069F88, symSize: 0x20 } - - { offset: 0x134450, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC9getStatus10completionyySb_s5Int32Vtc_tFyAGcfU_092$s8Swiftier11AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySb_s5G6VtcfU_Tf3npf_n', symObjAddr: 0x184, symBinAddr: 0x100069FA8, symSize: 0xC } - - { offset: 0x134496, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC9getStatus10completionyySb_s5Int32Vtc_tFyAGcfU_', symObjAddr: 0x190, symBinAddr: 0x100069FB4, symSize: 0x30 } - - { offset: 0x1344ED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceCfZ', symObjAddr: 0x1C0, symBinAddr: 0x100069FE4, symSize: 0x90 } - - { offset: 0x13455F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceCfD', symObjAddr: 0x250, symBinAddr: 0x10006A074, symSize: 0x358 } - - { offset: 0x1346E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC6sharedACvpZ', symObjAddr: 0x10600, symBinAddr: 0x10012EDE0, symSize: 0x0 } - - { offset: 0x1349B3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC6shared_WZ', symObjAddr: 0x490, symBinAddr: 0x10006A8BC, symSize: 0x3C } - - { offset: 0x134BCD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCfETo', symObjAddr: 0x1D38, symBinAddr: 0x10006C164, symSize: 0x10 } - - { offset: 0x134BFC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCMU', symObjAddr: 0x1DAC, symBinAddr: 0x10006C1D8, symSize: 0x8 } - - { offset: 0x134C10, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCMr', symObjAddr: 0x1DF8, symBinAddr: 0x10006C1F4, symSize: 0x98 } - - { offset: 0x134C24, size: 0x8, addend: 0x0, symName: '_$s7Combine9PublishedVySSGMa', symObjAddr: 0x1E90, symBinAddr: 0x10006C28C, symSize: 0x50 } - - { offset: 0x134C38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCMa', symObjAddr: 0x1EE0, symBinAddr: 0x10006C2DC, symSize: 0x20 } - - { offset: 0x134C4C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwCP', symObjAddr: 0x1F00, symBinAddr: 0x10006C2FC, symSize: 0xFC } - - { offset: 0x134C60, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwxx', symObjAddr: 0x2054, symBinAddr: 0x10006C3F8, symSize: 0x78 } - - { offset: 0x134C74, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwcp', symObjAddr: 0x20D4, symBinAddr: 0x10006C470, symSize: 0xD4 } - - { offset: 0x134C88, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwca', symObjAddr: 0x21A8, symBinAddr: 0x10006C544, symSize: 0xF8 } - - { offset: 0x134C9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwtk', symObjAddr: 0x22A0, symBinAddr: 0x10006C63C, symSize: 0x9C } - - { offset: 0x134CB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwta', symObjAddr: 0x233C, symBinAddr: 0x10006C6D8, symSize: 0xC0 } - - { offset: 0x134CC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwet', symObjAddr: 0x23FC, symBinAddr: 0x10006C798, symSize: 0xC } - - { offset: 0x134CD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwst', symObjAddr: 0x2490, symBinAddr: 0x10006C82C, symSize: 0xC } - - { offset: 0x134CEC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVMr', symObjAddr: 0x2520, symBinAddr: 0x10006C8BC, symSize: 0x80 } - - { offset: 0x134D00, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI28NSApplicationDelegateAdaptorVy8Swiftier03AppD0CGMa', symObjAddr: 0x25A0, symBinAddr: 0x10006C93C, symSize: 0x50 } - - { offset: 0x134D14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV7SwiftUI0E0AA4BodyAdEP_AD5ScenePWT', symObjAddr: 0x25FC, symBinAddr: 0x10006C98C, symSize: 0x10 } - - { offset: 0x134D28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LlfcySbcfU_TA', symObjAddr: 0x2708, symBinAddr: 0x10006C9C0, symSize: 0x8 } - - { offset: 0x134D3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5Llfcy10Foundation12NotificationVcfU0_TA', symObjAddr: 0x2710, symBinAddr: 0x10006C9C8, symSize: 0x8 } - - { offset: 0x134D50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC07currentD0SSvpACTK', symObjAddr: 0x2718, symBinAddr: 0x10006C9D0, symSize: 0x7C } - - { offset: 0x134D7E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC07currentD0SSvpACTk', symObjAddr: 0x2798, symBinAddr: 0x10006CA50, symSize: 0x80 } - - { offset: 0x134DB6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV4bodyQrvgAA16MenuBarLabelViewVyXEfU0_TA', symObjAddr: 0x281C, symBinAddr: 0x10006CAD4, symSize: 0x8 } - - { offset: 0x134DCA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVAC7SwiftUI0E0AAWl', symObjAddr: 0x2824, symBinAddr: 0x10006CADC, symSize: 0x40 } - - { offset: 0x134E6F, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x3014, symBinAddr: 0x10006D2CC, symSize: 0x10 } - - { offset: 0x134E83, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x3024, symBinAddr: 0x10006D2DC, symSize: 0x8 } - - { offset: 0x134E97, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFyAGcfU0_TA', symObjAddr: 0x302C, symBinAddr: 0x10006D2E4, symSize: 0x8 } - - { offset: 0x134EAB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC10startTimer33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySo7NSTimerCYbcfU_TA', symObjAddr: 0x3204, symBinAddr: 0x10006D338, symSize: 0x8 } - - { offset: 0x134EBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVwxx', symObjAddr: 0x33E0, symBinAddr: 0x10006D374, symSize: 0x8 } - - { offset: 0x134ED3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVwca', symObjAddr: 0x33E8, symBinAddr: 0x10006D37C, symSize: 0x40 } - - { offset: 0x134EE7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVwta', symObjAddr: 0x3434, symBinAddr: 0x10006D3BC, symSize: 0x30 } - - { offset: 0x134EFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVMa', symObjAddr: 0x34E8, symBinAddr: 0x10006D3EC, symSize: 0x10 } - - { offset: 0x134F0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewV7SwiftUI0E0AA4BodyAdEP_AGWT', symObjAddr: 0x358C, symBinAddr: 0x10006D490, symSize: 0x10 } - - { offset: 0x134F54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV4bodyQrvgAA11ContentViewVyXEfU_', symObjAddr: 0x78, symBinAddr: 0x10006A4C4, symSize: 0x4 } - - { offset: 0x135045, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV4bodyQrvgAA16MenuBarLabelViewVyXEfU0_', symObjAddr: 0x7C, symBinAddr: 0x10006A4C8, symSize: 0x9C } - - { offset: 0x1350CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV7SwiftUI0E0AadEP4body4BodyQzvgTW', symObjAddr: 0x118, symBinAddr: 0x10006A564, symSize: 0x230 } - - { offset: 0x1351D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV7SwiftUI0E0AadEPxycfCTW', symObjAddr: 0x348, symBinAddr: 0x10006A794, symSize: 0x8C } - - { offset: 0x135333, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewV7SwiftUI0E0AadEP4body4BodyQzvgTW', symObjAddr: 0x3F4, symBinAddr: 0x10006A820, symSize: 0x9C } - - { offset: 0x1353E5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC07currentD0SSvg', symObjAddr: 0x4CC, symBinAddr: 0x10006A8F8, symSize: 0x70 } - - { offset: 0x135438, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC7Combine16ObservableObjectAadEP16objectWillChange0hjK9PublisherQzvgTW', symObjAddr: 0x15CC, symBinAddr: 0x10006B9F8, symSize: 0x3C } - - { offset: 0x135496, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5Llfc', symObjAddr: 0x53C, symBinAddr: 0x10006A968, symSize: 0x63C } - - { offset: 0x13558D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LlfcySbcfU_', symObjAddr: 0xB78, symBinAddr: 0x10006AFA4, symSize: 0x11C } - - { offset: 0x13563E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5Llfcy10Foundation12NotificationVcfU0_', symObjAddr: 0xC94, symBinAddr: 0x10006B0C0, symSize: 0x54 } - - { offset: 0x135697, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC011updateTimerE033_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyF', symObjAddr: 0xCE8, symBinAddr: 0x10006B114, symSize: 0x1D0 } - - { offset: 0x135714, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC10startTimer33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyF', symObjAddr: 0xEB8, symBinAddr: 0x10006B2E4, symSize: 0xF4 } - - { offset: 0x135738, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC10startTimer33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySo7NSTimerCYbcfU_', symObjAddr: 0xFAC, symBinAddr: 0x10006B3D8, symSize: 0xC4 } - - { offset: 0x1357CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCfd', symObjAddr: 0x1070, symBinAddr: 0x10006B49C, symSize: 0x11C } - - { offset: 0x1357EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCfZ', symObjAddr: 0x118C, symBinAddr: 0x10006B5B8, symSize: 0x30 } - - { offset: 0x135853, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCfD', symObjAddr: 0x11BC, symBinAddr: 0x10006B5E8, symSize: 0x410 } - - { offset: 0x13591F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC29applicationDidFinishLaunchingyy10Foundation12NotificationVFTo', symObjAddr: 0x1608, symBinAddr: 0x10006BA34, symSize: 0xC8 } - - { offset: 0x135975, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC24applicationWillTerminateyy10Foundation12NotificationVFTo', symObjAddr: 0x16D0, symBinAddr: 0x10006BAFC, symSize: 0x7C } - - { offset: 0x1359A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySb_s5Int32VtcfU_yyScMYccfU_', symObjAddr: 0x174C, symBinAddr: 0x10006BB78, symSize: 0x22C } - - { offset: 0x135BB9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCACycfcTo', symObjAddr: 0x1978, symBinAddr: 0x10006BDA4, symSize: 0x50 } - - { offset: 0x135BEE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCfZ', symObjAddr: 0x19C8, symBinAddr: 0x10006BDF4, symSize: 0x3C } - - { offset: 0x135C13, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCfD', symObjAddr: 0x1A04, symBinAddr: 0x10006BE30, symSize: 0x334 } - - { offset: 0x135C59, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x1D48, symBinAddr: 0x10006C174, symSize: 0x50 } - - { offset: 0x135CB9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySb_s5Int32VtcfU_Tf4nd_n', symObjAddr: 0x2864, symBinAddr: 0x10006CB1C, symSize: 0x33C } - - { offset: 0x135E12, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFTf4d_n', symObjAddr: 0x2BA0, symBinAddr: 0x10006CE58, symSize: 0x474 } - - { offset: 0x136002, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC6sharedACvpZ', symObjAddr: 0x516A0, symBinAddr: 0x10012EDE8, symSize: 0x0 } - - { offset: 0x136699, size: 0x8, addend: 0x0, symName: '_$sIeg_IeyB_TR', symObjAddr: 0x4C0, symBinAddr: 0x10006D9BC, symSize: 0x2C } - - { offset: 0x136960, size: 0x8, addend: 0x0, symName: '_$sSo7NSTimerCIeghg_ABIeyBhy_TR', symObjAddr: 0x145C, symBinAddr: 0x10006E8CC, symSize: 0x4C } - - { offset: 0x13698E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC6shared_WZ', symObjAddr: 0x1A68, symBinAddr: 0x10006EED8, symSize: 0x3C } - - { offset: 0x1369BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15maxHistorySpeedSdvpACTK', symObjAddr: 0x1B58, symBinAddr: 0x10006EFC8, symSize: 0x7C } - - { offset: 0x1369EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15maxHistorySpeedSdvpACTk', symObjAddr: 0x1BD4, symBinAddr: 0x10006F044, symSize: 0x78 } - - { offset: 0x137188, size: 0x8, addend: 0x0, symName: '_$sSiIgd_SiIegr_TR111$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_SiyXEfu1_Tf3npf_n', symObjAddr: 0x8A80, symBinAddr: 0x100075EF0, symSize: 0x8 } - - { offset: 0x1371AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCMU', symObjAddr: 0x9618, symBinAddr: 0x100076A88, symSize: 0x8 } - - { offset: 0x1371BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCMa', symObjAddr: 0x9620, symBinAddr: 0x100076A90, symSize: 0x38 } - - { offset: 0x1371D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCMr', symObjAddr: 0x9658, symBinAddr: 0x100076AC8, symSize: 0x288 } - - { offset: 0x1371E7, size: 0x8, addend: 0x0, symName: '_$ss5Int32VIegy_ABIeyBy_TR', symObjAddr: 0x9AA4, symBinAddr: 0x100076E64, symSize: 0x3C } - - { offset: 0x1371FF, size: 0x8, addend: 0x0, symName: '_$sSdIegy_SdIeyBy_TR', symObjAddr: 0x9AE0, symBinAddr: 0x100076EA0, symSize: 0x3C } - - { offset: 0x137217, size: 0x8, addend: 0x0, symName: '_$sSSSgIegg_So8NSStringCSgIeyBy_TR', symObjAddr: 0x9B1C, symBinAddr: 0x100076EDC, symSize: 0x64 } - - { offset: 0x1372E8, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV15reserveCapacityyySiFSS_Tg5', symObjAddr: 0xA120, symBinAddr: 0x1000774E0, symSize: 0x64 } - - { offset: 0x137395, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFs6UInt16V_Tg5', symObjAddr: 0xA1E0, symBinAddr: 0x1000775A0, symSize: 0xF8 } - - { offset: 0x1374FA, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSs_Tg5', symObjAddr: 0xA2EC, symBinAddr: 0x100077698, symSize: 0x108 } - - { offset: 0x137654, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSnySiG_Tg5', symObjAddr: 0xA544, symBinAddr: 0x1000778F0, symSize: 0x100 } - - { offset: 0x1377B9, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC_Tg5', symObjAddr: 0xA644, symBinAddr: 0x1000779F0, symSize: 0x128 } - - { offset: 0x13793F, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF8Swiftier14HighlightRangeV_Tg5', symObjAddr: 0xA76C, symBinAddr: 0x100077B18, symSize: 0x118 } - - { offset: 0x137AA4, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSd_Tg5', symObjAddr: 0xA8A8, symBinAddr: 0x100077C54, symSize: 0x100 } - - { offset: 0x137C09, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSo7CGPointV_Tg5', symObjAddr: 0xA9A8, symBinAddr: 0x100077D54, symSize: 0x100 } - - { offset: 0x137D16, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV19_uninitializedCount15minimumCapacityAByxGSi_SitcfC8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC_Tt1g5', symObjAddr: 0xAAA8, symBinAddr: 0x100077E54, symSize: 0x84 } - - { offset: 0x137D6D, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV19_uninitializedCount15minimumCapacityAByxGSi_SitcfC8Swiftier8LogEntryV_Tt1g5', symObjAddr: 0xAB2C, symBinAddr: 0x100077ED8, symSize: 0xC0 } - - { offset: 0x137E16, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV13_copyContents8subRange12initializingSpyxGSnySiG_AFtF8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC_Tg5', symObjAddr: 0xABEC, symBinAddr: 0x100077F98, symSize: 0xF8 } - - { offset: 0x137F0C, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV034_makeUniqueAndReserveCapacityIfNotD0yyFSS_Tg5', symObjAddr: 0xACE8, symBinAddr: 0x100078090, symSize: 0x48 } - - { offset: 0x137F5E, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV36_reserveCapacityAssumingUniqueBuffer8oldCountySi_tFSS_Tg5', symObjAddr: 0xAD30, symBinAddr: 0x1000780D8, symSize: 0x28 } - - { offset: 0x137F72, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV37_appendElementAssumeUniqueAndCapacity_03newD0ySi_xntFSS_Tg5', symObjAddr: 0xAD58, symBinAddr: 0x100078100, symSize: 0x18 } - - { offset: 0x137FAF, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSS_Tg5', symObjAddr: 0xAD70, symBinAddr: 0x100078118, symSize: 0x24 } - - { offset: 0x137FC7, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF10Foundation3URLV_Tg5', symObjAddr: 0xAD94, symBinAddr: 0x10007813C, symSize: 0x3C } - - { offset: 0x137FDF, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFypSg_Tg5', symObjAddr: 0xADD0, symBinAddr: 0x100078178, symSize: 0x1C } - - { offset: 0x137FF7, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFyp_Tg5', symObjAddr: 0xADEC, symBinAddr: 0x100078194, symSize: 0x1C } - - { offset: 0x13800F, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF8Swiftier8LogEntryV_Tg5', symObjAddr: 0xAE08, symBinAddr: 0x1000781B0, symSize: 0x3C } - - { offset: 0x138027, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF8Swiftier10EventEntryV_Tg5', symObjAddr: 0xAE44, symBinAddr: 0x1000781EC, symSize: 0x3C } - - { offset: 0x13803F, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSDySSypG_Tg5', symObjAddr: 0xAE80, symBinAddr: 0x100078228, symSize: 0x1C } - - { offset: 0x1380AF, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFypSg_Tg5', symObjAddr: 0xAFB0, symBinAddr: 0x100078358, symSize: 0x130 } - - { offset: 0x1381DD, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFyp_Tg5', symObjAddr: 0xB0E0, symBinAddr: 0x100078488, symSize: 0x10C } - - { offset: 0x138321, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSDySSypG_Tg5', symObjAddr: 0xB370, symBinAddr: 0x100078718, symSize: 0x130 } - - { offset: 0x138418, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSS_Tg5', symObjAddr: 0xB4A0, symBinAddr: 0x100078848, symSize: 0x64 } - - { offset: 0x13845B, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlF10Foundation3URLVSg_Tg5', symObjAddr: 0xB504, symBinAddr: 0x1000788AC, symSize: 0x184 } - - { offset: 0x138498, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSi_Tg5', symObjAddr: 0xB688, symBinAddr: 0x100078A30, symSize: 0x30 } - - { offset: 0x1384C5, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSo18NSFileAttributeKeya_Tg5', symObjAddr: 0xB6B8, symBinAddr: 0x100078A60, symSize: 0x80 } - - { offset: 0x13854E, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSS_Tg5', symObjAddr: 0xB738, symBinAddr: 0x100078AE0, symSize: 0xB4 } - - { offset: 0x1385B0, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlF10Foundation3URLVSg_Tg5', symObjAddr: 0xB7EC, symBinAddr: 0x100078B94, symSize: 0x364 } - - { offset: 0x1385D5, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSi_Tg5', symObjAddr: 0xBB50, symBinAddr: 0x100078EF8, symSize: 0x6C } - - { offset: 0x138602, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSo18NSFileAttributeKeya_Tg5', symObjAddr: 0xBBBC, symBinAddr: 0x100078F64, symSize: 0x100 } - - { offset: 0x1386FD, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0xBCBC, symBinAddr: 0x100079064, symSize: 0x244 } - - { offset: 0x1387CC, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyFSS_ypTg5', symObjAddr: 0xBF00, symBinAddr: 0x1000792A8, symSize: 0x1A0 } - - { offset: 0x138869, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyFSS_SiTg5', symObjAddr: 0xC0A0, symBinAddr: 0x100079448, symSize: 0x164 } - - { offset: 0x13892F, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0xC204, symBinAddr: 0x1000795AC, symSize: 0x678 } - - { offset: 0x138A09, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtFSS_ypTg5', symObjAddr: 0xC87C, symBinAddr: 0x100079C24, symSize: 0x2B4 } - - { offset: 0x138B0F, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtFSS_SiTg5', symObjAddr: 0xCB30, symBinAddr: 0x100079ED8, symSize: 0x29C } - - { offset: 0x138BF6, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV16_unsafeInsertNew3key5valueyxn_q_ntF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0xCDCC, symBinAddr: 0x10007A174, symSize: 0x204 } - - { offset: 0x138C83, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier15PortForwardRuleV_Tg5', symObjAddr: 0xCFD0, symBinAddr: 0x10007A378, symSize: 0x44 } - - { offset: 0x138CBB, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier19EasyTierConfigModelV11ProxySubnetV_Tg5', symObjAddr: 0xD014, symBinAddr: 0x10007A3BC, symSize: 0x44 } - - { offset: 0x138CF3, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier12ConfigScreenO_Tg5', symObjAddr: 0xD058, symBinAddr: 0x10007A400, symSize: 0x34 } - - { offset: 0x138D20, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSS_Tg5', symObjAddr: 0xD08C, symBinAddr: 0x10007A434, symSize: 0x2C } - - { offset: 0x138D4D, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSnySiG_Tg5', symObjAddr: 0xD0B8, symBinAddr: 0x10007A460, symSize: 0x14 } - - { offset: 0x138D85, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier10EventEntryV_Tg5', symObjAddr: 0xD0CC, symBinAddr: 0x10007A474, symSize: 0x44 } - - { offset: 0x138E0D, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKF8Swiftier8PeerInfoV_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04F13G0V_AGtXEfU2_Tf1cn_n', symObjAddr: 0xD110, symBinAddr: 0x10007A4B8, symSize: 0x108 } - - { offset: 0x138F1C, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFSS_Tg560$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1cn_n', symObjAddr: 0xD218, symBinAddr: 0x10007A5C0, symSize: 0xF4 } - - { offset: 0x139115, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFySryxGz_SiztKXEfU_8Swiftier8PeerInfoV_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04F13G0V_AGtXEfU2_Tf1nnncn_n', symObjAddr: 0xD30C, symBinAddr: 0x10007A6B4, symSize: 0x9D4 } - - { offset: 0x1397DC, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFySryxGz_SiztKXEfU_SS_Tg560$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1nnncn_n', symObjAddr: 0xDCE0, symBinAddr: 0x10007B088, symSize: 0x414 } - - { offset: 0x139DB6, size: 0x8, addend: 0x0, symName: '_$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSry8Swiftier8PeerInfoVG_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04J13G0V_AGtXEfU2_Tf1nncn_n', symObjAddr: 0xE0F4, symBinAddr: 0x10007B49C, symSize: 0x330 } - - { offset: 0x139F76, size: 0x8, addend: 0x0, symName: '_$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSrySSG_Tg508$sSTsSL7H45RpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1nncn_n', symObjAddr: 0xE424, symBinAddr: 0x10007B7CC, symSize: 0xCC } - - { offset: 0x13A143, size: 0x8, addend: 0x0, symName: '_$sSr13_mergeTopRuns_6buffer2bySbSaySnySiGGz_SpyxGSbx_xtKXEtKF8Swiftier8PeerInfoV_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04G13G0V_AGtXEfU2_Tf1nncn_n', symObjAddr: 0xE4F0, symBinAddr: 0x10007B898, symSize: 0x284 } - - { offset: 0x13A4C8, size: 0x8, addend: 0x0, symName: '_$sSr13_mergeTopRuns_6buffer2bySbSaySnySiGGz_SpyxGSbx_xtKXEtKFSS_Tg560$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1nncn_n', symObjAddr: 0xE774, symBinAddr: 0x10007BB1C, symSize: 0x26C } - - { offset: 0x13A84D, size: 0x8, addend: 0x0, symName: '_$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlF8Swiftier8PeerInfoV_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04H13G0V_AGtXEfU2_Tf1nnnnc_n', symObjAddr: 0xE9E0, symBinAddr: 0x10007BD88, symSize: 0x7B4 } - - { offset: 0x13AB0D, size: 0x8, addend: 0x0, symName: '_$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlFSS_Tg560$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1nnnnc_n', symObjAddr: 0xF194, symBinAddr: 0x10007C53C, symSize: 0x224 } - - { offset: 0x13ACE8, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnFSi_Tg5', symObjAddr: 0xF594, symBinAddr: 0x10007C828, symSize: 0xDC } - - { offset: 0x13AD5E, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnFSS_Tg5', symObjAddr: 0xF670, symBinAddr: 0x10007C904, symSize: 0x14C } - - { offset: 0x13AE2F, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtFSi_Tg5', symObjAddr: 0xF7BC, symBinAddr: 0x10007CA50, symSize: 0x11C } - - { offset: 0x13AEB0, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtFSS_Tg5', symObjAddr: 0xF8D8, symBinAddr: 0x10007CB6C, symSize: 0x17C } - - { offset: 0x13AF78, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyFSi_Tg5', symObjAddr: 0xFA54, symBinAddr: 0x10007CCE8, symSize: 0x13C } - - { offset: 0x13AFF5, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyFSS_Tg5', symObjAddr: 0xFB90, symBinAddr: 0x10007CE24, symSize: 0x158 } - - { offset: 0x13B07D, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tFSi_Tg5', symObjAddr: 0xFCE8, symBinAddr: 0x10007CF7C, symSize: 0x1EC } - - { offset: 0x13B133, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tFSS_Tg5', symObjAddr: 0xFED4, symBinAddr: 0x10007D168, symSize: 0x234 } - - { offset: 0x13B1E1, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tFSi_Tg5', symObjAddr: 0x10108, symBinAddr: 0x10007D39C, symSize: 0x220 } - - { offset: 0x13B2B4, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tFSS_Tg5', symObjAddr: 0x10328, symBinAddr: 0x10007D5BC, symSize: 0x25C } - - { offset: 0x13B3E1, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV6filteryAByxq_GSbx3key_q_5valuet_tKXEKFSS_SiTg5127$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_SbSS3key_Si5valuet_tXEfU_Tf1cn_n', symObjAddr: 0x10584, symBinAddr: 0x10007D818, symSize: 0x174 } - - { offset: 0x13B4FA, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV6filteryAByxq_GSbx3key_q_5valuet_tKXEKFADs13_UnsafeBitsetVKXEfU_SS_SiTg5127$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_SbSS3key_Si5valuet_tXEfU_Tf1nnc_n', symObjAddr: 0x106F8, symBinAddr: 0x10007D98C, symSize: 0xE8 } - - { offset: 0x13B544, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV07extractB05using5countAByxq_Gs13_UnsafeBitsetV_SitFSS_SiTg5', symObjAddr: 0x107E0, symBinAddr: 0x10007DA74, symSize: 0x238 } - - { offset: 0x13B626, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyF10Foundation3URLV_Tg5', symObjAddr: 0x10A18, symBinAddr: 0x10007DCAC, symSize: 0x44 } - - { offset: 0x13B65E, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier8PeerInfoV_Tg5', symObjAddr: 0x10A5C, symBinAddr: 0x10007DCF0, symSize: 0x44 } - - { offset: 0x13B68B, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyFSS_Tg5', symObjAddr: 0x10AA0, symBinAddr: 0x10007DD34, symSize: 0x2C } - - { offset: 0x13B6CE, size: 0x8, addend: 0x0, symName: '_$sSTsE21_copySequenceContents12initializing8IteratorQz_SitSry7ElementQzG_tFShySSG_Tg5', symObjAddr: 0x10B10, symBinAddr: 0x10007DD60, symSize: 0x154 } - - { offset: 0x13B840, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_TA', symObjAddr: 0x111C0, symBinAddr: 0x10007E410, symSize: 0x10 } - - { offset: 0x13B854, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC9getStatus10completionyySb_s5Int32Vtc_tFyAGcfU_TA', symObjAddr: 0x111E0, symBinAddr: 0x10007E420, symSize: 0x8 } - - { offset: 0x13B868, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFys5Error_pcfU_TA', symObjAddr: 0x1120C, symBinAddr: 0x10007E44C, symSize: 0x8 } - - { offset: 0x13B87C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_yyScMYccfU1_TA', symObjAddr: 0x11218, symBinAddr: 0x10007E458, symSize: 0x10 } - - { offset: 0x13B890, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x11228, symBinAddr: 0x10007E468, symSize: 0x10 } - - { offset: 0x13B8A4, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x11238, symBinAddr: 0x10007E478, symSize: 0x8 } - - { offset: 0x13B8B8, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOd', symObjAddr: 0x11248, symBinAddr: 0x10007E480, symSize: 0x50 } - - { offset: 0x13B8CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFyyXEfU_TA', symObjAddr: 0x11448, symBinAddr: 0x10007E680, symSize: 0x1C } - - { offset: 0x13B8E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU1_TA', symObjAddr: 0x114B8, symBinAddr: 0x10007E6F0, symSize: 0x44 } - - { offset: 0x13B9A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU0_TA', symObjAddr: 0x11844, symBinAddr: 0x10007EA7C, symSize: 0x8 } - - { offset: 0x13B9B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU0_yyScMYccfU_TA', symObjAddr: 0x1184C, symBinAddr: 0x10007EA84, symSize: 0x8 } - - { offset: 0x13B9CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU1_yyScMYccfU_TA', symObjAddr: 0x118C8, symBinAddr: 0x10007EB00, symSize: 0x34 } - - { offset: 0x13B9E0, size: 0x8, addend: 0x0, symName: '_$sypWOb', symObjAddr: 0x11900, symBinAddr: 0x10007EB38, symSize: 0x10 } - - { offset: 0x13B9F4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_yyScMYccfU_TA', symObjAddr: 0x11984, symBinAddr: 0x10007EBBC, symSize: 0x3C } - - { offset: 0x13BA08, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_yyScMYccfU_yyScMYccfU_TA', symObjAddr: 0x11A40, symBinAddr: 0x10007EC78, symSize: 0x48 } - - { offset: 0x13BA1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16refreshPeersOnce33_5AE8CE027D2E90CABD911C820651C4B6LLyyFySSSgcfU_TA', symObjAddr: 0x11A88, symBinAddr: 0x10007ECC0, symSize: 0x8 } - - { offset: 0x13BA30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFys5Error_pcfU_TA', symObjAddr: 0x11A90, symBinAddr: 0x10007ECC8, symSize: 0x8 } - - { offset: 0x13BA44, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFyAFcfU0_TA', symObjAddr: 0x11A98, symBinAddr: 0x10007ECD0, symSize: 0x8 } - - { offset: 0x13BA58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVACSeAAWl', symObjAddr: 0x11AE0, symBinAddr: 0x10007ECD8, symSize: 0x40 } - - { offset: 0x13BA6C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU1_TA', symObjAddr: 0x11C8C, symBinAddr: 0x10007ED84, symSize: 0x30 } - - { offset: 0x13BA80, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_TA', symObjAddr: 0x11CE8, symBinAddr: 0x10007EDE0, symSize: 0x8 } - - { offset: 0x13BA94, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU0_TA', symObjAddr: 0x11D14, symBinAddr: 0x10007EE0C, symSize: 0xC } - - { offset: 0x13BAA8, size: 0x8, addend: 0x0, symName: '_$sSh8IteratorV8_VariantOySS__GWOe', symObjAddr: 0x11EA4, symBinAddr: 0x10007EF9C, symSize: 0x8 } - - { offset: 0x13BABC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSgWOi0_', symObjAddr: 0x11EEC, symBinAddr: 0x10007EFA4, symSize: 0x30 } - - { offset: 0x13BAD0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU_TA', symObjAddr: 0x11F90, symBinAddr: 0x10007F048, symSize: 0xC } - - { offset: 0x13BB10, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0VySdG_s15EmptyCollectionVySdGTg5Tf4nndn_n', symObjAddr: 0x12198, symBinAddr: 0x10007F250, symSize: 0xA4 } - - { offset: 0x13BBFC, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lFSd_s15EmptyCollectionVySdGTg5Tf4ndn_n', symObjAddr: 0x1223C, symBinAddr: 0x10007F2F4, symSize: 0xBC } - - { offset: 0x13BD0C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_yyXEfU1_TA', symObjAddr: 0x123A4, symBinAddr: 0x10007F44C, symSize: 0x18 } - - { offset: 0x13BD20, size: 0x8, addend: 0x0, symName: '_$sSD5IndexV8_VariantOySSSi__GWOe', symObjAddr: 0x12404, symBinAddr: 0x10007F4AC, symSize: 0xC } - - { offset: 0x13BD34, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17updatePollingMode33_5AE8CE027D2E90CABD911C820651C4B6LLyyFy10Foundation4DateVcfU_TA', symObjAddr: 0x124A0, symBinAddr: 0x10007F508, symSize: 0x8 } - - { offset: 0x13BD48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16startUptimeTimer33_5AE8CE027D2E90CABD911C820651C4B6LLyyFySo7NSTimerCYbcfU_TA', symObjAddr: 0x125A8, symBinAddr: 0x10007F5CC, symSize: 0x8 } - - { offset: 0x13BD5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_ySdcfU_TA', symObjAddr: 0x125E4, symBinAddr: 0x10007F608, symSize: 0x14 } - - { offset: 0x13BD70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFys5Error_pcfU_TA', symObjAddr: 0x125F8, symBinAddr: 0x10007F61C, symSize: 0x8 } - - { offset: 0x13BD84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFySdcfU0_TA', symObjAddr: 0x12608, symBinAddr: 0x10007F62C, symSize: 0x8 } - - { offset: 0x13BD98, size: 0x8, addend: 0x0, symName: '_$sypWOc', symObjAddr: 0x127A4, symBinAddr: 0x10007F680, symSize: 0x3C } - - { offset: 0x13BE0F, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy8Swiftier10EventEntryVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x127E0, symBinAddr: 0x10007F6BC, symSize: 0x10C } - - { offset: 0x13BF6E, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF8Swiftier10EventEntryV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x128EC, symBinAddr: 0x10007F7C8, symSize: 0xDC } - - { offset: 0x13C1BF, size: 0x8, addend: 0x0, symName: '_$sSlsE3mapySayqd__Gqd__7ElementQzqd_0_YKXEqd_0_YKs5ErrorRd_0_r0_lFSDySSSiG_SSs5NeverOTg5127$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_S2S3key_Si5valuet_tXEfU0_Tf1cn_n', symObjAddr: 0x0, symBinAddr: 0x10006D4FC, symSize: 0x294 } - - { offset: 0x13C3F3, size: 0x8, addend: 0x0, symName: '_$sSa6remove2atxSi_tFSS_Tg5', symObjAddr: 0x3B0, symBinAddr: 0x10006D8AC, symSize: 0x88 } - - { offset: 0x13C4B0, size: 0x8, addend: 0x0, symName: '_$sSa6remove2atxSi_tFSnySiG_Tg5', symObjAddr: 0x438, symBinAddr: 0x10006D934, symSize: 0x88 } - - { offset: 0x13C58B, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSS_Tt1g5', symObjAddr: 0x4EC, symBinAddr: 0x10006D9E8, symSize: 0x8C } - - { offset: 0x13C6EB, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ8Swiftier15PortForwardRuleV_Tt1g5', symObjAddr: 0x578, symBinAddr: 0x10006DA74, symSize: 0x268 } - - { offset: 0x13C8F8, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ8Swiftier19EasyTierConfigModelV11ProxySubnetV_Tt1g5', symObjAddr: 0x7E0, symBinAddr: 0x10006DCDC, symSize: 0x1B4 } - - { offset: 0x13CA81, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSd_Tt1g5', symObjAddr: 0xA98, symBinAddr: 0x10006DF08, symSize: 0x5C } - - { offset: 0x13CAA1, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSd_Tt1g5', symObjAddr: 0xA98, symBinAddr: 0x10006DF08, symSize: 0x5C } - - { offset: 0x13CAB5, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSd_Tt1g5', symObjAddr: 0xA98, symBinAddr: 0x10006DF08, symSize: 0x5C } - - { offset: 0x13CAC9, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSd_Tt1g5', symObjAddr: 0xA98, symBinAddr: 0x10006DF08, symSize: 0x5C } - - { offset: 0x13CBB7, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ8Swiftier14HighlightRangeV_Tt1g5', symObjAddr: 0xAF4, symBinAddr: 0x10006DF64, symSize: 0xCC } - - { offset: 0x13CF26, size: 0x8, addend: 0x0, symName: '_$ss15_arrayForceCastySayq_GSayxGr0_lFSS_ypTg5', symObjAddr: 0x76E0, symBinAddr: 0x100074B50, symSize: 0xFC } - - { offset: 0x13D112, size: 0x8, addend: 0x0, symName: '_$ss15_arrayForceCastySayq_GSayxGr0_lFSo10CGColorRefa_ypTg5', symObjAddr: 0x77DC, symBinAddr: 0x100074C4C, symSize: 0x1C8 } - - { offset: 0x13D3C1, size: 0x8, addend: 0x0, symName: '_$sSTsSL7ElementRpzrlE3maxABSgyFSaySdG_Tg5', symObjAddr: 0x7F28, symBinAddr: 0x100075398, symSize: 0x4C } - - { offset: 0x13D3D9, size: 0x8, addend: 0x0, symName: '_$sSTsSL7ElementRpzrlE3maxABSgyFSaySdG_Tg5', symObjAddr: 0x7F28, symBinAddr: 0x100075398, symSize: 0x4C } - - { offset: 0x13D411, size: 0x8, addend: 0x0, symName: '_$sSTsSL7ElementRpzrlE3maxABSgyFSaySdG_Tg5', symObjAddr: 0x7F28, symBinAddr: 0x100075398, symSize: 0x4C } - - { offset: 0x13D425, size: 0x8, addend: 0x0, symName: '_$sSTsSL7ElementRpzrlE3maxABSgyFSaySdG_Tg5', symObjAddr: 0x7F28, symBinAddr: 0x100075398, symSize: 0x4C } - - { offset: 0x13D5E3, size: 0x8, addend: 0x0, symName: '_$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFs15ContiguousArrayVy8Swiftier8PeerInfoVG_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04G13G0V_AGtXEfU2_Tf1cn_n', symObjAddr: 0x9B80, symBinAddr: 0x100076F40, symSize: 0x80 } - - { offset: 0x13D693, size: 0x8, addend: 0x0, symName: '_$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFs15ContiguousArrayVySSG_Tg508$sSTsSL7C45RpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1cn_n', symObjAddr: 0x9C00, symBinAddr: 0x100076FC0, symSize: 0x68 } - - { offset: 0x13D882, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SSTt0g5Tf4g_n', symObjAddr: 0x10C64, symBinAddr: 0x10007DEB4, symSize: 0x110 } - - { offset: 0x13D9C4, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTt0g5Tf4g_n', symObjAddr: 0x10D74, symBinAddr: 0x10007DFC4, symSize: 0x214 } - - { offset: 0x13DAFD, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSi_Si2rx_Si2tx10Foundation4DateV4timetTt0g5Tf4g_n', symObjAddr: 0x10F88, symBinAddr: 0x10007E1D8, symSize: 0x198 } - - { offset: 0x13DC38, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SiTt0g5Tf4g_n', symObjAddr: 0x114FC, symBinAddr: 0x10007E734, symSize: 0xF8 } - - { offset: 0x13DD81, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSo18NSFileAttributeKeya_ypTt0g5Tf4g_n', symObjAddr: 0x115F4, symBinAddr: 0x10007E82C, symSize: 0x124 } - - { offset: 0x13DEB3, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_ypTt0g5Tf4g_n', symObjAddr: 0x11718, symBinAddr: 0x10007E950, symSize: 0x12C } - - { offset: 0x13DFC0, size: 0x8, addend: 0x0, symName: '_$sShyShyxGqd__nc7ElementQyd__RszSTRd__lufCSS_SaySSGTt0g5Tf4g_n', symObjAddr: 0x12300, symBinAddr: 0x10007F3B8, symSize: 0x94 } - - { offset: 0x13E314, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC7Combine16ObservableObjectAadEP16objectWillChange0giJ9PublisherQzvgTW', symObjAddr: 0x9A2C, symBinAddr: 0x100076E3C, symSize: 0x28 } - - { offset: 0x13E346, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSF', symObjAddr: 0x598C, symBinAddr: 0x100072DFC, symSize: 0x1D54 } - - { offset: 0x13F0D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU_', symObjAddr: 0x79A4, symBinAddr: 0x100074E14, symSize: 0x84 } - - { offset: 0x13F127, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU0_', symObjAddr: 0x7A28, symBinAddr: 0x100074E98, symSize: 0x500 } - - { offset: 0x13F9D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU1_', symObjAddr: 0x7F74, symBinAddr: 0x1000753E4, symSize: 0x100 } - - { offset: 0x13FA38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04PeerG0V_AGtXEfU2_', symObjAddr: 0x8074, symBinAddr: 0x1000754E4, symSize: 0x194 } - - { offset: 0x13FB66, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_', symObjAddr: 0x8208, symBinAddr: 0x100075678, symSize: 0x878 } - - { offset: 0x140349, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_yyXEfU1_', symObjAddr: 0x8A88, symBinAddr: 0x100075EF8, symSize: 0x80 } - - { offset: 0x1405DC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15maxHistorySpeedSdvg', symObjAddr: 0xBC0, symBinAddr: 0x10006E030, symSize: 0x70 } - - { offset: 0x1406F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tF', symObjAddr: 0xC80, symBinAddr: 0x10006E0F0, symSize: 0x724 } - - { offset: 0x14092C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFyyXEfU_', symObjAddr: 0x4370, symBinAddr: 0x1000717E0, symSize: 0xC4 } - - { offset: 0x1409AE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU0_', symObjAddr: 0x4434, symBinAddr: 0x1000718A4, symSize: 0x2A0 } - - { offset: 0x140A03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU0_yyScMYccfU_', symObjAddr: 0x46D4, symBinAddr: 0x100071B44, symSize: 0x7C } - - { offset: 0x140A52, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU1_', symObjAddr: 0x4750, symBinAddr: 0x100071BC0, symSize: 0x348 } - - { offset: 0x140AC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU1_yyScMYccfU_', symObjAddr: 0x4A98, symBinAddr: 0x100071F08, symSize: 0x278 } - - { offset: 0x140BA3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tF', symObjAddr: 0x14A8, symBinAddr: 0x10006E918, symSize: 0x5C0 } - - { offset: 0x140E93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_', symObjAddr: 0x2CD8, symBinAddr: 0x100070148, symSize: 0x654 } - - { offset: 0x140FC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_ySdcfU_', symObjAddr: 0x332C, symBinAddr: 0x10007079C, symSize: 0x290 } - - { offset: 0x141042, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_ySdcfU_yyScMYccfU_', symObjAddr: 0x35BC, symBinAddr: 0x100070A2C, symSize: 0x474 } - - { offset: 0x141242, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_yyScMYccfU1_', symObjAddr: 0x3D6C, symBinAddr: 0x1000711DC, symSize: 0x588 } - - { offset: 0x141747, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCACyc33_5AE8CE027D2E90CABD911C820651C4B6Llfc', symObjAddr: 0x1DC4, symBinAddr: 0x10006F234, symSize: 0x8FC } - - { offset: 0x141AEF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17updatePollingMode33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x26C0, symBinAddr: 0x10006FB30, symSize: 0x2CC } - - { offset: 0x141B3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17updatePollingMode33_5AE8CE027D2E90CABD911C820651C4B6LLyyFy10Foundation4DateVcfU_', symObjAddr: 0x2AF0, symBinAddr: 0x10006FF60, symSize: 0x54 } - - { offset: 0x141B88, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC24handleAppDidBecomeActive33_5AE8CE027D2E90CABD911C820651C4B6LLyyFTo', symObjAddr: 0x298C, symBinAddr: 0x10006FDFC, symSize: 0xB4 } - - { offset: 0x141C30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC25handleAppWillResignActive33_5AE8CE027D2E90CABD911C820651C4B6LLyyFTo', symObjAddr: 0x2A40, symBinAddr: 0x10006FEB0, symSize: 0xB0 } - - { offset: 0x141D28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16refreshPeersOnce33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x2B44, symBinAddr: 0x10006FFB4, symSize: 0x194 } - - { offset: 0x141D9E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16refreshPeersOnce33_5AE8CE027D2E90CABD911C820651C4B6LLyyFySSSgcfU_', symObjAddr: 0x5918, symBinAddr: 0x100072D88, symSize: 0x74 } - - { offset: 0x141EB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18resetSpeedCounters33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x3A30, symBinAddr: 0x100070EA0, symSize: 0x1E0 } - - { offset: 0x141FD3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16startUptimeTimer33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x3C10, symBinAddr: 0x100071080, symSize: 0x15C } - - { offset: 0x14201E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16startUptimeTimer33_5AE8CE027D2E90CABD911C820651C4B6LLyyFySo7NSTimerCYbcfU_', symObjAddr: 0x8EAC, symBinAddr: 0x10007631C, symSize: 0x54 } - - { offset: 0x142126, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_', symObjAddr: 0x4D10, symBinAddr: 0x100072180, symSize: 0x2D0 } - - { offset: 0x1421AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_yyScMYccfU_', symObjAddr: 0x4FE0, symBinAddr: 0x100072450, symSize: 0x6E4 } - - { offset: 0x1423BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_yyScMYccfU_yyScMYccfU_', symObjAddr: 0x56C4, symBinAddr: 0x100072B34, symSize: 0x254 } - - { offset: 0x1426C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16updateUptimeText33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x8B08, symBinAddr: 0x100075F78, symSize: 0x3A4 } - - { offset: 0x142848, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCfd', symObjAddr: 0x8F00, symBinAddr: 0x100076370, symSize: 0x388 } - - { offset: 0x14286D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCfZ', symObjAddr: 0x9288, symBinAddr: 0x1000766F8, symSize: 0x30 } - - { offset: 0x1428C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCfD', symObjAddr: 0x92B8, symBinAddr: 0x100076728, symSize: 0x360 } - - { offset: 0x1429A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC11formatBytes33_5AE8CE027D2E90CABD911C820651C4B6LLySSSiFTf4nd_n', symObjAddr: 0x11D20, symBinAddr: 0x10007EE18, symSize: 0x184 } - - { offset: 0x142AB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC11formatSpeed33_5AE8CE027D2E90CABD911C820651C4B6LLySSSdFTf4nd_n', symObjAddr: 0x11F9C, symBinAddr: 0x10007F054, symSize: 0x16C } - - { offset: 0x143417, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewCMa', symObjAddr: 0x38EC, symBinAddr: 0x100083288, symSize: 0x20 } - - { offset: 0x1434B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwxx', symObjAddr: 0x3ECC, symBinAddr: 0x100083658, symSize: 0x28 } - - { offset: 0x1434C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwca', symObjAddr: 0x3EF4, symBinAddr: 0x100083680, symSize: 0x5C } - - { offset: 0x1434D8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwta', symObjAddr: 0x3F5C, symBinAddr: 0x1000836DC, symSize: 0x3C } - - { offset: 0x1434EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwet', symObjAddr: 0x3F98, symBinAddr: 0x100083718, symSize: 0x48 } - - { offset: 0x143500, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwst', symObjAddr: 0x3FE0, symBinAddr: 0x100083760, symSize: 0x3C } - - { offset: 0x143514, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVMa', symObjAddr: 0x401C, symBinAddr: 0x10008379C, symSize: 0x10 } - - { offset: 0x143528, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x402C, symBinAddr: 0x1000837AC, symSize: 0x10 } - - { offset: 0x14353C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_TA', symObjAddr: 0x4040, symBinAddr: 0x1000837C0, symSize: 0x8 } - - { offset: 0x143550, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentV7StorageOyAA08ModifiedD0VyAA6VStackVyAA9TupleViewVyAGyAGyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAOyAA5ColorVSgGG_AA4TextVtGGAA16_FlexFrameLayoutVGAA06ScrollI6ReaderVyAA6ZStackVyAKyAA0I0PAAE9listStyleyQrqd__AA04ListY0Rd__lFQOyA10_AAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAA0Z0Vys5NeverOAA7ForEachVys18ReversedCollectionVySay8Swiftier10EventEntryVGG10Foundation4UUIDVAA6IDViewVyAGyA10_AAE0X12RowSeparator_5edgesQrA15__AA12VerticalEdgeO3SetVtFQOyAA6HStackVyAKyAGyAGyAGyAIyACyAKyA__A_tGA_GGAA01_sT0VGAA08_PaddingT0VGA49_G_AGyAGyA8_yAKyAGyAA06_ShapeI0VyAA9RectangleVAVGA46_G_AGyAGyAGyA53_yAA6CircleVAVGA46_GAA011_BackgroundyN0VyAVGGA49_GtGGA46_GA49_GAGyAIyAKyA__AGyAGyAGyAGyA24_20CharWrappingJSONViewVA49_GA49_GA64_GAA11_ClipEffectVyAA16RoundedRectangleVGGtGGA49_GtGG_Qo_AA06_TraitmN0VyAA0z14RowInsetsTraitL0VGGA31_GGG_Qo__AA05PlainzY0VQo__AGyA10_AAE06buttonY0yQrqd__AA015PrimitiveButtonY0Rd__lFQOyAA6ButtonVyAGyATA24_016FlatCircleButtonN0VGG_AA011PlainButtonY0VQo_A49_GtGGG_GWOi0_', symObjAddr: 0x4048, symBinAddr: 0x1000837C8, symSize: 0xC } - - { offset: 0x143564, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAKyAA5ColorVSgGG_AA4TextVtGGAA16_FlexFrameLayoutVGACyxq_GAA0G0A2AA2_RzAA0gL0R_rlWl', symObjAddr: 0x4054, symBinAddr: 0x1000837D4, symSize: 0x98 } - - { offset: 0x143578, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentV7StorageOyAA08ModifiedD0VyAA6VStackVyAA9TupleViewVyAGyAGyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAOyAA5ColorVSgGG_AA4TextVtGGAA16_FlexFrameLayoutVGAA06ScrollI6ReaderVyAA6ZStackVyAKyAA0I0PAAE9listStyleyQrqd__AA04ListY0Rd__lFQOyA10_AAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAA0Z0Vys5NeverOAA7ForEachVys18ReversedCollectionVySay8Swiftier10EventEntryVGG10Foundation4UUIDVAA6IDViewVyAGyA10_AAE0X12RowSeparator_5edgesQrA15__AA12VerticalEdgeO3SetVtFQOyAA6HStackVyAKyAGyAGyAGyAIyACyAKyA__A_tGA_GGAA01_sT0VGAA08_PaddingT0VGA49_G_AGyAGyA8_yAKyAGyAA06_ShapeI0VyAA9RectangleVAVGA46_G_AGyAGyAGyA53_yAA6CircleVAVGA46_GAA011_BackgroundyN0VyAVGGA49_GtGGA46_GA49_GAGyAIyAKyA__AGyAGyAGyAGyA24_20CharWrappingJSONViewVA49_GA49_GA64_GAA11_ClipEffectVyAA16RoundedRectangleVGGtGGA49_GtGG_Qo_AA06_TraitmN0VyAA0z14RowInsetsTraitL0VGGA31_GGG_Qo__AA05PlainzY0VQo__AGyA10_AAE06buttonY0yQrqd__AA015PrimitiveButtonY0Rd__lFQOyAA6ButtonVyAGyATA24_016FlatCircleButtonN0VGG_AA011PlainButtonY0VQo_A49_GtGGG_GWOi_', symObjAddr: 0x4140, symBinAddr: 0x10008386C, symSize: 0x8 } - - { offset: 0x14358C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_TA', symObjAddr: 0x4178, symBinAddr: 0x100083884, symSize: 0x8 } - - { offset: 0x1435A0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVys18ReversedCollectionVySay8Swiftier10EventEntryVGG10Foundation4UUIDVAA6IDViewVyAA15ModifiedContentVyAA4ViewPAAE16listRowSeparator_5edgesQrAA10VisibilityO_AA12VerticalEdgeO3SetVtFQOyAA6HStackVyAA05TupleO0VyAQyAQyAQyAA6VStackVyAA012_ConditionalN0VyA3_yAA4TextV_A9_tGA9_GGAA12_FrameLayoutVGAA14_PaddingLayoutVGA17_G_AQyAQyAA6ZStackVyA3_yAQyAA06_ShapeO0VyAA9RectangleVAA5ColorVGA14_G_AQyAQyAQyA23_yAA6CircleVA27_GA14_GAA24_BackgroundStyleModifierVyA27_GGA17_GtGGA14_GA17_GAQyA5_yA3_yA9__AQyAQyAQyAQyAF20CharWrappingJSONViewVA17_GA17_GA36_GAA11_ClipEffectVyAA16RoundedRectangleVGGtGGA17_GtGG_Qo_AA21_TraitWritingModifierVyAA04ListQ14InsetsTraitKeyVGGAMGGACyxq_q0_GAar2aRR0_rlWl', symObjAddr: 0x4180, symBinAddr: 0x10008388C, symSize: 0x90 } - - { offset: 0x1435B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_yyScMYccfU0_TA', symObjAddr: 0x4284, symBinAddr: 0x100083990, symSize: 0x30 } - - { offset: 0x1435C8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGG8Swiftier016FlatCircleButtonI0VGACyxq_GAA4ViewA2aRRzAA0oI0R_rlWl', symObjAddr: 0x42B4, symBinAddr: 0x1000839C0, symSize: 0x78 } - - { offset: 0x1435DC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierVAC7SwiftUI04ViewE0AAWl', symObjAddr: 0x43C4, symBinAddr: 0x100083A38, symSize: 0x40 } - - { offset: 0x1435F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVWOc', symObjAddr: 0x449C, symBinAddr: 0x100083B10, symSize: 0x44 } - - { offset: 0x143604, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_yyScMYccfU0_yyXEfU_TA', symObjAddr: 0x44E0, symBinAddr: 0x100083B54, symSize: 0x18 } - - { offset: 0x143618, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVWOh', symObjAddr: 0x44F8, symBinAddr: 0x100083B6C, symSize: 0x3C } - - { offset: 0x14362C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_TA', symObjAddr: 0x4560, symBinAddr: 0x100083BD4, symSize: 0x8 } - - { offset: 0x143640, size: 0x8, addend: 0x0, symName: '_$ss18ReversedCollectionVySay8Swiftier10EventEntryVGGAByxGSksSkRzrlWl', symObjAddr: 0x4568, symBinAddr: 0x100083BDC, symSize: 0x90 } - - { offset: 0x143654, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVMa', symObjAddr: 0x45F8, symBinAddr: 0x100083C6C, symSize: 0x38 } - - { offset: 0x143668, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVWOb', symObjAddr: 0x4670, symBinAddr: 0x100083CA4, symSize: 0x44 } - - { offset: 0x14367C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwCP', symObjAddr: 0x4784, symBinAddr: 0x100083CE8, symSize: 0xB0 } - - { offset: 0x143690, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwxx', symObjAddr: 0x4834, symBinAddr: 0x100083D98, symSize: 0x4C } - - { offset: 0x1436A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwcp', symObjAddr: 0x4880, symBinAddr: 0x100083DE4, symSize: 0x84 } - - { offset: 0x1436B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwca', symObjAddr: 0x4904, symBinAddr: 0x100083E68, symSize: 0x8C } - - { offset: 0x1436CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwtk', symObjAddr: 0x4990, symBinAddr: 0x100083EF4, symSize: 0x60 } - - { offset: 0x1436E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwta', symObjAddr: 0x49F0, symBinAddr: 0x100083F54, symSize: 0x74 } - - { offset: 0x1436F4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwet', symObjAddr: 0x4A64, symBinAddr: 0x100083FC8, symSize: 0xC } - - { offset: 0x143708, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwst', symObjAddr: 0x4AEC, symBinAddr: 0x100084050, symSize: 0xC } - - { offset: 0x14371C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVMr', symObjAddr: 0x4B6C, symBinAddr: 0x1000840D0, symSize: 0x80 } - - { offset: 0x143730, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierVMa', symObjAddr: 0x4BEC, symBinAddr: 0x100084150, symSize: 0x10 } - - { offset: 0x143744, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA08ModifiedD0VyAA6VStackVyAA9TupleViewVyAEyAEyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAMyAA5ColorVSgGG_AA4TextVtGGAA16_FlexFrameLayoutVGAA06ScrollH6ReaderVyAA6ZStackVyAIyAA0H0PAAE9listStyleyQrqd__AA04ListX0Rd__lFQOyA8_AAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAA0Y0Vys5NeverOAA7ForEachVys18ReversedCollectionVySay8Swiftier10EventEntryVGG10Foundation4UUIDVAA6IDViewVyAEyA8_AAE0W12RowSeparator_5edgesQrA13__AA12VerticalEdgeO3SetVtFQOyAA6HStackVyAIyAEyAEyAEyAGyACyAIyAY_AYtGAYGGAA01_rS0VGAA08_PaddingS0VGA47_G_AEyAEyA6_yAIyAEyAA06_ShapeH0VyAA9RectangleVATGA44_G_AEyAEyAEyA51_yAA6CircleVATGA44_GAA011_BackgroundxM0VyATGGA47_GtGGA44_GA47_GAEyAGyAIyAY_AEyAEyAEyAEyA22_20CharWrappingJSONViewVA47_GA47_GA62_GAA11_ClipEffectVyAA16RoundedRectangleVGGtGGA47_GtGG_Qo_AA06_TraitlM0VyAA0y14RowInsetsTraitK0VGGA29_GGG_Qo__AA05PlainyX0VQo__AEyA8_AAE06buttonX0yQrqd__AA015PrimitiveButtonX0Rd__lFQOyAA6ButtonVyAEyARA22_016FlatCircleButtonM0VGG_AA011PlainButtonX0VQo_A47_GtGGGGACyxq_GAAA7_A2AA7_RzAAA7_R_rlWl', symObjAddr: 0x4C00, symBinAddr: 0x100084164, symSize: 0x98 } - - { offset: 0x143758, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI19NSViewRepresentableAaD4ViewPWb', symObjAddr: 0x4CA4, symBinAddr: 0x1000841FC, symSize: 0x2C } - - { offset: 0x14376C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AA4BodyAdEP_AD0H0PWT', symObjAddr: 0x4CD0, symBinAddr: 0x100084228, symSize: 0x10 } - - { offset: 0x143780, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGAA14_PaddingLayoutVGAA011_BackgroundF0VyAA06_ShapeE0VyAA0I0VAMGGGAA01_dqF0VyAXGGAA012_HoverRegionF0VGACyxq_GAA0E0A2AA8_RzAA0eF0R_rlWl', symObjAddr: 0x4D24, symBinAddr: 0x10008423C, symSize: 0x78 } - - { offset: 0x143794, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGAA14_PaddingLayoutVGAA011_BackgroundF0VyAA06_ShapeE0VyAA0I0VAMGGGAA01_dqF0VyAXGGACyxq_GAA0E0A2AA5_RzAA0eF0R_rlWl', symObjAddr: 0x4D9C, symBinAddr: 0x1000842B4, symSize: 0x98 } - - { offset: 0x1437A8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGAA14_PaddingLayoutVGAA011_BackgroundF0VyAA06_ShapeE0VyAA0I0VAMGGGACyxq_GAA0E0A2AA1_RzAA0eF0R_rlWl', symObjAddr: 0x4E34, symBinAddr: 0x10008434C, symSize: 0x98 } - - { offset: 0x1437BC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGAA14_PaddingLayoutVGACyxq_GAA0E0A2aTRzAA0eF0R_rlWl', symObjAddr: 0x4ECC, symBinAddr: 0x1000843E4, symSize: 0x78 } - - { offset: 0x1437D0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGACyxq_GAA0E0A2aQRzAA0eF0R_rlWl', symObjAddr: 0x4F44, symBinAddr: 0x10008445C, symSize: 0xB8 } - - { offset: 0x1437E4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI20_HoverRegionModifierVAcA04ViewE0AAWl', symObjAddr: 0x5040, symBinAddr: 0x100084514, symSize: 0x40 } - - { offset: 0x143E47, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI19NSViewRepresentableAadEP15makeCoordinator0J0QzyFTW', symObjAddr: 0x399C, symBinAddr: 0x1000832E4, symSize: 0x4 } - - { offset: 0x143E63, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI4ViewAadEP05_makeG04view6inputsAD01_G7OutputsVAD11_GraphValueVyxG_AD01_G6InputsVtFZTW', symObjAddr: 0x39E8, symBinAddr: 0x1000832E8, symSize: 0x68 } - - { offset: 0x143E7F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI4ViewAadEP05_makeG4List4view6inputsAD01_gI7OutputsVAD11_GraphValueVyxG_AD01_gI6InputsVtFZTW', symObjAddr: 0x3A50, symBinAddr: 0x100083350, symSize: 0x68 } - - { offset: 0x143E9B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x3AB8, symBinAddr: 0x1000833B8, symSize: 0x3C } - - { offset: 0x144173, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AadEP05_makeH08modifier6inputs4bodyAD01_H7OutputsVAD11_GraphValueVyxG_AD01_H6InputsVAlD01_N0V_AQtctFZTW', symObjAddr: 0x3B5C, symBinAddr: 0x10008345C, symSize: 0x4 } - - { offset: 0x14418F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AadEP05_makeH4List8modifier6inputs4bodyAD01_hJ7OutputsVAD11_GraphValueVyxG_AD01_hJ6InputsVAlD01_O0V_AQtctFZTW', symObjAddr: 0x3B60, symBinAddr: 0x100083460, symSize: 0x4 } - - { offset: 0x1441AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AadEP14_viewListCount6inputs4bodySiSgAD01_hjK6InputsV_AjLXEtFZTW', symObjAddr: 0x3B64, symBinAddr: 0x100083464, symSize: 0x18 } - - { offset: 0x144684, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg', symObjAddr: 0x0, symBinAddr: 0x10007F9BC, symSize: 0x358 } - - { offset: 0x14481C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE15foregroundColoryQrAE0J0VSgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__AE4TextVtGyXEfU_', symObjAddr: 0x358, symBinAddr: 0x10007FD14, symSize: 0x2BC } - - { offset: 0x1448CD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_', symObjAddr: 0x614, symBinAddr: 0x10007FFD0, symSize: 0x64 } - - { offset: 0x144957, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_', symObjAddr: 0x678, symBinAddr: 0x100080034, symSize: 0x604 } - - { offset: 0x144A15, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_', symObjAddr: 0xC7C, symBinAddr: 0x100080638, symSize: 0x130 } - - { offset: 0x144A50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_', symObjAddr: 0xDAC, symBinAddr: 0x100080768, symSize: 0x17C } - - { offset: 0x144B65, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_A79_yXEfU_', symObjAddr: 0xF28, symBinAddr: 0x1000808E4, symSize: 0x768 } - - { offset: 0x144DE1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_A79_yXEfU_A38_yXEfU_', symObjAddr: 0x1690, symBinAddr: 0x10008104C, symSize: 0x890 } - - { offset: 0x144F19, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_A79_yXEfU_A64_yXEfU0_', symObjAddr: 0x1F20, symBinAddr: 0x1000818DC, symSize: 0x348 } - - { offset: 0x14507F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_A79_yXEfU_A76_yXEfU1_', symObjAddr: 0x2268, symBinAddr: 0x100081C24, symSize: 0x5DC } - - { offset: 0x145213, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_yyScMYccfU0_', symObjAddr: 0x2844, symBinAddr: 0x100082200, symSize: 0x100 } - - { offset: 0x145374, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_yyScMYccfU0_yyXEfU_', symObjAddr: 0x2944, symBinAddr: 0x100082300, symSize: 0x8C } - - { offset: 0x1453B5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A105_yXEfU1_', symObjAddr: 0x29D0, symBinAddr: 0x10008238C, symSize: 0xF8 } - - { offset: 0x145538, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x2AE8, symBinAddr: 0x100082484, symSize: 0x8 } - - { offset: 0x1455C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV10makeNSView7contextAC0C8TextViewC7SwiftUI0F20RepresentableContextVyACG_tF', symObjAddr: 0x2AF0, symBinAddr: 0x10008248C, symSize: 0xE8 } - - { offset: 0x145634, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV12updateNSView_7contextyAC0C8TextViewC_7SwiftUI0F20RepresentableContextVyACGtF', symObjAddr: 0x2BD8, symBinAddr: 0x100082574, symSize: 0x194 } - - { offset: 0x1456E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV21highlightWithMetadata33_AA67B34B58048746B4F02B333314D66CLL_10highlightsSo18NSAttributedStringCSS_SayAA14HighlightRangeVGtF', symObjAddr: 0x2D6C, symBinAddr: 0x100082708, symSize: 0x49C } - - { offset: 0x145989, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC20intrinsicContentSizeSo6CGSizeVvgTo', symObjAddr: 0x3208, symBinAddr: 0x100082BA4, symSize: 0x44 } - - { offset: 0x1459B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC20intrinsicContentSizeSo6CGSizeVvg', symObjAddr: 0x324C, symBinAddr: 0x100082BE8, symSize: 0xEC } - - { offset: 0x145A36, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC22viewDidMoveToSuperviewyyF', symObjAddr: 0x3338, symBinAddr: 0x100082CD4, symSize: 0xAC } - - { offset: 0x145A5B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC22viewDidMoveToSuperviewyyFTo', symObjAddr: 0x33E4, symBinAddr: 0x100082D80, symSize: 0x28 } - - { offset: 0x145AA6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC5frame13textContainerAESo6CGRectV_So06NSTextI0CSgtcfcTo', symObjAddr: 0x340C, symBinAddr: 0x100082DA8, symSize: 0x74 } - - { offset: 0x145B06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC5coderAESgSo7NSCoderC_tcfcTo', symObjAddr: 0x3480, symBinAddr: 0x100082E1C, symSize: 0x80 } - - { offset: 0x145B5B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC5frameAESo6CGRectV_tcfcTo', symObjAddr: 0x3500, symBinAddr: 0x100082E9C, symSize: 0x6C } - - { offset: 0x145B90, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewCfZ', symObjAddr: 0x356C, symBinAddr: 0x100082F08, symSize: 0x3C } - - { offset: 0x145BD6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewCfD', symObjAddr: 0x35A8, symBinAddr: 0x100082F44, symSize: 0x344 } - - { offset: 0x145C15, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI19NSViewRepresentableAadEP04makeG07context0G4TypeQzAD0gH7ContextVyxG_tFTW', symObjAddr: 0x3980, symBinAddr: 0x1000832CC, symSize: 0x14 } - - { offset: 0x145C29, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI19NSViewRepresentableAadEP06updateG0_7contexty0G4TypeQz_AD0gH7ContextVyxGtFTW', symObjAddr: 0x3994, symBinAddr: 0x1000832E0, symSize: 0x4 } - - { offset: 0x145C3D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV4body7contentQr7SwiftUI05_ViewE8_ContentVyACG_tFySbcfU_', symObjAddr: 0x3AF4, symBinAddr: 0x1000833F4, symSize: 0x68 } - - { offset: 0x145C8E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AadEP4body7content4BodyQzAD01_hE8_ContentVyxG_tFTW', symObjAddr: 0x3B7C, symBinAddr: 0x10008347C, symSize: 0x158 } - - { offset: 0x145F94, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC6sharedACvpZ', symObjAddr: 0x1EE90, symBinAddr: 0x10012EDF0, symSize: 0x0 } - - { offset: 0x146465, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC6shared_WZ', symObjAddr: 0xDA8, symBinAddr: 0x100085304, symSize: 0xBC } - - { offset: 0x1464E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerCMa', symObjAddr: 0xEFC, symBinAddr: 0x100085458, symSize: 0x20 } - - { offset: 0x146520, size: 0x8, addend: 0x0, symName: '_$sSo7NSErrorCSgIeyBhy_ytTz_', symObjAddr: 0x2BDC, symBinAddr: 0x1000870EC, symSize: 0x8C } - - { offset: 0x1465CF, size: 0x8, addend: 0x0, symName: '_$sSbSSSgIegyg_10ObjectiveC8ObjCBoolVSo8NSStringCSgIeyByy_TR', symObjAddr: 0x3DF0, symBinAddr: 0x100088300, symSize: 0x74 } - - { offset: 0x1465E7, size: 0x8, addend: 0x0, symName: '_$sSSIegg_So8NSStringCIeyBy_TR', symObjAddr: 0x3E64, symBinAddr: 0x100088374, symSize: 0x54 } - - { offset: 0x146620, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCMa', symObjAddr: 0x56B4, symBinAddr: 0x100089B88, symSize: 0x20 } - - { offset: 0x146634, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFyAGcfU0_yyScMYccfU_TA', symObjAddr: 0x573C, symBinAddr: 0x100089BCC, symSize: 0x28 } - - { offset: 0x146670, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x5764, symBinAddr: 0x100089BF4, symSize: 0x10 } - - { offset: 0x146684, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x5774, symBinAddr: 0x100089C04, symSize: 0x8 } - - { offset: 0x146698, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tg5', symObjAddr: 0x58D4, symBinAddr: 0x100089C70, symSize: 0x64 } - - { offset: 0x1466B7, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tg5TQ0_', symObjAddr: 0x5938, symBinAddr: 0x100089CD4, symSize: 0x44 } - - { offset: 0x1466F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC4stop10completionyySbc_tFySbcfU_TA', symObjAddr: 0x5F3C, symBinAddr: 0x10008A2D8, symSize: 0x8 } - - { offset: 0x14670B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFyycfU_TA', symObjAddr: 0x5F54, symBinAddr: 0x10008A2F0, symSize: 0xC } - - { offset: 0x14671F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFySbcfU1_TA', symObjAddr: 0x5F94, symBinAddr: 0x10008A330, symSize: 0xC } - - { offset: 0x146733, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFySbcfU1_yyScMYccfU_TA', symObjAddr: 0x5FC4, symBinAddr: 0x10008A360, symSize: 0x28 } - - { offset: 0x146767, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFys5Error_pcfU0_yyScMYccfU_TA', symObjAddr: 0x5FEC, symBinAddr: 0x10008A388, symSize: 0x24 } - - { offset: 0x14679B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC5start10configPath10completionySS_ySbctFySb_SSSgtcfU_TA', symObjAddr: 0x66B0, symBinAddr: 0x10008AA4C, symSize: 0x8 } - - { offset: 0x1467AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFyycfU0_TA', symObjAddr: 0x66C8, symBinAddr: 0x10008AA64, symSize: 0xC } - - { offset: 0x1467C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_ySb_AHtcfU0_TA', symObjAddr: 0x66F0, symBinAddr: 0x10008AA8C, symSize: 0xC } - - { offset: 0x1467D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_ySb_AHtcfU0_yyScMYccfU_TA', symObjAddr: 0x6728, symBinAddr: 0x10008AAC4, symSize: 0x2C } - - { offset: 0x146815, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFyycfU0_yyScMYccfU_TA', symObjAddr: 0x6878, symBinAddr: 0x10008AC14, symSize: 0x3C } - - { offset: 0x14685E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TA', symObjAddr: 0x68E8, symBinAddr: 0x10008AC84, symSize: 0x90 } - - { offset: 0x146872, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tg5TA', symObjAddr: 0x6A08, symBinAddr: 0x10008AD14, symSize: 0x70 } - - { offset: 0x146886, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tg5TA.127', symObjAddr: 0x6A78, symBinAddr: 0x10008AD84, symSize: 0x70 } - - { offset: 0x14689A, size: 0x8, addend: 0x0, symName: _block_copy_helper.131, symObjAddr: 0x6BA8, symBinAddr: 0x10008ADF4, symSize: 0x10 } - - { offset: 0x1468AE, size: 0x8, addend: 0x0, symName: _block_destroy_helper.132, symObjAddr: 0x6BF4, symBinAddr: 0x10008AE04, symSize: 0x8 } - - { offset: 0x1468C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFyAFcfU0_yyScMYccfU_TA', symObjAddr: 0x6C6C, symBinAddr: 0x10008AE38, symSize: 0x28 } - - { offset: 0x146900, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC03getB033_BF822A7A050631C76F346418077C0BFCLL12errorHandlerAA0B8Protocol_pSgys5Error_pcSg_tFysAI_pcfU_TA', symObjAddr: 0x6CC8, symBinAddr: 0x10008AE94, symSize: 0xC } - - { offset: 0x146914, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyFyycfU_TA', symObjAddr: 0x6CE4, symBinAddr: 0x10008AEA0, symSize: 0x8 } - - { offset: 0x146928, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyFyycfU0_TA', symObjAddr: 0x6CEC, symBinAddr: 0x10008AEA8, symSize: 0x8 } - - { offset: 0x14693C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFySdcfU0_yyScMYccfU_TA', symObjAddr: 0x6D18, symBinAddr: 0x10008AED4, symSize: 0x28 } - - { offset: 0x146979, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14ProcessedEventVGSayxGSesSeRzlWl', symObjAddr: 0x6D40, symBinAddr: 0x10008AEFC, symSize: 0x88 } - - { offset: 0x14698D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC23handleRunningInfoUpdate33_BF822A7A050631C76F346418077C0BFCLLyySSFyyScMYccfU_TA', symObjAddr: 0x6E60, symBinAddr: 0x10008AFDC, symSize: 0xC } - - { offset: 0x146B65, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctF', symObjAddr: 0x0, symBinAddr: 0x10008455C, symSize: 0x678 } - - { offset: 0x146D40, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySb_AHtcfU_', symObjAddr: 0x2EF4, symBinAddr: 0x100087404, symSize: 0xAC } - - { offset: 0x146DBB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFyycfU0_', symObjAddr: 0x2FA0, symBinAddr: 0x1000874B0, symSize: 0x25C } - - { offset: 0x146E56, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFys5Error_pcfU1_', symObjAddr: 0x31FC, symBinAddr: 0x10008770C, symSize: 0x218 } - - { offset: 0x147018, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_', symObjAddr: 0x3414, symBinAddr: 0x100087924, symSize: 0x684 } - - { offset: 0x1472BD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_ySb_AHtcfU_', symObjAddr: 0x3A98, symBinAddr: 0x100087FA8, symSize: 0xF4 } - - { offset: 0x1473CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_ySb_AHtcfU0_', symObjAddr: 0x3B8C, symBinAddr: 0x10008809C, symSize: 0x264 } - - { offset: 0x1474C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tF013$s8Swiftier11e43ServiceC4stop10completionyySbc_tFySbcfU_091gh991ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05Tuplem5VyAF0m40PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyy2R0x36AjFE12cornerRadius_11antialiasedQr12b91Graphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackx78AHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7Sectionx22A5_AF012_ConditionalB0x31AjFE8disabledyQrSbFQOyAF6Buttonx18A5_G_Qo_AF7ForEachx60Say10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyM504VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_yM10U_Tf3npf_nTf1cn_n', symObjAddr: 0x678, symBinAddr: 0x100084BD4, symSize: 0x3D0 } - - { offset: 0x1475F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctF', symObjAddr: 0xA48, symBinAddr: 0x100084FA4, symSize: 0x360 } - - { offset: 0x1477BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_', symObjAddr: 0x1654, symBinAddr: 0x100085B64, symSize: 0x120 } - - { offset: 0x147826, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY0_', symObjAddr: 0x1774, symBinAddr: 0x100085C84, symSize: 0x5C4 } - - { offset: 0x147A64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY1_', symObjAddr: 0x1D38, symBinAddr: 0x100086248, symSize: 0x94 } - - { offset: 0x147AF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY2_', symObjAddr: 0x1DCC, symBinAddr: 0x1000862DC, symSize: 0x90 } - - { offset: 0x147B9F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TQ4_', symObjAddr: 0x1E5C, symBinAddr: 0x10008636C, symSize: 0x9C } - - { offset: 0x147C01, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY5_', symObjAddr: 0x1EF8, symBinAddr: 0x100086408, symSize: 0x7C } - - { offset: 0x147C5F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TQ6_', symObjAddr: 0x1F74, symBinAddr: 0x100086484, symSize: 0xB0 } - - { offset: 0x147CC1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY8_', symObjAddr: 0x2024, symBinAddr: 0x100086534, symSize: 0x94 } - - { offset: 0x147D54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY9_', symObjAddr: 0x20B8, symBinAddr: 0x1000865C8, symSize: 0x80 } - - { offset: 0x147DE7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY10_', symObjAddr: 0x2138, symBinAddr: 0x100086648, symSize: 0x70 } - - { offset: 0x147E60, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY11_', symObjAddr: 0x21A8, symBinAddr: 0x1000866B8, symSize: 0x94 } - - { offset: 0x147EF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY12_', symObjAddr: 0x223C, symBinAddr: 0x10008674C, symSize: 0x90 } - - { offset: 0x147F9B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TQ14_', symObjAddr: 0x22CC, symBinAddr: 0x1000867DC, symSize: 0x84 } - - { offset: 0x148012, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY15_', symObjAddr: 0x2350, symBinAddr: 0x100086860, symSize: 0x94 } - - { offset: 0x1480A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY16_', symObjAddr: 0x23E4, symBinAddr: 0x1000868F4, symSize: 0x80 } - - { offset: 0x148138, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY18_', symObjAddr: 0x2464, symBinAddr: 0x100086974, symSize: 0x94 } - - { offset: 0x148201, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY19_', symObjAddr: 0x24F8, symBinAddr: 0x100086A08, symSize: 0x90 } - - { offset: 0x1482DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY20_', symObjAddr: 0x2588, symBinAddr: 0x100086A98, symSize: 0x8C } - - { offset: 0x148358, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY21_', symObjAddr: 0x2614, symBinAddr: 0x100086B24, symSize: 0x94 } - - { offset: 0x14842D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY22_', symObjAddr: 0x26A8, symBinAddr: 0x100086BB8, symSize: 0xB8 } - - { offset: 0x1484F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY24_', symObjAddr: 0x2760, symBinAddr: 0x100086C70, symSize: 0x98 } - - { offset: 0x14854E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY25_', symObjAddr: 0x27F8, symBinAddr: 0x100086D08, symSize: 0x3E4 } - - { offset: 0x14882F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC20invalidateConnection33_BF822A7A050631C76F346418077C0BFCLLyyF', symObjAddr: 0xE64, symBinAddr: 0x1000853C0, symSize: 0x58 } - - { offset: 0x1488A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerCfD', symObjAddr: 0xEBC, symBinAddr: 0x100085418, symSize: 0x40 } - - { offset: 0x148948, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyF', symObjAddr: 0xF1C, symBinAddr: 0x100085478, symSize: 0x2F0 } - - { offset: 0x148A42, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyFyycfU_', symObjAddr: 0x120C, symBinAddr: 0x100085768, symSize: 0x150 } - - { offset: 0x148A93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyFyycfU0_', symObjAddr: 0x135C, symBinAddr: 0x1000858B8, symSize: 0x6C } - - { offset: 0x148AE5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC03getB033_BF822A7A050631C76F346418077C0BFCLL12errorHandlerAA0B8Protocol_pSgys5Error_pcSg_tF', symObjAddr: 0x13C8, symBinAddr: 0x100085924, symSize: 0x160 } - - { offset: 0x148B30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC03getB033_BF822A7A050631C76F346418077C0BFCLL12errorHandlerAA0B8Protocol_pSgys5Error_pcSg_tFysAI_pcfU_', symObjAddr: 0x1528, symBinAddr: 0x100085A84, symSize: 0xE0 } - - { offset: 0x148C1F, size: 0x8, addend: 0x0, symName: '_$sScTss5NeverORs_rlE4name8priority9operationScTyxABGSSSg_ScPSgxyYaYAcntcfCyt_Tt2g5', symObjAddr: 0x2C68, symBinAddr: 0x100087178, symSize: 0x28C } - - { offset: 0x148C91, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFyycfU_', symObjAddr: 0x3EB8, symBinAddr: 0x1000883C8, symSize: 0x25C } - - { offset: 0x148D34, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFys5Error_pcfU0_', symObjAddr: 0x4114, symBinAddr: 0x100088624, symSize: 0x368 } - - { offset: 0x148E6E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFySbcfU1_', symObjAddr: 0x447C, symBinAddr: 0x10008898C, symSize: 0x24C } - - { offset: 0x148F0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFys5Error_pcfU_013$s8Swiftier11e37ServiceC9getStatus10completionyySb_s5h16Vtc_tFyAGcfU_092jk72AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyro1_P16G6VtcfU_Tf3npf_nTf3npf_n', symObjAddr: 0x4704, symBinAddr: 0x100088BD8, symSize: 0x8 } - - { offset: 0x148F38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFys5Error_pcfU_013$s8Swiftier11e37ServiceC9getStatus10completionyySb_s5h16Vtc_tFyAGcfU_092jk72AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyro1_P16G6VtcfU_Tf3npf_nTf3npf_n', symObjAddr: 0x4704, symBinAddr: 0x100088BD8, symSize: 0x8 } - - { offset: 0x148F4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFys5Error_pcfU_013$s8Swiftier11e37ServiceC9getStatus10completionyySb_s5h16Vtc_tFyAGcfU_092jk72AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyro1_P16G6VtcfU_Tf3npf_nTf3npf_n', symObjAddr: 0x4704, symBinAddr: 0x100088BD8, symSize: 0x8 } - - { offset: 0x148F6D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFys5Error_pcfU_', symObjAddr: 0x470C, symBinAddr: 0x100088BE0, symSize: 0x24 } - - { offset: 0x148FA4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFyAGcfU0_', symObjAddr: 0x4730, symBinAddr: 0x100088C04, symSize: 0x208 } - - { offset: 0x149013, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFys5Error_pcfU_', symObjAddr: 0x4938, symBinAddr: 0x100088E0C, symSize: 0x24 } - - { offset: 0x14904A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFySdcfU0_', symObjAddr: 0x495C, symBinAddr: 0x100088E30, symSize: 0x210 } - - { offset: 0x1490AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC04quitB010completionyyyc_tFySbcfU_091$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05Tuplem5VyAF0m40PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyy2R0x131AjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackx78AHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7Sectionx22A5_AF012_ConditionalB0x31AjFE8disabledyQrSbFQOyAF6Buttonx18A5_G_Qo_AF7ForEachx60Say10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyM504VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_yycfU0_Tf3npf_n', symObjAddr: 0x4B6C, symBinAddr: 0x100089040, symSize: 0x4 } - - { offset: 0x1490DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC15getRecentEvents10sinceIndex10completionySi_ySayAA14ProcessedEventVG_SitctFys5Error_pcfU_', symObjAddr: 0x4B70, symBinAddr: 0x100089044, symSize: 0x30 } - - { offset: 0x14913C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC15getRecentEvents10sinceIndex10completionySi_ySayAA14ProcessedEventVG_SitctFy10Foundation4DataV_SitcfU0_', symObjAddr: 0x4BA0, symBinAddr: 0x100089074, symSize: 0x294 } - - { offset: 0x1491EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFys5Error_pcfU_', symObjAddr: 0x4E34, symBinAddr: 0x100089308, symSize: 0x2C } - - { offset: 0x149221, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFyAFcfU0_', symObjAddr: 0x4E60, symBinAddr: 0x100089334, symSize: 0x210 } - - { offset: 0x149284, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC23handleRunningInfoUpdate33_BF822A7A050631C76F346418077C0BFCLLyySSF', symObjAddr: 0x5070, symBinAddr: 0x100089544, symSize: 0x210 } - - { offset: 0x1492E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC23handleRunningInfoUpdate33_BF822A7A050631C76F346418077C0BFCLLyySSFyyScMYccfU_', symObjAddr: 0x5870, symBinAddr: 0x100089C0C, symSize: 0x64 } - - { offset: 0x149361, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLC18runningInfoUpdatedyySSFTo', symObjAddr: 0x5280, symBinAddr: 0x100089754, symSize: 0x7C } - - { offset: 0x1493B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLC10logUpdatedyySaySSGFTo', symObjAddr: 0x52FC, symBinAddr: 0x1000897D0, symSize: 0x4 } - - { offset: 0x1493E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCAFycfcTo', symObjAddr: 0x5300, symBinAddr: 0x1000897D4, symSize: 0x2C } - - { offset: 0x149442, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCfZ', symObjAddr: 0x532C, symBinAddr: 0x100089800, symSize: 0x40 } - - { offset: 0x149468, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCfD', symObjAddr: 0x536C, symBinAddr: 0x100089840, symSize: 0x338 } - - { offset: 0x1494A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCfETo', symObjAddr: 0x56A4, symBinAddr: 0x100089B78, symSize: 0x10 } - - { offset: 0x149504, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC3log33_BF822A7A050631C76F346418077C0BFCLLyySSFTf4nd_n', symObjAddr: 0x597C, symBinAddr: 0x100089D18, symSize: 0x19C } - - { offset: 0x149666, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tF013$s8Swiftier11E40ServiceC4stop10completionyySbc_tFySbcfU_SbIegy_Tf1cn_nTf4ng_n', symObjAddr: 0x5B18, symBinAddr: 0x100089EB4, symSize: 0x424 } - - { offset: 0x1497A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctF013$s8Swiftier11E61ServiceC5start10configPath10completionySS_ySbctFySb_SSSgtcfU_SbIegy_Tf1nncn_nTf4nnng_n', symObjAddr: 0x6010, symBinAddr: 0x10008A3AC, symSize: 0x6A0 } - - { offset: 0x149B2C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier22kHelperMachServiceNameSSvp', symObjAddr: 0x2BA0, symBinAddr: 0x1001175C8, symSize: 0x0 } - - { offset: 0x149B46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20kTargetHelperVersionSSvp', symObjAddr: 0x2E10, symBinAddr: 0x1000D4158, symSize: 0x0 } - - { offset: 0x149B54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier22kHelperMachServiceNameSSvau', symObjAddr: 0x0, symBinAddr: 0x10008B2C8, symSize: 0xC } - - { offset: 0x149B72, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20kTargetHelperVersionSSvau', symObjAddr: 0xC, symBinAddr: 0x10008B2D4, symSize: 0xC } - - { offset: 0x149E14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs0D3KeyAAWl', symObjAddr: 0x414, symBinAddr: 0x10008B60C, symSize: 0x40 } - - { offset: 0x14A00C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVMa', symObjAddr: 0x13A4, symBinAddr: 0x10008C484, symSize: 0x38 } - - { offset: 0x14A020, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOc', symObjAddr: 0x13DC, symBinAddr: 0x10008C4BC, symSize: 0x50 } - - { offset: 0x14A034, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOb', symObjAddr: 0x142C, symBinAddr: 0x10008C50C, symSize: 0x50 } - - { offset: 0x14A048, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs0D3KeyAAWl', symObjAddr: 0x147C, symBinAddr: 0x10008C55C, symSize: 0x40 } - - { offset: 0x14A05C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVACSEAAWl', symObjAddr: 0x1510, symBinAddr: 0x10008C59C, symSize: 0x40 } - - { offset: 0x14A070, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOh', symObjAddr: 0x1570, symBinAddr: 0x10008C5DC, symSize: 0x48 } - - { offset: 0x14A084, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVACSeAAWl', symObjAddr: 0x1668, symBinAddr: 0x10008C694, symSize: 0x40 } - - { offset: 0x14A098, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVWOc', symObjAddr: 0x16A8, symBinAddr: 0x10008C6D4, symSize: 0x44 } - - { offset: 0x14A0AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVWOh', symObjAddr: 0x16EC, symBinAddr: 0x10008C718, symSize: 0x3C } - - { offset: 0x14A0C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwxx', symObjAddr: 0x1754, symBinAddr: 0x10008C754, symSize: 0x8 } - - { offset: 0x14A0D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwcp', symObjAddr: 0x175C, symBinAddr: 0x10008C75C, symSize: 0x3C } - - { offset: 0x14A0E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwca', symObjAddr: 0x1798, symBinAddr: 0x10008C798, symSize: 0x64 } - - { offset: 0x14A0FC, size: 0x8, addend: 0x0, symName: ___swift_memcpy33_8, symObjAddr: 0x17FC, symBinAddr: 0x10008C7FC, symSize: 0x14 } - - { offset: 0x14A110, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwta', symObjAddr: 0x1810, symBinAddr: 0x10008C810, symSize: 0x44 } - - { offset: 0x14A124, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwet', symObjAddr: 0x1854, symBinAddr: 0x10008C854, symSize: 0x48 } - - { offset: 0x14A138, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwst', symObjAddr: 0x189C, symBinAddr: 0x10008C89C, symSize: 0x44 } - - { offset: 0x14A14C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVMa', symObjAddr: 0x18E0, symBinAddr: 0x10008C8E0, symSize: 0x10 } - - { offset: 0x14A160, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwCP', symObjAddr: 0x18F0, symBinAddr: 0x10008C8F0, symSize: 0x16C } - - { offset: 0x14A174, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwxx', symObjAddr: 0x1A5C, symBinAddr: 0x10008CA5C, symSize: 0xC0 } - - { offset: 0x14A188, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwcp', symObjAddr: 0x1B1C, symBinAddr: 0x10008CB1C, symSize: 0x140 } - - { offset: 0x14A19C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwca', symObjAddr: 0x1C5C, symBinAddr: 0x10008CC5C, symSize: 0x1C8 } - - { offset: 0x14A1B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwtk', symObjAddr: 0x1E24, symBinAddr: 0x10008CE24, symSize: 0x104 } - - { offset: 0x14A1C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwta', symObjAddr: 0x1F28, symBinAddr: 0x10008CF28, symSize: 0x190 } - - { offset: 0x14A1D8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwet', symObjAddr: 0x20B8, symBinAddr: 0x10008D0B8, symSize: 0xC } - - { offset: 0x14A1EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwst', symObjAddr: 0x217C, symBinAddr: 0x10008D17C, symSize: 0xC } - - { offset: 0x14A200, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVMr', symObjAddr: 0x223C, symBinAddr: 0x10008D23C, symSize: 0x9C } - - { offset: 0x14A214, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgMa', symObjAddr: 0x22D8, symBinAddr: 0x10008D2D8, symSize: 0x54 } - - { offset: 0x14A228, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOMa', symObjAddr: 0x2480, symBinAddr: 0x10008D32C, symSize: 0x10 } - - { offset: 0x14A23C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOMa', symObjAddr: 0x25E4, symBinAddr: 0x10008D33C, symSize: 0x10 } - - { offset: 0x14A250, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOSHAASQWb', symObjAddr: 0x25F4, symBinAddr: 0x10008D34C, symSize: 0x4 } - - { offset: 0x14A264, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFSQAAWl', symObjAddr: 0x25F8, symBinAddr: 0x10008D350, symSize: 0x40 } - - { offset: 0x14A278, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOSHAASQWb', symObjAddr: 0x2638, symBinAddr: 0x10008D390, symSize: 0x4 } - - { offset: 0x14A28C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFSQAAWl', symObjAddr: 0x263C, symBinAddr: 0x10008D394, symSize: 0x40 } - - { offset: 0x14A2A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x267C, symBinAddr: 0x10008D3D4, symSize: 0x4 } - - { offset: 0x14A2B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x2680, symBinAddr: 0x10008D3D8, symSize: 0x40 } - - { offset: 0x14A2C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x26C0, symBinAddr: 0x10008D418, symSize: 0x4 } - - { offset: 0x14A2DC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x26C4, symBinAddr: 0x10008D41C, symSize: 0x40 } - - { offset: 0x14A2F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x2704, symBinAddr: 0x10008D45C, symSize: 0x4 } - - { offset: 0x14A304, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x2708, symBinAddr: 0x10008D460, symSize: 0x40 } - - { offset: 0x14A318, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x2748, symBinAddr: 0x10008D4A0, symSize: 0x4 } - - { offset: 0x14A32C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x274C, symBinAddr: 0x10008D4A4, symSize: 0x40 } - - { offset: 0x14A35E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x154, symBinAddr: 0x10008B3C0, symSize: 0x28 } - - { offset: 0x14A37A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x17C, symBinAddr: 0x10008B3E8, symSize: 0x28 } - - { offset: 0x14A3BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x8D8, symBinAddr: 0x10008B9B8, symSize: 0x28 } - - { offset: 0x14A3D6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x900, symBinAddr: 0x10008B9E0, symSize: 0x28 } - - { offset: 0x14A427, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV5startSivg', symObjAddr: 0x18, symBinAddr: 0x10008B2E0, symSize: 0x8 } - - { offset: 0x14A43B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV6lengthSivg', symObjAddr: 0x20, symBinAddr: 0x10008B2E8, symSize: 0x8 } - - { offset: 0x14A44F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV5colorSSvg', symObjAddr: 0x28, symBinAddr: 0x10008B2F0, symSize: 0x2C } - - { offset: 0x14A463, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV4boldSbvg', symObjAddr: 0x54, symBinAddr: 0x10008B31C, symSize: 0x8 } - - { offset: 0x14A483, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV5start6length5color4boldACSi_SiSSSbtcfC', symObjAddr: 0x5C, symBinAddr: 0x10008B324, symSize: 0x10 } - - { offset: 0x14A50F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0xB0, symBinAddr: 0x10008B334, symSize: 0x68 } - - { offset: 0x14A53F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x118, symBinAddr: 0x10008B39C, symSize: 0x24 } - - { offset: 0x14A568, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV23__derived_struct_equalsySbAC_ACtFZ', symObjAddr: 0x1A4, symBinAddr: 0x10008B410, symSize: 0x90 } - - { offset: 0x14A5C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV6encode2toys7Encoder_p_tKF', symObjAddr: 0x234, symBinAddr: 0x10008B4A0, symSize: 0x16C } - - { offset: 0x14A5F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV4fromACs7Decoder_p_tKcfC', symObjAddr: 0x454, symBinAddr: 0x10008B64C, symSize: 0x44 } - - { offset: 0x14A614, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x4DC, symBinAddr: 0x10008B690, symSize: 0x14 } - - { offset: 0x14A658, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x4F0, symBinAddr: 0x10008B6A4, symSize: 0x78 } - - { offset: 0x14A6BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV9timestampSSvg', symObjAddr: 0x5A0, symBinAddr: 0x10008B71C, symSize: 0x3C } - - { offset: 0x14A6D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV4time10Foundation4DateVSgvg', symObjAddr: 0x5DC, symBinAddr: 0x10008B758, symSize: 0x30 } - - { offset: 0x14A6E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV4typeSSvg', symObjAddr: 0x60C, symBinAddr: 0x10008B788, symSize: 0x3C } - - { offset: 0x14A6F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV7detailsSSvg', symObjAddr: 0x648, symBinAddr: 0x10008B7C4, symSize: 0x3C } - - { offset: 0x14A70C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10highlightsSayAA14HighlightRangeVGvg', symObjAddr: 0x684, symBinAddr: 0x10008B800, symSize: 0x20 } - - { offset: 0x14A727, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV2id9timestamp4time4type7details10highlightsAC10Foundation4UUIDV_SSAJ4DateVSgS2SSayAA14HighlightRangeVGtcfC', symObjAddr: 0x6A4, symBinAddr: 0x10008B820, symSize: 0xC8 } - - { offset: 0x14A7B2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0x7F0, symBinAddr: 0x10008B8E8, symSize: 0xAC } - - { offset: 0x14A7F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x89C, symBinAddr: 0x10008B994, symSize: 0x24 } - - { offset: 0x14A819, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV6encode2toys7Encoder_p_tKF', symObjAddr: 0x928, symBinAddr: 0x10008BA08, symSize: 0x288 } - - { offset: 0x14A84A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV4fromACs7Decoder_p_tKcfC', symObjAddr: 0xBB0, symBinAddr: 0x10008BC90, symSize: 0x498 } - - { offset: 0x14A874, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x1048, symBinAddr: 0x10008C128, symSize: 0x14 } - - { offset: 0x14A888, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x105C, symBinAddr: 0x10008C13C, symSize: 0x14 } - - { offset: 0x14A89C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x1070, symBinAddr: 0x10008C150, symSize: 0x154 } - - { offset: 0x14A953, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV4fromACs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0x11C4, symBinAddr: 0x10008C2A4, symSize: 0x1E0 } - - { offset: 0x14A976, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x278C, symBinAddr: 0x10008D4E4, symSize: 0x1FC } - - { offset: 0x14AD63, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwCP', symObjAddr: 0x0, symBinAddr: 0x10008D6E0, symSize: 0x1D0 } - - { offset: 0x14AD77, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwxx', symObjAddr: 0x220, symBinAddr: 0x10008D8B0, symSize: 0xEC } - - { offset: 0x14AD8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwcp', symObjAddr: 0x30C, symBinAddr: 0x10008D99C, symSize: 0x1AC } - - { offset: 0x14AD9F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwca', symObjAddr: 0x4B8, symBinAddr: 0x10008DB48, symSize: 0x2D8 } - - { offset: 0x14ADB3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVWOh', symObjAddr: 0x790, symBinAddr: 0x10008DE20, symSize: 0x3C } - - { offset: 0x14ADC7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwtk', symObjAddr: 0x7CC, symBinAddr: 0x10008DE5C, symSize: 0x158 } - - { offset: 0x14ADDB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwta', symObjAddr: 0x924, symBinAddr: 0x10008DFB4, symSize: 0x238 } - - { offset: 0x14ADEF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwet', symObjAddr: 0xB5C, symBinAddr: 0x10008E1EC, symSize: 0xC } - - { offset: 0x14AE03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwst', symObjAddr: 0xBF4, symBinAddr: 0x10008E284, symSize: 0xC } - - { offset: 0x14AE17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVMr', symObjAddr: 0xC94, symBinAddr: 0x10008E324, symSize: 0x90 } - - { offset: 0x14AE2B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVy8Swiftier8LogEntryVSgGMa', symObjAddr: 0xD24, symBinAddr: 0x10008E3B4, symSize: 0x60 } - - { offset: 0x14AE3F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0xDD8, symBinAddr: 0x10008E414, symSize: 0x10 } - - { offset: 0x14B4CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_TA', symObjAddr: 0x5308, symBinAddr: 0x100092898, symSize: 0x4C } - - { offset: 0x14B4E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_TA', symObjAddr: 0x5424, symBinAddr: 0x1000928E4, symSize: 0x8 } - - { offset: 0x14B4F4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySay8Swiftier8LogEntryVG10Foundation4UUIDVAA6IDViewVyAA4ViewPAAE12onTapGesture5count7performQrSi_yyctFQOyAA15ModifiedContentVyASyAnAE16listRowSeparator_5edgesQrAA10VisibilityO_AA12VerticalEdgeO3SetVtFQOyASyAD0f4ListT0VAA21_TraitWritingModifierVyAA04ListT14InsetsTraitKeyVGG_Qo_A3_yAA04ListT18BackgroundTraitKeyVGGAA01_R13ShapeModifierVyAA9RectangleVGG_Qo_AJGGACyxq_q0_GAam2aMR0_rlWl', symObjAddr: 0x542C, symBinAddr: 0x1000928EC, symSize: 0x90 } - - { offset: 0x14B53F, size: 0x8, addend: 0x0, symName: '_$sSTsE13_copyContents12initializing8IteratorQz_SitSry7ElementQzG_tFs18ReversedCollectionVySay8Swiftier8LogEntryVGG_Tg5', symObjAddr: 0x5800, symBinAddr: 0x100092B18, symSize: 0x100 } - - { offset: 0x14B69B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_TA', symObjAddr: 0x5A30, symBinAddr: 0x100092D48, symSize: 0x50 } - - { offset: 0x14B6AF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier10LogListRowVAA21_TraitWritingModifierVyAA0gh6InsetsI3KeyVGGACyxq_GAA4ViewA2aNRzAA0nK0R_rlWl', symObjAddr: 0x5AD4, symBinAddr: 0x100092DAC, symSize: 0xB0 } - - { offset: 0x14B6C3, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA4ViewPAAE16listRowSeparator_5edgesQrAA10VisibilityO_AA12VerticalEdgeO3SetVtFQOyACy8Swiftier07LogListG0VAA21_TraitWritingModifierVyAA0pg6InsetsQ3KeyVGG_Qo_ARyAA0pg10BackgroundqU0VGGAA01_d5ShapeS0VyAA9RectangleVGGACyxq_GAad2aDRzAA0eS0R_rlWl', symObjAddr: 0x5DB4, symBinAddr: 0x10009308C, symSize: 0x98 } - - { offset: 0x14B6D7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE16listRowSeparator_5edgesQrAA10VisibilityO_AA12VerticalEdgeO3SetVtFQOyACy8Swiftier07LogListG0VAA21_TraitWritingModifierVyAA0pg6InsetsQ3KeyVGG_Qo_ARyAA0pg10BackgroundqU0VGGACyxq_GAad2aDRzAA0eS0R_rlWl', symObjAddr: 0x5E4C, symBinAddr: 0x100093124, symSize: 0xC8 } - - { offset: 0x14B6EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_yycfU0_yyXEfU_TA', symObjAddr: 0x5F14, symBinAddr: 0x1000931EC, symSize: 0x18 } - - { offset: 0x14B6FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwCP', symObjAddr: 0x5F2C, symBinAddr: 0x100093204, symSize: 0x18C } - - { offset: 0x14B713, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwxx', symObjAddr: 0x60B8, symBinAddr: 0x100093390, symSize: 0xC4 } - - { offset: 0x14B727, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwcp', symObjAddr: 0x617C, symBinAddr: 0x100093454, symSize: 0x158 } - - { offset: 0x14B73B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwca', symObjAddr: 0x62D4, symBinAddr: 0x1000935AC, symSize: 0x264 } - - { offset: 0x14B74F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwtk', symObjAddr: 0x6538, symBinAddr: 0x100093810, symSize: 0x118 } - - { offset: 0x14B763, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwta', symObjAddr: 0x6650, symBinAddr: 0x100093928, symSize: 0x1E0 } - - { offset: 0x14B777, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwet', symObjAddr: 0x6830, symBinAddr: 0x100093B08, symSize: 0xC } - - { offset: 0x14B78B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwst', symObjAddr: 0x6884, symBinAddr: 0x100093B5C, symSize: 0xC } - - { offset: 0x14B79F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVMr', symObjAddr: 0x6920, symBinAddr: 0x100093BC8, symSize: 0x68 } - - { offset: 0x14B7B3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwCP', symObjAddr: 0x6988, symBinAddr: 0x100093C30, symSize: 0x110 } - - { offset: 0x14B7C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwxx', symObjAddr: 0x6A98, symBinAddr: 0x100093D40, symSize: 0x8C } - - { offset: 0x14B7DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwcp', symObjAddr: 0x6B24, symBinAddr: 0x100093DCC, symSize: 0xE4 } - - { offset: 0x14B7EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwca', symObjAddr: 0x6C08, symBinAddr: 0x100093EB0, symSize: 0x12C } - - { offset: 0x14B803, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwtk', symObjAddr: 0x6D34, symBinAddr: 0x100093FDC, symSize: 0x9C } - - { offset: 0x14B817, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwta', symObjAddr: 0x6DD0, symBinAddr: 0x100094078, symSize: 0xE4 } - - { offset: 0x14B82B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwet', symObjAddr: 0x6EB4, symBinAddr: 0x10009415C, symSize: 0xC } - - { offset: 0x14B83F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwst', symObjAddr: 0x6F40, symBinAddr: 0x1000941E8, symSize: 0xC } - - { offset: 0x14B853, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVMr', symObjAddr: 0x6FC8, symBinAddr: 0x100094270, symSize: 0x7C } - - { offset: 0x14B867, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6IDViewVyAA6HStackVyAA9TupleViewVyACyAA06ScrollH6ReaderVyAA6ZStackVyAIyACyAA0H0PAAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAoAE9listStyleyQrqd__AA04ListP0Rd__lFQOyAA0Q0Vys5NeverOAA7ForEachVySay8Swiftier8LogEntryVG10Foundation4UUIDVAEyAoAE12onTapGesture5count7performQrSi_yyctFQOyACyACyAoAE0O12RowSeparator_5edgesQrAR_AA12VerticalEdgeO3SetVtFQOyACyA_0vQ3RowVAA21_TraitWritingModifierVyAA0Q17RowInsetsTraitKeyVGG_Qo_A18_yAA0q3RowM8TraitKeyVGGAA01_D13ShapeModifierVyAA9RectangleVGG_Qo_A5_GGG_AA05PlainqP0VQo__Qo_AA01_mP8ModifierVyAA5ColorVGG_ACyACyAoAE06buttonP0yQrqd__AA015PrimitiveButtonP0Rd__lFQOyAA6ButtonVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA_24FlatCircleButtonModifierVGG_AA011PlainButtonP0VQo_AA14_PaddingLayoutVGA18_yAA18TransitionTraitKeyVGGSgtGGGAA12_FrameLayoutVG_AIyAA7DividerV_ACyACyAA6VStackVyACyA_0v6DetailH0VA73_GGAA16_FlexFrameLayoutVGA46_GtGSgtGGSSGAA20_ValueActionModifierVyA1_SgGGACyxq_GAan2aNRzAA0H8ModifierR_rlWl', symObjAddr: 0x7048, symBinAddr: 0x1000942F0, symSize: 0xB8 } - - { offset: 0x14B87B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x7100, symBinAddr: 0x1000943A8, symSize: 0x10 } - - { offset: 0x14B88F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x7110, symBinAddr: 0x1000943B8, symSize: 0x10 } - - { offset: 0x14B8A3, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier14LogListTagViewVAA12_ScaleEffectVGSgWOy', symObjAddr: 0x7298, symBinAddr: 0x1000943C8, symSize: 0x30 } - - { offset: 0x14B8B7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier14LogListTagViewVAA12_ScaleEffectVGSgWOe', symObjAddr: 0x72C8, symBinAddr: 0x1000943F8, symSize: 0x30 } - - { offset: 0x14B8CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwxx', symObjAddr: 0x72FC, symBinAddr: 0x10009442C, symSize: 0x28 } - - { offset: 0x14B8DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwca', symObjAddr: 0x7360, symBinAddr: 0x100094490, symSize: 0x64 } - - { offset: 0x14B8F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwta', symObjAddr: 0x73D8, symBinAddr: 0x1000944F4, symSize: 0x44 } - - { offset: 0x14B907, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwet', symObjAddr: 0x741C, symBinAddr: 0x100094538, symSize: 0x48 } - - { offset: 0x14B91B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwst', symObjAddr: 0x7464, symBinAddr: 0x100094580, symSize: 0x40 } - - { offset: 0x14B92F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVMa', symObjAddr: 0x74A4, symBinAddr: 0x1000945C0, symSize: 0x10 } - - { offset: 0x14B943, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA6VStackVyAA9TupleViewVyACyAA0G0PAAE9lineLimit_13reservesSpaceQrSi_SbtFQOyAA4TextV_Qo_AA16_FlexFrameLayoutVG_AA6HStackVyAGyAM_AA6SpacerVACy8Swiftier010LogListTagG0VAA12_ScaleEffectVGSgtGGtGGAA01_D13ShapeModifierVyAA9RectangleVGGAA08_PaddingO0VGA12_GAPGACyxq_GAah2aHRzAA0gY0R_rlWl', symObjAddr: 0x74B8, symBinAddr: 0x1000945D4, symSize: 0x98 } - - { offset: 0x14B957, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyACyAA0G0PAAE9lineLimit_13reservesSpaceQrSi_SbtFQOyAA4TextV_Qo_AA16_FlexFrameLayoutVG_AA6HStackVyAGyAM_AA6SpacerVACy8Swiftier010LogListTagG0VAA12_ScaleEffectVGSgtGGtGGAA01_D13ShapeModifierVyAA9RectangleVGGACyxq_GAah2aHRzAA0gY0R_rlWl', symObjAddr: 0x75E4, symBinAddr: 0x100094700, symSize: 0xB8 } - - { offset: 0x14B96B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewV7SwiftUI0E0AA4BodyAdEP_AGWT', symObjAddr: 0x76D0, symBinAddr: 0x1000947EC, symSize: 0x10 } - - { offset: 0x14B97F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA4TextVAA14_PaddingLayoutVGAGGAA19_BackgroundModifierVyAA10_ShapeViewVyAA7CapsuleVAA5ColorVGGGACyxq_GAA0K0A2aVRzAA0kI0R_rlWl', symObjAddr: 0x76E4, symBinAddr: 0x100094800, symSize: 0xB8 } - - { offset: 0x14B9A2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV12filteredLogs33_53A08B2D54535736BABDFC5A434D255CLLSayAA0B5EntryVGvg', symObjAddr: 0xDE8, symBinAddr: 0x10008E424, symSize: 0x334 } - - { offset: 0x14C8C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_', symObjAddr: 0x111C, symBinAddr: 0x10008E758, symSize: 0x98C } - - { offset: 0x14CB83, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_', symObjAddr: 0x1AA8, symBinAddr: 0x10008F0E4, symSize: 0x5C } - - { offset: 0x14CC15, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_', symObjAddr: 0x1B04, symBinAddr: 0x10008F140, symSize: 0x82C } - - { offset: 0x14CDE9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_', symObjAddr: 0x2330, symBinAddr: 0x10008F96C, symSize: 0x240 } - - { offset: 0x14CFD1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_', symObjAddr: 0x2570, symBinAddr: 0x10008FBAC, symSize: 0x1114 } - - { offset: 0x14D331, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_yycfU0_', symObjAddr: 0x3684, symBinAddr: 0x100090CC0, symSize: 0x7C } - - { offset: 0x14D38B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_yycfU0_yyXEfU_', symObjAddr: 0x3700, symBinAddr: 0x100090D3C, symSize: 0x5A0 } - - { offset: 0x14D3FA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_yyScMYccfU0_', symObjAddr: 0x3CA0, symBinAddr: 0x1000912DC, symSize: 0x10C } - - { offset: 0x14D555, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A76_yXEfU1_', symObjAddr: 0x3E38, symBinAddr: 0x1000913E8, symSize: 0xF8 } - - { offset: 0x14D59D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvgyAA0B5EntryVSgcfU0_', symObjAddr: 0x3F30, symBinAddr: 0x1000914E0, symSize: 0x90 } - - { offset: 0x14D60A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x3FC0, symBinAddr: 0x100091570, symSize: 0x100 } - - { offset: 0x14D73E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV4bodyQrvg', symObjAddr: 0x40C0, symBinAddr: 0x100091670, symSize: 0x1F4 } - - { offset: 0x14D8C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV4bodyQrvg7SwiftUI9TupleViewVyAE0I0PAEE5frame8minWidth05idealL003maxL00K6Height0mO00nO09alignmentQr12CoreGraphics7CGFloatVSg_A5uE9AlignmentVtFQOyAiEE9lineLimit_13reservesSpaceQrSi_SbtFQOyAE4TextV_Qo__Qo__AE6HStackVyAGyA__AE6SpacerVAiEE11scaleEffect_6anchorQrAT_AE9UnitPointVtFQOyAA0bc3TagI0V_Qo_SgtGGtGyXEfU_', symObjAddr: 0x42B4, symBinAddr: 0x100091864, symSize: 0x61C } - - { offset: 0x14D99F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV4bodyQrvg7SwiftUI9TupleViewVyAE0I0PAEE5frame8minWidth05idealL003maxL00K6Height0mO00nO09alignmentQr12CoreGraphics7CGFloatVSg_A5uE9AlignmentVtFQOyAiEE9lineLimit_13reservesSpaceQrSi_SbtFQOyAE4TextV_Qo__Qo__AE6HStackVyAGyA__AE6SpacerVAiEE11scaleEffect_6anchorQrAT_AE9UnitPointVtFQOyAA0bc3TagI0V_Qo_SgtGGtGyXEfU_A14_yXEfU_', symObjAddr: 0x48D0, symBinAddr: 0x100091E80, symSize: 0x3F4 } - - { offset: 0x14DAFA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x4CE4, symBinAddr: 0x100092274, symSize: 0x4 } - - { offset: 0x14DB1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewV4bodyQrvg', symObjAddr: 0x4CE8, symBinAddr: 0x100092278, symSize: 0x31C } - - { offset: 0x14DC5E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewV7SwiftUI0E0AadEP4body4BodyQzvgTW', symObjAddr: 0x5004, symBinAddr: 0x100092594, symSize: 0xC } - - { offset: 0x14DC8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewV4bodyQrvgAA10CodeEditorVSgyXEfU_', symObjAddr: 0x5010, symBinAddr: 0x1000925A0, symSize: 0x16C } - - { offset: 0x14DD67, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x517C, symBinAddr: 0x10009270C, symSize: 0x64 } - - { offset: 0x14DF46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwCP', symObjAddr: 0x0, symBinAddr: 0x1000948BC, symSize: 0x15C } - - { offset: 0x14DF5A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwxx', symObjAddr: 0x1AC, symBinAddr: 0x100094A18, symSize: 0xB0 } - - { offset: 0x14DF6E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwcp', symObjAddr: 0x25C, symBinAddr: 0x100094AC8, symSize: 0x130 } - - { offset: 0x14DF82, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwca', symObjAddr: 0x38C, symBinAddr: 0x100094BF8, symSize: 0x1A8 } - - { offset: 0x14DF96, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwtk', symObjAddr: 0x534, symBinAddr: 0x100094DA0, symSize: 0x104 } - - { offset: 0x14DFAA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwta', symObjAddr: 0x638, symBinAddr: 0x100094EA4, symSize: 0x17C } - - { offset: 0x14DFBE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwet', symObjAddr: 0x7B4, symBinAddr: 0x100095020, symSize: 0xC } - - { offset: 0x14DFD2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwst', symObjAddr: 0x878, symBinAddr: 0x1000950E4, symSize: 0xC } - - { offset: 0x14DFE6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVMr', symObjAddr: 0x94C, symBinAddr: 0x1000951B8, symSize: 0xA0 } - - { offset: 0x14DFFA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwCP', symObjAddr: 0xA40, symBinAddr: 0x100095258, symSize: 0xD0 } - - { offset: 0x14E00E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwxx', symObjAddr: 0xB10, symBinAddr: 0x100095328, symSize: 0x68 } - - { offset: 0x14E022, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwcp', symObjAddr: 0xB78, symBinAddr: 0x100095390, symSize: 0xA4 } - - { offset: 0x14E036, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwca', symObjAddr: 0xC1C, symBinAddr: 0x100095434, symSize: 0xE0 } - - { offset: 0x14E04A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwtk', symObjAddr: 0xCFC, symBinAddr: 0x100095514, symSize: 0x78 } - - { offset: 0x14E05E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwta', symObjAddr: 0xD74, symBinAddr: 0x10009558C, symSize: 0xB0 } - - { offset: 0x14E072, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwet', symObjAddr: 0xE24, symBinAddr: 0x10009563C, symSize: 0xC } - - { offset: 0x14E086, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwst', symObjAddr: 0xEB0, symBinAddr: 0x1000956C8, symSize: 0xC } - - { offset: 0x14E09A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVMr', symObjAddr: 0xF7C, symBinAddr: 0x100095764, symSize: 0x80 } - - { offset: 0x14E433, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOAFs0D3KeyAAWl', symObjAddr: 0x2498, symBinAddr: 0x100096A8C, symSize: 0x40 } - - { offset: 0x14E447, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOAESeAAWl', symObjAddr: 0x2548, symBinAddr: 0x100096ACC, symSize: 0x40 } - - { offset: 0x14E45B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOAESEAAWl', symObjAddr: 0x26DC, symBinAddr: 0x100096B0C, symSize: 0x40 } - - { offset: 0x14E46F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOMa', symObjAddr: 0x29E8, symBinAddr: 0x100096C14, symSize: 0x10 } - - { offset: 0x14E483, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOwet', symObjAddr: 0x29F8, symBinAddr: 0x100096C24, symSize: 0x90 } - - { offset: 0x14E497, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOwst', symObjAddr: 0x2A88, symBinAddr: 0x100096CB4, symSize: 0xB0 } - - { offset: 0x14E4AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOMa', symObjAddr: 0x2B4C, symBinAddr: 0x100096D64, symSize: 0x10 } - - { offset: 0x14E4BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOMa', symObjAddr: 0x2CA0, symBinAddr: 0x100096D74, symSize: 0x10 } - - { offset: 0x14E4D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSHAASQWb', symObjAddr: 0x2CB0, symBinAddr: 0x100096D84, symSize: 0x4 } - - { offset: 0x14E4E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOACSQAAWl', symObjAddr: 0x2CB4, symBinAddr: 0x100096D88, symSize: 0x40 } - - { offset: 0x14E4FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSHAASQWb', symObjAddr: 0x2CF4, symBinAddr: 0x100096DC8, symSize: 0x4 } - - { offset: 0x14E50F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOAESQAAWl', symObjAddr: 0x2CF8, symBinAddr: 0x100096DCC, symSize: 0x40 } - - { offset: 0x14E523, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOSHAASQWb', symObjAddr: 0x2D38, symBinAddr: 0x100096E0C, symSize: 0x4 } - - { offset: 0x14E537, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOAFSQAAWl', symObjAddr: 0x2D3C, symBinAddr: 0x100096E10, symSize: 0x40 } - - { offset: 0x14E54B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs0D3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x2D7C, symBinAddr: 0x100096E50, symSize: 0x4 } - - { offset: 0x14E55F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x2D80, symBinAddr: 0x100096E54, symSize: 0x40 } - - { offset: 0x14E573, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs0D3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x2DC0, symBinAddr: 0x100096E94, symSize: 0x4 } - - { offset: 0x14E587, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x2DC4, symBinAddr: 0x100096E98, symSize: 0x40 } - - { offset: 0x14E59B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOAESYAAWl', symObjAddr: 0x3004, symBinAddr: 0x1000970D8, symSize: 0x40 } - - { offset: 0x14E5BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1194, symBinAddr: 0x10009597C, symSize: 0xC } - - { offset: 0x14E621, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSHAASH9hashValueSivgTW', symObjAddr: 0x11A0, symBinAddr: 0x100095988, symSize: 0xC4 } - - { offset: 0x14E6CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x1264, symBinAddr: 0x100095A4C, symSize: 0xA0 } - - { offset: 0x14E733, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x1304, symBinAddr: 0x100095AEC, symSize: 0xC0 } - - { offset: 0x14E7E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1474, symBinAddr: 0x100095C5C, symSize: 0x84 } - - { offset: 0x14E89C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSHAASH9hashValueSivgTW', symObjAddr: 0x14F8, symBinAddr: 0x100095CE0, symSize: 0x60 } - - { offset: 0x14E91A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x1558, symBinAddr: 0x100095D40, symSize: 0x40 } - - { offset: 0x14E96C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x1598, symBinAddr: 0x100095D80, symSize: 0x5C } - - { offset: 0x14E9CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x1648, symBinAddr: 0x100095E30, symSize: 0x5C } - - { offset: 0x14E9F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x16A4, symBinAddr: 0x100095E8C, symSize: 0x4C } - - { offset: 0x14EA23, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x1FAC, symBinAddr: 0x1000966BC, symSize: 0x28 } - - { offset: 0x14EA3F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x1FD4, symBinAddr: 0x1000966E4, symSize: 0x28 } - - { offset: 0x14EA6B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeO8rawValueSSvg', symObjAddr: 0xFFC, symBinAddr: 0x1000957E4, symSize: 0x194 } - - { offset: 0x14EAC1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1190, symBinAddr: 0x100095978, symSize: 0x4 } - - { offset: 0x14EAD9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1190, symBinAddr: 0x100095978, symSize: 0x4 } - - { offset: 0x14EB38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSYAASY8rawValuexSg03RawE0Qz_tcfCTW', symObjAddr: 0x13C4, symBinAddr: 0x100095BAC, symSize: 0x2C } - - { offset: 0x14EB61, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSYAASY8rawValue03RawE0QzvgTW', symObjAddr: 0x13F0, symBinAddr: 0x100095BD8, symSize: 0x84 } - - { offset: 0x14EBA6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSYAASY8rawValuexSg03RawF0Qz_tcfCTW', symObjAddr: 0x15F4, symBinAddr: 0x100095DDC, symSize: 0x2C } - - { offset: 0x14EBCF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSYAASY8rawValue03RawF0QzvgTW', symObjAddr: 0x1620, symBinAddr: 0x100095E08, symSize: 0x28 } - - { offset: 0x14EBE3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV6encode2toys7Encoder_p_tKF', symObjAddr: 0x16F0, symBinAddr: 0x100095ED8, symSize: 0x29C } - - { offset: 0x14EC1B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV4fromACs7Decoder_p_tKcfC', symObjAddr: 0x198C, symBinAddr: 0x100096174, symSize: 0x47C } - - { offset: 0x14EC63, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs0D3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0x1EC8, symBinAddr: 0x1000965F0, symSize: 0xA8 } - - { offset: 0x14EC93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs0D3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x1F70, symBinAddr: 0x100096698, symSize: 0x24 } - - { offset: 0x14ECCA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2038, symBinAddr: 0x10009670C, symSize: 0x4 } - - { offset: 0x14ECE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2038, symBinAddr: 0x10009670C, symSize: 0x4 } - - { offset: 0x14ECF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x203C, symBinAddr: 0x100096710, symSize: 0x14 } - - { offset: 0x14ED07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x2050, symBinAddr: 0x100096724, symSize: 0x14 } - - { offset: 0x14ED1B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV23__derived_struct_equalsySbAC_ACtFZTf4nnd_n', symObjAddr: 0x2090, symBinAddr: 0x100096738, symSize: 0x354 } - - { offset: 0x14EDF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelO8rawValueACSgSS_tcfCTf4nd_n', symObjAddr: 0x27CC, symBinAddr: 0x100096B4C, symSize: 0x64 } - - { offset: 0x14EE27, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeO8rawValueAESgSS_tcfCTf4nd_n', symObjAddr: 0x2830, symBinAddr: 0x100096BB0, symSize: 0x64 } - - { offset: 0x14EE5E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x2E04, symBinAddr: 0x100096ED8, symSize: 0x200 } - - { offset: 0x14F08D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC6sharedACvpZ', symObjAddr: 0x24FD0, symBinAddr: 0x10012EDF8, symSize: 0x0 } - - { offset: 0x14F321, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSiIeggy_So6NSDataCSiIeyByy_TR', symObjAddr: 0x0, symBinAddr: 0x10009711C, symSize: 0x8C } - - { offset: 0x14F339, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC6shared_WZ', symObjAddr: 0x8C, symBinAddr: 0x1000971A8, symSize: 0x3C } - - { offset: 0x14F942, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCMU', symObjAddr: 0x3524, symBinAddr: 0x10009A5D8, symSize: 0x8 } - - { offset: 0x14F956, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCMa', symObjAddr: 0x352C, symBinAddr: 0x10009A5E0, symSize: 0x38 } - - { offset: 0x14F96A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCMr', symObjAddr: 0x3564, symBinAddr: 0x10009A618, symSize: 0x10C } - - { offset: 0x14F9C0, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0x399C, symBinAddr: 0x10009A7F8, symSize: 0x368 } - - { offset: 0x14FA83, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tFSS_ypTg5', symObjAddr: 0x3D04, symBinAddr: 0x10009AB60, symSize: 0x1AC } - - { offset: 0x14FB5D, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKF8Swiftier10EventEntryV_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10fG10V_AGtXEfU_Tf1cn_n', symObjAddr: 0x3F94, symBinAddr: 0x10009AD0C, symSize: 0x108 } - - { offset: 0x14FD8D, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFySryxGz_SiztKXEfU_8Swiftier10EventEntryV_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10fG10V_AGtXEfU_Tf1nnncn_n', symObjAddr: 0x409C, symBinAddr: 0x10009AE14, symSize: 0xBE0 } - - { offset: 0x1501B2, size: 0x8, addend: 0x0, symName: '_$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSry8Swiftier10EventEntryVG_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10jK10V_AGtXEfU_Tf1nncn_n', symObjAddr: 0x4C7C, symBinAddr: 0x10009B9F4, symSize: 0x404 } - - { offset: 0x1502E6, size: 0x8, addend: 0x0, symName: '_$sSr13_mergeTopRuns_6buffer2bySbSaySnySiGGz_SpyxGSbx_xtKXEtKF8Swiftier10EventEntryV_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10gH10V_AGtXEfU_Tf1nncn_n', symObjAddr: 0x5080, symBinAddr: 0x10009BDF8, symSize: 0x284 } - - { offset: 0x15066B, size: 0x8, addend: 0x0, symName: '_$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlF8Swiftier10EventEntryV_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10hI10V_AGtXEfU_Tf1nnnnc_n', symObjAddr: 0x5304, symBinAddr: 0x10009C07C, symSize: 0x904 } - - { offset: 0x1507B5, size: 0x8, addend: 0x0, symName: '_$ss32_copyCollectionToContiguousArrayys0dE0Vy7ElementQzGxSlRzlFs0E5SliceVy8Swiftier10EventEntryVG_Tg5', symObjAddr: 0x5C08, symBinAddr: 0x10009C980, symSize: 0x128 } - - { offset: 0x150907, size: 0x8, addend: 0x0, symName: '_$sSD4KeysVyxSD5IndexVyxq__GcigSS_ypTg5Tf4nn_g', symObjAddr: 0x5D30, symBinAddr: 0x10009CAA8, symSize: 0x54 } - - { offset: 0x150B5B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_Tf2ni_nTA', symObjAddr: 0x74FC, symBinAddr: 0x10009E210, symSize: 0x8 } - - { offset: 0x150B6F, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x7504, symBinAddr: 0x10009E218, symSize: 0x10 } - - { offset: 0x150B83, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x7514, symBinAddr: 0x10009E228, symSize: 0x8 } - - { offset: 0x150B97, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVWOb', symObjAddr: 0x7560, symBinAddr: 0x10009E230, symSize: 0x44 } - - { offset: 0x150BAB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC22resetForNewCoreSessionyyFyyScMYccfU_TA', symObjAddr: 0x75A4, symBinAddr: 0x10009E274, symSize: 0x8 } - - { offset: 0x150BBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_TA', symObjAddr: 0x75F4, symBinAddr: 0x10009E2C4, symSize: 0x8 } - - { offset: 0x150BD3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC15getRecentEvents10sinceIndex10completionySi_ySayAA14ProcessedEventVG_SitctFys5Error_pcfU_TA', symObjAddr: 0x7620, symBinAddr: 0x10009E2F0, symSize: 0xC } - - { offset: 0x150BE7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC15getRecentEvents10sinceIndex10completionySi_ySayAA14ProcessedEventVG_SitctFy10Foundation4DataV_SitcfU0_TA', symObjAddr: 0x7650, symBinAddr: 0x10009E320, symSize: 0x8 } - - { offset: 0x150BFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_yyScMYccfU1_TA', symObjAddr: 0x7708, symBinAddr: 0x10009E358, symSize: 0x8 } - - { offset: 0x150C0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_yyScMYccfU_TA', symObjAddr: 0x7710, symBinAddr: 0x10009E360, symSize: 0x8 } - - { offset: 0x150C23, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC20startXPCEventPolling33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySo7NSTimerCYbcfU_TA', symObjAddr: 0x7718, symBinAddr: 0x10009E368, symSize: 0x8 } - - { offset: 0x150DA2, size: 0x8, addend: 0x0, symName: '_$sSa6append10contentsOfyqd__n_t7ElementQyd__RszSTRd__lF8Swiftier10EventEntryV_SayAGGTg5', symObjAddr: 0x10A4, symBinAddr: 0x100098158, symSize: 0x108 } - - { offset: 0x151106, size: 0x8, addend: 0x0, symName: '_$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFSay8Swiftier10EventEntryVG_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10eF10V_AGtXEfU_Tf1cn_n', symObjAddr: 0x20E4, symBinAddr: 0x100099198, symSize: 0x84 } - - { offset: 0x1515A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC7Combine16ObservableObjectAadEP16objectWillChange0fhI9PublisherQzvgTW', symObjAddr: 0x3720, symBinAddr: 0x10009A724, symSize: 0x3C } - - { offset: 0x151638, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCACyc33_AAF48CBC8FFB4DC8247F0A0CFA4886E6Llfc', symObjAddr: 0x158, symBinAddr: 0x10009720C, symSize: 0x2AC } - - { offset: 0x151750, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC20startXPCEventPolling33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyF', symObjAddr: 0x404, symBinAddr: 0x1000974B8, symSize: 0x100 } - - { offset: 0x151774, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC20startXPCEventPolling33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySo7NSTimerCYbcfU_', symObjAddr: 0x504, symBinAddr: 0x1000975B8, symSize: 0x54 } - - { offset: 0x151841, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyF', symObjAddr: 0x558, symBinAddr: 0x10009760C, symSize: 0x1BC } - - { offset: 0x1518F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_', symObjAddr: 0x714, symBinAddr: 0x1000977C8, symSize: 0x67C } - - { offset: 0x151BC9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_yyScMYccfU_', symObjAddr: 0xD90, symBinAddr: 0x100097E44, symSize: 0x12C } - - { offset: 0x151C84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_yyScMYccfU1_', symObjAddr: 0xEBC, symBinAddr: 0x100097F70, symSize: 0x1E8 } - - { offset: 0x151F7B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC14stopMonitoringyyF', symObjAddr: 0x11AC, symBinAddr: 0x100098260, symSize: 0x80 } - - { offset: 0x151FA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC22resetForNewCoreSessionyyF', symObjAddr: 0x122C, symBinAddr: 0x1000982E0, symSize: 0x230 } - - { offset: 0x151FEE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC22resetForNewCoreSessionyyFyyScMYccfU_', symObjAddr: 0x145C, symBinAddr: 0x100098510, symSize: 0xFC } - - { offset: 0x1520B3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGF', symObjAddr: 0x1558, symBinAddr: 0x10009860C, symSize: 0x6DC } - - { offset: 0x1524F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_Tf2ni_n', symObjAddr: 0x1C34, symBinAddr: 0x100098CE8, symSize: 0x25C } - - { offset: 0x152745, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10EventEntryV_AGtXEfU_', symObjAddr: 0x1E90, symBinAddr: 0x100098F44, symSize: 0x254 } - - { offset: 0x1527A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC15parseEventEntry33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LL4fromAA0eF0VSgyp_tF', symObjAddr: 0x2168, symBinAddr: 0x10009921C, symSize: 0x884 } - - { offset: 0x152B25, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC18recursiveJsonClean33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LL_5depthypSgAG_SitF', symObjAddr: 0x29EC, symBinAddr: 0x100099AA0, symSize: 0x61C } - - { offset: 0x152F9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCfd', symObjAddr: 0x3008, symBinAddr: 0x10009A0BC, symSize: 0x18C } - - { offset: 0x152FC1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCfZ', symObjAddr: 0x3194, symBinAddr: 0x10009A248, symSize: 0x30 } - - { offset: 0x153015, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCfD', symObjAddr: 0x31C4, symBinAddr: 0x10009A278, symSize: 0x360 } - - { offset: 0x1530C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC12mapEventType33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyAA0E5EntryV0eF0OSSFTf4nd_n', symObjAddr: 0x5D84, symBinAddr: 0x10009CAFC, symSize: 0x480 } - - { offset: 0x1533C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27collapsePrettyPrintedArrays33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyS2SFTf4nd_n', symObjAddr: 0x6204, symBinAddr: 0x10009CF7C, symSize: 0x628 } - - { offset: 0x1539A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC12formatAsJson33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLySSypSgFTf4nd_n', symObjAddr: 0x682C, symBinAddr: 0x10009D5A4, symSize: 0x2AC } - - { offset: 0x153A53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC19calculateHighlights33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LL3forSayAA14HighlightRangeVGSS_tFTf4nd_n', symObjAddr: 0x6AD8, symBinAddr: 0x10009D850, symSize: 0x99C } - - { offset: 0x154837, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVMa', symObjAddr: 0x284, symBinAddr: 0x10009E624, symSize: 0x38 } - - { offset: 0x15484B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOMa', symObjAddr: 0x424, symBinAddr: 0x10009E65C, symSize: 0x10 } - - { offset: 0x15485F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwCP', symObjAddr: 0x434, symBinAddr: 0x10009E66C, symSize: 0x230 } - - { offset: 0x154873, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwxx', symObjAddr: 0x664, symBinAddr: 0x10009E89C, symSize: 0x108 } - - { offset: 0x154887, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwcp', symObjAddr: 0x76C, symBinAddr: 0x10009E9A4, symSize: 0x200 } - - { offset: 0x15489B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwca', symObjAddr: 0x96C, symBinAddr: 0x10009EBA4, symSize: 0x340 } - - { offset: 0x1548AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwtk', symObjAddr: 0xCAC, symBinAddr: 0x10009EEE4, symSize: 0x160 } - - { offset: 0x1548C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwta', symObjAddr: 0xE0C, symBinAddr: 0x10009F044, symSize: 0x284 } - - { offset: 0x1548D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwet', symObjAddr: 0x1090, symBinAddr: 0x10009F2C8, symSize: 0xC } - - { offset: 0x1548EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwst', symObjAddr: 0x1128, symBinAddr: 0x10009F360, symSize: 0xC } - - { offset: 0x1548FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVMr', symObjAddr: 0x11B4, symBinAddr: 0x10009F3EC, symSize: 0x88 } - - { offset: 0x154913, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5StateVy8Swiftier8LogEntryVSgGMa', symObjAddr: 0x123C, symBinAddr: 0x10009F474, symSize: 0x60 } - - { offset: 0x154927, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0x12F0, symBinAddr: 0x10009F4D4, symSize: 0x10 } - - { offset: 0x154A64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOSHAASQWb', symObjAddr: 0x3A74, symBinAddr: 0x1000A1B08, symSize: 0x4 } - - { offset: 0x154A78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOAESQAAWl', symObjAddr: 0x3A78, symBinAddr: 0x1000A1B0C, symSize: 0x40 } - - { offset: 0x154A8C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVWOb', symObjAddr: 0x3ABC, symBinAddr: 0x1000A1B50, symSize: 0x44 } - - { offset: 0x154AA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyyYaYbcfU0_TA', symObjAddr: 0x3B00, symBinAddr: 0x1000A1B94, symSize: 0x64 } - - { offset: 0x154AB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyycfU1_TA', symObjAddr: 0x3BA4, symBinAddr: 0x1000A1BF8, symSize: 0x3C } - - { offset: 0x154AE7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVAC7SwiftUI0D0AAWl', symObjAddr: 0x3C2C, symBinAddr: 0x1000A1C3C, symSize: 0x40 } - - { offset: 0x154AFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOAESHAAWl', symObjAddr: 0x3D38, symBinAddr: 0x1000A1C84, symSize: 0x40 } - - { offset: 0x154B0F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA5ImageVAA24_ForegroundStyleModifierVyAA017HierarchicalShapeG0VGGAA022_EnvironmentKeyWritingH0VyAA4FontVSgGGACyxq_GAA4ViewA2aTRzAA0oH0R_rlWl', symObjAddr: 0x4040, symBinAddr: 0x1000A1E5C, symSize: 0x98 } - - { offset: 0x154B23, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ImageVAA24_ForegroundStyleModifierVyAA017HierarchicalShapeG0VGGACyxq_GAA4ViewA2aMRzAA0kH0R_rlWl', symObjAddr: 0x40D8, symBinAddr: 0x1000A1EF4, symSize: 0x98 } - - { offset: 0x154B37, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSgxSgSHsSHRzlWl', symObjAddr: 0x41F8, symBinAddr: 0x1000A1F8C, symSize: 0x70 } - - { offset: 0x154B4B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOACSHAAWl', symObjAddr: 0x4268, symBinAddr: 0x1000A1FFC, symSize: 0x40 } - - { offset: 0x154B5F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6VStackVyAA9TupleViewVyAEyAGyACyACyACyAA6HStackVyAGyACyAA0G0PAAE11pickerStyleyQrqd__AA06PickerJ0Rd__lFQOyAA0K0VyAA4TextV8Swiftier03LogG0V0G4ModeOAGyAkAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAQ_AVQo__AYtGG_AA09SegmentedkJ0VQo_AA12_FrameLayoutVG_AA6SpacerVAIyAGyACyAkAEALyQrqd__AaMRd__lFQOyAOyAqR0N5LevelOSgAGyAkAEAW_AXQrqd___SbtSHRd__lFQOyAQ_A10_Qo__A11_A11_A11_A11_A11_tGG_AA04MenukJ0VQo_A4_GSg_AkAE4helpyQrAA18LocalizedStringKeyVFQOyAkAE06buttonJ0yQrqd__AA015PrimitiveButtonJ0Rd__lFQOyAA6ButtonVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA29_yAA5ColorVSgGGG_AA011PlainButtonJ0VQo__Qo_AkAEA22_yQrqd__AAA23_Rd__lFQOyA25_yACyACyA27_AA011_ForegroundJ8ModifierVyAA017HierarchicalShapeJ0VGGA33_GG_A42_Qo_tGGtGGAA08_PaddingU0VGA59_GAA011_BackgroundJ8ModifierVyA36_GG_AA7DividerVtGG_AA012_ConditionalD0VyAR09EventListG0VAR0n4ListG0VGtGGA64_GAA13_TaskModifierVGAA25_AppearanceActionModifierVGACyxq_GAaj2aJRzAA0G8ModifierR_rlWl', symObjAddr: 0x4324, symBinAddr: 0x1000A20A0, symSize: 0x78 } - - { offset: 0x154B73, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVyAEyAGyACyACyACyAA6HStackVyAGyACyAA0G0PAAE11pickerStyleyQrqd__AA06PickerJ0Rd__lFQOyAA0K0VyAA4TextV8Swiftier03LogG0V0G4ModeOAGyAkAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAQ_AVQo__AYtGG_AA09SegmentedkJ0VQo_AA12_FrameLayoutVG_AA6SpacerVAIyAGyACyAkAEALyQrqd__AaMRd__lFQOyAOyAqR0N5LevelOSgAGyAkAEAW_AXQrqd___SbtSHRd__lFQOyAQ_A10_Qo__A11_A11_A11_A11_A11_tGG_AA04MenukJ0VQo_A4_GSg_AkAE4helpyQrAA18LocalizedStringKeyVFQOyAkAE06buttonJ0yQrqd__AA015PrimitiveButtonJ0Rd__lFQOyAA6ButtonVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA29_yAA5ColorVSgGGG_AA011PlainButtonJ0VQo__Qo_AkAEA22_yQrqd__AAA23_Rd__lFQOyA25_yACyACyA27_AA011_ForegroundJ8ModifierVyAA017HierarchicalShapeJ0VGGA33_GG_A42_Qo_tGGtGGAA08_PaddingU0VGA59_GAA011_BackgroundJ8ModifierVyA36_GG_AA7DividerVtGG_AA012_ConditionalD0VyAR09EventListG0VAR0n4ListG0VGtGGA64_GAA13_TaskModifierVGACyxq_GAaj2aJRzAA0G8ModifierR_rlWl', symObjAddr: 0x439C, symBinAddr: 0x1000A2118, symSize: 0x90 } - - { offset: 0x154B87, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAEyAGyACyACyACyAA6HStackVyAGyACyAA0G0PAAE11pickerStyleyQrqd__AA06PickerJ0Rd__lFQOyAA0K0VyAA4TextV8Swiftier03LogG0V0G4ModeOAGyAkAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAQ_AVQo__AYtGG_AA09SegmentedkJ0VQo_AA12_FrameLayoutVG_AA6SpacerVAIyAGyACyAkAEALyQrqd__AaMRd__lFQOyAOyAqR0N5LevelOSgAGyAkAEAW_AXQrqd___SbtSHRd__lFQOyAQ_A10_Qo__A11_A11_A11_A11_A11_tGG_AA04MenukJ0VQo_A4_GSg_AkAE4helpyQrAA18LocalizedStringKeyVFQOyAkAE06buttonJ0yQrqd__AA015PrimitiveButtonJ0Rd__lFQOyAA6ButtonVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA29_yAA5ColorVSgGGG_AA011PlainButtonJ0VQo__Qo_AkAEA22_yQrqd__AAA23_Rd__lFQOyA25_yACyACyA27_AA011_ForegroundJ8ModifierVyAA017HierarchicalShapeJ0VGGA33_GG_A42_Qo_tGGtGGAA08_PaddingU0VGA59_GAA011_BackgroundJ8ModifierVyA36_GG_AA7DividerVtGG_AA012_ConditionalD0VyAR09EventListG0VAR0n4ListG0VGtGGA64_GACyxq_GAaj2aJRzAA0G8ModifierR_rlWl', symObjAddr: 0x442C, symBinAddr: 0x1000A21A8, symSize: 0xB8 } - - { offset: 0x155007, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV11isPresentedAC7SwiftUI7BindingVySbG_tcfC', symObjAddr: 0x0, symBinAddr: 0x10009E3F0, symSize: 0x234 } - - { offset: 0x1550BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOSYAASY8rawValuexSg03RawF0Qz_tcfCTW', symObjAddr: 0x13C4, symBinAddr: 0x10009F4E4, symSize: 0x20 } - - { offset: 0x155673, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg', symObjAddr: 0x13F0, symBinAddr: 0x10009F504, symSize: 0x1DC } - - { offset: 0x1557DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_', symObjAddr: 0x15CC, symBinAddr: 0x10009F6E0, symSize: 0x57C } - - { offset: 0x155A1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_', symObjAddr: 0x1B48, symBinAddr: 0x10009FC5C, symSize: 0x2C8 } - - { offset: 0x155B82, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_', symObjAddr: 0x1E10, symBinAddr: 0x10009FF24, symSize: 0x450 } - - { offset: 0x155C7F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A15_yXEfU_', symObjAddr: 0x2260, symBinAddr: 0x1000A0374, symSize: 0x284 } - - { offset: 0x155CBC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_', symObjAddr: 0x24E4, symBinAddr: 0x1000A05F8, symSize: 0xAFC } - - { offset: 0x155DBB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_A27_yXEfU_', symObjAddr: 0x2FE0, symBinAddr: 0x1000A10F4, symSize: 0x664 } - - { offset: 0x155E49, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_yyScMYccfU0_', symObjAddr: 0x3644, symBinAddr: 0x1000A1758, symSize: 0xE4 } - - { offset: 0x155E74, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_A52_yXEfU1_', symObjAddr: 0x3728, symBinAddr: 0x1000A183C, symSize: 0x84 } - - { offset: 0x155EDE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_yyScMYccfU2_', symObjAddr: 0x37AC, symBinAddr: 0x1000A18C0, symSize: 0x5C } - - { offset: 0x155F54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_A62_yXEfU3_', symObjAddr: 0x3868, symBinAddr: 0x1000A191C, symSize: 0x6C } - - { offset: 0x155FBE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyyYaYbcfU0_', symObjAddr: 0x38D4, symBinAddr: 0x1000A1988, symSize: 0x6C } - - { offset: 0x155FE9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyyYaYbcfU0_TQ0_', symObjAddr: 0x3940, symBinAddr: 0x1000A19F4, symSize: 0xD4 } - - { offset: 0x156018, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyyYaYbcfU0_TY1_', symObjAddr: 0x3A14, symBinAddr: 0x1000A1AC8, symSize: 0x3C } - - { offset: 0x156297, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0x3A70, symBinAddr: 0x1000A1B04, symSize: 0x4 } - - { offset: 0x156436, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE6starts4withSbqd___tSTRd__AAQyd__ABRSlFSS_SSTg5', symObjAddr: 0x2FB4, symBinAddr: 0x1000A50B0, symSize: 0x158 } - - { offset: 0x1566C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwCP', symObjAddr: 0x0, symBinAddr: 0x1000A2270, symSize: 0x548 } - - { offset: 0x1566D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwxx', symObjAddr: 0x598, symBinAddr: 0x1000A27B8, symSize: 0x21C } - - { offset: 0x1566EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwcp', symObjAddr: 0x7B4, symBinAddr: 0x1000A29D4, symSize: 0x518 } - - { offset: 0x1566FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwca', symObjAddr: 0xCCC, symBinAddr: 0x1000A2EEC, symSize: 0xAB0 } - - { offset: 0x156713, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwtk', symObjAddr: 0x184C, symBinAddr: 0x1000A399C, symSize: 0x1D8 } - - { offset: 0x156727, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwta', symObjAddr: 0x1A24, symBinAddr: 0x1000A3B74, symSize: 0x55C } - - { offset: 0x15673B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwet', symObjAddr: 0x1F80, symBinAddr: 0x1000A40D0, symSize: 0xC } - - { offset: 0x15674F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwst', symObjAddr: 0x200C, symBinAddr: 0x1000A415C, symSize: 0xC } - - { offset: 0x156763, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVMr', symObjAddr: 0x20B4, symBinAddr: 0x1000A4204, symSize: 0x84 } - - { offset: 0x156777, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11EnvironmentV7ContentOyAA7BindingVyAA16PresentationModeVG_GMa', symObjAddr: 0x2138, symBinAddr: 0x1000A4288, symSize: 0x60 } - - { offset: 0x15678B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x21EC, symBinAddr: 0x1000A42E8, symSize: 0x10 } - - { offset: 0x157073, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE4TextV_Qo__AiEE9formStyleyQrqd__AE04FormQ0Rd__lFQOyAE0R0VyAE19_ConditionalContentVyA_yAC17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0V4InfoVFQOy_Qo_AC06remotebW0A1_LLyQrA3_0B9RoutePairVFQOy_Qo_GAC05basicW0A1_LLQrvpQOy_Qo_GG_AE07GroupedrQ0VQo_tGyXEfU_A14_yXEfU_TA', symObjAddr: 0xCB88, symBinAddr: 0x1000AEACC, symSize: 0x8 } - - { offset: 0x157087, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyACyAA9TupleViewVyAA7SectionVyAA4TextVAEy8Swiftier9DetailRowV_A4LtGAA05EmptyF0VG_AGyAiA7ForEachVySnySiGSiALGAOGSgtGAEyAGyAiEyAL_A6lEyAL_A2LtGSgALSgtGAOG_AEyAGyAilOG_ARyASSiAGyAiEyAL_A3lYtGAOGGtGSgtGGAEyAGyAixOG_AGyAiEyAL_A3LtGAOGtGGACyxq_GAA0F0A2AA15_RzAAA15_R_rlWl', symObjAddr: 0xCB90, symBinAddr: 0x1000AEAD4, symSize: 0x98 } - - { offset: 0x15709B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA9TupleViewVyAA7SectionVyAA4TextVAEy8Swiftier9DetailRowV_A4LtGAA05EmptyF0VG_AGyAiA7ForEachVySnySiGSiALGAOGSgtGAEyAGyAiEyAL_A6lEyAL_A2LtGSgALSgtGAOG_AEyAGyAilOG_ARyASSiAGyAiEyAL_A3lYtGAOGGtGSgtGGACyxq_GAA0F0A2AA10_RzAAA10_R_rlWl', symObjAddr: 0xCC28, symBinAddr: 0x1000AEB6C, symSize: 0xC0 } - - { offset: 0x1570AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI05TupleD0VyAA0C3RowV_A4NtGyXEfU_TA', symObjAddr: 0xCD18, symBinAddr: 0x1000AEC2C, symSize: 0x8 } - - { offset: 0x1570C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI7ForEachVySnySiGSiAA0C3RowVGyXEfU0_TA', symObjAddr: 0xCD20, symBinAddr: 0x1000AEC34, symSize: 0x8 } - - { offset: 0x1570D7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySnySiGSi8Swiftier9DetailRowVGACyxq_q0_GAA4ViewA2aJR0_rlWl', symObjAddr: 0xCD28, symBinAddr: 0x1000AEC3C, symSize: 0x70 } - - { offset: 0x1570EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVAC7SwiftUI4ViewAAWl', symObjAddr: 0xCD98, symBinAddr: 0x1000AECAC, symSize: 0x40 } - - { offset: 0x1570FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI7ForEachVySnySiGSiAA0C3RowVGyXEfU0_AOSicfU_TA', symObjAddr: 0xCDFC, symBinAddr: 0x1000AED10, symSize: 0x8 } - - { offset: 0x157113, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVWOc', symObjAddr: 0xCEBC, symBinAddr: 0x1000AED18, symSize: 0x34 } - - { offset: 0x157127, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVWOh', symObjAddr: 0xCEF0, symBinAddr: 0x1000AED4C, symSize: 0x2C } - - { offset: 0x15713B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI05TupleD0VyAA0C3RowV_A6nLyAN_A2NtGSgANSgtGyXEfU_TA', symObjAddr: 0xCF1C, symBinAddr: 0x1000AED78, symSize: 0x8 } - - { offset: 0x15714F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVFAA0C3RowVyXEfU0_TA', symObjAddr: 0xCF24, symBinAddr: 0x1000AED80, symSize: 0x8 } - - { offset: 0x157163, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI7SectionVyAJ4TextVAJ05TupleD0VyAA0C3RowV_A3rPyAR_A2RtGSgtGAJ05EmptyD0VGSicfU1_TA', symObjAddr: 0xD184, symBinAddr: 0x1000AEFE0, symSize: 0x50 } - - { offset: 0x157177, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7SectionVyAA4TextVAA9TupleViewVy8Swiftier9DetailRowV_A3jGyAJ_A2JtGSgtGAA05EmptyF0VGACyxq_q0_GAA0F0A2aRRzAaRR_AaRR0_rlWl', symObjAddr: 0xD1D4, symBinAddr: 0x1000AF030, symSize: 0xA4 } - - { offset: 0x15718B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI7SectionVyAJ4TextVAJ05TupleD0VyAA0C3RowV_A3rPyAR_A2RtGSgtGAJ05EmptyD0VGSicfU1_AUyXEfU_TA', symObjAddr: 0xD2B4, symBinAddr: 0x1000AF0D4, symSize: 0x8 } - - { offset: 0x15719F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI9TupleViewVy8Swiftier9DetailRowV_A2FtGSgWOi0_', symObjAddr: 0xD2F0, symBinAddr: 0x1000AF0DC, symSize: 0x28 } - - { offset: 0x15724D, size: 0x8, addend: 0x0, symName: '_$sSa37_appendElementAssumeUniqueAndCapacity_03newB0ySi_xntFSs_Tg5', symObjAddr: 0xE2F0, symBinAddr: 0x1000B00C8, symSize: 0x1C } - - { offset: 0x1572A3, size: 0x8, addend: 0x0, symName: '_$sSa37_appendElementAssumeUniqueAndCapacity_03newB0ySi_xntFSS_Tg5', symObjAddr: 0xE30C, symBinAddr: 0x1000B00E4, symSize: 0x18 } - - { offset: 0x1572F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg7SwiftUI05TupleD0VyAA0C3RowV_A2JtGyXEfU_TA', symObjAddr: 0xE3A4, symBinAddr: 0x1000B017C, symSize: 0x8 } - - { offset: 0x157309, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg7SwiftUI05TupleD0VyAA0C3RowV_A3JtGyXEfU0_TA', symObjAddr: 0xE3AC, symBinAddr: 0x1000B0184, symSize: 0x8 } - - { offset: 0x15731D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwxx', symObjAddr: 0xE3F8, symBinAddr: 0x1000B018C, symSize: 0x38 } - - { offset: 0x157331, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwcp', symObjAddr: 0xE430, symBinAddr: 0x1000B01C4, symSize: 0x7C } - - { offset: 0x157345, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwca', symObjAddr: 0xE4AC, symBinAddr: 0x1000B0240, symSize: 0xB4 } - - { offset: 0x157359, size: 0x8, addend: 0x0, symName: ___swift_memcpy72_8, symObjAddr: 0xE560, symBinAddr: 0x1000B02F4, symSize: 0x24 } - - { offset: 0x15736D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwta', symObjAddr: 0xE584, symBinAddr: 0x1000B0318, symSize: 0x7C } - - { offset: 0x157381, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwet', symObjAddr: 0xE600, symBinAddr: 0x1000B0394, symSize: 0x48 } - - { offset: 0x157395, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwst', symObjAddr: 0xE648, symBinAddr: 0x1000B03DC, symSize: 0x50 } - - { offset: 0x1573A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVMa', symObjAddr: 0xE698, symBinAddr: 0x1000B042C, symSize: 0x10 } - - { offset: 0x1573BD, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyACyAA4TextVAA14_PaddingLayoutVG_AA0G0PAAE9formStyleyQrqd__AA04FormL0Rd__lFQOyAA0M0VyAA012_ConditionalD0VyATyAGyAA7SectionVyAiGy8Swiftier9DetailRowV_A4YtGAA05EmptyG0VG_AVyAiA7ForEachVySnySiGSiAYGA0_GSgtGAGyAVyAiGyAY_A6yGyAY_A2YtGSgAYSgtGA0_G_AGyAVyAiYA0_G_A3_yA4_SiAVyAiGyAY_A3YA10_tGA0_GGtGSgtGGAGyAVyAIA9_A0_G_AVyAiGyAY_A3YtGA0_GtGGG_AA07GroupedmL0VQo_tGGAA06_FrameJ0VGACyxq_GAam2aMRzAA0G8ModifierR_rlWl', symObjAddr: 0xE6AC, symBinAddr: 0x1000B0440, symSize: 0x98 } - - { offset: 0x1573D1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0xE744, symBinAddr: 0x1000B04D8, symSize: 0x10 } - - { offset: 0x1573E5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvgyycfU0_TA', symObjAddr: 0xE758, symBinAddr: 0x1000B04EC, symSize: 0x8 } - - { offset: 0x1573F9, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6HStackVyAA9TupleViewVyACyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAA16_FixedSizeLayoutVGAA06_TraitkL0VyAA0o8PrioritypJ0VGG_AA6SpacerVACyACyACyAnKyAI14TruncationModeOGGAVGAA14_OpacityEffectVGtGGAA08_PaddingO0VGAA01_d5ShapeL0VyAA9RectangleVGGACyxq_GAA0G0A2AA18_RzAA0gL0R_rlWl', symObjAddr: 0xE760, symBinAddr: 0x1000B04F4, symSize: 0x98 } - - { offset: 0x15740D, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyACyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAA16_FixedSizeLayoutVGAA06_TraitkL0VyAA0o8PrioritypJ0VGG_AA6SpacerVACyACyACyAnKyAI14TruncationModeOGGAVGAA14_OpacityEffectVGtGGAA08_PaddingO0VGACyxq_GAA0G0A2AA12_RzAA0gL0R_rlWl', symObjAddr: 0xE7F8, symBinAddr: 0x1000B058C, symSize: 0x98 } - - { offset: 0x157421, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvgyycfU0_yyScMYccfU0_TA', symObjAddr: 0xE968, symBinAddr: 0x1000B0678, symSize: 0x8 } - - { offset: 0x157435, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0xE970, symBinAddr: 0x1000B0680, symSize: 0x10 } - - { offset: 0x157449, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0xE980, symBinAddr: 0x1000B0690, symSize: 0x8 } - - { offset: 0x15745D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwCP', symObjAddr: 0xEB2C, symBinAddr: 0x1000B07B4, symSize: 0x550 } - - { offset: 0x157471, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwxx', symObjAddr: 0xF07C, symBinAddr: 0x1000B0D04, symSize: 0x210 } - - { offset: 0x157485, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwcp', symObjAddr: 0xF28C, symBinAddr: 0x1000B0F14, symSize: 0x51C } - - { offset: 0x157499, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwca', symObjAddr: 0xF7A8, symBinAddr: 0x1000B1430, symSize: 0xAD0 } - - { offset: 0x1574AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwtk', symObjAddr: 0x10278, symBinAddr: 0x1000B1F00, symSize: 0x1BC } - - { offset: 0x1574C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwta', symObjAddr: 0x10434, symBinAddr: 0x1000B20BC, symSize: 0x574 } - - { offset: 0x1574D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwet', symObjAddr: 0x109A8, symBinAddr: 0x1000B2630, symSize: 0xC } - - { offset: 0x1574E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwst', symObjAddr: 0x10A78, symBinAddr: 0x1000B2700, symSize: 0xC } - - { offset: 0x1574FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVMr', symObjAddr: 0x10B7C, symBinAddr: 0x1000B27D4, symSize: 0x90 } - - { offset: 0x157511, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11EnvironmentV7ContentOyAA11ColorSchemeO_GMa', symObjAddr: 0x10C0C, symBinAddr: 0x1000B2864, symSize: 0x54 } - - { offset: 0x157525, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x10C60, symBinAddr: 0x1000B28B8, symSize: 0x10 } - - { offset: 0x157539, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A73_AE13GeometryProxyVcfU2_TA', symObjAddr: 0x10D08, symBinAddr: 0x1000B28D4, symSize: 0x4C } - - { offset: 0x15754D, size: 0x8, addend: 0x0, symName: '_$sSlsSQ7ElementRpzrlE5split9separator9maxSplits25omittingEmptySubsequencesSay11SubSequenceQzGAB_SiSbtFSbABXEfU_SS_TG5TA', symObjAddr: 0x10DEC, symBinAddr: 0x1000B29B8, symSize: 0x1C } - - { offset: 0x157627, size: 0x8, addend: 0x0, symName: '_$sSS11withCStringyxxSPys4Int8VGKXEKlFSb_Tg5024$sSdySdSgxcSyRzlufcSbSpyf6GXEfU_j5SPys4C7VGXEfU_SpySdGTf1cn_n', symObjAddr: 0x10E10, symBinAddr: 0x1000B29DC, symSize: 0xEC } - - { offset: 0x1577A9, size: 0x8, addend: 0x0, symName: '_$sSdySdSgxcSyRzlufcSbSpySdGXEfU_SbSPys4Int8VGXEfU_TA', symObjAddr: 0x10F14, symBinAddr: 0x1000B2AD0, symSize: 0x78 } - - { offset: 0x15783A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_yyScMYccfU_TA', symObjAddr: 0x112BC, symBinAddr: 0x1000B2E78, symSize: 0x2C } - - { offset: 0x15784E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_A33_ycfU1_TA', symObjAddr: 0x11380, symBinAddr: 0x1000B2EA4, symSize: 0x3C } - - { offset: 0x157862, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVwxx', symObjAddr: 0x11498, symBinAddr: 0x1000B2F00, symSize: 0x30 } - - { offset: 0x157876, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVwcp', symObjAddr: 0x114C8, symBinAddr: 0x1000B2F30, symSize: 0x54 } - - { offset: 0x15788A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVwca', symObjAddr: 0x1151C, symBinAddr: 0x1000B2F84, symSize: 0x84 } - - { offset: 0x15789E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVwta', symObjAddr: 0x115B4, symBinAddr: 0x1000B3008, symSize: 0x54 } - - { offset: 0x1578B2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVMa', symObjAddr: 0x11698, symBinAddr: 0x1000B305C, symSize: 0x10 } - - { offset: 0x1578C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwxx', symObjAddr: 0x116A8, symBinAddr: 0x1000B306C, symSize: 0x40 } - - { offset: 0x1578DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwcp', symObjAddr: 0x116E8, symBinAddr: 0x1000B30AC, symSize: 0x84 } - - { offset: 0x1578EE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwca', symObjAddr: 0x1176C, symBinAddr: 0x1000B3130, symSize: 0xCC } - - { offset: 0x157902, size: 0x8, addend: 0x0, symName: ___swift_memcpy80_8, symObjAddr: 0x11838, symBinAddr: 0x1000B31FC, symSize: 0x1C } - - { offset: 0x157916, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwta', symObjAddr: 0x11854, symBinAddr: 0x1000B3218, symSize: 0x94 } - - { offset: 0x15792A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwet', symObjAddr: 0x118E8, symBinAddr: 0x1000B32AC, symSize: 0x48 } - - { offset: 0x15793E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwst', symObjAddr: 0x11930, symBinAddr: 0x1000B32F4, symSize: 0x54 } - - { offset: 0x157952, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVMa', symObjAddr: 0x11984, symBinAddr: 0x1000B3348, symSize: 0x10 } - - { offset: 0x157966, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyACyACy8Swiftier13ScrollingTextVAA12_FrameLayoutVGAA010_FixedSizeM0VG_AA6SpacerVAA0G0PAAE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAA7BindingVySbG_AA017PopoverAttachmentU0OAA0W0OSgqd__yctAaURd__lFQOyAvAE11buttonStyleyQrqd__AA20PrimitiveButtonStyleRd__lFQOyAA6ButtonVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGG_AA16PlainButtonStyleVQo__ACyAJ010PeerDetailG0VANGQo_tGG_AIyAGyACyAA0K0VA15_ySiSgGG_ATA32_tGGACyACyAIyAGyACyACyAIyAGyACyA13_A15_yAA4FontVSgGG_ACyA32_A15_y12CoreGraphics7CGFloatVGGtGGA19_GAA05_FlexlM0VG_A53_ACyA32_ANGtGGA41_GA34_GACyACyAA14GeometryReaderVyACyAIyAGyACyAJ3TagVANG_A63_A63_A63_tGGAQGGANGAQGtGGAA08_PaddingM0VGA73_GA52_GAA19_BackgroundModifierVyACyACyACyAA06_ShapeG0VyAA16RoundedRectangleVA17_GAA24_BackgroundStyleModifierVyA17_GGAA16_OverlayModifierVyA80_yAA13_StrokedShapeVyA82_GA17_GGGAA11_ClipEffectVyA82_GGGGACyxq_GAau2aURzAA0G8ModifierR_rlWl', symObjAddr: 0x11998, symBinAddr: 0x1000B335C, symSize: 0x98 } - - { offset: 0x15797A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyACyACy8Swiftier13ScrollingTextVAA12_FrameLayoutVGAA010_FixedSizeM0VG_AA6SpacerVAA0G0PAAE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAA7BindingVySbG_AA017PopoverAttachmentU0OAA0W0OSgqd__yctAaURd__lFQOyAvAE11buttonStyleyQrqd__AA20PrimitiveButtonStyleRd__lFQOyAA6ButtonVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGG_AA16PlainButtonStyleVQo__ACyAJ010PeerDetailG0VANGQo_tGG_AIyAGyACyAA0K0VA15_ySiSgGG_ATA32_tGGACyACyAIyAGyACyACyAIyAGyACyA13_A15_yAA4FontVSgGG_ACyA32_A15_y12CoreGraphics7CGFloatVGGtGGA19_GAA05_FlexlM0VG_A53_ACyA32_ANGtGGA41_GA34_GACyACyAA14GeometryReaderVyACyAIyAGyACyAJ3TagVANG_A63_A63_A63_tGGAQGGANGAQGtGGAA08_PaddingM0VGA73_GA52_GACyxq_GAau2aURzAA0G8ModifierR_rlWl', symObjAddr: 0x11A30, symBinAddr: 0x1000B33F4, symSize: 0x78 } - - { offset: 0x15798E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyACyACy8Swiftier13ScrollingTextVAA12_FrameLayoutVGAA010_FixedSizeM0VG_AA6SpacerVAA0G0PAAE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAA7BindingVySbG_AA017PopoverAttachmentU0OAA0W0OSgqd__yctAaURd__lFQOyAvAE11buttonStyleyQrqd__AA20PrimitiveButtonStyleRd__lFQOyAA6ButtonVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGG_AA16PlainButtonStyleVQo__ACyAJ010PeerDetailG0VANGQo_tGG_AIyAGyACyAA0K0VA15_ySiSgGG_ATA32_tGGACyACyAIyAGyACyACyAIyAGyACyA13_A15_yAA4FontVSgGG_ACyA32_A15_y12CoreGraphics7CGFloatVGGtGGA19_GAA05_FlexlM0VG_A53_ACyA32_ANGtGGA41_GA34_GACyACyAA14GeometryReaderVyACyAIyAGyACyAJ3TagVANG_A63_A63_A63_tGGAQGGANGAQGtGGAA08_PaddingM0VGA73_GACyxq_GAau2aURzAA0G8ModifierR_rlWl', symObjAddr: 0x11AA8, symBinAddr: 0x1000B346C, symSize: 0x78 } - - { offset: 0x1579A2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyACyACy8Swiftier13ScrollingTextVAA12_FrameLayoutVGAA010_FixedSizeM0VG_AA6SpacerVAA0G0PAAE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAA7BindingVySbG_AA017PopoverAttachmentU0OAA0W0OSgqd__yctAaURd__lFQOyAvAE11buttonStyleyQrqd__AA20PrimitiveButtonStyleRd__lFQOyAA6ButtonVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGG_AA16PlainButtonStyleVQo__ACyAJ010PeerDetailG0VANGQo_tGG_AIyAGyACyAA0K0VA15_ySiSgGG_ATA32_tGGACyACyAIyAGyACyACyAIyAGyACyA13_A15_yAA4FontVSgGG_ACyA32_A15_y12CoreGraphics7CGFloatVGGtGGA19_GAA05_FlexlM0VG_A53_ACyA32_ANGtGGA41_GA34_GACyACyAA14GeometryReaderVyACyAIyAGyACyAJ3TagVANG_A63_A63_A63_tGGAQGGANGAQGtGGAA08_PaddingM0VGACyxq_GAau2aURzAA0G8ModifierR_rlWl', symObjAddr: 0x11B20, symBinAddr: 0x1000B34E4, symSize: 0x98 } - - { offset: 0x1579B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x11BB8, symBinAddr: 0x1000B357C, symSize: 0x10 } - - { offset: 0x1579CA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x11BC8, symBinAddr: 0x1000B358C, symSize: 0x10 } - - { offset: 0x1579DE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_TA', symObjAddr: 0x11BDC, symBinAddr: 0x1000B35A0, symSize: 0x8 } - - { offset: 0x1579F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvgySbcfU0_TA', symObjAddr: 0x11BE4, symBinAddr: 0x1000B35A8, symSize: 0x50 } - - { offset: 0x157A30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVWOc', symObjAddr: 0x11C34, symBinAddr: 0x1000B35F8, symSize: 0x34 } - - { offset: 0x157A44, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_ySbcfU1_TA', symObjAddr: 0x11C78, symBinAddr: 0x1000B363C, symSize: 0x8 } - - { offset: 0x157A58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_A21_yXEfU_A4_A26_cfU_TA', symObjAddr: 0x11CC4, symBinAddr: 0x1000B3688, symSize: 0x8 } - - { offset: 0x157A6C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGy12CoreGraphics7CGFloatVGGAA16_FlexFrameLayoutVGAA08_PaddingO0VGAA011_BackgroundI0VyAA10_ShapeViewVyAA7CapsuleVAA5ColorVGGGACyxq_GAA0S0A2AA6_RzAA0sI0R_rlWl', symObjAddr: 0x11E30, symBinAddr: 0x1000B376C, symSize: 0x98 } - - { offset: 0x157A80, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGy12CoreGraphics7CGFloatVGGAA16_FlexFrameLayoutVGAA08_PaddingO0VGACyxq_GAA4ViewA2aWRzAA0qI0R_rlWl', symObjAddr: 0x11EC8, symBinAddr: 0x1000B3804, symSize: 0x78 } - - { offset: 0x157A94, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGy12CoreGraphics7CGFloatVGGAA16_FlexFrameLayoutVGACyxq_GAA4ViewA2aTRzAA0pI0R_rlWl', symObjAddr: 0x11F40, symBinAddr: 0x1000B387C, symSize: 0x78 } - - { offset: 0x157AA8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGy12CoreGraphics7CGFloatVGGACyxq_GAA4ViewA2aQRzAA0mI0R_rlWl', symObjAddr: 0x11FB8, symBinAddr: 0x1000B38F4, symSize: 0x98 } - - { offset: 0x157ABC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA14GeometryReaderVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA4TextVAA16_FixedSizeLayoutVGAA19_BackgroundModifierVyAEyACyAA5ColorVAA017_AppearanceActionO0VGGGGAA14_OpacityEffectVG_ACyACyAnA07_OffsetT0VGAA010_AnimationO0Vy12CoreGraphics7CGFloatVGGtGGATGAA06_ValuerO0VySbGGGAA01_d5ShapeO0VyAA9RectangleVGGAA012_HoverRegionO0VGAA05_ClipT0VyA21_GGACyxq_GAA0I0A2AA32_RzAA0iO0R_rlWl', symObjAddr: 0x120EC, symBinAddr: 0x1000B3990, symSize: 0x98 } - - { offset: 0x157AD0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA14GeometryReaderVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA4TextVAA16_FixedSizeLayoutVGAA19_BackgroundModifierVyAEyACyAA5ColorVAA017_AppearanceActionO0VGGGGAA14_OpacityEffectVG_ACyACyAnA07_OffsetT0VGAA010_AnimationO0Vy12CoreGraphics7CGFloatVGGtGGATGAA06_ValuerO0VySbGGGAA01_d5ShapeO0VyAA9RectangleVGGAA012_HoverRegionO0VGACyxq_GAA0I0A2AA28_RzAA0iO0R_rlWl', symObjAddr: 0x12184, symBinAddr: 0x1000B3A28, symSize: 0x78 } - - { offset: 0x157AE4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA14GeometryReaderVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA4TextVAA16_FixedSizeLayoutVGAA19_BackgroundModifierVyAEyACyAA5ColorVAA017_AppearanceActionO0VGGGGAA14_OpacityEffectVG_ACyACyAnA07_OffsetT0VGAA010_AnimationO0Vy12CoreGraphics7CGFloatVGGtGGATGAA06_ValuerO0VySbGGGAA01_d5ShapeO0VyAA9RectangleVGGACyxq_GAA0I0A2AA25_RzAA0iO0R_rlWl', symObjAddr: 0x121FC, symBinAddr: 0x1000B3AA0, symSize: 0xB8 } - - { offset: 0x158677, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZAA7SectionVyAA4TextVAFyAA6HStackVyAFyAL_AaHPAAE21disableAutocorrectionyQrSbSgFQOyAA15ModifiedContentVyAoAE12labelsHiddenQryFQOyAoAE14textFieldStyleyQrqd__AA0irS0Rd__lFQOyASyAA0iR0VyALGAA30_EnvironmentKeyWritingModifierVyAA0I9AlignmentOGG_AA05PlainirS0VQo__Qo_A_ySSSgGG_Qo_tGG_ANyAFyASyAlA16_FixedSizeLayoutVG_AA6SpacerVAoAE10monospacedyQrSbFQOyASyASyALA_ySiSgGGA_yAL14TruncationModeOGG_Qo_AoAE4helpyQrAA015LocalizedStringU0VFQOyAoAE06buttonS0yQrqd__AA015PrimitiveButtonS0Rd__lFQOyAA6ButtonVyAA5ImageVG_AA0y6ButtonS0VQo__Qo_tGGANyAFyAL_A18_ASyAoAEATQryFQOyAoAEAUyQrqd__AaVRd__lFQOyASyA3_AA12_FrameLayoutVG_A5_Qo__Qo_A9_GtGGtGAA05EmptyC0VG_AJyAlFyAA6ToggleVyALG_AFyAA7ForEachVySnySiGSiANyAFyAL_A18_ASy8Swiftier015ConfigGeneratorC0V04IPv4R0VA15_GAoAEA31_yQrqd__AAA32_Rd__lFQOyA34_yASyA36_A_yAA5ColorVSgGGG_A39_Qo_tGGG_AoAEA31_yQrqd__AAA32_Rd__lFQOyA34_yASyANyAFyA36__ALtGGA71_GG_A39_Qo_tGSgtGALGAJyAlFyA60_yAA7BindingVySayA62_19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVANyAFyAL_A18_ASyA64_08IPv4CidrR0VA15_GA74_tGGG_A82_tGA54_GAJyAlFyA58__AFyANyAFyAL_A18_A100_tGG_ANyAFyAL_A18_ASyAoAEATQryFQOyA46__Qo_A9_GtGGtGSgtGA54_GAJyAlFyA60_yA61_SiANyAFyAoAEAPyQrAQFQOyASyAoAEATQryFQOyAoAEAUyQrqd__AaVRd__lFQOyAY_A5_Qo__Qo_A9_G_Qo__A18_A74_tGGG_A82_tGA54_GAJyAlFyA58__AA5GroupVyAFyA122__AoAEA31_yQrqd__AAA32_Rd__lFQOyA34_yASyAA5LabelVyALA36_GA71_GG_A39_Qo_tGGSgtGALGAJyAlFyA58__AFyA60_yA61_SiA102_G_A82_tGSgtGALGAJyAlFyA58__ANyAFyAL_A18_ASyA46_A9_GtGGSgtGALGAJyALA83_ALGAJyALA134_ALGAJyAlFyASyAA6VStackVyAFyA58__A16_tGGAA14_PaddingLayoutVG_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_tGA54_GQP_Tt1g5', symObjAddr: 0x21FC, symBinAddr: 0x1000A42F8, symSize: 0x27C } - - { offset: 0x158692, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZAA15ModifiedContentVyAA6VStackVyAFyAA6ToggleVyAA4TextVG_AJyApA16_FixedSizeLayoutVGtGGAA08_PaddingO0VG_A19YQP_Tt1g5', symObjAddr: 0x2478, symBinAddr: 0x1000A4574, symSize: 0x234 } - - { offset: 0x1586AD, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZAA7SectionVyAA4TextVAA19_ConditionalContentVyAA08ModifiedK0VyAA6ButtonVyALGAA32_EnvironmentKeyTransformModifierVySbGGAA7ForEachVySay10Foundation3URLVGA0_ARyAA6HStackVyAFyAL_AA5ImageVSgtGGGGGAA05EmptyC0VG_AA7DividerVAs2WA16_A3SA16_AWQP_Tt1g5', symObjAddr: 0x26AC, symBinAddr: 0x1000A47A8, symSize: 0x1A8 } - - { offset: 0x1586C8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZ8Swiftier9DetailRowV_A6kFyAK_A2KtGSgAKSgQP_Tt1g5', symObjAddr: 0x2854, symBinAddr: 0x1000A4950, symSize: 0x360 } - - { offset: 0x1586F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV12shortVersion33_75818CA08CB81B7F5EA965C393FBF355LLSSvg', symObjAddr: 0x2BB4, symBinAddr: 0x1000A4CB0, symSize: 0xEC } - - { offset: 0x158862, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV5clean33_75818CA08CB81B7F5EA965C393FBF355LLyS2SF', symObjAddr: 0x2CA0, symBinAddr: 0x1000A4D9C, symSize: 0x138 } - - { offset: 0x158897, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV15translateTunnel33_75818CA08CB81B7F5EA965C393FBF355LLyS2SF', symObjAddr: 0x2DD8, symBinAddr: 0x1000A4ED4, symSize: 0x1DC } - - { offset: 0x158968, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV12translateNAT33_75818CA08CB81B7F5EA965C393FBF355LLyS2SF', symObjAddr: 0x310C, symBinAddr: 0x1000A5208, symSize: 0x2E4 } - - { offset: 0x158A0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV8natColor33_75818CA08CB81B7F5EA965C393FBF355LL3for7SwiftUI0E0VSS_tF', symObjAddr: 0x33F0, symBinAddr: 0x1000A54EC, symSize: 0x3A8 } - - { offset: 0x158A5B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV8tagColor33_75818CA08CB81B7F5EA965C393FBF355LL3for7SwiftUI0E0VSS_tF', symObjAddr: 0x3798, symBinAddr: 0x1000A5894, symSize: 0x1C8 } - - { offset: 0x1595DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg', symObjAddr: 0x3960, symBinAddr: 0x1000A5A5C, symSize: 0x278 } - - { offset: 0x159762, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_', symObjAddr: 0x3BD8, symBinAddr: 0x1000A5CD4, symSize: 0x6EC } - - { offset: 0x159936, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_', symObjAddr: 0x42C4, symBinAddr: 0x1000A63C0, symSize: 0x780 } - - { offset: 0x159A60, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_yyScMYccfU_', symObjAddr: 0x4A44, symBinAddr: 0x1000A6B40, symSize: 0x70 } - - { offset: 0x159A8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_A26_yXEfU0_', symObjAddr: 0x4AB4, symBinAddr: 0x1000A6BB0, symSize: 0x64 } - - { offset: 0x159ACB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_A33_ycfU1_', symObjAddr: 0x4B18, symBinAddr: 0x1000A6C14, symSize: 0xD4 } - - { offset: 0x159B83, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A42_yXEfU0_', symObjAddr: 0x4BEC, symBinAddr: 0x1000A6CE8, symSize: 0x520 } - - { offset: 0x159C69, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A62_yXEfU1_', symObjAddr: 0x510C, symBinAddr: 0x1000A7208, symSize: 0x6E0 } - - { offset: 0x159E20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A62_yXEfU1_A57_yXEfU_', symObjAddr: 0x57EC, symBinAddr: 0x1000A78E8, symSize: 0x330 } - - { offset: 0x159F74, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A62_yXEfU1_A57_yXEfU0_', symObjAddr: 0x5B1C, symBinAddr: 0x1000A7C18, symSize: 0x32C } - - { offset: 0x15A142, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A73_AE13GeometryProxyVcfU2_', symObjAddr: 0x5E48, symBinAddr: 0x1000A7F44, symSize: 0x734 } - - { offset: 0x15A6A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV14cardBackground33_75818CA08CB81B7F5EA965C393FBF355LLQrvg', symObjAddr: 0x657C, symBinAddr: 0x1000A8678, symSize: 0x2A0 } - - { offset: 0x15A8A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV11borderColor33_75818CA08CB81B7F5EA965C393FBF355LL7SwiftUI0E0Vvg', symObjAddr: 0x681C, symBinAddr: 0x1000A8918, symSize: 0x1CC } - - { offset: 0x15A91F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x69E8, symBinAddr: 0x1000A8AE4, symSize: 0x4 } - - { offset: 0x15A95D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_', symObjAddr: 0x69F0, symBinAddr: 0x1000A8AE8, symSize: 0x290 } - - { offset: 0x15AA01, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_A21_yXEfU_', symObjAddr: 0x6C80, symBinAddr: 0x1000A8D78, symSize: 0x548 } - - { offset: 0x15AB18, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_A21_yXEfU_A4_A26_cfU_', symObjAddr: 0x71C8, symBinAddr: 0x1000A92C0, symSize: 0x110 } - - { offset: 0x15AB5D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_A21_yXEfU_A4_A26_cfU_yycfU_', symObjAddr: 0x72D8, symBinAddr: 0x1000A93D0, symSize: 0x5C } - - { offset: 0x15AB92, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV13shouldAnimate33_75818CA08CB81B7F5EA965C393FBF355LLSbvg', symObjAddr: 0x7334, symBinAddr: 0x1000A942C, symSize: 0xC4 } - - { offset: 0x15ABB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_yycfU0_', symObjAddr: 0x73F8, symBinAddr: 0x1000A94F0, symSize: 0x5C } - - { offset: 0x15ABED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_ySbcfU1_', symObjAddr: 0x7454, symBinAddr: 0x1000A954C, symSize: 0x128 } - - { offset: 0x15AC45, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x759C, symBinAddr: 0x1000A9674, symSize: 0xD8 } - - { offset: 0x15ACA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagV4bodyQrvg', symObjAddr: 0x7674, symBinAddr: 0x1000A974C, symSize: 0x3BC } - - { offset: 0x15AE32, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x7A30, symBinAddr: 0x1000A9B08, symSize: 0x4 } - - { offset: 0x15AE54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE4TextV_Qo__AiEE9formStyleyQrqd__AE04FormQ0Rd__lFQOyAE0R0VyAE19_ConditionalContentVyA_yAC17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0V4InfoVFQOy_Qo_AC06remotebW0A1_LLyQrA3_0B9RoutePairVFQOy_Qo_GAC05basicW0A1_LLQrvpQOy_Qo_GG_AE07GroupedrQ0VQo_tGyXEfU_', symObjAddr: 0x7A34, symBinAddr: 0x1000A9B0C, symSize: 0x560 } - - { offset: 0x15AEF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE4TextV_Qo__AiEE9formStyleyQrqd__AE04FormQ0Rd__lFQOyAE0R0VyAE19_ConditionalContentVyA_yAC17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0V4InfoVFQOy_Qo_AC06remotebW0A1_LLyQrA3_0B9RoutePairVFQOy_Qo_GAC05basicW0A1_LLQrvpQOy_Qo_GG_AE07GroupedrQ0VQo_tGyXEfU_A14_yXEfU_', symObjAddr: 0x7F94, symBinAddr: 0x1000AA06C, symSize: 0x59C } - - { offset: 0x15AFC0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF', symObjAddr: 0x8530, symBinAddr: 0x1000AA608, symSize: 0x3E4 } - - { offset: 0x15B0A2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI05TupleD0VyAA0C3RowV_A4NtGyXEfU_', symObjAddr: 0x93A4, symBinAddr: 0x1000AB47C, symSize: 0x700 } - - { offset: 0x15B256, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI7ForEachVySnySiGSiAA0C3RowVGyXEfU0_', symObjAddr: 0x9AA4, symBinAddr: 0x1000ABB7C, symSize: 0xD0 } - - { offset: 0x15B2FE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI7ForEachVySnySiGSiAA0C3RowVGyXEfU0_AOSicfU_', symObjAddr: 0x9B74, symBinAddr: 0x1000ABC4C, symSize: 0x164 } - - { offset: 0x15B3ED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF', symObjAddr: 0x8914, symBinAddr: 0x1000AA9EC, symSize: 0x740 } - - { offset: 0x15B4F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI05TupleD0VyAA0C3RowV_A6nLyAN_A2NtGSgANSgtGyXEfU_', symObjAddr: 0x9CD8, symBinAddr: 0x1000ABDB0, symSize: 0x1074 } - - { offset: 0x15B93D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVFAA0C3RowVyXEfU0_', symObjAddr: 0xB0BC, symBinAddr: 0x1000AD194, symSize: 0x158 } - - { offset: 0x15BA48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI7SectionVyAJ4TextVAJ05TupleD0VyAA0C3RowV_A3rPyAR_A2RtGSgtGAJ05EmptyD0VGSicfU1_', symObjAddr: 0xB214, symBinAddr: 0x1000AD2EC, symSize: 0x284 } - - { offset: 0x15BAEB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI7SectionVyAJ4TextVAJ05TupleD0VyAA0C3RowV_A3rPyAR_A2RtGSgtGAJ05EmptyD0VGSicfU1_AUyXEfU_', symObjAddr: 0xB498, symBinAddr: 0x1000AD570, symSize: 0xCA0 } - - { offset: 0x15BE03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg', symObjAddr: 0x9054, symBinAddr: 0x1000AB12C, symSize: 0x350 } - - { offset: 0x15BE3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg7SwiftUI05TupleD0VyAA0C3RowV_A2JtGyXEfU_', symObjAddr: 0xC2BC, symBinAddr: 0x1000AE210, symSize: 0x34C } - - { offset: 0x15BF38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg7SwiftUI05TupleD0VyAA0C3RowV_A3JtGyXEfU0_', symObjAddr: 0xC608, symBinAddr: 0x1000AE55C, symSize: 0x4C8 } - - { offset: 0x15C101, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV11formatFlags33_75818CA08CB81B7F5EA965C393FBF355LLySSAA14EasyTierStatusV0B11FeatureFlagVF', symObjAddr: 0xAD4C, symBinAddr: 0x1000ACE24, symSize: 0x370 } - - { offset: 0x15C6BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0xCAD0, symBinAddr: 0x1000AEA24, symSize: 0xA8 } - - { offset: 0x15C7BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvg', symObjAddr: 0xD31C, symBinAddr: 0x1000AF104, symSize: 0x23C } - - { offset: 0x15C8B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvg7SwiftUI9TupleViewVyAE0H0PAEE14layoutPriorityyQrSdFQOyAiEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAiEE9lineLimityQrSiSgFQOyAE4TextV_Qo__Qo__Qo__AE6SpacerVAiEE7opacityyQrSdFQOyAiEEAJyQrSdFQOyAiEE14truncationModeyQrAQ010TruncationU0OFQOyAR_Qo__Qo__Qo_tGyXEfU_', symObjAddr: 0xD558, symBinAddr: 0x1000AF340, symSize: 0x858 } - - { offset: 0x15CA83, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvgyycfU0_', symObjAddr: 0xDDB0, symBinAddr: 0x1000AFB98, symSize: 0x394 } - - { offset: 0x15CB10, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvgyycfU0_yyScMYccfU0_', symObjAddr: 0xE144, symBinAddr: 0x1000AFF2C, symSize: 0x5C } - - { offset: 0x15CBF2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0xE1A0, symBinAddr: 0x1000AFF88, symSize: 0x40 } - - { offset: 0x15CC06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4textACSS_tcfCTf4nd_n', symObjAddr: 0x10F8C, symBinAddr: 0x1000B2B48, symSize: 0xEC } - - { offset: 0x15CDF4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC6sharedACvpZ', symObjAddr: 0x60F0, symBinAddr: 0x10012EE10, symSize: 0x0 } - - { offset: 0x15CED4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x1000B3B74, symSize: 0x3C } - - { offset: 0x15CF2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCMU', symObjAddr: 0xD14, symBinAddr: 0x1000B485C, symSize: 0x8 } - - { offset: 0x15CF3F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCMa', symObjAddr: 0xD1C, symBinAddr: 0x1000B4864, symSize: 0x38 } - - { offset: 0x15CF53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCMr', symObjAddr: 0xD54, symBinAddr: 0x1000B489C, symSize: 0x6C } - - { offset: 0x15CF67, size: 0x8, addend: 0x0, symName: '_$s7Combine9PublishedVySbGMa', symObjAddr: 0xDC0, symBinAddr: 0x1000B4908, symSize: 0x50 } - - { offset: 0x15CF7B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyFyyYbcfU_TA', symObjAddr: 0xEC8, symBinAddr: 0x1000B49C0, symSize: 0xC } - - { offset: 0x15CF8F, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0xED4, symBinAddr: 0x1000B49CC, symSize: 0x10 } - - { offset: 0x15CFA3, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0xEE4, symBinAddr: 0x1000B49DC, symSize: 0x8 } - - { offset: 0x15CFB7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyFyyYbcfU_yyScMYccfU_Tf2ni_nTA', symObjAddr: 0x1004, symBinAddr: 0x1000B4A08, symSize: 0xC } - - { offset: 0x15CFCB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC12isFDAGrantedSbvpACTK', symObjAddr: 0x1010, symBinAddr: 0x1000B4A14, symSize: 0x7C } - - { offset: 0x15CFF9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC12isFDAGrantedSbvpACTk', symObjAddr: 0x1090, symBinAddr: 0x1000B4A94, symSize: 0x70 } - - { offset: 0x15D09E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC12isFDAGrantedSbvg', symObjAddr: 0x3C, symBinAddr: 0x1000B3BB0, symSize: 0x70 } - - { offset: 0x15D0EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC7Combine16ObservableObjectAadEP16objectWillChange0fhI9PublisherQzvgTW', symObjAddr: 0xE1C, symBinAddr: 0x1000B4958, symSize: 0x3C } - - { offset: 0x15D11A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCACyc33_0678C7761CFC24F1BCD55A2133350B18Llfc', symObjAddr: 0xAC, symBinAddr: 0x1000B3C20, symSize: 0x168 } - - { offset: 0x15D1CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyF', symObjAddr: 0x214, symBinAddr: 0x1000B3D88, symSize: 0x278 } - - { offset: 0x15D249, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyFyyYbcfU_', symObjAddr: 0x48C, symBinAddr: 0x1000B4000, symSize: 0x314 } - - { offset: 0x15D2C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyFyyYbcfU_yyScMYccfU_Tf2ni_n', symObjAddr: 0x7A0, symBinAddr: 0x1000B4314, symSize: 0xC0 } - - { offset: 0x15D37B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCfZ', symObjAddr: 0x88C, symBinAddr: 0x1000B43D4, symSize: 0xE0 } - - { offset: 0x15D3E5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCfD', symObjAddr: 0x96C, symBinAddr: 0x1000B44B4, symSize: 0x3A8 } - - { offset: 0x15D45F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC17revealAppInFinderyyFTf4d_n', symObjAddr: 0x13C4, symBinAddr: 0x1000B4B7C, symSize: 0x178 } - - { offset: 0x15D634, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI0D0AadEP05_makeD04view6inputsAD01_D7OutputsVAD11_GraphValueVyxG_AD01_D6InputsVtFZTW', symObjAddr: 0x2EC, symBinAddr: 0x1000B4F98, symSize: 0x68 } - - { offset: 0x15D650, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI0D0AadEP05_makeD4List4view6inputsAD01_dH7OutputsVAD11_GraphValueVyxG_AD01_dH6InputsVtFZTW', symObjAddr: 0x354, symBinAddr: 0x1000B5000, symSize: 0x68 } - - { offset: 0x15D66C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x3D4, symBinAddr: 0x1000B5068, symSize: 0x3C } - - { offset: 0x15D9E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewCfETo', symObjAddr: 0x12F4, symBinAddr: 0x1000B5F88, symSize: 0x38 } - - { offset: 0x15DA16, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewCMa', symObjAddr: 0x132C, symBinAddr: 0x1000B5FC0, symSize: 0x20 } - - { offset: 0x15DA2A, size: 0x8, addend: 0x0, symName: '_$sSo11CAAnimationCMa', symObjAddr: 0x139C, symBinAddr: 0x1000B5FE0, symSize: 0x44 } - - { offset: 0x15DA3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwCP', symObjAddr: 0x1828, symBinAddr: 0x1000B62F8, symSize: 0xE4 } - - { offset: 0x15DA52, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwxx', symObjAddr: 0x190C, symBinAddr: 0x1000B63DC, symSize: 0x70 } - - { offset: 0x15DA66, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwcp', symObjAddr: 0x197C, symBinAddr: 0x1000B644C, symSize: 0xB0 } - - { offset: 0x15DA7A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwca', symObjAddr: 0x1A2C, symBinAddr: 0x1000B64FC, symSize: 0xE0 } - - { offset: 0x15DA8E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwtk', symObjAddr: 0x1B4C, symBinAddr: 0x1000B65DC, symSize: 0xB4 } - - { offset: 0x15DAA2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwta', symObjAddr: 0x1C00, symBinAddr: 0x1000B6690, symSize: 0xDC } - - { offset: 0x15DAB6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwet', symObjAddr: 0x1CDC, symBinAddr: 0x1000B676C, symSize: 0xC } - - { offset: 0x15DACA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwst', symObjAddr: 0x1D74, symBinAddr: 0x1000B6804, symSize: 0xC } - - { offset: 0x15DADE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVMa', symObjAddr: 0x1DFC, symBinAddr: 0x1000B688C, symSize: 0x38 } - - { offset: 0x15DAF2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVMr', symObjAddr: 0x1E34, symBinAddr: 0x1000B68C4, symSize: 0x84 } - - { offset: 0x15DB06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI19NSViewRepresentableAaD0D0PWb', symObjAddr: 0x1F18, symBinAddr: 0x1000B6948, symSize: 0x2C } - - { offset: 0x15DB1A, size: 0x8, addend: 0x0, symName: '_$s2os32getNullTerminatedUTF8PointerImpl_21storingStringOwnersInSVSS_SpyypGSgztF', symObjAddr: 0x1F8C, symBinAddr: 0x1000B6974, symSize: 0xC8 } - - { offset: 0x15DB32, size: 0x8, addend: 0x0, symName: '_$ss11_StringGutsV16_deconstructUTF87scratchyXlSg5owner_xSi6lengthSb11usesScratchSb15allocatedMemorytSwSg_ts8_PointerRzlFSV_Tgq5', symObjAddr: 0x2074, symBinAddr: 0x1000B6A3C, symSize: 0x108 } - - { offset: 0x15DB75, size: 0x8, addend: 0x0, symName: '_$ss11_StringGutsV23_allocateForDeconstructyXl5owner_SVSi6lengthtyF', symObjAddr: 0x21B8, symBinAddr: 0x1000B6B44, symSize: 0x64 } - - { offset: 0x15DBB7, size: 0x8, addend: 0x0, symName: '_$ss32_copyCollectionToContiguousArrayys0dE0Vy7ElementQzGxSlRzlFSS8UTF8ViewV_Tgq5', symObjAddr: 0x221C, symBinAddr: 0x1000B6BA8, symSize: 0x98 } - - { offset: 0x15DC0E, size: 0x8, addend: 0x0, symName: '_$sSa6append10contentsOfyqd__n_t7ElementQyd__RszSTRd__lFs5UInt8V_SayAFGTgq5', symObjAddr: 0x22B4, symBinAddr: 0x1000B6C40, symSize: 0xE8 } - - { offset: 0x15DD02, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFs5UInt8V_Tgq5', symObjAddr: 0x239C, symBinAddr: 0x1000B6D28, symSize: 0xF0 } - - { offset: 0x15DE58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV06updateD10Properties33_1238B75A4D54138625C51D2C5A0047AELLyyAA0bC6NSViewCF', symObjAddr: 0x0, symBinAddr: 0x1000B4CFC, symSize: 0x1D8 } - - { offset: 0x15DF7C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI19NSViewRepresentableAadEP04makeG07context0G4TypeQzAD0gH7ContextVyxG_tFTW', symObjAddr: 0x1D8, symBinAddr: 0x1000B4ED4, symSize: 0x3C } - - { offset: 0x15E070, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI19NSViewRepresentableAadEP06updateG0_7contexty0G4TypeQz_AD0gH7ContextVyxGtFTW', symObjAddr: 0x214, symBinAddr: 0x1000B4F10, symSize: 0x88 } - - { offset: 0x15E1D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC8durationSdvs', symObjAddr: 0x410, symBinAddr: 0x1000B50A4, symSize: 0xBC } - - { offset: 0x15E2A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC8maxScale12CoreGraphics7CGFloatVvs', symObjAddr: 0x4CC, symBinAddr: 0x1000B5160, symSize: 0xC4 } - - { offset: 0x15E499, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC5frameACSo6CGRectV_tcfc', symObjAddr: 0x590, symBinAddr: 0x1000B5224, symSize: 0x11C } - - { offset: 0x15E524, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC5frameACSo6CGRectV_tcfcTo', symObjAddr: 0x6AC, symBinAddr: 0x1000B5340, symSize: 0x20 } - - { offset: 0x15E538, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC5coderACSgSo7NSCoderC_tcfc', symObjAddr: 0x6CC, symBinAddr: 0x1000B5360, symSize: 0x104 } - - { offset: 0x15E5C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC5coderACSgSo7NSCoderC_tcfcTo', symObjAddr: 0x7D0, symBinAddr: 0x1000B5464, symSize: 0x28 } - - { offset: 0x15E5EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC11setupLayers33_1238B75A4D54138625C51D2C5A0047AELLyyF', symObjAddr: 0x7F8, symBinAddr: 0x1000B548C, symSize: 0x248 } - - { offset: 0x15E69D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC6layoutyyF', symObjAddr: 0xA40, symBinAddr: 0x1000B56D4, symSize: 0x10C } - - { offset: 0x15E70B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC6layoutyyFTo', symObjAddr: 0xB4C, symBinAddr: 0x1000B57E0, symSize: 0x28 } - - { offset: 0x15E772, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC14startAnimation33_1238B75A4D54138625C51D2C5A0047AELLyyF', symObjAddr: 0xB74, symBinAddr: 0x1000B5808, symSize: 0x36C } - - { offset: 0x15E8EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC19viewDidMoveToWindowyyFTo', symObjAddr: 0xEE0, symBinAddr: 0x1000B5B74, symSize: 0x94 } - - { offset: 0x15E92A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewCfZ', symObjAddr: 0xF74, symBinAddr: 0x1000B5C08, symSize: 0x3C } - - { offset: 0x15E970, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewCfD', symObjAddr: 0xFB0, symBinAddr: 0x1000B5C44, symSize: 0x344 } - - { offset: 0x15EA1F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11EnvironmentV12wrappedValuexvgAA11ColorSchemeO_Tg5', symObjAddr: 0x1404, symBinAddr: 0x1000B6048, symSize: 0x260 } - - { offset: 0x15EBBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerVMa', symObjAddr: 0x0, symBinAddr: 0x1000B6E18, symSize: 0x10 } - - { offset: 0x15EBF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI4ViewAadEP05_makeF04view6inputsAD01_F7OutputsVAD11_GraphValueVyxG_AD01_F6InputsVtFZTW', symObjAddr: 0x344, symBinAddr: 0x1000B70FC, symSize: 0x50 } - - { offset: 0x15EC0C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI4ViewAadEP05_makeF4List4view6inputsAD01_fH7OutputsVAD11_GraphValueVyxG_AD01_fH6InputsVtFZTW', symObjAddr: 0x394, symBinAddr: 0x1000B714C, symSize: 0x50 } - - { offset: 0x15EC28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x3FC, symBinAddr: 0x1000B719C, symSize: 0x24 } - - { offset: 0x15EC4F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerVMa', symObjAddr: 0x0, symBinAddr: 0x1000B6E18, symSize: 0x10 } - - { offset: 0x15ECDD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI19NSViewRepresentableAaD4ViewPWb', symObjAddr: 0x420, symBinAddr: 0x1000B71C0, symSize: 0x4 } - - { offset: 0x15ECF1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerVAC7SwiftUI4ViewAAWl', symObjAddr: 0x424, symBinAddr: 0x1000B71C4, symSize: 0x40 } - - { offset: 0x15ED05, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV10makeNSView7contextSo0E0C7SwiftUI0E20RepresentableContextVyACG_tFyyScMYccfU_TA', symObjAddr: 0x4CC, symBinAddr: 0x1000B7228, symSize: 0x8 } - - { offset: 0x15ED19, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x4D4, symBinAddr: 0x1000B7230, symSize: 0x10 } - - { offset: 0x15ED2D, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x4E4, symBinAddr: 0x1000B7240, symSize: 0x8 } - - { offset: 0x15ED41, size: 0x8, addend: 0x0, symName: '_$s8Dispatch0A13WorkItemFlagsVACs10SetAlgebraAAWl', symObjAddr: 0x4EC, symBinAddr: 0x1000B7248, symSize: 0x44 } - - { offset: 0x15ED55, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerVAC7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x624, symBinAddr: 0x1000B728C, symSize: 0x40 } - - { offset: 0x15ED69, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4ViewP8SwiftierE21preventVerticalBounceQryFAcAE10background_9alignmentQrqd___AA9AlignmentVtAaBRd__lFQOyAA5ColorV_AD11ScrollFixerVQo_AA13GeometryProxyVcfU_', symObjAddr: 0x664, symBinAddr: 0x1000B72CC, symSize: 0x30 } - - { offset: 0x15EE5E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV10makeNSView7contextSo0E0C7SwiftUI0E20RepresentableContextVyACG_tF', symObjAddr: 0x1C, symBinAddr: 0x1000B6E28, symSize: 0x200 } - - { offset: 0x15EEFA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV10makeNSView7contextSo0E0C7SwiftUI0E20RepresentableContextVyACG_tFyyScMYccfU_', symObjAddr: 0x21C, symBinAddr: 0x1000B7028, symSize: 0xD0 } - - { offset: 0x15F021, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI19NSViewRepresentableAadEP04makeF07context0F4TypeQzAD0fG7ContextVyxG_tFTW', symObjAddr: 0x2EC, symBinAddr: 0x1000B70F8, symSize: 0x4 } - - { offset: 0x15F2E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI0D0AadEP05_makeD04view6inputsAD01_D7OutputsVAD11_GraphValueVyxG_AD01_D6InputsVtFZTW', symObjAddr: 0xBB30, symBinAddr: 0x1000C2B58, symSize: 0x50 } - - { offset: 0x15F305, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI0D0AadEP05_makeD4List4view6inputsAD01_dH7OutputsVAD11_GraphValueVyxG_AD01_dH6InputsVtFZTW', symObjAddr: 0xBB80, symBinAddr: 0x1000C2BA8, symSize: 0x50 } - - { offset: 0x15F321, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0xBBD0, symBinAddr: 0x1000C2BF8, symSize: 0x24 } - - { offset: 0x15FF3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateCfETo', symObjAddr: 0xB92C, symBinAddr: 0x1000C29F4, symSize: 0x40 } - - { offset: 0x15FF6F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateCMa', symObjAddr: 0xB96C, symBinAddr: 0x1000C2A34, symSize: 0x20 } - - { offset: 0x160087, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV11controlSizeAA07ControlF0OvpACTKq', symObjAddr: 0xC5E4, symBinAddr: 0x1000C34F0, symSize: 0x20 } - - { offset: 0x16009B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV11controlSizeAA07ControlF0OvpACTkq', symObjAddr: 0xC604, symBinAddr: 0x1000C3510, symSize: 0x7C } - - { offset: 0x160230, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwxx', symObjAddr: 0xCA00, symBinAddr: 0x1000C390C, symSize: 0xC4 } - - { offset: 0x160244, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwcp', symObjAddr: 0xCAC4, symBinAddr: 0x1000C39D0, symSize: 0x1C4 } - - { offset: 0x160258, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwca', symObjAddr: 0xCC88, symBinAddr: 0x1000C3B94, symSize: 0x33C } - - { offset: 0x16026C, size: 0x8, addend: 0x0, symName: ___swift_memcpy240_8, symObjAddr: 0xCFC4, symBinAddr: 0x1000C3ED0, symSize: 0x44 } - - { offset: 0x160280, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwta', symObjAddr: 0xD008, symBinAddr: 0x1000C3F14, symSize: 0x1DC } - - { offset: 0x160294, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwet', symObjAddr: 0xD1E4, symBinAddr: 0x1000C40F0, symSize: 0x48 } - - { offset: 0x1602A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwst', symObjAddr: 0xD22C, symBinAddr: 0x1000C4138, symSize: 0x7C } - - { offset: 0x1602BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVMa', symObjAddr: 0xD2A8, symBinAddr: 0x1000C41B4, symSize: 0x10 } - - { offset: 0x1602D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0xD2B8, symBinAddr: 0x1000C41C4, symSize: 0x10 } - - { offset: 0x1602E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvgyycfU0_TA', symObjAddr: 0xD2CC, symBinAddr: 0x1000C41D8, symSize: 0x8 } - - { offset: 0x1602F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVWOc', symObjAddr: 0xD2D4, symBinAddr: 0x1000C41E0, symSize: 0x34 } - - { offset: 0x16030C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACy8Swiftier11LicenseViewVAA21_TraitWritingModifierVyAA010TransitionH3KeyVGGAHyAA06ZIndexhL0VGGSgWOy', symObjAddr: 0xD308, symBinAddr: 0x1000C4214, symSize: 0x4C } - - { offset: 0x160320, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACy8Swiftier11LicenseViewVAA21_TraitWritingModifierVyAA010TransitionH3KeyVGGAHyAA06ZIndexhL0VGGSgWOe', symObjAddr: 0xD354, symBinAddr: 0x1000C4260, symSize: 0x50 } - - { offset: 0x160334, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVMa', symObjAddr: 0xD3A4, symBinAddr: 0x1000C42B0, symSize: 0x38 } - - { offset: 0x160348, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A7_ycfU0_TA', symObjAddr: 0xD3DC, symBinAddr: 0x1000C42E8, symSize: 0x8 } - - { offset: 0x16035C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_TA', symObjAddr: 0xD3E4, symBinAddr: 0x1000C42F0, symSize: 0x8 } - - { offset: 0x160370, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_TA', symObjAddr: 0xD440, symBinAddr: 0x1000C42F8, symSize: 0x8 } - - { offset: 0x160384, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_TA', symObjAddr: 0xD448, symBinAddr: 0x1000C4300, symSize: 0x8 } - - { offset: 0x160398, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_TA', symObjAddr: 0xD450, symBinAddr: 0x1000C4308, symSize: 0x8 } - - { offset: 0x1603AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_TA', symObjAddr: 0xD458, symBinAddr: 0x1000C4310, symSize: 0x8 } - - { offset: 0x1603C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_yyScMYccfU2_TA', symObjAddr: 0xD460, symBinAddr: 0x1000C4318, symSize: 0x20 } - - { offset: 0x1603D4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyAA4TextV_AA6SpacerVACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAQyAA5ColorVSgGGtGG_ACyACyAkA16_FixedSizeLayoutVGAQyAA0I9AlignmentOGGtGGAA01_d5ShapeO0VyAA9RectangleVGGACyxq_GAA0G0A2AA18_RzAA0gO0R_rlWl', symObjAddr: 0xD480, symBinAddr: 0x1000C4338, symSize: 0xB8 } - - { offset: 0x1603E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_yyScMYccfU2_yyXEfU_TA', symObjAddr: 0xD570, symBinAddr: 0x1000C4408, symSize: 0x60 } - - { offset: 0x16041C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_A117_yXEfU_TA', symObjAddr: 0xD5D0, symBinAddr: 0x1000C4468, symSize: 0x8 } - - { offset: 0x160430, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySaySSGSSAA4ViewPAAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAA4TextV_SSQo_GACyxq_q0_GAae2aER0_rlWl', symObjAddr: 0xD5D8, symBinAddr: 0x1000C4470, symSize: 0xA8 } - - { offset: 0x160444, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ButtonVyAA4TextVGAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGACyxq_GAA4ViewA2aQRzAA0lJ0R_rlWl', symObjAddr: 0xD6D0, symBinAddr: 0x1000C4520, symSize: 0xB8 } - - { offset: 0x160458, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_ySbcfU0_TA', symObjAddr: 0xD788, symBinAddr: 0x1000C45D8, symSize: 0x24 } - - { offset: 0x160479, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A74_yXEfU_yyScMYccfU1_TA', symObjAddr: 0xD7AC, symBinAddr: 0x1000C45FC, symSize: 0x20 } - - { offset: 0x1604AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TA', symObjAddr: 0xD998, symBinAddr: 0x1000C4728, symSize: 0x68 } - - { offset: 0x1604C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A7_ycfU0_yyScMYccfU_TA', symObjAddr: 0xDD50, symBinAddr: 0x1000C4858, symSize: 0x20 } - - { offset: 0x1604D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwCP', symObjAddr: 0xDD70, symBinAddr: 0x1000C4878, symSize: 0x20C } - - { offset: 0x1604E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwxx', symObjAddr: 0xDF7C, symBinAddr: 0x1000C4A84, symSize: 0xDC } - - { offset: 0x1604FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwcp', symObjAddr: 0xE058, symBinAddr: 0x1000C4B60, symSize: 0x1E0 } - - { offset: 0x160511, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwca', symObjAddr: 0xE238, symBinAddr: 0x1000C4D40, symSize: 0x280 } - - { offset: 0x160525, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwtk', symObjAddr: 0xE4B8, symBinAddr: 0x1000C4FC0, symSize: 0x11C } - - { offset: 0x160539, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwta', symObjAddr: 0xE5D4, symBinAddr: 0x1000C50DC, symSize: 0x208 } - - { offset: 0x16054D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwet', symObjAddr: 0xE7DC, symBinAddr: 0x1000C52E4, symSize: 0xC } - - { offset: 0x160561, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwst', symObjAddr: 0xE874, symBinAddr: 0x1000C537C, symSize: 0xC } - - { offset: 0x160575, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVMr', symObjAddr: 0xE900, symBinAddr: 0x1000C5408, symSize: 0xA0 } - - { offset: 0x160589, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVwxx', symObjAddr: 0xEA2C, symBinAddr: 0x1000C54A8, symSize: 0x30 } - - { offset: 0x16059D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVwcp', symObjAddr: 0xEA5C, symBinAddr: 0x1000C54D8, symSize: 0x54 } - - { offset: 0x1605B1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVwca', symObjAddr: 0xEAB0, symBinAddr: 0x1000C552C, symSize: 0x84 } - - { offset: 0x1605C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVwta', symObjAddr: 0xEB48, symBinAddr: 0x1000C55B0, symSize: 0x54 } - - { offset: 0x1605D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVMa', symObjAddr: 0xEC2C, symBinAddr: 0x1000C5604, symSize: 0x10 } - - { offset: 0x1605ED, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ZStackVyAA9TupleViewVyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyACyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA15_HiddenModifierVGAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_G_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA0Y0VyAGyAA7SectionVyAtGyACyAA6HStackVyAGyAEyAGyACyAA06_ShapeG0VyAA16RoundedRectangleVAA5ColorVGAA12_FrameLayoutVG_ACyACyAA5ImageVAA022_EnvironmentKeyWritingS0VyAA4FontVSgGGA28_yA20_SgGGtGG_AIyAGyAT_ATtGGAA6SpacerVAnAEAOyQrqd__AaPRd__lFQOyACyAuA024_EnvironmentKeyTransformS0VySbGG_AWQo_ACyAA08ProgressG0VyAA05EmptyG0VA51_GA28_yAA11ControlSizeOGGSgtGGAA14_PaddingLayoutVG_AA6ToggleVyATGA65_A65_A65_ACyA65_AA012_ValueActionS0VySbGGA14_yAGyAT_A42_ACyAnAE06labelsR0QryFQOyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyATSSAGyAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_SSQo__A77_A77_tGG_AA010MenuPickerM0VQo__Qo_AA16_FixedSizeLayoutVGtGGtGA51_G_A12_yATA14_yAGyAT_A42_AA012_ConditionalD0VyA14_yAGyACyA26_A35_G_ATtGGACyAUA35_GGtGGA51_GA12_yATA74_yATSSAA7ForEachVySaySSGSSA77_GGATGA12_yAtGyA14_yAGyAT_A42_ATtGG_A14_yAGyAT_A42_AnAE13textSelectionyQrqd__AA0P13SelectabilityRd__lFQOyAT_AA07EnabledP13SelectabilityVQo_tGGA14_yAGyAT_A42_ACyAA4LinkVyATGA35_GtGGAnAEAOyQrqd__AaPRd__lFQOyARyACyAIyAGyA14_yAGyAT_A42_A36_tGG_ACyACyATA85_GA28_yAA0P9AlignmentOGGtGGAA01_d5ShapeS0VyAA9RectangleVGGG_AA05PlainoM0VQo_tGA51_GtGG_AA07GroupedyM0VQo__Qo_tGGAA01_vmS0VyA20_GG_ACyACyAJ07LicenseG0VAA013_TraitWritingS0VyAA18TransitionTraitKeyVGGA158_yAA14ZIndexTraitKeyVGGSgACyACyAJ015AppUpdateDetailG0VA161_GA165_GSgtGGAA017_AppearanceActionS0VGACyxq_GAam2aMRzAA0gS0R_rlWl', symObjAddr: 0xEC40, symBinAddr: 0x1000C5618, symSize: 0x98 } - - { offset: 0x160601, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0xECD8, symBinAddr: 0x1000C56B0, symSize: 0x10 } - - { offset: 0x160615, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV7SwiftUI0E0AA4BodyAdEP_AGWT', symObjAddr: 0xECE8, symBinAddr: 0x1000C56C0, symSize: 0x10 } - - { offset: 0x160629, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVWOc', symObjAddr: 0xECF8, symBinAddr: 0x1000C56D0, symSize: 0x44 } - - { offset: 0x16063D, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA6HStackVyAA9TupleViewVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonI0Rd__lFQOyAA0K0VyAA4TextVG_AA08BorderedkI0VQo__AiAEAJyQrqd__AaKRd__lFQOyAP_AA0m9ProminentkI0VQo_tGGAA08ModifiedD0VyAiAE08progressgI0yQrqd__AA08ProgressgI0Rd__lFQOyAA0qG0VyAA05EmptyG0VA4_G_AA06LinearqgI0VQo_AA12_FrameLayoutVGGACyxq_GAah2aHRzAaHR_rlWl', symObjAddr: 0xEDF4, symBinAddr: 0x1000C5788, symSize: 0x98 } - - { offset: 0x160651, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE08progressE5StyleyQrqd__AA08ProgresseG0Rd__lFQOyAA0hE0VyAA05EmptyE0VAKG_AA06LinearheG0VQo_AA12_FrameLayoutVGACyxq_GAad2aDRzAA0E8ModifierR_rlWl', symObjAddr: 0xEE8C, symBinAddr: 0x1000C5820, symSize: 0x10C } - - { offset: 0x160665, size: 0x8, addend: 0x0, symName: '_$sS2dSBsWl', symObjAddr: 0xEF98, symBinAddr: 0x1000C592C, symSize: 0x40 } - - { offset: 0x160679, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFySdcfU_TA', symObjAddr: 0xF0B4, symBinAddr: 0x1000C59C0, symSize: 0x3C } - - { offset: 0x16068D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_TA', symObjAddr: 0xF234, symBinAddr: 0x1000C5B40, symSize: 0x78 } - - { offset: 0x1606A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU0_TA', symObjAddr: 0xF3CC, symBinAddr: 0x1000C5CD8, symSize: 0x88 } - - { offset: 0x1606B5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU_TA', symObjAddr: 0xF5A4, symBinAddr: 0x1000C5EB0, symSize: 0xAC } - - { offset: 0x1606C9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFySdcfU_yyScMYccfU_TA', symObjAddr: 0xF7B8, symBinAddr: 0x1000C6080, symSize: 0x40 } - - { offset: 0x1606DD, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0xF7F8, symBinAddr: 0x1000C60C0, symSize: 0x10 } - - { offset: 0x1606F1, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0xF808, symBinAddr: 0x1000C60D0, symSize: 0x8 } - - { offset: 0x160705, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_AUycfU_TA', symObjAddr: 0xF9CC, symBinAddr: 0x1000C623C, symSize: 0x8 } - - { offset: 0x160719, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_A13_yXEfU1_TA', symObjAddr: 0xF9D4, symBinAddr: 0x1000C6244, symSize: 0x8 } - - { offset: 0x16072D, size: 0x8, addend: 0x0, symName: '_$sSSWOc', symObjAddr: 0xFA18, symBinAddr: 0x1000C624C, symSize: 0x3C } - - { offset: 0x160741, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_AUycfU_yyScMYccfU_TA', symObjAddr: 0xFB38, symBinAddr: 0x1000C62BC, symSize: 0x8 } - - { offset: 0x160755, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewVMa', symObjAddr: 0xFCEC, symBinAddr: 0x1000C62D8, symSize: 0x10 } - - { offset: 0x160769, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_AA012_ConditionalD0VyAXyAA6HStackVyAGyAV_AlAEAMyQrqd__AaNRd__lFQOyAS_AA0p9ProminentnL0VQo_tGGACyAlAE08progressgL0yQrqd__AA08ProgressgL0Rd__lFQOyAA0uG0VyAA05EmptyG0VA9_G_AA06LinearugL0VQo_AA12_FrameLayoutVGGA1_GG_AH011MarkdownWebG0VtGGAA011_BackgroundL8ModifierVyAA5ColorVGGACyxq_GAak2aKRzAA0G8ModifierR_rlWl', symObjAddr: 0xFD00, symBinAddr: 0x1000C62EC, symSize: 0xB8 } - - { offset: 0x16077D, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_AA05EmptyG0VG_AA06ScrollG0VyAlAE13textSelectionyQrqd__AA0O13SelectabilityRd__lFQOyACyArA14_PaddingLayoutVG_AA07EnabledoU0VQo_GtGGAA011_BackgroundL8ModifierVyAA5ColorVGGACyxq_GAak2aKRzAA0gZ0R_rlWl', symObjAddr: 0xFDBC, symBinAddr: 0x1000C63A8, symSize: 0xB8 } - - { offset: 0x160791, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI19NSViewRepresentableAaD0D0PWb', symObjAddr: 0xFEC4, symBinAddr: 0x1000C6460, symSize: 0x4 } - - { offset: 0x1607A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewVAC7SwiftUI0D0AAWl', symObjAddr: 0xFEC8, symBinAddr: 0x1000C6464, symSize: 0x40 } - - { offset: 0x1607DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewVAC7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x10194, symBinAddr: 0x1000C6730, symSize: 0x40 } - - { offset: 0x16207F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_', symObjAddr: 0x0, symBinAddr: 0x1000B72FC, symSize: 0x744 } - - { offset: 0x1623C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_', symObjAddr: 0x744, symBinAddr: 0x1000B7A40, symSize: 0x418 } - - { offset: 0x162445, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A4_ycfU_', symObjAddr: 0xB5C, symBinAddr: 0x1000B7E58, symSize: 0x174 } - - { offset: 0x162486, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A7_ycfU0_', symObjAddr: 0xCD4, symBinAddr: 0x1000B7FCC, symSize: 0x220 } - - { offset: 0x1624DE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_', symObjAddr: 0xEF4, symBinAddr: 0x1000B81EC, symSize: 0x7B8 } - - { offset: 0x162561, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_', symObjAddr: 0x16AC, symBinAddr: 0x1000B89A4, symSize: 0x944 } - - { offset: 0x162736, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A74_yXEfU_', symObjAddr: 0x1FF0, symBinAddr: 0x1000B92E8, symSize: 0x76C } - - { offset: 0x1628FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A74_yXEfU_A55_yXEfU_', symObjAddr: 0x275C, symBinAddr: 0x1000B9A54, symSize: 0x530 } - - { offset: 0x162A8A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A74_yXEfU_A57_yXEfU0_', symObjAddr: 0x2C8C, symBinAddr: 0x1000B9F84, symSize: 0x460 } - - { offset: 0x162B22, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyF', symObjAddr: 0x30EC, symBinAddr: 0x1000BA3E4, symSize: 0x1C8 } - - { offset: 0x162B46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_', symObjAddr: 0x5EB0, symBinAddr: 0x1000BCFF8, symSize: 0x1EC } - - { offset: 0x162CBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY0_', symObjAddr: 0x609C, symBinAddr: 0x1000BD1E4, symSize: 0x2AC } - - { offset: 0x162DBA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TQ1_', symObjAddr: 0x6348, symBinAddr: 0x1000BD490, symSize: 0xE8 } - - { offset: 0x162E23, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY2_', symObjAddr: 0x6430, symBinAddr: 0x1000BD578, symSize: 0xE0C } - - { offset: 0x163378, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY3_', symObjAddr: 0x723C, symBinAddr: 0x1000BE384, symSize: 0x94 } - - { offset: 0x16357B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY4_', symObjAddr: 0x72D0, symBinAddr: 0x1000BE418, symSize: 0x1C8 } - - { offset: 0x1636FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY5_', symObjAddr: 0x7498, symBinAddr: 0x1000BE5E0, symSize: 0xB4 } - - { offset: 0x16388F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY6_', symObjAddr: 0x754C, symBinAddr: 0x1000BE694, symSize: 0x94 } - - { offset: 0x163A42, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY7_', symObjAddr: 0x75E0, symBinAddr: 0x1000BE728, symSize: 0xA8 } - - { offset: 0x163B84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY8_', symObjAddr: 0x7688, symBinAddr: 0x1000BE7D0, symSize: 0xA4 } - - { offset: 0x163D16, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY9_', symObjAddr: 0x772C, symBinAddr: 0x1000BE874, symSize: 0x94 } - - { offset: 0x163D7C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY10_', symObjAddr: 0x77C0, symBinAddr: 0x1000BE908, symSize: 0x9C } - - { offset: 0x163DD1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY11_', symObjAddr: 0x785C, symBinAddr: 0x1000BE9A4, symSize: 0xDC } - - { offset: 0x163E00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY12_', symObjAddr: 0x7938, symBinAddr: 0x1000BEA80, symSize: 0x94 } - - { offset: 0x163E82, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY13_', symObjAddr: 0x79CC, symBinAddr: 0x1000BEB14, symSize: 0xB4 } - - { offset: 0x163EEB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY14_', symObjAddr: 0x7A80, symBinAddr: 0x1000BEBC8, symSize: 0x68 } - - { offset: 0x163F30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY15_', symObjAddr: 0x7AE8, symBinAddr: 0x1000BEC30, symSize: 0xA0 } - - { offset: 0x164006, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV19toggleLaunchAtLogin33_2F0BF8495421D1333AD07E5A9581ACEFLL7enabledySb_tF', symObjAddr: 0x32B4, symBinAddr: 0x1000BA5AC, symSize: 0x224 } - - { offset: 0x164123, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A100_yXEfU1_', symObjAddr: 0x34D8, symBinAddr: 0x1000BA7D0, symSize: 0x440 } - - { offset: 0x1641ED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A100_yXEfU1_A93_yXEfU_', symObjAddr: 0x3918, symBinAddr: 0x1000BAC10, symSize: 0x408 } - - { offset: 0x16431D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_', symObjAddr: 0x3D20, symBinAddr: 0x1000BB018, symSize: 0x54 } - - { offset: 0x1643E2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_A111_yXEfU_', symObjAddr: 0x3D74, symBinAddr: 0x1000BB06C, symSize: 0x4D4 } - - { offset: 0x164565, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_A111_yXEfU_A107_yXEfU_', symObjAddr: 0x4248, symBinAddr: 0x1000BB540, symSize: 0x194 } - - { offset: 0x1645D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_', symObjAddr: 0x4530, symBinAddr: 0x1000BB6D4, symSize: 0xF4 } - - { offset: 0x164601, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_A117_yXEfU_', symObjAddr: 0x4624, symBinAddr: 0x1000BB7C8, symSize: 0x118 } - - { offset: 0x164636, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_A117_yXEfU_A92_SScfU_', symObjAddr: 0x473C, symBinAddr: 0x1000BB8E0, symSize: 0xCC } - - { offset: 0x164707, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_', symObjAddr: 0x4808, symBinAddr: 0x1000BB9AC, symSize: 0x650 } - - { offset: 0x164865, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A120_yXEfU_', symObjAddr: 0x4E58, symBinAddr: 0x1000BBFFC, symSize: 0x1D0 } - - { offset: 0x1648DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A127_yXEfU0_', symObjAddr: 0x5028, symBinAddr: 0x1000BC1CC, symSize: 0x31C } - - { offset: 0x16495B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A133_yXEfU1_', symObjAddr: 0x5344, symBinAddr: 0x1000BC4E8, symSize: 0x348 } - - { offset: 0x164A54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A150_yXEfU3_', symObjAddr: 0x56E8, symBinAddr: 0x1000BC830, symSize: 0x184 } - - { offset: 0x164AE4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A150_yXEfU3_A146_yXEfU_', symObjAddr: 0x586C, symBinAddr: 0x1000BC9B4, symSize: 0x3BC } - - { offset: 0x164C03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A150_yXEfU3_A146_yXEfU_A137_yXEfU_', symObjAddr: 0x5C28, symBinAddr: 0x1000BCD70, symSize: 0x200 } - - { offset: 0x164CAD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvgyycfU0_', symObjAddr: 0x5E28, symBinAddr: 0x1000BCF70, symSize: 0x88 } - - { offset: 0x164DAD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0x7BA8, symBinAddr: 0x1000BECD0, symSize: 0x128 } - - { offset: 0x164EA8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg', symObjAddr: 0x7CD0, symBinAddr: 0x1000BEDF8, symSize: 0x130 } - - { offset: 0x164F5D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_', symObjAddr: 0x7E00, symBinAddr: 0x1000BEF28, symSize: 0x1E0 } - - { offset: 0x16501A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_AUycfU_', symObjAddr: 0x7FE0, symBinAddr: 0x1000BF108, symSize: 0x21C } - - { offset: 0x16506E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_AUycfU_yyScMYccfU_', symObjAddr: 0x81FC, symBinAddr: 0x1000BF324, symSize: 0x124 } - - { offset: 0x1650EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_A25_ycfU0_', symObjAddr: 0x8380, symBinAddr: 0x1000BF448, symSize: 0xA18 } - - { offset: 0x165261, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_A25_ycfU0_A1_yXEfU_', symObjAddr: 0x8D98, symBinAddr: 0x1000BFE60, symSize: 0x508 } - - { offset: 0x1652D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_A25_ycfU0_A1_yXEfU_yyScMYccfU_', symObjAddr: 0x92A0, symBinAddr: 0x1000C0368, symSize: 0x1E0 } - - { offset: 0x165467, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV12smartInstall33_2F0BF8495421D1333AD07E5A9581ACEFLLyyF', symObjAddr: 0x9480, symBinAddr: 0x1000C0548, symSize: 0x920 } - - { offset: 0x1657C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyF', symObjAddr: 0x9DA0, symBinAddr: 0x1000C0E68, symSize: 0x590 } - - { offset: 0x1658D6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFySdcfU_', symObjAddr: 0xA808, symBinAddr: 0x1000C18D0, symSize: 0x288 } - - { offset: 0x165940, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFySdcfU_yyScMYccfU_', symObjAddr: 0xAA90, symBinAddr: 0x1000C1B58, symSize: 0x54 } - - { offset: 0x16597E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_', symObjAddr: 0xAAE4, symBinAddr: 0x1000C1BAC, symSize: 0x76C } - - { offset: 0x165BEC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU_', symObjAddr: 0xB250, symBinAddr: 0x1000C2318, symSize: 0xC8 } - - { offset: 0x165C2A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU_TY0_', symObjAddr: 0xB318, symBinAddr: 0x1000C23E0, symSize: 0x224 } - - { offset: 0x165CD7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU0_', symObjAddr: 0xB53C, symBinAddr: 0x1000C2604, symSize: 0x90 } - - { offset: 0x165D04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU0_TY0_', symObjAddr: 0xB5CC, symBinAddr: 0x1000C2694, symSize: 0x6C } - - { offset: 0x165D35, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV16findBestAssetURL33_2F0BF8495421D1333AD07E5A9581ACEFLLSSSgyF', symObjAddr: 0xA330, symBinAddr: 0x1000C13F8, symSize: 0x4D8 } - - { offset: 0x1661A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV7SwiftUI0E0AadEP4body4BodyQzvgTW', symObjAddr: 0xB638, symBinAddr: 0x1000C2700, symSize: 0x4 } - - { offset: 0x1661DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateC10urlSession_12downloadTask22didFinishDownloadingToySo12NSURLSessionC_So0lbG0C10Foundation3URLVtFTo', symObjAddr: 0xB63C, symBinAddr: 0x1000C2704, symSize: 0x148 } - - { offset: 0x166264, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateC10urlSession_12downloadTask12didWriteData17totalBytesWritten0kl10ExpectedToI0ySo12NSURLSessionC_So0pbG0Cs5Int64VA2NtFTo', symObjAddr: 0xB784, symBinAddr: 0x1000C284C, symSize: 0x58 } - - { offset: 0x166316, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0K4TaskCs0J0_pSgtFTo', symObjAddr: 0xB7DC, symBinAddr: 0x1000C28A4, symSize: 0xF4 } - - { offset: 0x16636A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateCACycfcTo', symObjAddr: 0xB8D0, symBinAddr: 0x1000C2998, symSize: 0x2C } - - { offset: 0x1663CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateCfD', symObjAddr: 0xB8FC, symBinAddr: 0x1000C29C4, symSize: 0x30 } - - { offset: 0x166478, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI19NSViewRepresentableAadEP04makeG07context0G4TypeQzAD0gH7ContextVyxG_tFTW', symObjAddr: 0xB9DC, symBinAddr: 0x1000C2A54, symSize: 0x9C } - - { offset: 0x16652A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI19NSViewRepresentableAadEP06updateG0_7contexty0G4TypeQz_AD0gH7ContextVyxGtFTW', symObjAddr: 0xBA78, symBinAddr: 0x1000C2AF0, symSize: 0x68 } - - { offset: 0x1665D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_', symObjAddr: 0xBBF4, symBinAddr: 0x1000C2C1C, symSize: 0x284 } - - { offset: 0x16667D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_AUycfU_', symObjAddr: 0xBE78, symBinAddr: 0x1000C2EA0, symSize: 0x1FC } - - { offset: 0x1666CA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_AUycfU_yyScMYccfU_', symObjAddr: 0xC074, symBinAddr: 0x1000C309C, symSize: 0x5C } - - { offset: 0x166709, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_A13_yXEfU1_', symObjAddr: 0xC0D4, symBinAddr: 0x1000C30F8, symSize: 0x338 } - - { offset: 0x1667EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0xC40C, symBinAddr: 0x1000C3430, symSize: 0xC0 } - - { offset: 0x1668EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV11isPresentedAC7SwiftUI7BindingVySbG_tcfCTf4nd_n', symObjAddr: 0xC680, symBinAddr: 0x1000C358C, symSize: 0x380 } - - { offset: 0x166B0E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV12generateHTML4fromS2S_tFTf4nd_n', symObjAddr: 0xFF08, symBinAddr: 0x1000C64A4, symSize: 0x28C } - - { offset: 0x166DBA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVMi', symObjAddr: 0x0, symBinAddr: 0x1000C67B8, symSize: 0x8 } - - { offset: 0x166DCE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVwxx', symObjAddr: 0x34, symBinAddr: 0x1000C67C0, symSize: 0x38 } - - { offset: 0x166DE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVwcp', symObjAddr: 0x6C, symBinAddr: 0x1000C67F8, symSize: 0x7C } - - { offset: 0x166DF6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVwca', symObjAddr: 0xE8, symBinAddr: 0x1000C6874, symSize: 0x9C } - - { offset: 0x166E0A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVwta', symObjAddr: 0x198, symBinAddr: 0x1000C6910, symSize: 0x6C } - - { offset: 0x166E1E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVMa', symObjAddr: 0x29C, symBinAddr: 0x1000C697C, symSize: 0xC } - - { offset: 0x166E32, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVyxq_G7SwiftUI4ViewAA4BodyAeFP_AHWT', symObjAddr: 0x2A8, symBinAddr: 0x1000C6988, symSize: 0x34 } - - { offset: 0x166E78, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5ColorVAcA10ShapeStyleAAWl', symObjAddr: 0x1080, symBinAddr: 0x1000C76EC, symSize: 0x40 } - - { offset: 0x166E8C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7DividerVAcA4ViewAAWl', symObjAddr: 0x10C0, symBinAddr: 0x1000C772C, symSize: 0x44 } - - { offset: 0x167002, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZ', symObjAddr: 0x2DC, symBinAddr: 0x1000C69BC, symSize: 0x1C0 } - - { offset: 0x167090, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderV4bodyQrvg', symObjAddr: 0x49C, symBinAddr: 0x1000C6B7C, symSize: 0x228 } - - { offset: 0x167130, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderV4bodyQrvg7SwiftUI9TupleViewVyAE0H0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE7paddingyQr12CoreGraphics7CGFloatVFQOyAE6HStackVyAGyx_AE6SpacerVAiEE9lineLimityQrSiSgFQOyAE4TextV_Qo_AXq_tGG_Qo__AE5ColorVQo__AE7DividerVtGyXEfU_', symObjAddr: 0x6C4, symBinAddr: 0x1000C6DA4, symSize: 0x4A0 } - - { offset: 0x1671E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderV4bodyQrvg7SwiftUI9TupleViewVyAE0H0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE7paddingyQr12CoreGraphics7CGFloatVFQOyAE6HStackVyAGyx_AE6SpacerVAiEE9lineLimityQrSiSgFQOyAE4TextV_Qo_AXq_tGG_Qo__AE5ColorVQo__AE7DividerVtGyXEfU_A2_yXEfU_', symObjAddr: 0xB64, symBinAddr: 0x1000C7244, symSize: 0x444 } - - { offset: 0x1673C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVyxq_G7SwiftUI4ViewAaeFP4body4BodyQzvgTW', symObjAddr: 0xFC8, symBinAddr: 0x1000C7688, symSize: 0x38 } - - { offset: 0x1677D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI0C0AadEP05_makeC04view6inputsAD01_C7OutputsVAD11_GraphValueVyxG_AD01_C6InputsVtFZTW', symObjAddr: 0xE84, symBinAddr: 0x1000C86E4, symSize: 0x50 } - - { offset: 0x1677EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI0C0AadEP05_makeC4List4view6inputsAD01_cG7OutputsVAD11_GraphValueVyxG_AD01_cG6InputsVtFZTW', symObjAddr: 0xED4, symBinAddr: 0x1000C8734, symSize: 0x50 } - - { offset: 0x16780B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0xF3C, symBinAddr: 0x1000C8784, symSize: 0x24 } - - { offset: 0x167C61, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV11CoordinatorCMa', symObjAddr: 0xD2C, symBinAddr: 0x1000C85D8, symSize: 0x20 } - - { offset: 0x167DBC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewCfETo', symObjAddr: 0x2790, symBinAddr: 0x1000C9FD0, symSize: 0xD8 } - - { offset: 0x167DEB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewCMa', symObjAddr: 0x2868, symBinAddr: 0x1000CA0A8, symSize: 0x20 } - - { offset: 0x167E15, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV19_getElementSlowPathyyXlSiF8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC_Tg5', symObjAddr: 0x289C, symBinAddr: 0x1000CA0DC, symSize: 0x19C } - - { offset: 0x167EB5, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV19_getElementSlowPathyyXlSiFSo10CGColorRefa_Tg5', symObjAddr: 0x2C08, symBinAddr: 0x1000CA448, symSize: 0x1A0 } - - { offset: 0x167F36, size: 0x8, addend: 0x0, symName: ___swift_memcpy25_8, symObjAddr: 0x30C4, symBinAddr: 0x1000CA664, symSize: 0x14 } - - { offset: 0x167F4A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewVMa', symObjAddr: 0x30D8, symBinAddr: 0x1000CA678, symSize: 0x10 } - - { offset: 0x167F5E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x30E8, symBinAddr: 0x1000CA688, symSize: 0x10 } - - { offset: 0x167F72, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewVMa', symObjAddr: 0x32E8, symBinAddr: 0x1000CA85C, symSize: 0x10 } - - { offset: 0x167F86, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewVAC7SwiftUI0C0AAWl', symObjAddr: 0x3414, symBinAddr: 0x1000CA934, symSize: 0x40 } - - { offset: 0x167F9A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI19NSViewRepresentableAaD0C0PWb', symObjAddr: 0x3460, symBinAddr: 0x1000CA974, symSize: 0x4 } - - { offset: 0x167FAE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewVAC7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x34A4, symBinAddr: 0x1000CA978, symSize: 0x40 } - - { offset: 0x1680E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV12updateNSView_7contextyAA0bE0C_7SwiftUI0E20RepresentableContextVyACGtF', symObjAddr: 0x0, symBinAddr: 0x1000C78AC, symSize: 0x13C } - - { offset: 0x168476, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC10updateData_12isLayoutPassySaySdG_SbtF', symObjAddr: 0x13C, symBinAddr: 0x1000C79E8, symSize: 0xBE0 } - - { offset: 0x168FDA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV11CoordinatorCfD', symObjAddr: 0xD1C, symBinAddr: 0x1000C85C8, symSize: 0x10 } - - { offset: 0x16903C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI19NSViewRepresentableAadEP04makeF07context0F4TypeQzAD0fG7ContextVyxG_tFTW', symObjAddr: 0xD4C, symBinAddr: 0x1000C85F8, symSize: 0xAC } - - { offset: 0x1690E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI19NSViewRepresentableAadEP06updateF0_7contexty0F4TypeQz_AD0fG7ContextVyxGtFTW', symObjAddr: 0xDF8, symBinAddr: 0x1000C86A4, symSize: 0x10 } - - { offset: 0x16910F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI19NSViewRepresentableAadEP15makeCoordinator0I0QzyFTW', symObjAddr: 0xE0C, symBinAddr: 0x1000C86B4, symSize: 0x30 } - - { offset: 0x16920B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewV4bodyQrvgyycfU_', symObjAddr: 0xF60, symBinAddr: 0x1000C87A8, symSize: 0x68 } - - { offset: 0x16926E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewV4bodyQrvgyycfU0_', symObjAddr: 0xFC8, symBinAddr: 0x1000C8810, symSize: 0x6C } - - { offset: 0x169392, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x103C, symBinAddr: 0x1000C887C, symSize: 0x60 } - - { offset: 0x1693EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC12updateColors33_BC94CB1C6C921A66659798F7853C85C9LLyyF', symObjAddr: 0x109C, symBinAddr: 0x1000C88DC, symSize: 0x298 } - - { offset: 0x1694F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5frameACSo6CGRectV_tcfc', symObjAddr: 0x1334, symBinAddr: 0x1000C8B74, symSize: 0x2C8 } - - { offset: 0x1696AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5setup33_BC94CB1C6C921A66659798F7853C85C9LLyyF', symObjAddr: 0x15FC, symBinAddr: 0x1000C8E3C, symSize: 0x468 } - - { offset: 0x169732, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5frameACSo6CGRectV_tcfcTo', symObjAddr: 0x1A64, symBinAddr: 0x1000C92A4, symSize: 0x20 } - - { offset: 0x169746, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5coderACSgSo7NSCoderC_tcfc', symObjAddr: 0x1A84, symBinAddr: 0x1000C92C4, symSize: 0x2B0 } - - { offset: 0x1698FE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5coderACSgSo7NSCoderC_tcfcTo', symObjAddr: 0x1D34, symBinAddr: 0x1000C9574, symSize: 0x28 } - - { offset: 0x169912, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC6layoutyyF', symObjAddr: 0x1D5C, symBinAddr: 0x1000C959C, symSize: 0x3D4 } - - { offset: 0x169BA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC6layoutyyFTo', symObjAddr: 0x2130, symBinAddr: 0x1000C9970, symSize: 0x28 } - - { offset: 0x169BD7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC16triggerHaloPulse33_BC94CB1C6C921A66659798F7853C85C9LLyyF', symObjAddr: 0x2158, symBinAddr: 0x1000C9998, symSize: 0x2FC } - - { offset: 0x169CFF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewCfZ', symObjAddr: 0x2454, symBinAddr: 0x1000C9C94, symSize: 0x3C } - - { offset: 0x169D45, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewCfD', symObjAddr: 0x2490, symBinAddr: 0x1000C9CD0, symSize: 0x300 } - - { offset: 0x169E97, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_C3827ED1CF4376E068C68EE2372FFBE3LLCfZ', symObjAddr: 0x0, symBinAddr: 0x1000CA9D0, symSize: 0x90 } - - { offset: 0x169F10, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_C3827ED1CF4376E068C68EE2372FFBE3LLCMa', symObjAddr: 0x3E8, symBinAddr: 0x1000CADB8, symSize: 0x20 } - - { offset: 0x169F53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_C3827ED1CF4376E068C68EE2372FFBE3LLCfZ', symObjAddr: 0x0, symBinAddr: 0x1000CA9D0, symSize: 0x90 } - - { offset: 0x169FC5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_C3827ED1CF4376E068C68EE2372FFBE3LLCfD', symObjAddr: 0x90, symBinAddr: 0x1000CAA60, symSize: 0x358 } - - { offset: 0x16A115, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_36BF40AF2C2F833B8EC1F5774C1AB3F5LLCfZ', symObjAddr: 0x0, symBinAddr: 0x1000CAE4C, symSize: 0x90 } - - { offset: 0x16A18E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_36BF40AF2C2F833B8EC1F5774C1AB3F5LLCMa', symObjAddr: 0x3E8, symBinAddr: 0x1000CB234, symSize: 0x20 } - - { offset: 0x16A1A2, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_', symObjAddr: 0x4C0, symBinAddr: 0x1000CB278, symSize: 0x6C } - - { offset: 0x16A1BA, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_TY0_', symObjAddr: 0x52C, symBinAddr: 0x1000CB2E4, symSize: 0x50 } - - { offset: 0x16A216, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_36BF40AF2C2F833B8EC1F5774C1AB3F5LLCfZ', symObjAddr: 0x0, symBinAddr: 0x1000CAE4C, symSize: 0x90 } - - { offset: 0x16A288, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_36BF40AF2C2F833B8EC1F5774C1AB3F5LLCfD', symObjAddr: 0x90, symBinAddr: 0x1000CAEDC, symSize: 0x358 } -... diff --git a/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/Relocations/x86_64/Swiftier.yml b/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/Relocations/x86_64/Swiftier.yml deleted file mode 100644 index d1f3528..0000000 --- a/Swiftier.xcarchive/dSYMs/Swiftier.app.dSYM/Contents/Resources/Relocations/x86_64/Swiftier.yml +++ /dev/null @@ -1,2562 +0,0 @@ ---- -triple: 'x86_64-apple-darwin' -binary-path: '/Users/alick/Library/Developer/Xcode/DerivedData/Swiftier-ctkjodxpxqqyhsbthnbqoqrbkuwb/Build/Intermediates.noindex/ArchiveIntermediates/Swiftier/InstallationBuildProductsLocation/Applications/Swiftier.app/Contents/MacOS/Swiftier' -relocations: - - { offset: 0x100D74, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier8LogLevelO_Tg5', symObjAddr: 0x140, symBinAddr: 0x100001860, symSize: 0x160 } - - { offset: 0x100E37, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysO_Tg5', symObjAddr: 0x2A0, symBinAddr: 0x1000019C0, symSize: 0x200 } - - { offset: 0x100EEC, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysO_Tg5', symObjAddr: 0x4A0, symBinAddr: 0x100001BC0, symSize: 0x170 } - - { offset: 0x100FBB, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysO_Tg5', symObjAddr: 0x610, symBinAddr: 0x100001D30, symSize: 0x190 } - - { offset: 0x101056, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysO_Tg5', symObjAddr: 0x7A0, symBinAddr: 0x100001EC0, symSize: 0x230 } - - { offset: 0x1010F1, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysO_Tg5', symObjAddr: 0x9D0, symBinAddr: 0x1000020F0, symSize: 0x180 } - - { offset: 0x10120E, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysO_Tg5', symObjAddr: 0xB50, symBinAddr: 0x100002270, symSize: 0x170 } - - { offset: 0x1012A9, size: 0x8, addend: 0x0, symName: '_$ss2eeoiySbx_xtSYRzSQ8RawValueRpzlF8Swiftier14EasyTierStatusV10CodingKeysO_Tg5', symObjAddr: 0xCC0, symBinAddr: 0x1000023E0, symSize: 0x290 } - - { offset: 0x10138B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0xF80, symBinAddr: 0x1000026A0, symSize: 0x50 } - - { offset: 0x1013AE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0xFD0, symBinAddr: 0x1000026F0, symSize: 0x40 } - - { offset: 0x10140D, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE04hashB0Sivg8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysO_Tg5', symObjAddr: 0x1010, symBinAddr: 0x100002730, symSize: 0xF0 } - - { offset: 0x1014CB, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE4hash4intoys6HasherVz_tF8Swiftier14EasyTierStatusV10CodingKeysO_Tg5', symObjAddr: 0x1100, symBinAddr: 0x100002820, symSize: 0x110 } - - { offset: 0x10155C, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE08_rawHashB04seedS2i_tF8Swiftier14EasyTierStatusV10CodingKeysO_Tg5', symObjAddr: 0x1210, symBinAddr: 0x100002930, symSize: 0x130 } - - { offset: 0x10161F, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE08_rawHashB04seedS2i_tF8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysO_Tg5', symObjAddr: 0x1340, symBinAddr: 0x100002A60, symSize: 0x110 } - - { offset: 0x101696, size: 0x8, addend: 0x0, symName: '_$sSYsSHRzSH8RawValueSYRpzrlE08_rawHashB04seedS2i_tF8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysO_Tg5', symObjAddr: 0x1450, symBinAddr: 0x100002B70, symSize: 0xF0 } - - { offset: 0x101A54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x1600, symBinAddr: 0x100002D20, symSize: 0x20 } - - { offset: 0x101A70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x1620, symBinAddr: 0x100002D40, symSize: 0x20 } - - { offset: 0x101AE7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1AB0, symBinAddr: 0x100003190, symSize: 0x10 } - - { offset: 0x101B4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x1AC0, symBinAddr: 0x1000031A0, symSize: 0xF0 } - - { offset: 0x101C35, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x1BB0, symBinAddr: 0x100003290, symSize: 0xD0 } - - { offset: 0x101CD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x1C80, symBinAddr: 0x100003360, symSize: 0xF0 } - - { offset: 0x101DA4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x1F50, symBinAddr: 0x100003620, symSize: 0x20 } - - { offset: 0x101DC0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x1F70, symBinAddr: 0x100003640, symSize: 0x20 } - - { offset: 0x101DE8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x20B0, symBinAddr: 0x100003780, symSize: 0x80 } - - { offset: 0x101F7A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x2360, symBinAddr: 0x100003A20, symSize: 0x20 } - - { offset: 0x101F96, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x2380, symBinAddr: 0x100003A40, symSize: 0x20 } - - { offset: 0x101FDF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x25D0, symBinAddr: 0x100003C90, symSize: 0x30 } - - { offset: 0x10206E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x28C0, symBinAddr: 0x100003F70, symSize: 0x20 } - - { offset: 0x10208A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x28E0, symBinAddr: 0x100003F90, symSize: 0x20 } - - { offset: 0x1020D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x29C0, symBinAddr: 0x100004070, symSize: 0x40 } - - { offset: 0x1022D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x30C0, symBinAddr: 0x100004720, symSize: 0x20 } - - { offset: 0x1022F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x30E0, symBinAddr: 0x100004740, symSize: 0x20 } - - { offset: 0x102311, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x3610, symBinAddr: 0x100004C60, symSize: 0x20 } - - { offset: 0x10232D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x3630, symBinAddr: 0x100004C80, symSize: 0x20 } - - { offset: 0x102376, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x38E0, symBinAddr: 0x100004F30, symSize: 0x80 } - - { offset: 0x1024F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x3AF0, symBinAddr: 0x100005120, symSize: 0x20 } - - { offset: 0x10250F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x3B10, symBinAddr: 0x100005140, symSize: 0x20 } - - { offset: 0x102558, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x3D90, symBinAddr: 0x1000053C0, symSize: 0x40 } - - { offset: 0x10265D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x4220, symBinAddr: 0x100005850, symSize: 0x10 } - - { offset: 0x1026C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x4230, symBinAddr: 0x100005860, symSize: 0xD0 } - - { offset: 0x102757, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x4300, symBinAddr: 0x100005930, symSize: 0xA0 } - - { offset: 0x1027A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x43A0, symBinAddr: 0x1000059D0, symSize: 0xC0 } - - { offset: 0x10281E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs28CustomDebugStringConvertibleAAsAJP16debugDescriptionSSvgTW', symObjAddr: 0x45E0, symBinAddr: 0x100005C00, symSize: 0x20 } - - { offset: 0x10283A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs23CustomStringConvertibleAAsAJP11descriptionSSvgTW', symObjAddr: 0x4600, symBinAddr: 0x100005C20, symSize: 0x20 } - - { offset: 0x102883, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x46C0, symBinAddr: 0x100005CE0, symSize: 0x30 } - - { offset: 0x1028DD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x4CC0, symBinAddr: 0x1000062E0, symSize: 0x10 } - - { offset: 0x102917, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x4CD0, symBinAddr: 0x1000062F0, symSize: 0x20 } - - { offset: 0x10295D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x4CF0, symBinAddr: 0x100006310, symSize: 0xF0 } - - { offset: 0x1029AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x4DE0, symBinAddr: 0x100006400, symSize: 0x10 } - - { offset: 0x1029C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x5010, symBinAddr: 0x100006620, symSize: 0x20 } - - { offset: 0x1029E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x5030, symBinAddr: 0x100006640, symSize: 0x20 } - - { offset: 0x102A2C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x5100, symBinAddr: 0x100006710, symSize: 0x30 } - - { offset: 0x102AAD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x54B0, symBinAddr: 0x100006AC0, symSize: 0x10 } - - { offset: 0x102AC9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x54C0, symBinAddr: 0x100006AD0, symSize: 0x10 } - - { offset: 0x102AE5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x54D0, symBinAddr: 0x100006AE0, symSize: 0xD0 } - - { offset: 0x102B62, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x55A0, symBinAddr: 0x100006BB0, symSize: 0x10 } - - { offset: 0x102B7D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x5790, symBinAddr: 0x100006D90, symSize: 0x20 } - - { offset: 0x102B99, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x57B0, symBinAddr: 0x100006DB0, symSize: 0x20 } - - { offset: 0x102BE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x5870, symBinAddr: 0x100006E70, symSize: 0x30 } - - { offset: 0x102C3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x6360, symBinAddr: 0x100007940, symSize: 0x20 } - - { offset: 0x102C58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x6380, symBinAddr: 0x100007960, symSize: 0x20 } - - { offset: 0x102CA1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x6450, symBinAddr: 0x100007A30, symSize: 0x30 } - - { offset: 0x102D30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x6830, symBinAddr: 0x100007E10, symSize: 0x10 } - - { offset: 0x102D97, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x6840, symBinAddr: 0x100007E20, symSize: 0xC0 } - - { offset: 0x102E59, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x6900, symBinAddr: 0x100007EE0, symSize: 0xB0 } - - { offset: 0x102ED7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x69B0, symBinAddr: 0x100007F90, symSize: 0xC0 } - - { offset: 0x102F7E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x6C00, symBinAddr: 0x1000081D0, symSize: 0x20 } - - { offset: 0x102F9A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x6C20, symBinAddr: 0x1000081F0, symSize: 0x20 } - - { offset: 0x102FE3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x6CE0, symBinAddr: 0x1000082B0, symSize: 0x30 } - - { offset: 0x10303D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x7630, symBinAddr: 0x100008BD0, symSize: 0x20 } - - { offset: 0x103059, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x7650, symBinAddr: 0x100008BF0, symSize: 0x20 } - - { offset: 0x1030A2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x7720, symBinAddr: 0x100008CC0, symSize: 0x30 } - - { offset: 0x1030E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs28CustomDebugStringConvertibleAAsAIP16debugDescriptionSSvgTW', symObjAddr: 0x7ED0, symBinAddr: 0x1000093C0, symSize: 0x20 } - - { offset: 0x103103, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs23CustomStringConvertibleAAsAIP11descriptionSSvgTW', symObjAddr: 0x7EF0, symBinAddr: 0x1000093E0, symSize: 0x20 } - - { offset: 0x103153, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x80E0, symBinAddr: 0x1000095D0, symSize: 0xD0 } - - { offset: 0x10323D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x8220, symBinAddr: 0x100009700, symSize: 0xE0 } - - { offset: 0x10334A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x8300, symBinAddr: 0x1000097E0, symSize: 0x90 } - - { offset: 0x1033F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x8390, symBinAddr: 0x100009870, symSize: 0x70 } - - { offset: 0x10345C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8400, symBinAddr: 0x1000098E0, symSize: 0x90 } - - { offset: 0x1034EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x85C0, symBinAddr: 0x100009A90, symSize: 0x20 } - - { offset: 0x103508, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x85E0, symBinAddr: 0x100009AB0, symSize: 0x20 } - - { offset: 0x103551, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8730, symBinAddr: 0x100009C00, symSize: 0x80 } - - { offset: 0x1036BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x88E0, symBinAddr: 0x100009DB0, symSize: 0x10 } - - { offset: 0x103726, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x88F0, symBinAddr: 0x100009DC0, symSize: 0xD0 } - - { offset: 0x1037B9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x89C0, symBinAddr: 0x100009E90, symSize: 0xA0 } - - { offset: 0x103808, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8A60, symBinAddr: 0x100009F30, symSize: 0xD0 } - - { offset: 0x103880, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs28CustomDebugStringConvertibleAAsAHP16debugDescriptionSSvgTW', symObjAddr: 0x8CB0, symBinAddr: 0x10000A170, symSize: 0x20 } - - { offset: 0x10389C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs23CustomStringConvertibleAAsAHP11descriptionSSvgTW', symObjAddr: 0x8CD0, symBinAddr: 0x10000A190, symSize: 0x20 } - - { offset: 0x1038E5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8E30, symBinAddr: 0x10000A2F0, symSize: 0x80 } - - { offset: 0x103A11, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x8EF0, symBinAddr: 0x10000A3B0, symSize: 0x10 } - - { offset: 0x103A4B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASH9hashValueSivgTW', symObjAddr: 0x8F00, symBinAddr: 0x10000A3C0, symSize: 0x20 } - - { offset: 0x103A91, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x8F20, symBinAddr: 0x10000A3E0, symSize: 0x10 } - - { offset: 0x103AA5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x8F30, symBinAddr: 0x10000A3F0, symSize: 0x10 } - - { offset: 0x103AC0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs28CustomDebugStringConvertibleAAsAFP16debugDescriptionSSvgTW', symObjAddr: 0x91A0, symBinAddr: 0x10000A650, symSize: 0x20 } - - { offset: 0x103ADC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x91C0, symBinAddr: 0x10000A670, symSize: 0x20 } - - { offset: 0x103B0E, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas21_ObjectiveCBridgeableSCsACP09_bridgeToD1C01_D5CTypeQzyFTW', symObjAddr: 0x9F60, symBinAddr: 0x10000AD40, symSize: 0x10 } - - { offset: 0x103B7F, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas21_ObjectiveCBridgeableSCsACP016_forceBridgeFromD1C_6resulty01_D5CTypeQz_xSgztFZTW', symObjAddr: 0x9F70, symBinAddr: 0x10000AD50, symSize: 0x70 } - - { offset: 0x103C2D, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas21_ObjectiveCBridgeableSCsACP024_conditionallyBridgeFromD1C_6resultSb01_D5CTypeQz_xSgztFZTW', symObjAddr: 0x9FE0, symBinAddr: 0x10000ADC0, symSize: 0x70 } - - { offset: 0x103CDB, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas21_ObjectiveCBridgeableSCsACP026_unconditionallyBridgeFromD1Cyx01_D5CTypeQzSgFZTW', symObjAddr: 0xA050, symBinAddr: 0x10000AE30, symSize: 0x40 } - - { offset: 0x103D5A, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSHSCSH9hashValueSivgTW', symObjAddr: 0xA090, symBinAddr: 0x10000AE70, symSize: 0x40 } - - { offset: 0x103DD8, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSHSCSH4hash4intoys6HasherVz_tFTW', symObjAddr: 0xA0D0, symBinAddr: 0x10000AEB0, symSize: 0x30 } - - { offset: 0x103E56, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSHSCSH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0xA100, symBinAddr: 0x10000AEE0, symSize: 0x60 } - - { offset: 0x103ED4, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSQSCSQ2eeoiySbx_xtFZTW', symObjAddr: 0xA180, symBinAddr: 0x10000AF40, symSize: 0x70 } - - { offset: 0x103F96, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas35_HasCustomAnyHashableRepresentationSCsACP03_toefG0s0fG0VSgyFTW', symObjAddr: 0xA250, symBinAddr: 0x10000B010, symSize: 0x70 } - - { offset: 0x103FB2, size: 0x8, addend: 0x0, symName: '_$sSS7cStringSSSays4Int8VG_tcfCTf4gn_n', symObjAddr: 0xA5F0, symBinAddr: 0x10000B3B0, symSize: 0x50 } - - { offset: 0x10697C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4TextV7StorageOWOy', symObjAddr: 0xF2E0, symBinAddr: 0x1000100A0, symSize: 0x20 } - - { offset: 0x106990, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameV2, symObjAddr: 0xF420, symBinAddr: 0x1000101E0, symSize: 0x40 } - - { offset: 0x1069A4, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstractV2, symObjAddr: 0xF460, symBinAddr: 0x100010220, symSize: 0x50 } - - { offset: 0x1069B8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier14PeerDetailViewVAA12_FrameLayoutVGACyxq_GAA0H0A2aKRzAA0H8ModifierR_rlWl', symObjAddr: 0xF4B0, symBinAddr: 0x100010270, symSize: 0x80 } - - { offset: 0x1069CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwxx', symObjAddr: 0xF560, symBinAddr: 0x100010320, symSize: 0x70 } - - { offset: 0x1069E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwcp', symObjAddr: 0xF5D0, symBinAddr: 0x100010390, symSize: 0x190 } - - { offset: 0x1069F4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwca', symObjAddr: 0xF760, symBinAddr: 0x100010520, symSize: 0x280 } - - { offset: 0x106A08, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVWOh', symObjAddr: 0xF9E0, symBinAddr: 0x1000107A0, symSize: 0x20 } - - { offset: 0x106A1C, size: 0x8, addend: 0x0, symName: ___swift_memcpy192_8, symObjAddr: 0xFA00, symBinAddr: 0x1000107C0, symSize: 0x10 } - - { offset: 0x106A30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwta', symObjAddr: 0xFA10, symBinAddr: 0x1000107D0, symSize: 0x1E0 } - - { offset: 0x106A44, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwet', symObjAddr: 0xFBF0, symBinAddr: 0x1000109B0, symSize: 0x50 } - - { offset: 0x106A58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVwst', symObjAddr: 0xFC40, symBinAddr: 0x100010A00, symSize: 0x90 } - - { offset: 0x106A6C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVMa', symObjAddr: 0xFCD0, symBinAddr: 0x100010A90, symSize: 0x10 } - - { offset: 0x106A80, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwxx', symObjAddr: 0xFD10, symBinAddr: 0x100010AD0, symSize: 0x30 } - - { offset: 0x106A94, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwcp', symObjAddr: 0xFD40, symBinAddr: 0x100010B00, symSize: 0x70 } - - { offset: 0x106AA8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwca', symObjAddr: 0xFDB0, symBinAddr: 0x100010B70, symSize: 0x90 } - - { offset: 0x106ABC, size: 0x8, addend: 0x0, symName: ___swift_memcpy56_8, symObjAddr: 0xFE40, symBinAddr: 0x100010C00, symSize: 0x30 } - - { offset: 0x106AD0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwta', symObjAddr: 0xFE70, symBinAddr: 0x100010C30, symSize: 0x60 } - - { offset: 0x106AE4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwet', symObjAddr: 0xFED0, symBinAddr: 0x100010C90, symSize: 0x60 } - - { offset: 0x106AF8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVwst', symObjAddr: 0xFF30, symBinAddr: 0x100010CF0, symSize: 0x50 } - - { offset: 0x106B0C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVMa', symObjAddr: 0xFF80, symBinAddr: 0x100010D40, symSize: 0x10 } - - { offset: 0x106B20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwxx', symObjAddr: 0xFF90, symBinAddr: 0x100010D50, symSize: 0x70 } - - { offset: 0x106B34, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwcp', symObjAddr: 0x10000, symBinAddr: 0x100010DC0, symSize: 0x230 } - - { offset: 0x106B48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwca', symObjAddr: 0x10230, symBinAddr: 0x100010FF0, symSize: 0x320 } - - { offset: 0x106B63, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVWOh', symObjAddr: 0x10550, symBinAddr: 0x100011310, symSize: 0x30 } - - { offset: 0x106B8C, size: 0x8, addend: 0x0, symName: ___swift_memcpy296_8, symObjAddr: 0x10580, symBinAddr: 0x100011340, symSize: 0x10 } - - { offset: 0x106BA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwta', symObjAddr: 0x10590, symBinAddr: 0x100011350, symSize: 0x270 } - - { offset: 0x106BB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwet', symObjAddr: 0x10800, symBinAddr: 0x1000115C0, symSize: 0x50 } - - { offset: 0x106BC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVwst', symObjAddr: 0x10850, symBinAddr: 0x100011610, symSize: 0xC0 } - - { offset: 0x106BDC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVMa', symObjAddr: 0x10910, symBinAddr: 0x1000116D0, symSize: 0x10 } - - { offset: 0x106BF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVwxx', symObjAddr: 0x10920, symBinAddr: 0x1000116E0, symSize: 0x30 } - - { offset: 0x106C04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVwcp', symObjAddr: 0x10950, symBinAddr: 0x100011710, symSize: 0x50 } - - { offset: 0x106C18, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVwca', symObjAddr: 0x109A0, symBinAddr: 0x100011760, symSize: 0x70 } - - { offset: 0x106C2C, size: 0x8, addend: 0x0, symName: ___swift_memcpy48_8, symObjAddr: 0x10A10, symBinAddr: 0x1000117D0, symSize: 0x20 } - - { offset: 0x106C40, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVwta', symObjAddr: 0x10A30, symBinAddr: 0x1000117F0, symSize: 0x50 } - - { offset: 0x106C54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVMa', symObjAddr: 0x10A80, symBinAddr: 0x100011840, symSize: 0x10 } - - { offset: 0x106C68, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVs12IdentifiableAA2IDsAFP_SHWT', symObjAddr: 0x10A90, symBinAddr: 0x100011850, symSize: 0x10 } - - { offset: 0x106C7C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSHAASQWb', symObjAddr: 0x10AA0, symBinAddr: 0x100011860, symSize: 0x10 } - - { offset: 0x106C90, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVAESQAAWl', symObjAddr: 0x10AB0, symBinAddr: 0x100011870, symSize: 0x30 } - - { offset: 0x106CA4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSHAASQWb', symObjAddr: 0x10AF0, symBinAddr: 0x1000118A0, symSize: 0x10 } - - { offset: 0x106CB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVAESQAAWl', symObjAddr: 0x10B00, symBinAddr: 0x1000118B0, symSize: 0x30 } - - { offset: 0x106CCC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSHAASQWb', symObjAddr: 0x10B30, symBinAddr: 0x1000118E0, symSize: 0x10 } - - { offset: 0x106CE0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVAGSQAAWl', symObjAddr: 0x10B40, symBinAddr: 0x1000118F0, symSize: 0x30 } - - { offset: 0x106CF4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSHAASQWb', symObjAddr: 0x10B70, symBinAddr: 0x100011920, symSize: 0x10 } - - { offset: 0x106D08, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVAESQAAWl', symObjAddr: 0x10B80, symBinAddr: 0x100011930, symSize: 0x30 } - - { offset: 0x106D1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSgWOe', symObjAddr: 0x10BB0, symBinAddr: 0x100011960, symSize: 0x30 } - - { offset: 0x106D30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVWOc', symObjAddr: 0x10BE0, symBinAddr: 0x100011990, symSize: 0x30 } - - { offset: 0x106D44, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVWOh', symObjAddr: 0x10C10, symBinAddr: 0x1000119C0, symSize: 0x20 } - - { offset: 0x106D58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSgWOy', symObjAddr: 0x10C30, symBinAddr: 0x1000119E0, symSize: 0x30 } - - { offset: 0x106D6C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSgWOe', symObjAddr: 0x10C60, symBinAddr: 0x100011A10, symSize: 0x30 } - - { offset: 0x106D80, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSgWOe', symObjAddr: 0x10C90, symBinAddr: 0x100011A40, symSize: 0x40 } - - { offset: 0x106D94, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_1, symObjAddr: 0x10CD0, symBinAddr: 0x100011A80, symSize: 0x30 } - - { offset: 0x106DA8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x10D00, symBinAddr: 0x100011AB0, symSize: 0x30 } - - { offset: 0x106DBC, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_1, symObjAddr: 0x10D30, symBinAddr: 0x100011AE0, symSize: 0x30 } - - { offset: 0x106DD0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVAESeAAWl', symObjAddr: 0x10D60, symBinAddr: 0x100011B10, symSize: 0x30 } - - { offset: 0x106DE4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVAGSeAAWl', symObjAddr: 0x10D90, symBinAddr: 0x100011B40, symSize: 0x30 } - - { offset: 0x106DF8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVAESeAAWl', symObjAddr: 0x10DC0, symBinAddr: 0x100011B70, symSize: 0x30 } - - { offset: 0x106E0C, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV3UrlVGSayxGSesSeRzlWl', symObjAddr: 0x10DF0, symBinAddr: 0x100011BA0, symSize: 0x60 } - - { offset: 0x106E20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVAESeAAWl', symObjAddr: 0x10E50, symBinAddr: 0x100011C00, symSize: 0x30 } - - { offset: 0x106E34, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVWOc', symObjAddr: 0x10E80, symBinAddr: 0x100011C30, symSize: 0x30 } - - { offset: 0x106E48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVWOh', symObjAddr: 0x10EB0, symBinAddr: 0x100011C60, symSize: 0x20 } - - { offset: 0x106E5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVAESEAAWl', symObjAddr: 0x10ED0, symBinAddr: 0x100011C80, symSize: 0x30 } - - { offset: 0x106E70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVAGSEAAWl', symObjAddr: 0x10F00, symBinAddr: 0x100011CB0, symSize: 0x30 } - - { offset: 0x106E84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVAESEAAWl', symObjAddr: 0x10F30, symBinAddr: 0x100011CE0, symSize: 0x30 } - - { offset: 0x106E98, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV3UrlVGSayxGSEsSERzlWl', symObjAddr: 0x10F60, symBinAddr: 0x100011D10, symSize: 0x60 } - - { offset: 0x106EAC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVAESEAAWl', symObjAddr: 0x10FC0, symBinAddr: 0x100011D70, symSize: 0x30 } - - { offset: 0x106EC0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOAIs0H3KeyAAWl', symObjAddr: 0x10FF0, symBinAddr: 0x100011DA0, symSize: 0x30 } - - { offset: 0x106ED4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVAESeAAWl', symObjAddr: 0x11020, symBinAddr: 0x100011DD0, symSize: 0x30 } - - { offset: 0x106EE8, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8IPv4AddrVGSayxGSesSeRzlWl', symObjAddr: 0x11050, symBinAddr: 0x100011E00, symSize: 0x60 } - - { offset: 0x106EFC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVAESeAAWl', symObjAddr: 0x110B0, symBinAddr: 0x100011E60, symSize: 0x30 } - - { offset: 0x106F10, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8IPv6AddrVGSayxGSesSeRzlWl', symObjAddr: 0x110E0, symBinAddr: 0x100011E90, symSize: 0x60 } - - { offset: 0x106F24, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVWOc', symObjAddr: 0x11140, symBinAddr: 0x100011EF0, symSize: 0x30 } - - { offset: 0x106F38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVAESEAAWl', symObjAddr: 0x11170, symBinAddr: 0x100011F20, symSize: 0x30 } - - { offset: 0x106F4C, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8IPv4AddrVGSayxGSEsSERzlWl', symObjAddr: 0x111A0, symBinAddr: 0x100011F50, symSize: 0x60 } - - { offset: 0x106F60, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVAESEAAWl', symObjAddr: 0x11200, symBinAddr: 0x100011FB0, symSize: 0x30 } - - { offset: 0x106F74, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8IPv6AddrVGSayxGSEsSERzlWl', symObjAddr: 0x11230, symBinAddr: 0x100011FE0, symSize: 0x60 } - - { offset: 0x106F88, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0H3KeyAAWl', symObjAddr: 0x11290, symBinAddr: 0x100012040, symSize: 0x30 } - - { offset: 0x106F9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVAESeAAWl', symObjAddr: 0x112C0, symBinAddr: 0x100012070, symSize: 0x30 } - - { offset: 0x106FB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVAESeAAWl', symObjAddr: 0x112F0, symBinAddr: 0x1000120A0, symSize: 0x30 } - - { offset: 0x106FC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVWOh', symObjAddr: 0x11320, symBinAddr: 0x1000120D0, symSize: 0x20 } - - { offset: 0x106FD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVWOc', symObjAddr: 0x11340, symBinAddr: 0x1000120F0, symSize: 0x30 } - - { offset: 0x106FEC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVWOh', symObjAddr: 0x11370, symBinAddr: 0x100012120, symSize: 0x20 } - - { offset: 0x107000, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVWOc', symObjAddr: 0x11390, symBinAddr: 0x100012140, symSize: 0x30 } - - { offset: 0x107014, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVAESEAAWl', symObjAddr: 0x113C0, symBinAddr: 0x100012170, symSize: 0x30 } - - { offset: 0x107028, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVAESEAAWl', symObjAddr: 0x113F0, symBinAddr: 0x1000121A0, symSize: 0x30 } - - { offset: 0x10703C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x11420, symBinAddr: 0x1000121D0, symSize: 0x30 } - - { offset: 0x107050, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV12PeerConnInfoVGSayxGSesSeRzlWl', symObjAddr: 0x11450, symBinAddr: 0x100012200, symSize: 0x60 } - - { offset: 0x107064, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVAESeAAWl', symObjAddr: 0x114B0, symBinAddr: 0x100012260, symSize: 0x30 } - - { offset: 0x107078, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVAESeAAWl', symObjAddr: 0x114E0, symBinAddr: 0x100012290, symSize: 0x30 } - - { offset: 0x10708C, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV4UUIDVGSayxGSesSeRzlWl', symObjAddr: 0x11510, symBinAddr: 0x1000122C0, symSize: 0x60 } - - { offset: 0x1070A0, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV12PeerConnInfoVGSayxGSEsSERzlWl', symObjAddr: 0x11570, symBinAddr: 0x100012320, symSize: 0x60 } - - { offset: 0x1070B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVAESEAAWl', symObjAddr: 0x115D0, symBinAddr: 0x100012380, symSize: 0x30 } - - { offset: 0x1070C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVAESEAAWl', symObjAddr: 0x11600, symBinAddr: 0x1000123B0, symSize: 0x30 } - - { offset: 0x1070DC, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV4UUIDVGSayxGSEsSERzlWl', symObjAddr: 0x11630, symBinAddr: 0x1000123E0, symSize: 0x60 } - - { offset: 0x1070F0, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_8, symObjAddr: 0x116B0, symBinAddr: 0x100012460, symSize: 0x10 } - - { offset: 0x107104, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x116C0, symBinAddr: 0x100012470, symSize: 0x10 } - - { offset: 0x107118, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x11710, symBinAddr: 0x1000124C0, symSize: 0x10 } - - { offset: 0x10712C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOwup', symObjAddr: 0x11720, symBinAddr: 0x1000124D0, symSize: 0x10 } - - { offset: 0x107140, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOMa', symObjAddr: 0x11730, symBinAddr: 0x1000124E0, symSize: 0x10 } - - { offset: 0x107154, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x11790, symBinAddr: 0x100012530, symSize: 0x10 } - - { offset: 0x107168, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOMa', symObjAddr: 0x117D0, symBinAddr: 0x100012550, symSize: 0x10 } - - { offset: 0x10717C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOwet', symObjAddr: 0x117E0, symBinAddr: 0x100012560, symSize: 0x80 } - - { offset: 0x107190, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOwst', symObjAddr: 0x11860, symBinAddr: 0x1000125E0, symSize: 0xD0 } - - { offset: 0x1071A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOMa', symObjAddr: 0x11940, symBinAddr: 0x1000126B0, symSize: 0x10 } - - { offset: 0x1071B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwxx', symObjAddr: 0x11970, symBinAddr: 0x1000126E0, symSize: 0x10 } - - { offset: 0x1071CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwcp', symObjAddr: 0x11980, symBinAddr: 0x1000126F0, symSize: 0x60 } - - { offset: 0x1071E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwca', symObjAddr: 0x119E0, symBinAddr: 0x100012750, symSize: 0x70 } - - { offset: 0x1071F4, size: 0x8, addend: 0x0, symName: ___swift_memcpy49_8, symObjAddr: 0x11A50, symBinAddr: 0x1000127C0, symSize: 0x30 } - - { offset: 0x107208, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwta', symObjAddr: 0x11A80, symBinAddr: 0x1000127F0, symSize: 0x60 } - - { offset: 0x10721C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwet', symObjAddr: 0x11AE0, symBinAddr: 0x100012850, symSize: 0x50 } - - { offset: 0x107230, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVwst', symObjAddr: 0x11B30, symBinAddr: 0x1000128A0, symSize: 0x50 } - - { offset: 0x107244, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVMa', symObjAddr: 0x11B80, symBinAddr: 0x1000128F0, symSize: 0x10 } - - { offset: 0x107258, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVMa', symObjAddr: 0x11BE0, symBinAddr: 0x100012950, symSize: 0x10 } - - { offset: 0x10726C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwxx', symObjAddr: 0x11C20, symBinAddr: 0x100012990, symSize: 0x10 } - - { offset: 0x107280, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwca', symObjAddr: 0x11C30, symBinAddr: 0x1000129A0, symSize: 0x40 } - - { offset: 0x107294, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwta', symObjAddr: 0x11C70, symBinAddr: 0x1000129E0, symSize: 0x30 } - - { offset: 0x1072A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwet', symObjAddr: 0x11CA0, symBinAddr: 0x100012A10, symSize: 0x50 } - - { offset: 0x1072BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVwst', symObjAddr: 0x11CF0, symBinAddr: 0x100012A60, symSize: 0x40 } - - { offset: 0x1072D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVMa', symObjAddr: 0x11D30, symBinAddr: 0x100012AA0, symSize: 0x10 } - - { offset: 0x1072E4, size: 0x8, addend: 0x0, symName: ___swift_memcpy16_4, symObjAddr: 0x11D40, symBinAddr: 0x100012AB0, symSize: 0x10 } - - { offset: 0x1072F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVMa', symObjAddr: 0x11D50, symBinAddr: 0x100012AC0, symSize: 0x10 } - - { offset: 0x10730C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVMa', symObjAddr: 0x11D60, symBinAddr: 0x100012AD0, symSize: 0x10 } - - { offset: 0x107320, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVMa', symObjAddr: 0x11DA0, symBinAddr: 0x100012AE0, symSize: 0x10 } - - { offset: 0x107334, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwxx', symObjAddr: 0x11DB0, symBinAddr: 0x100012AF0, symSize: 0x50 } - - { offset: 0x107348, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwcp', symObjAddr: 0x11E00, symBinAddr: 0x100012B40, symSize: 0x120 } - - { offset: 0x10735C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwca', symObjAddr: 0x11F20, symBinAddr: 0x100012C60, symSize: 0x200 } - - { offset: 0x107370, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVWOh', symObjAddr: 0x12120, symBinAddr: 0x100012E60, symSize: 0x20 } - - { offset: 0x107384, size: 0x8, addend: 0x0, symName: ___swift_memcpy169_8, symObjAddr: 0x12140, symBinAddr: 0x100012E80, symSize: 0x10 } - - { offset: 0x107398, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwta', symObjAddr: 0x12150, symBinAddr: 0x100012E90, symSize: 0x170 } - - { offset: 0x1073AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwet', symObjAddr: 0x122C0, symBinAddr: 0x100013000, symSize: 0x50 } - - { offset: 0x1073C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVwst', symObjAddr: 0x12310, symBinAddr: 0x100013050, symSize: 0x80 } - - { offset: 0x1073D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVMa', symObjAddr: 0x12390, symBinAddr: 0x1000130D0, symSize: 0x10 } - - { offset: 0x1073E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVwxx', symObjAddr: 0x123A0, symBinAddr: 0x1000130E0, symSize: 0x30 } - - { offset: 0x1073FC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVwcp', symObjAddr: 0x123D0, symBinAddr: 0x100013110, symSize: 0x60 } - - { offset: 0x107410, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVwca', symObjAddr: 0x12430, symBinAddr: 0x100013170, symSize: 0x80 } - - { offset: 0x107424, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVwta', symObjAddr: 0x124B0, symBinAddr: 0x1000131F0, symSize: 0x60 } - - { offset: 0x107438, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVMa', symObjAddr: 0x125D0, symBinAddr: 0x100013310, symSize: 0x10 } - - { offset: 0x10744C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwxx', symObjAddr: 0x125E0, symBinAddr: 0x100013320, symSize: 0x50 } - - { offset: 0x107460, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwcp', symObjAddr: 0x12630, symBinAddr: 0x100013370, symSize: 0x1A0 } - - { offset: 0x107474, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwca', symObjAddr: 0x127D0, symBinAddr: 0x100013510, symSize: 0x1E0 } - - { offset: 0x107488, size: 0x8, addend: 0x0, symName: ___swift_memcpy246_8, symObjAddr: 0x129B0, symBinAddr: 0x1000136F0, symSize: 0x10 } - - { offset: 0x10749C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwta', symObjAddr: 0x129C0, symBinAddr: 0x100013700, symSize: 0x1A0 } - - { offset: 0x1074B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwet', symObjAddr: 0x12B60, symBinAddr: 0x1000138A0, symSize: 0x50 } - - { offset: 0x1074C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVwst', symObjAddr: 0x12BB0, symBinAddr: 0x1000138F0, symSize: 0xC0 } - - { offset: 0x1074D8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVMa', symObjAddr: 0x12C70, symBinAddr: 0x1000139B0, symSize: 0x10 } - - { offset: 0x1074EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwxx', symObjAddr: 0x12C80, symBinAddr: 0x1000139C0, symSize: 0xB0 } - - { offset: 0x107500, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwcp', symObjAddr: 0x12D30, symBinAddr: 0x100013A70, symSize: 0x270 } - - { offset: 0x107514, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwca', symObjAddr: 0x12FA0, symBinAddr: 0x100013CE0, symSize: 0x550 } - - { offset: 0x107528, size: 0x8, addend: 0x0, symName: ___swift_memcpy264_8, symObjAddr: 0x134F0, symBinAddr: 0x100014230, symSize: 0x10 } - - { offset: 0x10753C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwta', symObjAddr: 0x13500, symBinAddr: 0x100014240, symSize: 0x2E0 } - - { offset: 0x107550, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwet', symObjAddr: 0x137E0, symBinAddr: 0x100014520, symSize: 0x50 } - - { offset: 0x107564, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVwst', symObjAddr: 0x13830, symBinAddr: 0x100014570, symSize: 0xA0 } - - { offset: 0x107578, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVMa', symObjAddr: 0x138D0, symBinAddr: 0x100014610, symSize: 0x10 } - - { offset: 0x10758C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSHAASQWb', symObjAddr: 0x138F0, symBinAddr: 0x100014620, symSize: 0x10 } - - { offset: 0x1075A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVAESQAAWl', symObjAddr: 0x13900, symBinAddr: 0x100014630, symSize: 0x30 } - - { offset: 0x1075B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSHAASQWb', symObjAddr: 0x13930, symBinAddr: 0x100014660, symSize: 0x10 } - - { offset: 0x1075C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVAESQAAWl', symObjAddr: 0x13940, symBinAddr: 0x100014670, symSize: 0x30 } - - { offset: 0x1075DC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSHAASQWb', symObjAddr: 0x13970, symBinAddr: 0x1000146A0, symSize: 0x10 } - - { offset: 0x1075F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVAESQAAWl', symObjAddr: 0x13980, symBinAddr: 0x1000146B0, symSize: 0x30 } - - { offset: 0x107604, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVSHAASQWb', symObjAddr: 0x139B0, symBinAddr: 0x1000146E0, symSize: 0x10 } - - { offset: 0x107618, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVAESQAAWl', symObjAddr: 0x139C0, symBinAddr: 0x1000146F0, symSize: 0x30 } - - { offset: 0x10762C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSHAASQWb', symObjAddr: 0x139F0, symBinAddr: 0x100014720, symSize: 0x10 } - - { offset: 0x107640, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVAESQAAWl', symObjAddr: 0x13A00, symBinAddr: 0x100014730, symSize: 0x30 } - - { offset: 0x107654, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVSHAASQWb', symObjAddr: 0x13A30, symBinAddr: 0x100014760, symSize: 0x10 } - - { offset: 0x107668, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVAESQAAWl', symObjAddr: 0x13A40, symBinAddr: 0x100014770, symSize: 0x30 } - - { offset: 0x10767C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSHAASQWb', symObjAddr: 0x13A70, symBinAddr: 0x1000147A0, symSize: 0x10 } - - { offset: 0x107690, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVAESQAAWl', symObjAddr: 0x13A80, symBinAddr: 0x1000147B0, symSize: 0x30 } - - { offset: 0x1076A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSHAASQWb', symObjAddr: 0x13AB0, symBinAddr: 0x1000147E0, symSize: 0x10 } - - { offset: 0x1076B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVAESQAAWl', symObjAddr: 0x13AC0, symBinAddr: 0x1000147F0, symSize: 0x30 } - - { offset: 0x1076CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSHAASQWb', symObjAddr: 0x13AF0, symBinAddr: 0x100014820, symSize: 0x10 } - - { offset: 0x1076E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVAESQAAWl', symObjAddr: 0x13B00, symBinAddr: 0x100014830, symSize: 0x30 } - - { offset: 0x1076F4, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas20_SwiftNewtypeWrapperSCSYWb', symObjAddr: 0x13B30, symBinAddr: 0x100014860, symSize: 0x20 } - - { offset: 0x107708, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyas20_SwiftNewtypeWrapperSCs35_HasCustomAnyHashableRepresentationPWb', symObjAddr: 0x13B50, symBinAddr: 0x100014880, symSize: 0x20 } - - { offset: 0x10771C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x13B70, symBinAddr: 0x1000148A0, symSize: 0x10 } - - { offset: 0x107730, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x13B80, symBinAddr: 0x1000148B0, symSize: 0x30 } - - { offset: 0x107744, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSHAASQWb', symObjAddr: 0x13BB0, symBinAddr: 0x1000148E0, symSize: 0x10 } - - { offset: 0x107758, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOAISQAAWl', symObjAddr: 0x13BC0, symBinAddr: 0x1000148F0, symSize: 0x30 } - - { offset: 0x10776C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x13BF0, symBinAddr: 0x100014920, symSize: 0x10 } - - { offset: 0x107780, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x13C00, symBinAddr: 0x100014930, symSize: 0x30 } - - { offset: 0x107794, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x13C30, symBinAddr: 0x100014960, symSize: 0x10 } - - { offset: 0x1077A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x13C40, symBinAddr: 0x100014970, symSize: 0x30 } - - { offset: 0x1077BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x13C70, symBinAddr: 0x1000149A0, symSize: 0x10 } - - { offset: 0x1077D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x13C80, symBinAddr: 0x1000149B0, symSize: 0x30 } - - { offset: 0x1077E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x13CB0, symBinAddr: 0x1000149E0, symSize: 0x10 } - - { offset: 0x1077F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x13CC0, symBinAddr: 0x1000149F0, symSize: 0x30 } - - { offset: 0x10780C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x13CF0, symBinAddr: 0x100014A20, symSize: 0x10 } - - { offset: 0x107820, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x13D00, symBinAddr: 0x100014A30, symSize: 0x30 } - - { offset: 0x107834, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x13D30, symBinAddr: 0x100014A60, symSize: 0x10 } - - { offset: 0x107848, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x13D40, symBinAddr: 0x100014A70, symSize: 0x30 } - - { offset: 0x10785C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x13D70, symBinAddr: 0x100014AA0, symSize: 0x10 } - - { offset: 0x107870, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOAIs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x13D80, symBinAddr: 0x100014AB0, symSize: 0x30 } - - { offset: 0x107884, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x13DB0, symBinAddr: 0x100014AE0, symSize: 0x10 } - - { offset: 0x107898, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOAIs23CustomStringConvertibleAAWl', symObjAddr: 0x13DC0, symBinAddr: 0x100014AF0, symSize: 0x30 } - - { offset: 0x1078AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x13DF0, symBinAddr: 0x100014B20, symSize: 0x10 } - - { offset: 0x1078C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x13E00, symBinAddr: 0x100014B30, symSize: 0x30 } - - { offset: 0x1078D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x13E30, symBinAddr: 0x100014B60, symSize: 0x10 } - - { offset: 0x1078E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x13E40, symBinAddr: 0x100014B70, symSize: 0x30 } - - { offset: 0x1078FC, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSHSCSQWb', symObjAddr: 0x13E70, symBinAddr: 0x100014BA0, symSize: 0x20 } - - { offset: 0x107910, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSgWOi0_', symObjAddr: 0x13E90, symBinAddr: 0x100014BC0, symSize: 0x50 } - - { offset: 0x107924, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOAEs0E3KeyAAWl', symObjAddr: 0x13EE0, symBinAddr: 0x100014C10, symSize: 0x30 } - - { offset: 0x107938, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSgWOh', symObjAddr: 0x13F10, symBinAddr: 0x100014C40, symSize: 0x40 } - - { offset: 0x10794C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVAESeAAWl', symObjAddr: 0x13F50, symBinAddr: 0x100014C80, symSize: 0x30 } - - { offset: 0x107960, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV5RouteVGSayxGSesSeRzlWl', symObjAddr: 0x13F80, symBinAddr: 0x100014CB0, symSize: 0x60 } - - { offset: 0x107974, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8PeerInfoVGSayxGSesSeRzlWl', symObjAddr: 0x13FE0, symBinAddr: 0x100014D10, symSize: 0x60 } - - { offset: 0x107988, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV13PeerRoutePairVGSayxGSesSeRzlWl', symObjAddr: 0x14040, symBinAddr: 0x100014D70, symSize: 0x60 } - - { offset: 0x10799C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVAESeAAWl', symObjAddr: 0x140A0, symBinAddr: 0x100014DD0, symSize: 0x30 } - - { offset: 0x1079B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVWOc', symObjAddr: 0x140D0, symBinAddr: 0x100014E00, symSize: 0x30 } - - { offset: 0x1079C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVWOh', symObjAddr: 0x14100, symBinAddr: 0x100014E30, symSize: 0x20 } - - { offset: 0x1079D8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x14120, symBinAddr: 0x100014E50, symSize: 0x30 } - - { offset: 0x1079EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOAGs0F3KeyAAWl', symObjAddr: 0x14150, symBinAddr: 0x100014E80, symSize: 0x30 } - - { offset: 0x107A00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOAESeAAWl', symObjAddr: 0x14180, symBinAddr: 0x100014EB0, symSize: 0x30 } - - { offset: 0x107A14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0F3KeyAAWl', symObjAddr: 0x141B0, symBinAddr: 0x100014EE0, symSize: 0x30 } - - { offset: 0x107A28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOAESEAAWl', symObjAddr: 0x141E0, symBinAddr: 0x100014F10, symSize: 0x30 } - - { offset: 0x107A3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0G3KeyAAWl', symObjAddr: 0x14260, symBinAddr: 0x100014F90, symSize: 0x30 } - - { offset: 0x107A50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0G3KeyAAWl', symObjAddr: 0x14290, symBinAddr: 0x100014FC0, symSize: 0x30 } - - { offset: 0x107A64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOAGs0F3KeyAAWl', symObjAddr: 0x142C0, symBinAddr: 0x100014FF0, symSize: 0x30 } - - { offset: 0x107A78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVAESeAAWl', symObjAddr: 0x142F0, symBinAddr: 0x100015020, symSize: 0x30 } - - { offset: 0x107A8C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVAESeAAWl', symObjAddr: 0x14320, symBinAddr: 0x100015050, symSize: 0x30 } - - { offset: 0x107AA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVAESEAAWl', symObjAddr: 0x14350, symBinAddr: 0x100015080, symSize: 0x30 } - - { offset: 0x107AB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVAESEAAWl', symObjAddr: 0x14380, symBinAddr: 0x1000150B0, symSize: 0x30 } - - { offset: 0x107AC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOAGs0H3KeyAAWl', symObjAddr: 0x143B0, symBinAddr: 0x1000150E0, symSize: 0x30 } - - { offset: 0x107ADC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVAESeAAWl', symObjAddr: 0x143E0, symBinAddr: 0x100015110, symSize: 0x30 } - - { offset: 0x107AF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVAESeAAWl', symObjAddr: 0x14410, symBinAddr: 0x100015140, symSize: 0x30 } - - { offset: 0x107B04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs0F3KeyAAWl', symObjAddr: 0x14440, symBinAddr: 0x100015170, symSize: 0x30 } - - { offset: 0x107B18, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVAESEAAWl', symObjAddr: 0x14470, symBinAddr: 0x1000151A0, symSize: 0x30 } - - { offset: 0x107B2C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVAESEAAWl', symObjAddr: 0x144A0, symBinAddr: 0x1000151D0, symSize: 0x30 } - - { offset: 0x107B40, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x14510, symBinAddr: 0x100015240, symSize: 0x30 } - - { offset: 0x107B54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVAESEAAWl', symObjAddr: 0x14570, symBinAddr: 0x1000152A0, symSize: 0x30 } - - { offset: 0x107B68, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV5RouteVGSayxGSEsSERzlWl', symObjAddr: 0x145A0, symBinAddr: 0x1000152D0, symSize: 0x60 } - - { offset: 0x107B7C, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV8PeerInfoVGSayxGSEsSERzlWl', symObjAddr: 0x14600, symBinAddr: 0x100015330, symSize: 0x60 } - - { offset: 0x107B90, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14EasyTierStatusV13PeerRoutePairVGSayxGSEsSERzlWl', symObjAddr: 0x14660, symBinAddr: 0x100015390, symSize: 0x60 } - - { offset: 0x107BA4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVAESEAAWl', symObjAddr: 0x146C0, symBinAddr: 0x1000153F0, symSize: 0x30 } - - { offset: 0x107BB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOwet', symObjAddr: 0x146F0, symBinAddr: 0x100015420, symSize: 0x80 } - - { offset: 0x107BCC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOwst', symObjAddr: 0x14770, symBinAddr: 0x1000154A0, symSize: 0xD0 } - - { offset: 0x107BE0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOMa', symObjAddr: 0x14850, symBinAddr: 0x100015570, symSize: 0x10 } - - { offset: 0x107BF4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x14890, symBinAddr: 0x1000155A0, symSize: 0x10 } - - { offset: 0x107C08, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOMa', symObjAddr: 0x148D0, symBinAddr: 0x1000155D0, symSize: 0x10 } - - { offset: 0x107C1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOwet', symObjAddr: 0x148E0, symBinAddr: 0x1000155E0, symSize: 0x80 } - - { offset: 0x107C30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOwst', symObjAddr: 0x14960, symBinAddr: 0x100015660, symSize: 0xD0 } - - { offset: 0x107C44, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOMa', symObjAddr: 0x14A40, symBinAddr: 0x100015730, symSize: 0x10 } - - { offset: 0x107C58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x14BB0, symBinAddr: 0x100015890, symSize: 0x10 } - - { offset: 0x107C6C, size: 0x8, addend: 0x0, symName: ___swift_memcpy0_1, symObjAddr: 0x14BC0, symBinAddr: 0x1000158A0, symSize: 0x10 } - - { offset: 0x107C80, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOwug', symObjAddr: 0x14BD0, symBinAddr: 0x1000158B0, symSize: 0x10 } - - { offset: 0x107C94, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x14C00, symBinAddr: 0x1000158C0, symSize: 0x10 } - - { offset: 0x107CA8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOMa', symObjAddr: 0x14D50, symBinAddr: 0x1000159E0, symSize: 0x10 } - - { offset: 0x107CBC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOwet', symObjAddr: 0x14D60, symBinAddr: 0x1000159F0, symSize: 0x80 } - - { offset: 0x107CD0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOwst', symObjAddr: 0x14DE0, symBinAddr: 0x100015A70, symSize: 0xD0 } - - { offset: 0x107CE4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOMa', symObjAddr: 0x14EC0, symBinAddr: 0x100015B40, symSize: 0x10 } - - { offset: 0x107CF8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOMa', symObjAddr: 0x14EE0, symBinAddr: 0x100015B50, symSize: 0x10 } - - { offset: 0x107D0C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOwet', symObjAddr: 0x14EF0, symBinAddr: 0x100015B60, symSize: 0x80 } - - { offset: 0x107D20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOwst', symObjAddr: 0x14F70, symBinAddr: 0x100015BE0, symSize: 0xD0 } - - { offset: 0x107D34, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOMa', symObjAddr: 0x15050, symBinAddr: 0x100015CB0, symSize: 0x10 } - - { offset: 0x107D48, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOMa', symObjAddr: 0x151C0, symBinAddr: 0x100015E10, symSize: 0x10 } - - { offset: 0x107D5C, size: 0x8, addend: 0x0, symName: ___swift_memcpy40_8, symObjAddr: 0x151D0, symBinAddr: 0x100015E20, symSize: 0x20 } - - { offset: 0x107D70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVwet', symObjAddr: 0x151F0, symBinAddr: 0x100015E40, symSize: 0x20 } - - { offset: 0x107D84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVwst', symObjAddr: 0x15210, symBinAddr: 0x100015E60, symSize: 0x30 } - - { offset: 0x107D98, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVMa', symObjAddr: 0x15240, symBinAddr: 0x100015E90, symSize: 0x10 } - - { offset: 0x107DAC, size: 0x8, addend: 0x0, symName: ___swift_memcpy5_1, symObjAddr: 0x15250, symBinAddr: 0x100015EA0, symSize: 0x20 } - - { offset: 0x107DC0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVwet', symObjAddr: 0x15270, symBinAddr: 0x100015EC0, symSize: 0x40 } - - { offset: 0x107DD4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVwst', symObjAddr: 0x152B0, symBinAddr: 0x100015F00, symSize: 0x40 } - - { offset: 0x107DE8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVMa', symObjAddr: 0x152F0, symBinAddr: 0x100015F40, symSize: 0x10 } - - { offset: 0x107DFC, size: 0x8, addend: 0x0, symName: ___swift_memcpy24_8, symObjAddr: 0x15300, symBinAddr: 0x100015F50, symSize: 0x20 } - - { offset: 0x107E10, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVwet', symObjAddr: 0x15320, symBinAddr: 0x100015F70, symSize: 0x20 } - - { offset: 0x107E24, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVwst', symObjAddr: 0x15340, symBinAddr: 0x100015F90, symSize: 0x30 } - - { offset: 0x107E38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVMa', symObjAddr: 0x15370, symBinAddr: 0x100015FC0, symSize: 0x10 } - - { offset: 0x107E4C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSHAASQWb', symObjAddr: 0x15380, symBinAddr: 0x100015FD0, symSize: 0x10 } - - { offset: 0x107E60, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVAESQAAWl', symObjAddr: 0x15390, symBinAddr: 0x100015FE0, symSize: 0x30 } - - { offset: 0x107E74, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSHAASQWb', symObjAddr: 0x153C0, symBinAddr: 0x100016010, symSize: 0x10 } - - { offset: 0x107E88, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVAESQAAWl', symObjAddr: 0x153D0, symBinAddr: 0x100016020, symSize: 0x30 } - - { offset: 0x107E9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSHAASQWb', symObjAddr: 0x15400, symBinAddr: 0x100016050, symSize: 0x10 } - - { offset: 0x107EB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVAESQAAWl', symObjAddr: 0x15410, symBinAddr: 0x100016060, symSize: 0x30 } - - { offset: 0x107EC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSHAASQWb', symObjAddr: 0x15440, symBinAddr: 0x100016090, symSize: 0x10 } - - { offset: 0x107ED8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOAESQAAWl', symObjAddr: 0x15450, symBinAddr: 0x1000160A0, symSize: 0x30 } - - { offset: 0x107EEC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSHAASQWb', symObjAddr: 0x15480, symBinAddr: 0x1000160D0, symSize: 0x10 } - - { offset: 0x107F00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOAESQAAWl', symObjAddr: 0x15490, symBinAddr: 0x1000160E0, symSize: 0x30 } - - { offset: 0x107F14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOSHAASQWb', symObjAddr: 0x154C0, symBinAddr: 0x100016110, symSize: 0x10 } - - { offset: 0x107F28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOAGSQAAWl', symObjAddr: 0x154D0, symBinAddr: 0x100016120, symSize: 0x30 } - - { offset: 0x107F3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x15500, symBinAddr: 0x100016150, symSize: 0x10 } - - { offset: 0x107F50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x15510, symBinAddr: 0x100016160, symSize: 0x30 } - - { offset: 0x107F64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x15540, symBinAddr: 0x100016190, symSize: 0x10 } - - { offset: 0x107F78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x15550, symBinAddr: 0x1000161A0, symSize: 0x30 } - - { offset: 0x107F8C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x15580, symBinAddr: 0x1000161D0, symSize: 0x10 } - - { offset: 0x107FA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x15590, symBinAddr: 0x1000161E0, symSize: 0x30 } - - { offset: 0x107FB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x155C0, symBinAddr: 0x100016210, symSize: 0x10 } - - { offset: 0x107FC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x155D0, symBinAddr: 0x100016220, symSize: 0x30 } - - { offset: 0x107FDC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOSHAASQWb', symObjAddr: 0x15600, symBinAddr: 0x100016250, symSize: 0x10 } - - { offset: 0x107FF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOAGSQAAWl', symObjAddr: 0x15610, symBinAddr: 0x100016260, symSize: 0x30 } - - { offset: 0x108004, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x15640, symBinAddr: 0x100016290, symSize: 0x10 } - - { offset: 0x108018, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x15650, symBinAddr: 0x1000162A0, symSize: 0x30 } - - { offset: 0x10802C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSHAASQWb', symObjAddr: 0x15680, symBinAddr: 0x1000162D0, symSize: 0x10 } - - { offset: 0x108040, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHSQAAWl', symObjAddr: 0x15690, symBinAddr: 0x1000162E0, symSize: 0x30 } - - { offset: 0x108054, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSHAASQWb', symObjAddr: 0x156C0, symBinAddr: 0x100016310, symSize: 0x10 } - - { offset: 0x108068, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOAGSQAAWl', symObjAddr: 0x156D0, symBinAddr: 0x100016320, symSize: 0x30 } - - { offset: 0x10807C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15700, symBinAddr: 0x100016350, symSize: 0x10 } - - { offset: 0x108090, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15710, symBinAddr: 0x100016360, symSize: 0x30 } - - { offset: 0x1080A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x15740, symBinAddr: 0x100016390, symSize: 0x10 } - - { offset: 0x1080B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x15750, symBinAddr: 0x1000163A0, symSize: 0x30 } - - { offset: 0x1080CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15780, symBinAddr: 0x1000163D0, symSize: 0x10 } - - { offset: 0x1080E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15790, symBinAddr: 0x1000163E0, symSize: 0x30 } - - { offset: 0x1080F4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x157C0, symBinAddr: 0x100016410, symSize: 0x10 } - - { offset: 0x108108, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x157D0, symBinAddr: 0x100016420, symSize: 0x30 } - - { offset: 0x10811C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15800, symBinAddr: 0x100016450, symSize: 0x10 } - - { offset: 0x108130, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15810, symBinAddr: 0x100016460, symSize: 0x30 } - - { offset: 0x108144, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x15840, symBinAddr: 0x100016490, symSize: 0x10 } - - { offset: 0x108158, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x15850, symBinAddr: 0x1000164A0, symSize: 0x30 } - - { offset: 0x10816C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15880, symBinAddr: 0x1000164D0, symSize: 0x10 } - - { offset: 0x108180, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15890, symBinAddr: 0x1000164E0, symSize: 0x30 } - - { offset: 0x108194, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x158C0, symBinAddr: 0x100016510, symSize: 0x10 } - - { offset: 0x1081A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x158D0, symBinAddr: 0x100016520, symSize: 0x30 } - - { offset: 0x1081BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15900, symBinAddr: 0x100016550, symSize: 0x10 } - - { offset: 0x1081D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15910, symBinAddr: 0x100016560, symSize: 0x30 } - - { offset: 0x1081E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x15940, symBinAddr: 0x100016590, symSize: 0x10 } - - { offset: 0x1081F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x15950, symBinAddr: 0x1000165A0, symSize: 0x30 } - - { offset: 0x10820C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15980, symBinAddr: 0x1000165D0, symSize: 0x10 } - - { offset: 0x108220, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15990, symBinAddr: 0x1000165E0, symSize: 0x30 } - - { offset: 0x108234, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x159C0, symBinAddr: 0x100016610, symSize: 0x10 } - - { offset: 0x108248, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x159D0, symBinAddr: 0x100016620, symSize: 0x30 } - - { offset: 0x10825C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15A00, symBinAddr: 0x100016650, symSize: 0x10 } - - { offset: 0x108270, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15A10, symBinAddr: 0x100016660, symSize: 0x30 } - - { offset: 0x108284, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x15A40, symBinAddr: 0x100016690, symSize: 0x10 } - - { offset: 0x108298, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOAHs23CustomStringConvertibleAAWl', symObjAddr: 0x15A50, symBinAddr: 0x1000166A0, symSize: 0x30 } - - { offset: 0x1082AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15A80, symBinAddr: 0x1000166D0, symSize: 0x10 } - - { offset: 0x1082C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15A90, symBinAddr: 0x1000166E0, symSize: 0x30 } - - { offset: 0x1082D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x15AC0, symBinAddr: 0x100016710, symSize: 0x10 } - - { offset: 0x1082E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x15AD0, symBinAddr: 0x100016720, symSize: 0x30 } - - { offset: 0x1082FC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15B00, symBinAddr: 0x100016750, symSize: 0x10 } - - { offset: 0x108310, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15B10, symBinAddr: 0x100016760, symSize: 0x30 } - - { offset: 0x108324, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x15B40, symBinAddr: 0x100016790, symSize: 0x10 } - - { offset: 0x108338, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x15B50, symBinAddr: 0x1000167A0, symSize: 0x30 } - - { offset: 0x10834C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x15B80, symBinAddr: 0x1000167D0, symSize: 0x10 } - - { offset: 0x108360, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOAEs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x15B90, symBinAddr: 0x1000167E0, symSize: 0x30 } - - { offset: 0x108374, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x15BC0, symBinAddr: 0x100016810, symSize: 0x10 } - - { offset: 0x108388, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOAEs23CustomStringConvertibleAAWl', symObjAddr: 0x15BD0, symBinAddr: 0x100016820, symSize: 0x30 } - - { offset: 0x10839C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOAESYAAWl', symObjAddr: 0x15C00, symBinAddr: 0x100016850, symSize: 0x30 } - - { offset: 0x1083B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOAGs0G3KeyAAWl', symObjAddr: 0x15C30, symBinAddr: 0x100016880, symSize: 0x30 } - - { offset: 0x1083C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOAGs0H3KeyAAWl', symObjAddr: 0x15C60, symBinAddr: 0x1000168B0, symSize: 0x30 } - - { offset: 0x1083D8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOAGs0H3KeyAAWl', symObjAddr: 0x15C90, symBinAddr: 0x1000168E0, symSize: 0x30 } - - { offset: 0x1083EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOMa', symObjAddr: 0x15CF0, symBinAddr: 0x100016930, symSize: 0x10 } - - { offset: 0x108400, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOMa', symObjAddr: 0x15E60, symBinAddr: 0x100016A90, symSize: 0x10 } - - { offset: 0x108414, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOMa', symObjAddr: 0x15FD0, symBinAddr: 0x100016BF0, symSize: 0x10 } - - { offset: 0x108428, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOSHAASQWb', symObjAddr: 0x16030, symBinAddr: 0x100016C50, symSize: 0x10 } - - { offset: 0x10843C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOAGSQAAWl', symObjAddr: 0x16040, symBinAddr: 0x100016C60, symSize: 0x30 } - - { offset: 0x108450, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSHAASQWb', symObjAddr: 0x16070, symBinAddr: 0x100016C90, symSize: 0x10 } - - { offset: 0x108464, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOAGSQAAWl', symObjAddr: 0x16080, symBinAddr: 0x100016CA0, symSize: 0x30 } - - { offset: 0x108478, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSHAASQWb', symObjAddr: 0x160B0, symBinAddr: 0x100016CD0, symSize: 0x10 } - - { offset: 0x10848C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOAGSQAAWl', symObjAddr: 0x160C0, symBinAddr: 0x100016CE0, symSize: 0x30 } - - { offset: 0x1084A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x160F0, symBinAddr: 0x100016D10, symSize: 0x10 } - - { offset: 0x1084B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x16100, symBinAddr: 0x100016D20, symSize: 0x30 } - - { offset: 0x1084C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x16130, symBinAddr: 0x100016D50, symSize: 0x10 } - - { offset: 0x1084DC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x16140, symBinAddr: 0x100016D60, symSize: 0x30 } - - { offset: 0x1084F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs0H3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x16170, symBinAddr: 0x100016D90, symSize: 0x10 } - - { offset: 0x108504, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x16180, symBinAddr: 0x100016DA0, symSize: 0x30 } - - { offset: 0x108518, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs0H3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x161B0, symBinAddr: 0x100016DD0, symSize: 0x10 } - - { offset: 0x10852C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x161C0, symBinAddr: 0x100016DE0, symSize: 0x30 } - - { offset: 0x108540, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOs0G3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x161F0, symBinAddr: 0x100016E10, symSize: 0x10 } - - { offset: 0x108554, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOAGs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x16200, symBinAddr: 0x100016E20, symSize: 0x30 } - - { offset: 0x108568, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOs0G3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x16230, symBinAddr: 0x100016E50, symSize: 0x10 } - - { offset: 0x10857C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV10CodingKeysOAGs23CustomStringConvertibleAAWl', symObjAddr: 0x16240, symBinAddr: 0x100016E60, symSize: 0x30 } - - { offset: 0x108591, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeO11descriptionSSvg', symObjAddr: 0x0, symBinAddr: 0x100001720, symSize: 0x140 } - - { offset: 0x10870C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSYAASY8rawValuexSg03RawG0Qz_tcfCTW', symObjAddr: 0xF50, symBinAddr: 0x100002670, symSize: 0x20 } - - { offset: 0x108735, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeOSYAASY8rawValue03RawG0QzvgTW', symObjAddr: 0xF70, symBinAddr: 0x100002690, symSize: 0x10 } - - { offset: 0x108765, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAsAIP8intValueSiSgvgTW', symObjAddr: 0x15E0, symBinAddr: 0x100002D00, symSize: 0x10 } - - { offset: 0x108779, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV6encode2toys7Encoder_p_tKF', symObjAddr: 0x1680, symBinAddr: 0x100002D60, symSize: 0x1B0 } - - { offset: 0x1087B1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV4hash4intoys6HasherVz_tF', symObjAddr: 0x1830, symBinAddr: 0x100002F10, symSize: 0x60 } - - { offset: 0x1088CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV9hashValueSivg', symObjAddr: 0x1890, symBinAddr: 0x100002F70, symSize: 0x80 } - - { offset: 0x108A33, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x1950, symBinAddr: 0x100003030, symSize: 0x40 } - - { offset: 0x108A5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4UUIDVs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x19C0, symBinAddr: 0x1000030A0, symSize: 0xE0 } - - { offset: 0x108B05, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSYAASY8rawValuexSg03RawK0Qz_tcfCTW', symObjAddr: 0x1D70, symBinAddr: 0x100003450, symSize: 0x30 } - - { offset: 0x108B2E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOSYAASY8rawValue03RawK0QzvgTW', symObjAddr: 0x1DA0, symBinAddr: 0x100003480, symSize: 0xC0 } - - { offset: 0x108BB5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs0H3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x1E60, symBinAddr: 0x100003540, symSize: 0xB0 } - - { offset: 0x108C4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV10CodingKeysOs0H3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x1F10, symBinAddr: 0x1000035F0, symSize: 0x20 } - - { offset: 0x108CAB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x1F90, symBinAddr: 0x100003660, symSize: 0x60 } - - { offset: 0x108CCC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x1FF0, symBinAddr: 0x1000036C0, symSize: 0x40 } - - { offset: 0x108CE0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSHAASH9hashValueSivgTW', symObjAddr: 0x2030, symBinAddr: 0x100003700, symSize: 0x40 } - - { offset: 0x108CF4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x2070, symBinAddr: 0x100003740, symSize: 0x40 } - - { offset: 0x108D24, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2130, symBinAddr: 0x100003800, symSize: 0x40 } - - { offset: 0x108D53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV11descriptionSSvg', symObjAddr: 0x2170, symBinAddr: 0x100003840, symSize: 0x140 } - - { offset: 0x108E29, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x22B0, symBinAddr: 0x100003980, symSize: 0x10 } - - { offset: 0x108E3D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAsAIP11stringValueSSvgTW', symObjAddr: 0x22C0, symBinAddr: 0x100003990, symSize: 0x20 } - - { offset: 0x108E6A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0G3KeyAAsAIP11stringValuexSgSS_tcfCTW', symObjAddr: 0x22E0, symBinAddr: 0x1000039B0, symSize: 0x70 } - - { offset: 0x108ED4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x23A0, symBinAddr: 0x100003A60, symSize: 0x100 } - - { offset: 0x108F17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x24A0, symBinAddr: 0x100003B60, symSize: 0xD0 } - - { offset: 0x108F79, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSHAASH9hashValueSivgTW', symObjAddr: 0x2570, symBinAddr: 0x100003C30, symSize: 0x40 } - - { offset: 0x109040, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x25B0, symBinAddr: 0x100003C70, symSize: 0x20 } - - { offset: 0x10909D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x2600, symBinAddr: 0x100003CC0, symSize: 0x10 } - - { offset: 0x1090CD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4AddrVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2610, symBinAddr: 0x100003CD0, symSize: 0x10 } - - { offset: 0x1090F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV6encode2toys7Encoder_p_tKF', symObjAddr: 0x2620, symBinAddr: 0x100003CE0, symSize: 0x120 } - - { offset: 0x109143, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x2900, symBinAddr: 0x100003FB0, symSize: 0x20 } - - { offset: 0x10916C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x2920, symBinAddr: 0x100003FD0, symSize: 0x20 } - - { offset: 0x1091B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSHAASH9hashValueSivgTW', symObjAddr: 0x2940, symBinAddr: 0x100003FF0, symSize: 0x50 } - - { offset: 0x1092F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x2990, symBinAddr: 0x100004040, symSize: 0x30 } - - { offset: 0x1093CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x2A00, symBinAddr: 0x1000040B0, symSize: 0x90 } - - { offset: 0x109434, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x2A90, symBinAddr: 0x100004140, symSize: 0x20 } - - { offset: 0x10946A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrV11descriptionSSvg', symObjAddr: 0x2AB0, symBinAddr: 0x100004160, symSize: 0x3D0 } - - { offset: 0x109CEB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x3180, symBinAddr: 0x1000047E0, symSize: 0x40 } - - { offset: 0x109CFF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6AddrVs23CustomStringConvertibleAAsAFP11descriptionSSvgTW', symObjAddr: 0x32E0, symBinAddr: 0x100004940, symSize: 0x20 } - - { offset: 0x109D13, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV6encode2toys7Encoder_p_tKF', symObjAddr: 0x3650, symBinAddr: 0x100004CA0, symSize: 0x140 } - - { offset: 0x109D59, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x3790, symBinAddr: 0x100004DE0, symSize: 0x40 } - - { offset: 0x109D82, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x37D0, symBinAddr: 0x100004E20, symSize: 0x20 } - - { offset: 0x109DE5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSHAASH9hashValueSivgTW', symObjAddr: 0x37F0, symBinAddr: 0x100004E40, symSize: 0x80 } - - { offset: 0x109F9A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x3870, symBinAddr: 0x100004EC0, symSize: 0x70 } - - { offset: 0x10A126, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x3960, symBinAddr: 0x100004FB0, symSize: 0x30 } - - { offset: 0x10A163, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAsAIP11stringValueSSvgTW', symObjAddr: 0x3A40, symBinAddr: 0x100005080, symSize: 0x20 } - - { offset: 0x10A190, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0F3KeyAAsAIP11stringValuexSgSS_tcfCTW', symObjAddr: 0x3A60, symBinAddr: 0x1000050A0, symSize: 0x70 } - - { offset: 0x10A1F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x3B30, symBinAddr: 0x100005160, symSize: 0x110 } - - { offset: 0x10A233, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x3C40, symBinAddr: 0x100005270, symSize: 0xE0 } - - { offset: 0x10A286, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSHAASH9hashValueSivgTW', symObjAddr: 0x3D20, symBinAddr: 0x100005350, symSize: 0x50 } - - { offset: 0x10A34D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x3D70, symBinAddr: 0x1000053A0, symSize: 0x20 } - - { offset: 0x10A3CA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV3UrlVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x3DD0, symBinAddr: 0x100005400, symSize: 0x40 } - - { offset: 0x10A405, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV6encode2toys7Encoder_p_tKF', symObjAddr: 0x3E10, symBinAddr: 0x100005440, symSize: 0x240 } - - { offset: 0x10A459, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV4hash4intoys6HasherVz_tF', symObjAddr: 0x4050, symBinAddr: 0x100005680, symSize: 0x1D0 } - - { offset: 0x10AA59, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSYAASY8rawValuexSg03RawK0Qz_tcfCTW', symObjAddr: 0x4460, symBinAddr: 0x100005A90, symSize: 0x30 } - - { offset: 0x10AA82, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOSYAASY8rawValue03RawK0QzvgTW', symObjAddr: 0x4490, symBinAddr: 0x100005AC0, symSize: 0x90 } - - { offset: 0x10AAB5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs0H3KeyAAsAJP11stringValueSSvgTW', symObjAddr: 0x4520, symBinAddr: 0x100005B50, symSize: 0x90 } - - { offset: 0x10AB05, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV10CodingKeysOs0H3KeyAAsAJP11stringValuexSgSS_tcfCTW', symObjAddr: 0x45B0, symBinAddr: 0x100005BE0, symSize: 0x20 } - - { offset: 0x10AB62, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x4620, symBinAddr: 0x100005C40, symSize: 0x40 } - - { offset: 0x10AB8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x4660, symBinAddr: 0x100005C80, symSize: 0x10 } - - { offset: 0x10ABBD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSHAASH9hashValueSivgTW', symObjAddr: 0x4670, symBinAddr: 0x100005C90, symSize: 0x40 } - - { offset: 0x10AC3A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x46B0, symBinAddr: 0x100005CD0, symSize: 0x10 } - - { offset: 0x10AC55, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x46F0, symBinAddr: 0x100005D10, symSize: 0x60 } - - { offset: 0x10AC7E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x4750, symBinAddr: 0x100005D70, symSize: 0x360 } - - { offset: 0x10ACD2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV4hash4intoys6HasherVz_tF', symObjAddr: 0x4AB0, symBinAddr: 0x1000060D0, symSize: 0x210 } - - { offset: 0x10B039, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSYAASY8rawValuexSg03RawJ0Qz_tcfCTW', symObjAddr: 0x4DF0, symBinAddr: 0x100006410, symSize: 0x30 } - - { offset: 0x10B062, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOSYAASY8rawValue03RawJ0QzvgTW', symObjAddr: 0x4E20, symBinAddr: 0x100006440, symSize: 0xE0 } - - { offset: 0x10B095, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x4F00, symBinAddr: 0x100006520, symSize: 0xD0 } - - { offset: 0x10B0E5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x4FD0, symBinAddr: 0x1000065F0, symSize: 0x20 } - - { offset: 0x10B12D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysOs0G3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x5000, symBinAddr: 0x100006610, symSize: 0x10 } - - { offset: 0x10B156, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x5050, symBinAddr: 0x100006660, symSize: 0x50 } - - { offset: 0x10B17F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x50A0, symBinAddr: 0x1000066B0, symSize: 0x10 } - - { offset: 0x10B1B1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x50B0, symBinAddr: 0x1000066C0, symSize: 0x40 } - - { offset: 0x10B22E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x50F0, symBinAddr: 0x100006700, symSize: 0x10 } - - { offset: 0x10B249, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x5130, symBinAddr: 0x100006740, symSize: 0x60 } - - { offset: 0x10B272, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x5190, symBinAddr: 0x1000067A0, symSize: 0x230 } - - { offset: 0x10B2BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV4hash4intoys6HasherVz_tF', symObjAddr: 0x53C0, symBinAddr: 0x1000069D0, symSize: 0xF0 } - - { offset: 0x10B500, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSYAASY8rawValuexSg03RawI0Qz_tcfCTW', symObjAddr: 0x55B0, symBinAddr: 0x100006BC0, symSize: 0x30 } - - { offset: 0x10B529, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOSYAASY8rawValue03RawI0QzvgTW', symObjAddr: 0x55E0, symBinAddr: 0x100006BF0, symSize: 0xC0 } - - { offset: 0x10B57A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x56A0, symBinAddr: 0x100006CB0, symSize: 0xB0 } - - { offset: 0x10B5D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x5750, symBinAddr: 0x100006D60, symSize: 0x20 } - - { offset: 0x10B618, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysOs0F3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x5780, symBinAddr: 0x100006D80, symSize: 0x10 } - - { offset: 0x10B641, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x57D0, symBinAddr: 0x100006DD0, symSize: 0x40 } - - { offset: 0x10B66A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x5810, symBinAddr: 0x100006E10, symSize: 0x10 } - - { offset: 0x10B695, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x5820, symBinAddr: 0x100006E20, symSize: 0x40 } - - { offset: 0x10B712, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x5860, symBinAddr: 0x100006E60, symSize: 0x10 } - - { offset: 0x10B72D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x58A0, symBinAddr: 0x100006EA0, symSize: 0x60 } - - { offset: 0x10B756, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV6encode2toys7Encoder_p_tKF', symObjAddr: 0x5AD0, symBinAddr: 0x1000070C0, symSize: 0x440 } - - { offset: 0x10B79C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV4hash4intoys6HasherVz_tF', symObjAddr: 0x5F10, symBinAddr: 0x100007500, symSize: 0x320 } - - { offset: 0x10BE49, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOSYAASY8rawValuexSg03RawI0Qz_tcfCTW', symObjAddr: 0x62B0, symBinAddr: 0x1000078A0, symSize: 0x30 } - - { offset: 0x10BE72, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOSYAASY8rawValue03RawI0QzvgTW', symObjAddr: 0x62E0, symBinAddr: 0x1000078D0, symSize: 0x30 } - - { offset: 0x10BE86, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x6310, symBinAddr: 0x100007900, symSize: 0x10 } - - { offset: 0x10BEAC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x6320, symBinAddr: 0x100007910, symSize: 0x20 } - - { offset: 0x10BEF4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysOs0F3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x6350, symBinAddr: 0x100007930, symSize: 0x10 } - - { offset: 0x10BF1D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x63A0, symBinAddr: 0x100007980, symSize: 0x50 } - - { offset: 0x10BF46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x63F0, symBinAddr: 0x1000079D0, symSize: 0x10 } - - { offset: 0x10BF78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSHAASH9hashValueSivgTW', symObjAddr: 0x6400, symBinAddr: 0x1000079E0, symSize: 0x40 } - - { offset: 0x10BFF5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x6440, symBinAddr: 0x100007A20, symSize: 0x10 } - - { offset: 0x10C009, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVs12IdentifiableAAsAFP2id2IDQzvgTW', symObjAddr: 0x6480, symBinAddr: 0x100007A60, symSize: 0x10 } - - { offset: 0x10C024, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x6490, symBinAddr: 0x100007A70, symSize: 0x60 } - - { offset: 0x10C04D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x64F0, symBinAddr: 0x100007AD0, symSize: 0x1E0 } - - { offset: 0x10C0C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV4hash4intoys6HasherVz_tF', symObjAddr: 0x66D0, symBinAddr: 0x100007CB0, symSize: 0x160 } - - { offset: 0x10C480, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSYAASY8rawValuexSg03RawJ0Qz_tcfCTW', symObjAddr: 0x6A70, symBinAddr: 0x100008050, symSize: 0x30 } - - { offset: 0x10C4A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOSYAASY8rawValue03RawJ0QzvgTW', symObjAddr: 0x6AA0, symBinAddr: 0x100008080, symSize: 0xA0 } - - { offset: 0x10C4FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs0G3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x6B40, symBinAddr: 0x100008120, symSize: 0x90 } - - { offset: 0x10C552, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysOs0G3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x6BD0, symBinAddr: 0x1000081B0, symSize: 0x20 } - - { offset: 0x10C5AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x6C40, symBinAddr: 0x100008210, symSize: 0x40 } - - { offset: 0x10C5D8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x6C80, symBinAddr: 0x100008250, symSize: 0x10 } - - { offset: 0x10C60A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x6C90, symBinAddr: 0x100008260, symSize: 0x40 } - - { offset: 0x10C687, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x6CD0, symBinAddr: 0x1000082A0, symSize: 0x10 } - - { offset: 0x10C6A2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x6D20, symBinAddr: 0x1000082E0, symSize: 0x50 } - - { offset: 0x10C6CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x6EA0, symBinAddr: 0x100008450, symSize: 0x330 } - - { offset: 0x10C759, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV4hash4intoys6HasherVz_tF', symObjAddr: 0x71D0, symBinAddr: 0x100008780, symSize: 0x1F0 } - - { offset: 0x10CC46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOSYAASY8rawValuexSg03RawK0Qz_tcfCTW', symObjAddr: 0x7580, symBinAddr: 0x100008B30, symSize: 0x30 } - - { offset: 0x10CC6F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOSYAASY8rawValue03RawK0QzvgTW', symObjAddr: 0x75B0, symBinAddr: 0x100008B60, symSize: 0x30 } - - { offset: 0x10CC83, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x75E0, symBinAddr: 0x100008B90, symSize: 0x10 } - - { offset: 0x10CCA9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x75F0, symBinAddr: 0x100008BA0, symSize: 0x20 } - - { offset: 0x10CCF1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysOs0H3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x7620, symBinAddr: 0x100008BC0, symSize: 0x10 } - - { offset: 0x10CD1A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x7670, symBinAddr: 0x100008C10, symSize: 0x50 } - - { offset: 0x10CD43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x76C0, symBinAddr: 0x100008C60, symSize: 0x10 } - - { offset: 0x10CD6E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x76D0, symBinAddr: 0x100008C70, symSize: 0x40 } - - { offset: 0x10CDEB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x7710, symBinAddr: 0x100008CB0, symSize: 0x10 } - - { offset: 0x10CE06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x7750, symBinAddr: 0x100008CF0, symSize: 0x60 } - - { offset: 0x10CE2F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV6encode2toys7Encoder_p_tKF', symObjAddr: 0x77B0, symBinAddr: 0x100008D50, symSize: 0x240 } - - { offset: 0x10CE60, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV6encode2toys7Encoder_p_tKF', symObjAddr: 0x79F0, symBinAddr: 0x100008F90, symSize: 0x180 } - - { offset: 0x10CE91, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV6encode2toys7Encoder_p_tKF', symObjAddr: 0x7B70, symBinAddr: 0x100009110, symSize: 0x1B0 } - - { offset: 0x10CEF1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x7D20, symBinAddr: 0x1000092C0, symSize: 0x10 } - - { offset: 0x10CF37, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0H3KeyAAsAIP11stringValueSSvgTW', symObjAddr: 0x7DD0, symBinAddr: 0x1000092D0, symSize: 0x30 } - - { offset: 0x10CF72, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV10CodingKeys33_A69E49F079393317A9DF32E95D9ECE14LLOs0H3KeyAAsAIP11stringValuexSgSS_tcfCTW', symObjAddr: 0x7E00, symBinAddr: 0x100009300, symSize: 0xC0 } - - { offset: 0x10CFE5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x7F10, symBinAddr: 0x100009400, symSize: 0x50 } - - { offset: 0x10D00E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x7F60, symBinAddr: 0x100009450, symSize: 0x10 } - - { offset: 0x10D050, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSHAASH9hashValueSivgTW', symObjAddr: 0x7F70, symBinAddr: 0x100009460, symSize: 0xD0 } - - { offset: 0x10D16A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x8040, symBinAddr: 0x100009530, symSize: 0xA0 } - - { offset: 0x10D201, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x81C0, symBinAddr: 0x1000096A0, symSize: 0x60 } - - { offset: 0x10D25D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSYAASY8rawValuexSg03RawJ0Qz_tcfCTW', symObjAddr: 0x8490, symBinAddr: 0x100009970, symSize: 0x30 } - - { offset: 0x10D286, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOSYAASY8rawValue03RawJ0QzvgTW', symObjAddr: 0x84C0, symBinAddr: 0x1000099A0, symSize: 0x60 } - - { offset: 0x10D2C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x8520, symBinAddr: 0x100009A00, symSize: 0x60 } - - { offset: 0x10D311, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x8580, symBinAddr: 0x100009A60, symSize: 0x20 } - - { offset: 0x10D359, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysOs0G3KeyAAsAHP8intValuexSgSi_tcfCTW', symObjAddr: 0x85B0, symBinAddr: 0x100009A80, symSize: 0x10 } - - { offset: 0x10D382, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x8600, symBinAddr: 0x100009AD0, symSize: 0x40 } - - { offset: 0x10D3AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x8640, symBinAddr: 0x100009B10, symSize: 0x10 } - - { offset: 0x10D3C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSHAASH9hashValueSivgTW', symObjAddr: 0x8650, symBinAddr: 0x100009B20, symSize: 0x80 } - - { offset: 0x10D573, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x86D0, symBinAddr: 0x100009BA0, symSize: 0x60 } - - { offset: 0x10D6CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x87B0, symBinAddr: 0x100009C80, symSize: 0x130 } - - { offset: 0x10D783, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSYAASY8rawValuexSg03RawK0Qz_tcfCTW', symObjAddr: 0x8B30, symBinAddr: 0x10000A000, symSize: 0x30 } - - { offset: 0x10D7AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOSYAASY8rawValue03RawK0QzvgTW', symObjAddr: 0x8B60, symBinAddr: 0x10000A030, symSize: 0x90 } - - { offset: 0x10D7DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs0H3KeyAAsAHP11stringValueSSvgTW', symObjAddr: 0x8BF0, symBinAddr: 0x10000A0C0, symSize: 0x90 } - - { offset: 0x10D82F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV10CodingKeysOs0H3KeyAAsAHP11stringValuexSgSS_tcfCTW', symObjAddr: 0x8C80, symBinAddr: 0x10000A150, symSize: 0x20 } - - { offset: 0x10D88C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x8CF0, symBinAddr: 0x10000A1B0, symSize: 0x40 } - - { offset: 0x10D8B5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x8D30, symBinAddr: 0x10000A1F0, symSize: 0x10 } - - { offset: 0x10D8D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSHAASH9hashValueSivgTW', symObjAddr: 0x8D40, symBinAddr: 0x10000A200, symSize: 0x80 } - - { offset: 0x10DA3B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x8DC0, symBinAddr: 0x10000A280, symSize: 0x70 } - - { offset: 0x10DB5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x8EB0, symBinAddr: 0x10000A370, symSize: 0x40 } - - { offset: 0x10DB92, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSYAASY8rawValuexSg03RawH0Qz_tcfCTW', symObjAddr: 0x8F40, symBinAddr: 0x10000A400, symSize: 0x30 } - - { offset: 0x10DBBB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOSYAASY8rawValue03RawH0QzvgTW', symObjAddr: 0x8F70, symBinAddr: 0x10000A430, symSize: 0x100 } - - { offset: 0x10DC0D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAsAFP11stringValueSSvgTW', symObjAddr: 0x9070, symBinAddr: 0x10000A530, symSize: 0xF0 } - - { offset: 0x10DC64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAsAFP11stringValuexSgSS_tcfCTW', symObjAddr: 0x9160, symBinAddr: 0x10000A620, symSize: 0x20 } - - { offset: 0x10DCAC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysOs0E3KeyAAsAFP8intValuexSgSi_tcfCTW', symObjAddr: 0x9190, symBinAddr: 0x10000A640, symSize: 0x10 } - - { offset: 0x10DCC0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV6encode2toys7Encoder_p_tKF', symObjAddr: 0x91E0, symBinAddr: 0x10000A690, symSize: 0x3A0 } - - { offset: 0x10DD06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x9580, symBinAddr: 0x10000AA30, symSize: 0x50 } - - { offset: 0x10DD2F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x95D0, symBinAddr: 0x10000AA80, symSize: 0x10 } - - { offset: 0x10E12D, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSYSCSY8rawValuexSg03RawE0Qz_tcfCTW', symObjAddr: 0xA1F0, symBinAddr: 0x10000AFB0, symSize: 0x40 } - - { offset: 0x10E157, size: 0x8, addend: 0x0, symName: '_$sSo18NSFileAttributeKeyaSYSCSY8rawValue03RawE0QzvgTW', symObjAddr: 0xA230, symBinAddr: 0x10000AFF0, symSize: 0x20 } - - { offset: 0x10E180, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV7NATTypeO8rawValueAESgSi_tcfCTf4nd_n', symObjAddr: 0xA2C0, symBinAddr: 0x10000B080, symSize: 0x20 } - - { offset: 0x10E1A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV15PeerFeatureFlagV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xA2E0, symBinAddr: 0x10000B0A0, symSize: 0x1C0 } - - { offset: 0x10E1C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv4CIDRV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xA4A0, symBinAddr: 0x10000B260, symSize: 0x150 } - - { offset: 0x10E1EE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8IPv6CIDRV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xA8D0, symBinAddr: 0x10000B690, symSize: 0x160 } - - { offset: 0x10E21F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV23__derived_struct_equalsySbAG_AGtFZTf4nnd_n', symObjAddr: 0xAA30, symBinAddr: 0x10000B7F0, symSize: 0x120 } - - { offset: 0x10E33A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV6IPListV4fromAGs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xAB50, symBinAddr: 0x10000B910, symSize: 0x4F0 } - - { offset: 0x10E364, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xB040, symBinAddr: 0x10000BE00, symSize: 0x60 } - - { offset: 0x10E39B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xB0A0, symBinAddr: 0x10000BE60, symSize: 0xA0 } - - { offset: 0x10E41E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xB140, symBinAddr: 0x10000BF00, symSize: 0x540 } - - { offset: 0x10E4F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xB680, symBinAddr: 0x10000C440, symSize: 0x7C0 } - - { offset: 0x10E515, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xBE40, symBinAddr: 0x10000CC00, symSize: 0x60 } - - { offset: 0x10E54C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8STUNInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xBEA0, symBinAddr: 0x10000CC60, symSize: 0x2D0 } - - { offset: 0x10E56F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xC170, symBinAddr: 0x10000CF30, symSize: 0x60 } - - { offset: 0x10E5A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xC1D0, symBinAddr: 0x10000CF90, symSize: 0x3C0 } - - { offset: 0x10E6CD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV5RouteV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xC590, symBinAddr: 0x10000D350, symSize: 0xA60 } - - { offset: 0x10E6F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xCFF0, symBinAddr: 0x10000DDB0, symSize: 0x60 } - - { offset: 0x10E727, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xD050, symBinAddr: 0x10000DE10, symSize: 0x5A0 } - - { offset: 0x10E8AA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xD5F0, symBinAddr: 0x10000E3B0, symSize: 0x160 } - - { offset: 0x10E9D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8PeerInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xD750, symBinAddr: 0x10000E510, symSize: 0x260 } - - { offset: 0x10E9FC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xD9B0, symBinAddr: 0x10000E770, symSize: 0x60 } - - { offset: 0x10EA33, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV12PeerConnInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xDA10, symBinAddr: 0x10000E7D0, symSize: 0x790 } - - { offset: 0x10EA56, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV23__derived_struct_equalsySbAE_AEtFZTf4nnd_n', symObjAddr: 0xE1A0, symBinAddr: 0x10000EF60, symSize: 0x340 } - - { offset: 0x10EAA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xE4E0, symBinAddr: 0x10000F2A0, symSize: 0x2E0 } - - { offset: 0x10EACA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV10CodingKeysO8rawValueAGSgSS_tcfCTf4nd_n', symObjAddr: 0xE7C0, symBinAddr: 0x10000F580, symSize: 0x60 } - - { offset: 0x10EB01, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10TunnelInfoV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xE820, symBinAddr: 0x10000F5E0, symSize: 0x210 } - - { offset: 0x10EB24, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerConnStatsV4fromAEs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xEAA0, symBinAddr: 0x10000F860, symSize: 0x1D0 } - - { offset: 0x10EB47, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV10CodingKeysO8rawValueAESgSS_tcfCTf4nd_n', symObjAddr: 0xEC70, symBinAddr: 0x10000FA30, symSize: 0x60 } - - { offset: 0x10EB7E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV4fromACs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0xECD0, symBinAddr: 0x10000FA90, symSize: 0x610 } - - { offset: 0x10ED22, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoV9stableKey33_030860012336D326239E887B8F6C4FB2LLSSvg', symObjAddr: 0x0, symBinAddr: 0x100017180, symSize: 0x340 } - - { offset: 0x10EEBA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9CliClientCMa', symObjAddr: 0x5B0, symBinAddr: 0x100017730, symSize: 0x20 } - - { offset: 0x10EECE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwCP', symObjAddr: 0x5D0, symBinAddr: 0x100017750, symSize: 0x620 } - - { offset: 0x10EEE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwxx', symObjAddr: 0xBF0, symBinAddr: 0x100017D70, symSize: 0x1A0 } - - { offset: 0x10EEF6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwcp', symObjAddr: 0xD90, symBinAddr: 0x100017F10, symSize: 0x5F0 } - - { offset: 0x10EF0A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwca', symObjAddr: 0x1380, symBinAddr: 0x100018500, symSize: 0xC00 } - - { offset: 0x10EF1E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwtk', symObjAddr: 0x2040, symBinAddr: 0x100019100, symSize: 0x100 } - - { offset: 0x10EF32, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwta', symObjAddr: 0x2140, symBinAddr: 0x100019200, symSize: 0x680 } - - { offset: 0x10EF46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwet', symObjAddr: 0x27C0, symBinAddr: 0x100019880, symSize: 0x20 } - - { offset: 0x10EF5A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVwst', symObjAddr: 0x2850, symBinAddr: 0x100019910, symSize: 0x20 } - - { offset: 0x10EF6E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVMa', symObjAddr: 0x28D0, symBinAddr: 0x100019990, symSize: 0x30 } - - { offset: 0x10EF82, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVMr', symObjAddr: 0x2900, symBinAddr: 0x1000199C0, symSize: 0xB0 } - - { offset: 0x10EF96, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVs12IdentifiableAA2IDsADP_SHWT', symObjAddr: 0x29B0, symBinAddr: 0x100019A70, symSize: 0x10 } - - { offset: 0x10EFAA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSgWOg', symObjAddr: 0x29D0, symBinAddr: 0x100019A90, symSize: 0x30 } - - { offset: 0x10EFBE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV8NodeInfoVSgWOg', symObjAddr: 0x31F0, symBinAddr: 0x10001A270, symSize: 0x30 } - - { offset: 0x10F097, size: 0x8, addend: 0x0, symName: '_$sSDsSQR_rlE2eeoiySbSDyxq_G_ABtFZSS_SSTt1g5', symObjAddr: 0x340, symBinAddr: 0x1000174C0, symSize: 0x210 } - - { offset: 0x10F196, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoV9stableKey33_030860012336D326239E887B8F6C4FB2LLSSvg', symObjAddr: 0x0, symBinAddr: 0x100017180, symSize: 0x340 } - - { offset: 0x10F49F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVs12IdentifiableAAsADP2id2IDQzvgTW', symObjAddr: 0x550, symBinAddr: 0x1000176D0, symSize: 0x20 } - - { offset: 0x10F4E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x570, symBinAddr: 0x1000176F0, symSize: 0x10 } - - { offset: 0x10F539, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9CliClientCfD', symObjAddr: 0x580, symBinAddr: 0x100017700, symSize: 0x30 } - - { offset: 0x10F584, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9CliClientCScAAAScA15unownedExecutorScevgTW', symObjAddr: 0x29C0, symBinAddr: 0x100019A80, symSize: 0x10 } - - { offset: 0x10F5A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoV2eeoiySbAC_ACtFZTf4nnd_n', symObjAddr: 0x2A00, symBinAddr: 0x100019AC0, symSize: 0x7B0 } - - { offset: 0x10F8CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP09dismantleF0_11coordinatory0F4TypeQz_11CoordinatorQztFZTW', symObjAddr: 0xCE0, symBinAddr: 0x10001AED0, symSize: 0x10 } - - { offset: 0x10F8EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP19_identifiedViewTree2inAD011_IdentifiediJ0O0F4TypeQz_tFTW', symObjAddr: 0xDB0, symBinAddr: 0x10001AFA0, symSize: 0x10 } - - { offset: 0x10F907, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP12sizeThatFits_6nsView7contextSo6CGSizeVSgAD08ProposedL4SizeV_0F4TypeQzAD0fG7ContextVyxGtFTW', symObjAddr: 0xDC0, symBinAddr: 0x10001AFB0, symSize: 0x30 } - - { offset: 0x10F923, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP21_overrideSizeThatFits_2in6nsViewySo6CGSizeVz_AD09_ProposedI0V0F4TypeQztFTW', symObjAddr: 0xDF0, symBinAddr: 0x10001AFE0, symSize: 0x10 } - - { offset: 0x10F93F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP21_overrideLayoutTraits_3foryAD01_iJ0Vz_0F4TypeQztFTW', symObjAddr: 0xE00, symBinAddr: 0x10001AFF0, symSize: 0x10 } - - { offset: 0x10F95B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP24_modifyBridgedViewInputsyyAD01_jK0VzFZTW', symObjAddr: 0xE10, symBinAddr: 0x10001B000, symSize: 0x10 } - - { offset: 0x10F977, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP35_invalidatesSizeOnConstraintChangesSbvgZTW', symObjAddr: 0xE20, symBinAddr: 0x10001B010, symSize: 0x10 } - - { offset: 0x10F993, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP14_layoutOptionsyAD013_PlatformViewg6LayoutI0V0F4TypeQzFZTW', symObjAddr: 0xE30, symBinAddr: 0x10001B020, symSize: 0x10 } - - { offset: 0x10F9AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAadEP05_makeF04view6inputsAD01_F7OutputsVAD11_GraphValueVyxG_AD01_F6InputsVtFZTW', symObjAddr: 0xE40, symBinAddr: 0x10001B030, symSize: 0x40 } - - { offset: 0x10F9CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAadEP05_makeF4List4view6inputsAD01_fH7OutputsVAD11_GraphValueVyxG_AD01_fH6InputsVtFZTW', symObjAddr: 0xE80, symBinAddr: 0x10001B070, symSize: 0x40 } - - { offset: 0x10F9E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0xED0, symBinAddr: 0x10001B0C0, symSize: 0x20 } - - { offset: 0x10FDF8, size: 0x8, addend: 0x0, symName: '_$sSo20NSTextCheckingResultCSgSo15NSMatchingFlagsVSpy10ObjectiveC8ObjCBoolVGIeggyy_AceIIyByyy_TR', symObjAddr: 0x190, symBinAddr: 0x10001A3B0, symSize: 0x50 } - - { offset: 0x10FE3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCMa', symObjAddr: 0xA20, symBinAddr: 0x10001AC40, symSize: 0x20 } - - { offset: 0x10FE50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwxx', symObjAddr: 0xA70, symBinAddr: 0x10001AC60, symSize: 0x30 } - - { offset: 0x10FE64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwcp', symObjAddr: 0xAA0, symBinAddr: 0x10001AC90, symSize: 0x60 } - - { offset: 0x10FE78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwca', symObjAddr: 0xB00, symBinAddr: 0x10001ACF0, symSize: 0x80 } - - { offset: 0x10FE8C, size: 0x8, addend: 0x0, symName: ___swift_memcpy34_8, symObjAddr: 0xB80, symBinAddr: 0x10001AD70, symSize: 0x20 } - - { offset: 0x10FEA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwta', symObjAddr: 0xBA0, symBinAddr: 0x10001AD90, symSize: 0x60 } - - { offset: 0x10FEB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwet', symObjAddr: 0xC00, symBinAddr: 0x10001ADF0, symSize: 0x50 } - - { offset: 0x10FEC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVwst', symObjAddr: 0xC50, symBinAddr: 0x10001AE40, symSize: 0x50 } - - { offset: 0x10FEDC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVMa', symObjAddr: 0xCA0, symBinAddr: 0x10001AE90, symSize: 0x10 } - - { offset: 0x10FEF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0xCB0, symBinAddr: 0x10001AEA0, symSize: 0x10 } - - { offset: 0x10FF04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAaD4ViewPWb', symObjAddr: 0xEF0, symBinAddr: 0x10001B0E0, symSize: 0x10 } - - { offset: 0x10FF18, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVAC7SwiftUI4ViewAAWl', symObjAddr: 0xF00, symBinAddr: 0x10001B0F0, symSize: 0x30 } - - { offset: 0x10FF2C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV9highlightyySo13NSTextStorageCF10applyStyleL_7pattern5color4boldySS_So7NSColorCSbtFySo0E14CheckingResultCSg_So15NSMatchingFlagsVSpy10ObjectiveC8ObjCBoolVGtXEfU_TA', symObjAddr: 0x3780, symBinAddr: 0x10001D930, symSize: 0x20 } - - { offset: 0x10FF4B, size: 0x8, addend: 0x0, symName: '_$sSo20NSTextCheckingResultCSgSo15NSMatchingFlagsVSpy10ObjectiveC8ObjCBoolVGIggyy_AceIIeggyy_TRTA', symObjAddr: 0x37A0, symBinAddr: 0x10001D950, symSize: 0x20 } - - { offset: 0x10FF74, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x37C0, symBinAddr: 0x10001D970, symSize: 0x20 } - - { offset: 0x10FF88, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x37E0, symBinAddr: 0x10001D990, symSize: 0x10 } - - { offset: 0x10FF9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorVAC7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x3B70, symBinAddr: 0x10001DD20, symSize: 0x30 } - - { offset: 0x10FFB0, size: 0x8, addend: 0x0, symName: '_$sSo10NSTextViewCMa', symObjAddr: 0x3BA0, symBinAddr: 0x10001DD50, symSize: 0x40 } - - { offset: 0x10FFC4, size: 0x8, addend: 0x0, symName: '_$sS2cMScAsWl', symObjAddr: 0x3BE0, symBinAddr: 0x10001DD90, symSize: 0x40 } - - { offset: 0x10FFD8, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_TA', symObjAddr: 0x3C70, symBinAddr: 0x10001DE20, symSize: 0x90 } - - { offset: 0x10FFEC, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_TATQ0_', symObjAddr: 0x3D00, symBinAddr: 0x10001DEB0, symSize: 0x50 } - - { offset: 0x110000, size: 0x8, addend: 0x0, symName: '_$sScPSgWOc', symObjAddr: 0x3D50, symBinAddr: 0x10001DF00, symSize: 0x40 } - - { offset: 0x110014, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tgq5TA', symObjAddr: 0x3DE0, symBinAddr: 0x10001DF60, symSize: 0x80 } - - { offset: 0x110028, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tgq5TATQ0_', symObjAddr: 0x3E60, symBinAddr: 0x10001DFE0, symSize: 0x50 } - - { offset: 0x11003C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV4ModeOMa', symObjAddr: 0x4050, symBinAddr: 0x10001E030, symSize: 0x10 } - - { offset: 0x110050, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV4ModeOSHAASQWb', symObjAddr: 0x4060, symBinAddr: 0x10001E040, symSize: 0x10 } - - { offset: 0x110064, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV4ModeOAESQAAWl', symObjAddr: 0x4070, symBinAddr: 0x10001E050, symSize: 0x30 } - - { offset: 0x1101F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV9highlightyySo13NSTextStorageCF10applyStyleL_7pattern5color4boldySS_So7NSColorCSbtFySo0E14CheckingResultCSg_So15NSMatchingFlagsVSpy10ObjectiveC8ObjCBoolVGtXEfU_', symObjAddr: 0xB0, symBinAddr: 0x10001A2D0, symSize: 0xE0 } - - { offset: 0x1102A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV12updateNSView_7contextySo12NSScrollViewC_7SwiftUI0E20RepresentableContextVyACGtF', symObjAddr: 0x1E0, symBinAddr: 0x10001A400, symSize: 0x240 } - - { offset: 0x1103C9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorC13textDidChangeyy10Foundation12NotificationVF', symObjAddr: 0x420, symBinAddr: 0x10001A640, symSize: 0x1F0 } - - { offset: 0x11049B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorC13textDidChangeyy10Foundation12NotificationVFTo', symObjAddr: 0x610, symBinAddr: 0x10001A830, symSize: 0x80 } - - { offset: 0x1104C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCAEycfcTo', symObjAddr: 0x690, symBinAddr: 0x10001A8B0, symSize: 0x30 } - - { offset: 0x110522, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCfZ', symObjAddr: 0x6C0, symBinAddr: 0x10001A8E0, symSize: 0x30 } - - { offset: 0x110568, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCfD', symObjAddr: 0x6F0, symBinAddr: 0x10001A910, symSize: 0x2F0 } - - { offset: 0x1105A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV11CoordinatorCfETo', symObjAddr: 0x9E0, symBinAddr: 0x10001AC00, symSize: 0x40 } - - { offset: 0x1105D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP04makeF07context0F4TypeQzAD0fG7ContextVyxG_tFTW', symObjAddr: 0xCC0, symBinAddr: 0x10001AEB0, symSize: 0x10 } - - { offset: 0x1105FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP06updateF0_7contexty0F4TypeQz_AD0fG7ContextVyxGtFTW', symObjAddr: 0xCD0, symBinAddr: 0x10001AEC0, symSize: 0x10 } - - { offset: 0x110653, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI19NSViewRepresentableAadEP15makeCoordinator0I0QzyFTW', symObjAddr: 0xCF0, symBinAddr: 0x10001AEE0, symSize: 0xC0 } - - { offset: 0x1106BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV7SwiftUI4ViewAadEP14_viewListCount6inputsSiSgAD01_fhI6InputsV_tFZTW', symObjAddr: 0xEC0, symBinAddr: 0x10001B0B0, symSize: 0x10 } - - { offset: 0x110731, size: 0x8, addend: 0x0, symName: '_$sSo19NSRegularExpressionC7pattern7optionsABSS_So0aB7OptionsVtKcfcTO', symObjAddr: 0xF70, symBinAddr: 0x10001B120, symSize: 0xD0 } - - { offset: 0x1108CA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV9highlightyySo13NSTextStorageCFTf4nx_n', symObjAddr: 0x1040, symBinAddr: 0x10001B1F0, symSize: 0x2700 } - - { offset: 0x1111D8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10CodeEditorV10makeNSView7contextSo12NSScrollViewC7SwiftUI0E20RepresentableContextVyACG_tFTf4nx_n', symObjAddr: 0x3810, symBinAddr: 0x10001D9C0, symSize: 0x360 } - - { offset: 0x1113F4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwCP', symObjAddr: 0x0, symBinAddr: 0x10001E460, symSize: 0x150 } - - { offset: 0x111408, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwxx', symObjAddr: 0x150, symBinAddr: 0x10001E5B0, symSize: 0x90 } - - { offset: 0x11141C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwcp', symObjAddr: 0x1E0, symBinAddr: 0x10001E640, symSize: 0x120 } - - { offset: 0x111430, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwca', symObjAddr: 0x300, symBinAddr: 0x10001E760, symSize: 0x150 } - - { offset: 0x111444, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwtk', symObjAddr: 0x450, symBinAddr: 0x10001E8B0, symSize: 0xA0 } - - { offset: 0x111458, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwta', symObjAddr: 0x4F0, symBinAddr: 0x10001E950, symSize: 0x110 } - - { offset: 0x11146C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwet', symObjAddr: 0x600, symBinAddr: 0x10001EA60, symSize: 0x20 } - - { offset: 0x111480, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVwst', symObjAddr: 0x690, symBinAddr: 0x10001EAF0, symSize: 0x20 } - - { offset: 0x111494, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVMa', symObjAddr: 0x710, symBinAddr: 0x10001EB70, symSize: 0x30 } - - { offset: 0x1114A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVMr', symObjAddr: 0x740, symBinAddr: 0x10001EBA0, symSize: 0x80 } - - { offset: 0x1114BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x7C0, symBinAddr: 0x10001EC20, symSize: 0x20 } - - { offset: 0x1115FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVWOc', symObjAddr: 0x1AA0, symBinAddr: 0x10001FEB0, symSize: 0x30 } - - { offset: 0x11160F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewVWOb', symObjAddr: 0x1AE0, symBinAddr: 0x10001FEF0, symSize: 0x30 } - - { offset: 0x111623, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4TextVAA14_PaddingLayoutVGACyxq_GAA4ViewA2aJRzAA0H8ModifierR_rlWl', symObjAddr: 0x1C10, symBinAddr: 0x10001FFC0, symSize: 0x60 } - - { offset: 0x111637, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier10CodeEditorVAA14_PaddingLayoutVGACyxq_GAA4ViewA2aKRzAA0J8ModifierR_rlWl', symObjAddr: 0x1CC0, symBinAddr: 0x100020020, symSize: 0x70 } - - { offset: 0x11164B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4TextV7StorageOWOe', symObjAddr: 0x1D60, symBinAddr: 0x100020090, symSize: 0x20 } - - { offset: 0x11165F, size: 0x8, addend: 0x0, symName: '_$sS2SSysWl', symObjAddr: 0x1DD0, symBinAddr: 0x100020100, symSize: 0x30 } - - { offset: 0x111673, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV11saveContent33_4B3ABF61A162A81695F67A2F71DE639FLLyyFyyXEfU_TA', symObjAddr: 0x1E00, symBinAddr: 0x100020130, symSize: 0x10 } - - { offset: 0x111687, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_AUycfU_yyScMYccfU_TA', symObjAddr: 0x1EF0, symBinAddr: 0x100020220, symSize: 0x30 } - - { offset: 0x11169B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_AlAEAMyQrqd__AaNRd__lFQOyAS_AA0p9ProminentnL0VQo_G_AA6ZStackVyAA012_ConditionalD0VyACyArA14_PaddingLayoutVGACyAH10CodeEditorVA4_GGGtGGAA011_BackgroundL8ModifierVyAA5ColorVGGAA017_AppearanceActionY0VGACyxq_GAak2aKRzAA0gY0R_rlWl', symObjAddr: 0x1F60, symBinAddr: 0x100020260, symSize: 0x70 } - - { offset: 0x1116AF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_AlAEAMyQrqd__AaNRd__lFQOyAS_AA0p9ProminentnL0VQo_G_AA6ZStackVyAA012_ConditionalD0VyACyArA14_PaddingLayoutVGACyAH10CodeEditorVA4_GGGtGGAA011_BackgroundL8ModifierVyAA5ColorVGGACyxq_GAak2aKRzAA0gY0R_rlWl', symObjAddr: 0x1FD0, symBinAddr: 0x1000202D0, symSize: 0xA0 } - - { offset: 0x1119C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV7SwiftUI0D0AadEP05_makeD04view6inputsAD01_D7OutputsVAD11_GraphValueVyxG_AD01_D6InputsVtFZTW', symObjAddr: 0x19A0, symBinAddr: 0x10001FE00, symSize: 0x10 } - - { offset: 0x1119E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV7SwiftUI0D0AadEP05_makeD4List4view6inputsAD01_dH7OutputsVAD11_GraphValueVyxG_AD01_dH6InputsVtFZTW', symObjAddr: 0x19B0, symBinAddr: 0x10001FE10, symSize: 0x10 } - - { offset: 0x111B62, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg', symObjAddr: 0x7E0, symBinAddr: 0x10001EC40, symSize: 0x1B0 } - - { offset: 0x111C11, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_', symObjAddr: 0x990, symBinAddr: 0x10001EDF0, symSize: 0x3B0 } - - { offset: 0x111D07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_AUycfU_', symObjAddr: 0xD40, symBinAddr: 0x10001F1A0, symSize: 0x220 } - - { offset: 0x111D57, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_AUycfU_yyScMYccfU_', symObjAddr: 0xF60, symBinAddr: 0x10001F3C0, symSize: 0x50 } - - { offset: 0x111D97, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_AXycfU0_', symObjAddr: 0xFB0, symBinAddr: 0x10001F410, symSize: 0x1D0 } - - { offset: 0x111DE7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV4bodyQrvg7SwiftUI05TupleD0VyAA13UnifiedHeaderVyAE0D0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE0N0VyAE4TextVG_AE08BorderednL0VQo_AkEEALyQrqd__AeMRd__lFQOyAR_AE0p9ProminentnL0VQo_G_AE6ZStackVyAE19_ConditionalContentVyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo_AkEEA2_yQrA9_FQOyAA04CodeC0V_Qo_GGtGyXEfU_A15_yXEfU1_', symObjAddr: 0x1450, symBinAddr: 0x10001F8B0, symSize: 0x350 } - - { offset: 0x112046, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV11saveContent33_4B3ABF61A162A81695F67A2F71DE639FLLyyF', symObjAddr: 0x1180, symBinAddr: 0x10001F5E0, symSize: 0x2D0 } - - { offset: 0x112115, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV11loadContent33_4B3ABF61A162A81695F67A2F71DE639FLLyyF', symObjAddr: 0x17A0, symBinAddr: 0x10001FC00, symSize: 0x1B0 } - - { offset: 0x112151, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16ConfigEditorViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x19D0, symBinAddr: 0x10001FE20, symSize: 0x10 } - - { offset: 0x112294, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerC6sharedACvpZ', symObjAddr: 0x15DDB8, symBinAddr: 0x100137C38, symSize: 0x0 } - - { offset: 0x11259C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV18vpnPortalIpBindingSSvg', symObjAddr: 0x1C0, symBinAddr: 0x100020570, symSize: 0xF0 } - - { offset: 0x11262E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV20vpnPortalCidrBindingSSvg', symObjAddr: 0x2B0, symBinAddr: 0x100020660, symSize: 0xF0 } - - { offset: 0x11278F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerC6shared_WZ', symObjAddr: 0x690, symBinAddr: 0x100020A40, symSize: 0x40 } - - { offset: 0x1127FE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerCMa', symObjAddr: 0xD30, symBinAddr: 0x1000210E0, symSize: 0x20 } - - { offset: 0x11400A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV18vpnPortalIpBindingSSvpACTk', symObjAddr: 0x9810, symBinAddr: 0x100029B10, symSize: 0xC0 } - - { offset: 0x1140F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV20vpnPortalCidrBindingSSvpACTk', symObjAddr: 0x98D0, symBinAddr: 0x100029BD0, symSize: 0xA0 } - - { offset: 0x11485B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorCMa', symObjAddr: 0x254E0, symBinAddr: 0x100045780, symSize: 0x20 } - - { offset: 0x11486F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorCMa', symObjAddr: 0x26E80, symBinAddr: 0x100047070, symSize: 0x20 } - - { offset: 0x114883, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldCMa', symObjAddr: 0x275A0, symBinAddr: 0x100047730, symSize: 0x20 } - - { offset: 0x114897, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwcp', symObjAddr: 0x275F0, symBinAddr: 0x100047750, symSize: 0x50 } - - { offset: 0x1148AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwca', symObjAddr: 0x27640, symBinAddr: 0x1000477A0, symSize: 0x70 } - - { offset: 0x1148BF, size: 0x8, addend: 0x0, symName: ___swift_memcpy32_8, symObjAddr: 0x276B0, symBinAddr: 0x100047810, symSize: 0x20 } - - { offset: 0x1148D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwta', symObjAddr: 0x276D0, symBinAddr: 0x100047830, symSize: 0x50 } - - { offset: 0x1148E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwet', symObjAddr: 0x27720, symBinAddr: 0x100047880, symSize: 0x50 } - - { offset: 0x1148FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVwst', symObjAddr: 0x27770, symBinAddr: 0x1000478D0, symSize: 0x50 } - - { offset: 0x11490F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVMa', symObjAddr: 0x277C0, symBinAddr: 0x100047920, symSize: 0x10 } - - { offset: 0x114923, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwCP', symObjAddr: 0x277D0, symBinAddr: 0x100047930, symSize: 0x600 } - - { offset: 0x114937, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwxx', symObjAddr: 0x27E10, symBinAddr: 0x100047F30, symSize: 0x1F0 } - - { offset: 0x11494B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwcp', symObjAddr: 0x28000, symBinAddr: 0x100048120, symSize: 0x5E0 } - - { offset: 0x11495F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwca', symObjAddr: 0x285E0, symBinAddr: 0x100048700, symSize: 0x850 } - - { offset: 0x114973, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwtk', symObjAddr: 0x28E30, symBinAddr: 0x100048F50, symSize: 0x1D0 } - - { offset: 0x114987, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwta', symObjAddr: 0x29000, symBinAddr: 0x100049120, symSize: 0x770 } - - { offset: 0x11499B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwet', symObjAddr: 0x29770, symBinAddr: 0x100049890, symSize: 0x20 } - - { offset: 0x1149AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVwst', symObjAddr: 0x29830, symBinAddr: 0x100049950, symSize: 0x20 } - - { offset: 0x1149C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewVMr', symObjAddr: 0x29900, symBinAddr: 0x100049A20, symSize: 0xD0 } - - { offset: 0x1149D7, size: 0x8, addend: 0x0, symName: '_$s10Foundation3URLVSgMa', symObjAddr: 0x299D0, symBinAddr: 0x100049AF0, symSize: 0x50 } - - { offset: 0x1149EB, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5StateVy10Foundation3URLVSgGMa', symObjAddr: 0x29A20, symBinAddr: 0x100049B40, symSize: 0x50 } - - { offset: 0x1149FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwxx', symObjAddr: 0x29AF0, symBinAddr: 0x100049B90, symSize: 0x50 } - - { offset: 0x114A13, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwcp', symObjAddr: 0x29B40, symBinAddr: 0x100049BE0, symSize: 0xA0 } - - { offset: 0x114A27, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwca', symObjAddr: 0x29BE0, symBinAddr: 0x100049C80, symSize: 0xD0 } - - { offset: 0x114A3B, size: 0x8, addend: 0x0, symName: ___swift_memcpy64_8, symObjAddr: 0x29CB0, symBinAddr: 0x100049D50, symSize: 0x30 } - - { offset: 0x114A4F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwta', symObjAddr: 0x29CE0, symBinAddr: 0x100049D80, symSize: 0x80 } - - { offset: 0x114A63, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwet', symObjAddr: 0x29D60, symBinAddr: 0x100049E00, symSize: 0x50 } - - { offset: 0x114A77, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVwst', symObjAddr: 0x29DB0, symBinAddr: 0x100049E50, symSize: 0x50 } - - { offset: 0x114A8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVMa', symObjAddr: 0x29E00, symBinAddr: 0x100049EA0, symSize: 0x10 } - - { offset: 0x114A9F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwxx', symObjAddr: 0x29E10, symBinAddr: 0x100049EB0, symSize: 0xD0 } - - { offset: 0x114AB3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwcp', symObjAddr: 0x29EE0, symBinAddr: 0x100049F80, symSize: 0x2E0 } - - { offset: 0x114AC7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwca', symObjAddr: 0x2A1C0, symBinAddr: 0x10004A260, symSize: 0x430 } - - { offset: 0x114ADB, size: 0x8, addend: 0x0, symName: ___swift_memcpy311_8, symObjAddr: 0x2A5F0, symBinAddr: 0x10004A690, symSize: 0x10 } - - { offset: 0x114AEF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwta', symObjAddr: 0x2A600, symBinAddr: 0x10004A6A0, symSize: 0x390 } - - { offset: 0x114B03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwet', symObjAddr: 0x2A990, symBinAddr: 0x10004AA30, symSize: 0x50 } - - { offset: 0x114B17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVwst', symObjAddr: 0x2A9E0, symBinAddr: 0x10004AA80, symSize: 0xE0 } - - { offset: 0x114B2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVMa', symObjAddr: 0x2AAC0, symBinAddr: 0x10004AB60, symSize: 0x10 } - - { offset: 0x114B3F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAaF0D0PWb', symObjAddr: 0x2AAE0, symBinAddr: 0x10004AB70, symSize: 0x10 } - - { offset: 0x114B53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVAE7SwiftUI0D0AAWl', symObjAddr: 0x2AAF0, symBinAddr: 0x10004AB80, symSize: 0x30 } - - { offset: 0x114B67, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x2AB20, symBinAddr: 0x10004ABB0, symSize: 0x20 } - - { offset: 0x114B7B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAaF0D0PWb', symObjAddr: 0x2AB80, symBinAddr: 0x10004ABE0, symSize: 0x10 } - - { offset: 0x114B8F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVAE7SwiftUI0D0AAWl', symObjAddr: 0x2AB90, symBinAddr: 0x10004ABF0, symSize: 0x30 } - - { offset: 0x114BFB, size: 0x8, addend: 0x0, symName: '_$sSlsE5split9maxSplits25omittingEmptySubsequences14whereSeparatorSay11SubSequenceQzGSi_S2b7ElementQzKXEtKFSS_Tg5', symObjAddr: 0x2AC00, symBinAddr: 0x10004AC20, symSize: 0x4F0 } - - { offset: 0x114FB8, size: 0x8, addend: 0x0, symName: '_$sSlsE5split9maxSplits25omittingEmptySubsequences14whereSeparatorSay11SubSequenceQzGSi_S2b7ElementQzKXEtKFSs_Tg5', symObjAddr: 0x2B0F0, symBinAddr: 0x10004B110, symSize: 0x4F0 } - - { offset: 0x11538B, size: 0x8, addend: 0x0, symName: '_$ss13_parseInteger5ascii5radixq_Sgx_SitSyRzs010FixedWidthB0R_r0_lFSs_SiTg5', symObjAddr: 0x2B5E0, symBinAddr: 0x10004B600, symSize: 0x130 } - - { offset: 0x1153CF, size: 0x8, addend: 0x0, symName: '_$ss13_parseInteger5ascii5radixq_Sgx_SitSyRzs010FixedWidthB0R_r0_lFSS_SiTg5', symObjAddr: 0x2B710, symBinAddr: 0x10004B730, symSize: 0x120 } - - { offset: 0x115401, size: 0x8, addend: 0x0, symName: '_$sSS8_copyingyS2SFZ', symObjAddr: 0x2BAA0, symBinAddr: 0x10004BAC0, symSize: 0x50 } - - { offset: 0x115419, size: 0x8, addend: 0x0, symName: '_$sSlsEy11SubSequenceQzqd__cSXRd__5BoundQyd__5IndexRtzluigSS_s16PartialRangeFromVySSAEVGTgq5', symObjAddr: 0x2BAF0, symBinAddr: 0x10004BB10, symSize: 0x70 } - - { offset: 0x115463, size: 0x8, addend: 0x0, symName: '_$sSS8_copyingySSSsFZ', symObjAddr: 0x2BB60, symBinAddr: 0x10004BB80, symSize: 0x160 } - - { offset: 0x1154BD, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV19_uninitializedCount15minimumCapacityAByxGSi_SitcfCs5UInt8V_Tt1gq5', symObjAddr: 0x2BCC0, symBinAddr: 0x10004BCE0, symSize: 0x70 } - - { offset: 0x115500, size: 0x8, addend: 0x0, symName: '_$sSTsE21_copySequenceContents12initializing8IteratorQz_SitSry7ElementQzG_tFSs8UTF8ViewV_Tgq5', symObjAddr: 0x2BD30, symBinAddr: 0x10004BD50, symSize: 0x2E0 } - - { offset: 0x115576, size: 0x8, addend: 0x0, symName: '_$ss11_StringGutsV27_slowEnsureMatchingEncodingySS5IndexVAEF', symObjAddr: 0x2C010, symBinAddr: 0x10004C030, symSize: 0xB0 } - - { offset: 0x1155AF, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_insert2at3key5valueys10_HashTableV6BucketV_xnq_ntF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0x2C0C0, symBinAddr: 0x10004C0E0, symSize: 0xB0 } - - { offset: 0x115644, size: 0x8, addend: 0x0, symName: '_$sSD8_VariantV11removeValue6forKeyq_Sgx_tF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0x2C170, symBinAddr: 0x10004C190, symSize: 0x120 } - - { offset: 0x1156E5, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV8setValue_6forKey8isUniqueyq_n_xSbtF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0x2C290, symBinAddr: 0x10004C2B0, symSize: 0x140 } - - { offset: 0x11572B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV22multilineTextAlignmentAA0fG0OvpACTKq', symObjAddr: 0x2C3D0, symBinAddr: 0x10004C3F0, symSize: 0x20 } - - { offset: 0x11573F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV22multilineTextAlignmentAA0fG0OvpACTkq', symObjAddr: 0x2C3F0, symBinAddr: 0x10004C410, symSize: 0x20 } - - { offset: 0x115753, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesVAAE15textContentTypeSSSgvpACTKq', symObjAddr: 0x2C410, symBinAddr: 0x10004C430, symSize: 0x20 } - - { offset: 0x115767, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesVAAE15textContentTypeSSSgvpACTkq', symObjAddr: 0x2C430, symBinAddr: 0x10004C450, symSize: 0x40 } - - { offset: 0x11577B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV9lineLimitSiSgvpACTKq', symObjAddr: 0x2C470, symBinAddr: 0x10004C490, symSize: 0x20 } - - { offset: 0x11578F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV9lineLimitSiSgvpACTkq', symObjAddr: 0x2C490, symBinAddr: 0x10004C4B0, symSize: 0x30 } - - { offset: 0x1157A3, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV14truncationModeAA4TextV010TruncationF0OvpACTKq', symObjAddr: 0x2C4C0, symBinAddr: 0x10004C4E0, symSize: 0x20 } - - { offset: 0x1157B7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV14truncationModeAA4TextV010TruncationF0OvpACTkq', symObjAddr: 0x2C4E0, symBinAddr: 0x10004C500, symSize: 0x60 } - - { offset: 0x1157CF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV15foregroundColorAA0F0VSgvpACTKq', symObjAddr: 0x2C540, symBinAddr: 0x10004C560, symSize: 0x20 } - - { offset: 0x1157E3, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV15foregroundColorAA0F0VSgvpACTkq', symObjAddr: 0x2C560, symBinAddr: 0x10004C580, symSize: 0x30 } - - { offset: 0x1157F7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV4fontAA4FontVSgvpACTKq', symObjAddr: 0x2C590, symBinAddr: 0x10004C5B0, symSize: 0x20 } - - { offset: 0x11580B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV4fontAA4FontVSgvpACTkq', symObjAddr: 0x2C5B0, symBinAddr: 0x10004C5D0, symSize: 0x30 } - - { offset: 0x11581F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV9isEnabledSbvpACTKq', symObjAddr: 0x2C5E0, symBinAddr: 0x10004C600, symSize: 0x20 } - - { offset: 0x115833, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV9isEnabledSbvpACTkq', symObjAddr: 0x2C600, symBinAddr: 0x10004C620, symSize: 0x20 } - - { offset: 0x115847, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4ViewPAAE8disabledyQrSbFySbzcfU_', symObjAddr: 0x2C620, symBinAddr: 0x10004C640, symSize: 0x20 } - - { offset: 0x11585B, size: 0x8, addend: 0x0, symName: '_$sSS8UTF8ViewV32withContiguousStorageIfAvailableyxSgxSRys5UInt8VGKXEKlFSiSg_Tg5', symObjAddr: 0x2C640, symBinAddr: 0x10004C660, symSize: 0xF0 } - - { offset: 0x1158C4, size: 0x8, addend: 0x0, symName: '_$sSTsE8contains5whereS2b7ElementQzKXE_tKFSS_Tg5', symObjAddr: 0x2C730, symBinAddr: 0x10004C750, symSize: 0xE0 } - - { offset: 0x115915, size: 0x8, addend: 0x0, symName: '_$sSlsSQ7ElementRpzrlE5split9separator9maxSplits25omittingEmptySubsequencesSay11SubSequenceQzGAB_SiSbtFSbABXEfU_SS_TG5', symObjAddr: 0x2C810, symBinAddr: 0x10004C830, symSize: 0x50 } - - { offset: 0x11598A, size: 0x8, addend: 0x0, symName: '_$sSa17_customRemoveLastxSgyF8Swiftier19EasyTierConfigModelV11ProxySubnetV_Tg5', symObjAddr: 0x2C860, symBinAddr: 0x10004C880, symSize: 0xB0 } - - { offset: 0x115A3B, size: 0x8, addend: 0x0, symName: '_$ss17FixedWidthIntegerPsE_5radixxSgqd___SitcSyRd__lufcADSRys5UInt8VGXEfU_Si_SsTG5', symObjAddr: 0x2C910, symBinAddr: 0x10004C930, symSize: 0x280 } - - { offset: 0x115B72, size: 0x8, addend: 0x0, symName: '_$ss5SliceV32withContiguousStorageIfAvailableyqd__Sgqd__SRy7ElementQzGKXEKlFqd__AGKXEfU_SS8UTF8ViewV_SiSgTG5', symObjAddr: 0x2CB90, symBinAddr: 0x10004CBB0, symSize: 0x40 } - - { offset: 0x115BBB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldVAE7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x2E480, symBinAddr: 0x10004E4A0, symSize: 0x30 } - - { offset: 0x115BCF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgy10Foundation3URLVSgcfU1_TA', symObjAddr: 0x2E720, symBinAddr: 0x10004E740, symSize: 0x40 } - - { offset: 0x115C02, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgySbcfU2_TA', symObjAddr: 0x2E760, symBinAddr: 0x10004E780, symSize: 0x40 } - - { offset: 0x115C2E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgyAA08EasyTierB5ModelVcfU3_TA', symObjAddr: 0x2E7A0, symBinAddr: 0x10004E7C0, symSize: 0x40 } - - { offset: 0x115C42, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVWOc', symObjAddr: 0x2E7E0, symBinAddr: 0x10004E800, symSize: 0x30 } - - { offset: 0x115C56, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVWOd', symObjAddr: 0x2E810, symBinAddr: 0x10004E830, symSize: 0x30 } - - { offset: 0x115C6A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVWOh', symObjAddr: 0x2E840, symBinAddr: 0x10004E860, symSize: 0x20 } - - { offset: 0x115C7E, size: 0x8, addend: 0x0, symName: '_$sS2sSysWl', symObjAddr: 0x2E920, symBinAddr: 0x10004E910, symSize: 0x30 } - - { offset: 0x115C92, size: 0x8, addend: 0x0, symName: '_$ss17FixedWidthIntegerPsE_5radixxSgqd___SitcSyRd__lufcADSRys5UInt8VGXEfU_Si_SsTG5TA', symObjAddr: 0x2E9B0, symBinAddr: 0x10004E9A0, symSize: 0x10 } - - { offset: 0x115CA6, size: 0x8, addend: 0x0, symName: '_$ss5SliceV32withContiguousStorageIfAvailableyqd__Sgqd__SRy7ElementQzGKXEKlFqd__AGKXEfU_SS8UTF8ViewV_SiSgTG5TA', symObjAddr: 0x2E9C0, symBinAddr: 0x10004E9B0, symSize: 0x20 } - - { offset: 0x115CBA, size: 0x8, addend: 0x0, symName: '_$sS2sSTsWl', symObjAddr: 0x2E9E0, symBinAddr: 0x10004E9D0, symSize: 0x30 } - - { offset: 0x115CE4, size: 0x8, addend: 0x0, symName: '_$ss5SliceV32withContiguousStorageIfAvailableyqd__Sgqd__SRy7ElementQzGKXEKlFqd__AGKXEfU_SS8UTF8ViewV_SiSgTg5Tf4xnn_n', symObjAddr: 0x2F150, symBinAddr: 0x10004F140, symSize: 0x260 } - - { offset: 0x115D79, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_ACyAA08ModifiedD0VyAlAEAMyQrqd__AaNRd__lFQOyAS_AA0p9ProminentnL0VQo_AA32_EnvironmentKeyTransformModifierVySbGGAXyAvA07_HiddenV0VGGG_AlAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAlAE04formL0yQrqd__AA04FormL0Rd__lFQOyAA4FormVyAGyAA7SectionVyArGyAA6HStackVyAGyAR_AlAE21disableAutocorrectionyQrSbSgFQOyAXyAlAE06labelsW0QryFQOyAlAE09textFieldL0yQrqd__AA0o5FieldL0Rd__lFQOyAXyAA0O5FieldVyARGAA01_st7WritingV0VyAA0O9AlignmentOGG_AA05Plaino5FieldL0VQo__Qo_A29_ySSSgGG_Qo_tGG_A19_yAGyAXyArA16_FixedSizeLayoutVG_AA6SpacerVAlAE10monospacedyQrSbFQOyAXyAXyARA29_ySiSgGGA29_yAR14TruncationModeOGG_Qo_AlAE4helpyQrAA015LocalizedStringT0VFQOyAlAEAMyQrqd__AaNRd__lFQOyAPyAA5ImageVG_AA05PlainnL0VQo__Qo_tGGA19_yAGyAR_A48_AXyAlAEA22_QryFQOyAlAEA23_yQrqd__AAA24_Rd__lFQOyAXyA33_AA12_FrameLayoutVG_A35_Qo__Qo_A39_GtGGtGAA05EmptyG0VG_A17_yArGyAA6ToggleVyARG_AGyAA7ForEachVySnySiGSiA19_yAGyAR_A48_AXyAH015ConfigGeneratorG0V9IPv4FieldVA45_GAlAEAMyQrqd__AaNRd__lFQOyAPyAXyA62_A29_yAA5ColorVSgGGG_A65_Qo_tGGG_AlAEAMyQrqd__AaNRd__lFQOyAPyAXyA19_yAGyA62__ARtGGA96_GG_A65_Qo_tGSgtGARGA17_yArGyA86_yAA7BindingVySayAH19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA19_yAGyAR_A48_AXyA89_13IPv4CidrFieldVA45_GA99_tGGG_A107_tGA80_GA17_yArGyA84__AGyA19_yAGyAR_A48_A125_tGG_A19_yAGyAR_A48_AXyAlAEA22_QryFQOyA72__Qo_A39_GtGGtGSgtGA80_GA17_yArGyA86_yA87_SiA19_yAGyAlAEA20_yQrA21_FQOyAXyAlAEA22_QryFQOyAlAEA23_yQrqd__AAA24_Rd__lFQOyA27__A35_Qo__Qo_A39_G_Qo__A48_A99_tGGG_A107_tGA80_GA17_yArGyA84__AA5GroupVyAGyA147__AlAEAMyQrqd__AaNRd__lFQOyAPyAXyAA5LabelVyARA62_GA96_GG_A65_Qo_tGGSgtGARGA17_yArGyA84__AGyA86_yA87_SiA127_G_A107_tGSgtGARGA17_yArGyA84__A19_yAGyAR_A48_AXyA72_A39_GtGGSgtGARGA17_yARA108_ARGA17_yARA159_ARGA17_yArGyAXyAEyAGyA84__A46_tGGAA14_PaddingLayoutVG_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_A180_tGA80_GtGG_AA011GroupedFormL0VQo__Qo_tGGAEyAGyA8__AlAEA9_yQrA11_FQOyAlAEA12_yQrqd__AAA13_Rd__lFQOyA15_yAGyA86_yA113_ySayAH15PortForwardRuleVGGA122_A17_yA19_yAGyA48__AlAEAMyQrqd__AaNRd__lFQOyAXyAXyASA29_yAA4FontVSgGGA96_G_A65_Qo_tGGAXyAEyAGyA19_yAGyAR_A48_AXyAlAE06pickerL0yQrqd__AA06PickerL0Rd__lFQOyAA6PickerVyARSSAGyAlAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAR_SSQo__A210_tGG_AA015SegmentedPickerL0VQo_A71_GtGG_AA7DividerVAlAEA22_QryFQOyAlAEA23_yQrqd__AAA24_Rd__lFQOyA19_yAGyAR_A48_A92_ArXyA27_A71_GtGG_A35_Qo__Qo_A19_yAGyA48__AXyAXyA62_A198_GA96_GARA48_tGGA225_tGGA179_GA80_GG_A17_yA80_A107_A80_GtGG_A186_Qo__Qo_tGGGACyxq_GAak2aKRzAaKR_rlWl', symObjAddr: 0x2F3B0, symBinAddr: 0x10004F3A0, symSize: 0xB0 } - - { offset: 0x115D8D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_TA', symObjAddr: 0x2F490, symBinAddr: 0x10004F480, symSize: 0x10 } - - { offset: 0x115DA1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_TA', symObjAddr: 0x2F4D0, symBinAddr: 0x10004F490, symSize: 0x10 } - - { offset: 0x115DB5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_TA', symObjAddr: 0x2F4E0, symBinAddr: 0x10004F4A0, symSize: 0x10 } - - { offset: 0x115DC9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_TA', symObjAddr: 0x2F4F0, symBinAddr: 0x10004F4B0, symSize: 0x10 } - - { offset: 0x115DDD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A137_yXEfU2_TA', symObjAddr: 0x2F500, symBinAddr: 0x10004F4C0, symSize: 0x10 } - - { offset: 0x115DF1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_TA', symObjAddr: 0x2F510, symBinAddr: 0x10004F4D0, symSize: 0x10 } - - { offset: 0x115E05, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A155_yXEfU4_TA', symObjAddr: 0x2F520, symBinAddr: 0x10004F4E0, symSize: 0x10 } - - { offset: 0x115E19, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_TA', symObjAddr: 0x2F530, symBinAddr: 0x10004F4F0, symSize: 0x10 } - - { offset: 0x115E2D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A166_yXEfU6_TA', symObjAddr: 0x2F540, symBinAddr: 0x10004F500, symSize: 0x10 } - - { offset: 0x115E41, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_TA', symObjAddr: 0x2F550, symBinAddr: 0x10004F510, symSize: 0x10 } - - { offset: 0x115E55, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A153_yXEfU8_TA', symObjAddr: 0x2F560, symBinAddr: 0x10004F520, symSize: 0x10 } - - { offset: 0x115E69, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5GroupVyAA9TupleViewVyAA7ForEachVySnySiGSiAA6HStackVyAEyAA0E0PAAE21disableAutocorrectionyQrSbSgFQOyAA15ModifiedContentVyAlAE12labelsHiddenQryFQOyAlAE14textFieldStyleyQrqd__AA04TextpQ0Rd__lFQOyAA0rP0VyAA0R0VG_AA05PlainrpQ0VQo__Qo_AA30_EnvironmentKeyWritingModifierVySSSgGG_Qo__AA6SpacerVAlAE06buttonQ0yQrqd__AA015PrimitiveButtonQ0Rd__lFQOyAA6ButtonVyAPyAA5ImageVA2_yAA5ColorVSgGGG_AA0s6ButtonQ0VQo_tGGG_AlAEA9_yQrqd__AAA10_Rd__lFQOyA12_yAPyAA5LabelVyAWA14_GA18_GG_A22_Qo_tGGACyxGAak2aKRzlWl', symObjAddr: 0x2F570, symBinAddr: 0x10004F530, symSize: 0x70 } - - { offset: 0x115E7D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_TA', symObjAddr: 0x2F5E0, symBinAddr: 0x10004F5A0, symSize: 0x10 } - - { offset: 0x115E91, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_TA', symObjAddr: 0x2F9C0, symBinAddr: 0x10004F940, symSize: 0x20 } - - { offset: 0x115EA5, size: 0x8, addend: 0x0, symName: '_$sSnySiGSnyxGSksSxRzSZ6StrideRpzrlWl', symObjAddr: 0x2F9E0, symBinAddr: 0x10004F960, symSize: 0x70 } - - { offset: 0x115EB9, size: 0x8, addend: 0x0, symName: '_$sS2iSZsWl', symObjAddr: 0x2FA50, symBinAddr: 0x10004F9D0, symSize: 0x30 } - - { offset: 0x115ECD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_yyScMYccfU0_TA', symObjAddr: 0x2FA90, symBinAddr: 0x10004FA10, symSize: 0x20 } - - { offset: 0x115EE1, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5LabelVyAA4TextVAA5ImageVGAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGACyxq_GAA4ViewA2aSRzAA0mK0R_rlWl', symObjAddr: 0x2FAB0, symBinAddr: 0x10004FA30, symSize: 0xA0 } - - { offset: 0x115F0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_SSyYbcfU_TA', symObjAddr: 0x2FBB0, symBinAddr: 0x10004FB30, symSize: 0x30 } - - { offset: 0x115F1F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_ySSYbcfU0_TA', symObjAddr: 0x2FC20, symBinAddr: 0x10004FBA0, symSize: 0x30 } - - { offset: 0x115F49, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE12labelsHiddenQryFQOyAeAE14textFieldStyleyQrqd__AA04TextiJ0Rd__lFQOyAA0kI0VyAA0K0VG_AA05PlainkiJ0VQo__Qo_AA30_EnvironmentKeyWritingModifierVySSSgGGACyxq_GAad2aDRzAA0eP0R_rlWl', symObjAddr: 0x2FCB0, symBinAddr: 0x10004FC30, symSize: 0x150 } - - { offset: 0x115F5D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_yyScMYccfU1_TA', symObjAddr: 0x2FE50, symBinAddr: 0x10004FDD0, symSize: 0x20 } - - { offset: 0x115F71, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGACyxq_GAA4ViewA2aNRzAA0kI0R_rlWl', symObjAddr: 0x2FE70, symBinAddr: 0x10004FDF0, symSize: 0x80 } - - { offset: 0x115F85, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyAA5ImageV_AA4TextVtGGAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGACyxq_GAA0G0A2aVRzAA0gM0R_rlWl', symObjAddr: 0x2FF30, symBinAddr: 0x10004FEB0, symSize: 0xA0 } - - { offset: 0x115F99, size: 0x8, addend: 0x0, symName: '_$sS2iSzsWl', symObjAddr: 0x302B0, symBinAddr: 0x100050230, symSize: 0x30 } - - { offset: 0x115FC3, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA9TextFieldVyAA0E0VGAA30_EnvironmentKeyWritingModifierVyAA0E9AlignmentOGGAA12_FrameLayoutVGACyxq_GAA4ViewA2aSRzAA0nJ0R_rlWl', symObjAddr: 0x30860, symBinAddr: 0x1000507E0, symSize: 0x70 } - - { offset: 0x115FD7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA9TextFieldVyAA0E0VGAA30_EnvironmentKeyWritingModifierVyAA0E9AlignmentOGGACyxq_GAA4ViewA2aPRzAA0lJ0R_rlWl', symObjAddr: 0x308D0, symBinAddr: 0x100050850, symSize: 0xA0 } - - { offset: 0x115FEB, size: 0x8, addend: 0x0, symName: '_$sSSWOh', symObjAddr: 0x309D0, symBinAddr: 0x100050950, symSize: 0x30 } - - { offset: 0x115FFF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVySay8Swiftier19EasyTierConfigModelV11ProxySubnetVGGACyxGSkAASMRzSkRzlWl', symObjAddr: 0x30A20, symBinAddr: 0x1000509A0, symSize: 0xB0 } - - { offset: 0x116013, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVy8Swiftier19EasyTierConfigModelV11ProxySubnetVGACyxGs12IdentifiableAAsAKRzlWl', symObjAddr: 0x30AD0, symBinAddr: 0x100050A50, symSize: 0x70 } - - { offset: 0x116027, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_TA', symObjAddr: 0x31030, symBinAddr: 0x100050FB0, symSize: 0x40 } - - { offset: 0x11603B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_A44_yYbcfU_TA', symObjAddr: 0x31360, symBinAddr: 0x1000512E0, symSize: 0x40 } - - { offset: 0x11604F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_yA44_YbcfU0_TA', symObjAddr: 0x313A0, symBinAddr: 0x100051320, symSize: 0x40 } - - { offset: 0x116084, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGyAE14TruncationModeOGGACyxq_GAA4ViewA2aPRzAA0lI0R_rlWl', symObjAddr: 0x31460, symBinAddr: 0x1000513E0, symSize: 0x90 } - - { offset: 0x116098, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGACyxq_GAA4ViewA2aLRzAA0jI0R_rlWl', symObjAddr: 0x314F0, symBinAddr: 0x100051470, symSize: 0x80 } - - { offset: 0x1160AC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE12labelsHiddenQryFQOyAeAE14textFieldStyleyQrqd__AA04TextiJ0Rd__lFQOyACyAA0kI0VyAA0K0VGAA30_EnvironmentKeyWritingModifierVyAA0K9AlignmentOGG_AA05PlainkiJ0VQo__Qo_AOySSSgGGACyxq_GAad2aDRzAA0eO0R_rlWl', symObjAddr: 0x31590, symBinAddr: 0x100051510, symSize: 0x130 } - - { offset: 0x1160C0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE11buttonStyleyQrqd__AA015PrimitiveButtonG0Rd__lFQOyAA0I0VyAA4TextVG_AA017BorderedProminentiG0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyxq_GAad2aDRzAA0eP0R_rlWl', symObjAddr: 0x316C0, symBinAddr: 0x100051640, symSize: 0x120 } - - { offset: 0x1160D4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE11buttonStyleyQrqd__AA015PrimitiveButtonG0Rd__lFQOyAA0I0VyAA4TextVG_AA08BorderediG0VQo_AA15_HiddenModifierVGACyxq_GAad2aDRzAA0eM0R_rlWl', symObjAddr: 0x317E0, symBinAddr: 0x100051760, symSize: 0x100 } - - { offset: 0x1160E8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15_HiddenModifierVAcA04ViewD0AAWl', symObjAddr: 0x318E0, symBinAddr: 0x100051860, symSize: 0x30 } - - { offset: 0x1160FC, size: 0x8, addend: 0x0, symName: '_$sIeg_SgWOy', symObjAddr: 0x31910, symBinAddr: 0x100051890, symSize: 0x20 } - - { offset: 0x116110, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI18LocalizedStringKeyVSgWOy', symObjAddr: 0x31930, symBinAddr: 0x1000518B0, symSize: 0x30 } - - { offset: 0x116145, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4ViewPAAE8disabledyQrSbFySbzcfU_TA', symObjAddr: 0x319C0, symBinAddr: 0x100051940, symSize: 0x20 } - - { offset: 0x11616E, size: 0x8, addend: 0x0, symName: '_$sIeg_SgWOe', symObjAddr: 0x319E0, symBinAddr: 0x100051960, symSize: 0x20 } - - { offset: 0x116182, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_TA', symObjAddr: 0x31D70, symBinAddr: 0x100051CF0, symSize: 0x10 } - - { offset: 0x116196, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVySay8Swiftier15PortForwardRuleVGGACyxGSkAASMRzSkRzlWl', symObjAddr: 0x31DF0, symBinAddr: 0x100051D70, symSize: 0xB0 } - - { offset: 0x1161AA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7SectionVyAA6HStackVyAA9TupleViewVyAA6SpacerV_AA0F0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonI0Rd__lFQOyAA15ModifiedContentVyAOyAA0K0VyAA4TextVGAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAVyAA5ColorVSgGG_AA05PlainkI0VQo_tGGAOyAA6VStackVyAGyAEyAGyAS_AiOyAkAE06pickerI0yQrqd__AA06PickerI0Rd__lFQOyAA0X0VyASSSAGyAkAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAS_SSQo__A18_tGG_AA09SegmentedxI0VQo_AA12_FrameLayoutVGtGG_AA7DividerVAkAE12labelsHiddenQryFQOyAkAE09textFieldI0yQrqd__AA0n5FieldI0Rd__lFQOyAEyAGyAS_AiOy8Swiftier015ConfigGeneratorF0V9IPv4FieldVAA16_FixedSizeLayoutVGAsOyAA0N5FieldVyASGA25_GtGG_AA0un5FieldI0VQo__Qo_AEyAGyAI_AOyAOyAA5ImageVAZGA3_GAsItGGA51_tGGAA14_PaddingLayoutVGAA05EmptyF0VGACyxq_q0_GAaj2aJRzAaJR_AaJR0_rlWl', symObjAddr: 0x31EA0, symBinAddr: 0x100051E20, symSize: 0x90 } - - { offset: 0x1161BE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyAA4TextV_AA6SpacerVACyAA0G0PAAE11pickerStyleyQrqd__AA06PickerL0Rd__lFQOyAA0M0VyAKSSAGyAoAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAK_SSQo__AVtGG_AA09SegmentedmL0VQo_AA12_FrameLayoutVGtGG_AA7DividerVAoAE12labelsHiddenQryFQOyAoAE09textFieldL0yQrqd__AA0ixL0Rd__lFQOyAIyAGyAK_AmCy8Swiftier015ConfigGeneratorG0V04IPv4X0VAA010_FixedSizeS0VGAkCyAA0iX0VyAKGA1_GtGG_AA05PlainixL0VQo__Qo_AIyAGyAM_ACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA31_yAA5ColorVSgGGAkMtGGA27_tGGAA08_PaddingS0VGACyxq_GAan2aNRzAA0G8ModifierR_rlWl', symObjAddr: 0x31F30, symBinAddr: 0x100051EB0, symSize: 0x80 } - - { offset: 0x1161D2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVy8Swiftier15PortForwardRuleVGACyxGs12IdentifiableAAsAIRzlWl', symObjAddr: 0x31FB0, symBinAddr: 0x100051F30, symSize: 0x70 } - - { offset: 0x1161E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A112_yXEfU0_TA', symObjAddr: 0x32020, symBinAddr: 0x100051FA0, symSize: 0x10 } - - { offset: 0x1161FA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_TA', symObjAddr: 0x32050, symBinAddr: 0x100051FD0, symSize: 0x10 } - - { offset: 0x116224, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6ButtonVyAA4TextVGAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAJyAA5ColorVSgGGACyxq_GAA4ViewA2aVRzAA0mJ0R_rlWl', symObjAddr: 0x32480, symBinAddr: 0x100052400, symSize: 0x90 } - - { offset: 0x116238, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ButtonVyAA4TextVGAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGACyxq_GAA4ViewA2aQRzAA0lJ0R_rlWl', symObjAddr: 0x32510, symBinAddr: 0x100052490, symSize: 0xA0 } - - { offset: 0x11624C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_yycfU0_TA', symObjAddr: 0x325D0, symBinAddr: 0x100052550, symSize: 0x30 } - - { offset: 0x11627F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_TA', symObjAddr: 0x32740, symBinAddr: 0x1000526C0, symSize: 0x10 } - - { offset: 0x116293, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A23_yXEfU_TA', symObjAddr: 0x32750, symBinAddr: 0x1000526D0, symSize: 0x10 } - - { offset: 0x1162A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_TA', symObjAddr: 0x32760, symBinAddr: 0x1000526E0, symSize: 0x10 } - - { offset: 0x1162BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A140_yXEfU1_TA', symObjAddr: 0x32770, symBinAddr: 0x1000526F0, symSize: 0x10 } - - { offset: 0x1162CF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyAA4TextV_AA6SpacerVACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGAOyAA4FontVSgGGtGGAA01_d5ShapeN0VyAA9RectangleVGGACyxq_GAA0G0A2AA7_RzAA0gN0R_rlWl', symObjAddr: 0x32790, symBinAddr: 0x100052710, symSize: 0xA0 } - - { offset: 0x1162E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOACSHAAWl', symObjAddr: 0x32870, symBinAddr: 0x1000527F0, symSize: 0x30 } - - { offset: 0x1162F7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySay8Swiftier8PeerModeOGSSAA4ViewPAAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAA4TextV_AFQo_GACyxq_q0_GAah2aHR0_rlWl', symObjAddr: 0x328A0, symBinAddr: 0x100052820, symSize: 0x90 } - - { offset: 0x11630B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOACs12IdentifiableAAWl', symObjAddr: 0x32AD0, symBinAddr: 0x100052A20, symSize: 0x30 } - - { offset: 0x11631F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA4ViewPAAE12labelsHiddenQryFQOyACyAA9TextFieldVyAA0H0VGAA30_EnvironmentKeyWritingModifierVyAA0H9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGAMySSSgGGACyxq_GAad2aDRzAA0eM0R_rlWl', symObjAddr: 0x32B30, symBinAddr: 0x100052A50, symSize: 0x90 } - - { offset: 0x116333, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE12labelsHiddenQryFQOyACyAA9TextFieldVyAA0H0VGAA30_EnvironmentKeyWritingModifierVyAA0H9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGACyxq_GAad2aDRzAA0eM0R_rlWl', symObjAddr: 0x32BC0, symBinAddr: 0x100052AE0, symSize: 0xA0 } - - { offset: 0x116347, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI6HStackVyAA9TupleViewVyAA4TextV_AA6SpacerVAA15ModifiedContentVy8Swiftier015ConfigGeneratorE0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgWOi0_', symObjAddr: 0x32CA0, symBinAddr: 0x100052B80, symSize: 0x30 } - - { offset: 0x11635B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVWOc', symObjAddr: 0x32CE0, symBinAddr: 0x100052BB0, symSize: 0x30 } - - { offset: 0x11636F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldVAE7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x32D10, symBinAddr: 0x100052BE0, symSize: 0x30 } - - { offset: 0x116383, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV22OctetTextFieldDelegate_pSgXwWOh', symObjAddr: 0x32D40, symBinAddr: 0x100052C10, symSize: 0x20 } - - { offset: 0x116397, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_TA', symObjAddr: 0x32D90, symBinAddr: 0x100052C60, symSize: 0x90 } - - { offset: 0x1163AB, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tgq5TA', symObjAddr: 0x32E70, symBinAddr: 0x100052D10, symSize: 0x80 } - - { offset: 0x1163BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorC11syncToModelyyFyyScMYccfU_TA', symObjAddr: 0x32F60, symBinAddr: 0x100052E00, symSize: 0x20 } - - { offset: 0x116417, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x32F80, symBinAddr: 0x100052E20, symSize: 0x20 } - - { offset: 0x11642B, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x32FA0, symBinAddr: 0x100052E40, symSize: 0x10 } - - { offset: 0x11643F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC11syncToModelyyFyyScMYccfU_TA', symObjAddr: 0x33160, symBinAddr: 0x100052E50, symSize: 0x20 } - - { offset: 0x116497, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVSgWOi0_', symObjAddr: 0x33310, symBinAddr: 0x100052EC0, symSize: 0x10 } - - { offset: 0x1164AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12ConfigScreenOMa', symObjAddr: 0x334E0, symBinAddr: 0x100052F20, symSize: 0x10 } - - { offset: 0x1164BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwCP', symObjAddr: 0x334F0, symBinAddr: 0x100052F30, symSize: 0x80 } - - { offset: 0x1164D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwxx', symObjAddr: 0x33570, symBinAddr: 0x100052FB0, symSize: 0x40 } - - { offset: 0x1164E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwcp', symObjAddr: 0x335B0, symBinAddr: 0x100052FF0, symSize: 0x60 } - - { offset: 0x1164FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwca', symObjAddr: 0x33610, symBinAddr: 0x100053050, symSize: 0x60 } - - { offset: 0x11650F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwtk', symObjAddr: 0x33670, symBinAddr: 0x1000530B0, symSize: 0x50 } - - { offset: 0x116523, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwta', symObjAddr: 0x336C0, symBinAddr: 0x100053100, symSize: 0x60 } - - { offset: 0x116537, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwet', symObjAddr: 0x33720, symBinAddr: 0x100053160, symSize: 0x20 } - - { offset: 0x11654B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVwst', symObjAddr: 0x33750, symBinAddr: 0x100053190, symSize: 0x20 } - - { offset: 0x11655F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVMr', symObjAddr: 0x33780, symBinAddr: 0x1000531C0, symSize: 0x60 } - - { offset: 0x116573, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwCP', symObjAddr: 0x337E0, symBinAddr: 0x100053220, symSize: 0x110 } - - { offset: 0x116587, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwxx', symObjAddr: 0x338F0, symBinAddr: 0x100053330, symSize: 0x70 } - - { offset: 0x11659B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwcp', symObjAddr: 0x33960, symBinAddr: 0x1000533A0, symSize: 0xE0 } - - { offset: 0x1165AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwca', symObjAddr: 0x33A40, symBinAddr: 0x100053480, symSize: 0x100 } - - { offset: 0x1165C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwtk', symObjAddr: 0x33B40, symBinAddr: 0x100053580, symSize: 0x80 } - - { offset: 0x1165D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwta', symObjAddr: 0x33BC0, symBinAddr: 0x100053600, symSize: 0xE0 } - - { offset: 0x1165EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwet', symObjAddr: 0x33CA0, symBinAddr: 0x1000536E0, symSize: 0x20 } - - { offset: 0x1165FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVwst', symObjAddr: 0x33D30, symBinAddr: 0x100053770, symSize: 0x20 } - - { offset: 0x116613, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVMr', symObjAddr: 0x33DB0, symBinAddr: 0x1000537F0, symSize: 0x70 } - - { offset: 0x116627, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOMa', symObjAddr: 0x33F80, symBinAddr: 0x100053860, symSize: 0x10 } - - { offset: 0x11663B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GAA017_AppearanceActionW0VGAA012_ValueActionW0VyA210_3URLVSgGGA326_ySbGGA326_yA205_GGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x33FA0, symBinAddr: 0x100053880, symSize: 0x90 } - - { offset: 0x11664F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GAA017_AppearanceActionW0VGAA012_ValueActionW0VyA210_3URLVSgGGA326_ySbGGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x34030, symBinAddr: 0x100053910, symSize: 0x90 } - - { offset: 0x116663, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GAA017_AppearanceActionW0VGAA012_ValueActionW0VyA210_3URLVSgGGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x340C0, symBinAddr: 0x1000539A0, symSize: 0x90 } - - { offset: 0x116677, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GAA017_AppearanceActionW0VGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x34150, symBinAddr: 0x100053A30, symSize: 0x70 } - - { offset: 0x11668B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GA318_GACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x341C0, symBinAddr: 0x100053AA0, symSize: 0x90 } - - { offset: 0x11669F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGA318_GACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x34250, symBinAddr: 0x100053B30, symSize: 0x90 } - - { offset: 0x1166B3, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ZStackVyAA9TupleViewVyACyACyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA012_ConditionalD0VyACyAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_AA32_EnvironmentKeyTransformModifierVySbGGACyAxA07_HiddenW0VGGG_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA4FormVyAGyAA7SectionVyAtGyAA6ToggleVyATG_AA6HStackVyAGyAT_AA6SpacerVACyAJ015ConfigGeneratorG0V13IPv4CidrFieldVAA16_FixedSizeLayoutVGtGGSgtGAA05EmptyG0VG_A19_yAtGyA24_yAGyAT_AnAE21disableAutocorrectionyQrSbSgFQOyACyACyAnAE06labelsX0QryFQOyACyAA0P5FieldVyATGAA01_tu7WritingW0VyAA0P9AlignmentOGG_Qo_AA16_FlexFrameLayoutVGA48_ySSSgGG_Qo_tGG_A62_ACyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyAtJ8PeerModeOAA7ForEachVySayA68_GSSAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_A68_Qo_GG_AA015SegmentedPickerM0VQo_AA14_PaddingLayoutVGAZyAGyA70_ySnySiGSiA24_yAGyAnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAE09textFieldM0yQrqd__AA0p5FieldM0Rd__lFQOyA46__AA05Plainp5FieldM0VQo__Qo_A58_G_Qo__A26_AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5ImageVA48_yAA5ColorVSgGGG_AA05PlainoM0VQo_tGGG_AnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyA93__ATtGGA97_GG_A101_Qo_tGA24_yAGyAT_A26_ATtGGGSgtGA39_GA19_yA39_AGyAnAEAOyQrqd__AaPRd__lFQOyARyACyA24_yAGyAT_A26_ACyA98_A48_yAA4FontVSgGGtGGAA01_d5ShapeW0VyAA9RectangleVGGG_A101_Qo__A132_tGA39_GtGG_AA011GroupedFormM0VQo__Qo_tGGAA01_zmW0VyA95_GGAA013_TraitWritingW0VyAA011ZIndexTraitU0VGGAA017_AllowsHitTestingW0VG_ACyACyACyAA5GroupVyAZyAZyAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA19_yAtGyA24_yAGyAT_AnAEA41_yQrA42_FQOyACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA52__A87_Qo__Qo_A58_G_Qo_tGG_A24_yAGyACyATA32_G_A26_AnAE10monospacedyQrSbFQOyACyACyATA48_ySiSgGGA48_yAT14TruncationModeOGG_Qo_AnAE4helpyQrAA015LocalizedStringU0VFQOyAnAEAOyQrqd__AaPRd__lFQOyARyA93_G_A101_Qo__Qo_tGGA24_yAGyAT_A26_ACyAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyACyA52_AA12_FrameLayoutVG_A87_Qo__Qo_A58_GtGGtGA39_G_A19_yAtGyA22__AGyA70_yA83_SiA24_yAGyAT_A26_ACyA28_9IPv4FieldVA32_GA102_tGGG_A110_tGSgtGATGA19_yAtGyA70_yAA7BindingVySayAJ19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVA24_yAGyAT_A26_A33_A102_tGGG_A110_tGA39_GA19_yAtGyA22__AGyA35__A24_yAGyAT_A26_ACyAnAEA43_QryFQOyA184__Qo_A58_GtGGtGSgtGA39_GA19_yATA111_A39_GA19_yAtGyA22__A157_yAGyA105__AnAEAOyQrqd__AaPRd__lFQOyARyACyAA5LabelVyATA93_GA97_GG_A101_Qo_tGGSgtGATGA19_yAtGyA22__AGyA70_yA83_SiA214_G_A110_tGSgtGATGA19_yAtGyA22__A24_yAGyAT_A26_ACyA184_A58_GtGGSgtGATGA19_yATA198_ATGA19_yATA234_ATGA19_yAtGyACyAIyAGyA22__A164_tGGA81_G_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_A253_tGA39_GtGG_A138_Qo__Qo_tGGAIyAGyA10__AnAEA11_yQrA13_FQOyAnAEA14_yQrqd__AAA15_Rd__lFQOyA17_yAGyA70_yA203_ySayAJ15PortForwardRuleVGGA212_A19_yA24_yAGyA26__AnAEAOyQrqd__AaPRd__lFQOyACyACyAUA121_GA97_G_A101_Qo_tGGACyAIyAGyA24_yAGyAT_A26_ACyAnAEA63_yQrqd__AAA64_Rd__lFQOyA66_yATSSAGyAnAEA72__A73_Qrqd___SbtSHRd__lFQOyAT_SSQo__A271_tGG_A78_Qo_A183_GtGG_AA7DividerVAnAEA43_QryFQOyAnAEA84_yQrqd__AAA85_Rd__lFQOyA24_yAGyAT_A26_A194_AtCyA46_A183_GtGG_A87_Qo__Qo_A24_yAGyA26__ACyACyA93_A121_GA97_GATA26_tGGA284_tGGA81_GA39_GG_A19_yA39_A110_A39_GtGG_A138_Qo__Qo_tGGGA39_GGA145_GA151_GA148_yAA015TransitionTraitU0VGGSgtGGAA010_AnimationW0VyAJ12ConfigScreenOSgGGACyxq_GAam2aMRzAA0gW0R_rlWl', symObjAddr: 0x342E0, symBinAddr: 0x100053BC0, symSize: 0xA0 } - - { offset: 0x1166C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOs12CaseIterableAA8AllCasessADP_SlWT', symObjAddr: 0x34380, symBinAddr: 0x100053C60, symSize: 0x30 } - - { offset: 0x1166DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12ConfigScreenOSHAASQWb', symObjAddr: 0x343F0, symBinAddr: 0x100053C90, symSize: 0x10 } - - { offset: 0x1166EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12ConfigScreenOACSQAAWl', symObjAddr: 0x34400, symBinAddr: 0x100053CA0, symSize: 0x30 } - - { offset: 0x116703, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSHAASQWb', symObjAddr: 0x34440, symBinAddr: 0x100053CD0, symSize: 0x10 } - - { offset: 0x116717, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOACSQAAWl', symObjAddr: 0x34450, symBinAddr: 0x100053CE0, symSize: 0x30 } - - { offset: 0x116880, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI0D0AafGP05_makeD04view6inputsAF01_D7OutputsVAF11_GraphValueVyxG_AF01_D6InputsVtFZTW', symObjAddr: 0x256D0, symBinAddr: 0x1000458D0, symSize: 0x40 } - - { offset: 0x11689C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI0D0AafGP05_makeD4List4view6inputsAF01_dK7OutputsVAF11_GraphValueVyxG_AF01_dK6InputsVtFZTW', symObjAddr: 0x25710, symBinAddr: 0x100045910, symSize: 0x40 } - - { offset: 0x1168B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI0D0AafGP4body4BodyQzvgTW', symObjAddr: 0x25760, symBinAddr: 0x100045950, symSize: 0x20 } - - { offset: 0x1168D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI0D0AafGP05_makeD04view6inputsAF01_D7OutputsVAF11_GraphValueVyxG_AF01_D6InputsVtFZTW', symObjAddr: 0x27080, symBinAddr: 0x100047210, symSize: 0x40 } - - { offset: 0x1168F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI0D0AafGP05_makeD4List4view6inputsAF01_dJ7OutputsVAF11_GraphValueVyxG_AF01_dJ6InputsVtFZTW', symObjAddr: 0x270C0, symBinAddr: 0x100047250, symSize: 0x40 } - - { offset: 0x11690C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI0D0AafGP4body4BodyQzvgTW', symObjAddr: 0x27100, symBinAddr: 0x100047290, symSize: 0x20 } - - { offset: 0x1169A9, size: 0x8, addend: 0x0, symName: '_$sSmsSKRzrlE10removeLast7ElementSTQzyFSay8Swiftier15PortForwardRuleVG_Tg5', symObjAddr: 0x10, symBinAddr: 0x1000203C0, symSize: 0x90 } - - { offset: 0x116B0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x3A0, symBinAddr: 0x100020750, symSize: 0xC0 } - - { offset: 0x116C18, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSHAASH9hashValueSivgTW', symObjAddr: 0x460, symBinAddr: 0x100020810, symSize: 0x80 } - - { offset: 0x116CC3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x4E0, symBinAddr: 0x100020890, symSize: 0x60 } - - { offset: 0x116D2A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x540, symBinAddr: 0x1000208F0, symSize: 0x80 } - - { offset: 0x11736C, size: 0x8, addend: 0x0, symName: '_$sSlsE9dropFirsty11SubSequenceQzSiFSS_Tg5Tf4ng_n', symObjAddr: 0x2D690, symBinAddr: 0x10004D6B0, symSize: 0xB0 } - - { offset: 0x117401, size: 0x8, addend: 0x0, symName: '_$sSlsE8dropLasty11SubSequenceQzSiFSS_Tg5Tf4ng_n', symObjAddr: 0x2D740, symBinAddr: 0x10004D760, symSize: 0xC0 } - - { offset: 0x1174DA, size: 0x8, addend: 0x0, symName: '_$sSlsE6prefixy11SubSequenceQzSiFSS_Tg5Tf4ng_n', symObjAddr: 0x2DF90, symBinAddr: 0x10004DFB0, symSize: 0x90 } - - { offset: 0x119346, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xB0, symBinAddr: 0x100020460, symSize: 0x10 } - - { offset: 0x11939E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV11ProxySubnetVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xF0, symBinAddr: 0x1000204A0, symSize: 0x70 } - - { offset: 0x11941A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x160, symBinAddr: 0x100020510, symSize: 0x60 } - - { offset: 0x119476, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOSYAASY8rawValuexSg03RawE0Qz_tcfCTW', symObjAddr: 0x5C0, symBinAddr: 0x100020970, symSize: 0x30 } - - { offset: 0x1194AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeOs12CaseIterableAAsADP8allCases03AllG0QzvgZTW', symObjAddr: 0x650, symBinAddr: 0x100020A00, symSize: 0x40 } - - { offset: 0x119535, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerC05clearC03fory10Foundation3URLVSg_tF', symObjAddr: 0x6D0, symBinAddr: 0x100020A80, symSize: 0x240 } - - { offset: 0x1195D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerCfZ', symObjAddr: 0x910, symBinAddr: 0x100020CC0, symSize: 0xB0 } - - { offset: 0x11963E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18ConfigDraftManagerCfD', symObjAddr: 0x9C0, symBinAddr: 0x100020D70, symSize: 0x370 } - - { offset: 0x11970E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvg', symObjAddr: 0xE00, symBinAddr: 0x100021100, symSize: 0x750 } - - { offset: 0x119C40, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE16allowsHitTestingyQrSbFQOyAiEE6zIndexyQrSdFQOyAC04mainD0QrvpQOy_Qo__Qo__Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEEAKyQrSdFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE5GroupVyAE19_ConditionalContentVyA1_yAC08advancedD0QrvpQOy_Qo_AC014portForwardingD0QrvpQOy_Qo_GAE05EmptyD0VGG_AE5ColorVQo__Qo__Qo_SgtGyXEfU_', symObjAddr: 0x1550, symBinAddr: 0x100021850, symSize: 0x490 } - - { offset: 0x11A0DE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE16allowsHitTestingyQrSbFQOyAiEE6zIndexyQrSdFQOyAC04mainD0QrvpQOy_Qo__Qo__Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEEAKyQrSdFQOyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE5GroupVyAE19_ConditionalContentVyA1_yAC08advancedD0QrvpQOy_Qo_AC014portForwardingD0QrvpQOy_Qo_GAE05EmptyD0VGG_AE5ColorVQo__Qo__Qo_SgtGyXEfU_A9_yXEfU_', symObjAddr: 0x19E0, symBinAddr: 0x100021CE0, symSize: 0x400 } - - { offset: 0x11A297, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgyycfU0_', symObjAddr: 0x1DE0, symBinAddr: 0x1000220E0, symSize: 0xD0 } - - { offset: 0x11A2E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4bodyQrvgyAA08EasyTierB5ModelVcfU3_', symObjAddr: 0x2630, symBinAddr: 0x100022930, symSize: 0x140 } - - { offset: 0x11A4D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV11loadContent33_45EEDC5FDAAB16083A3A535BA0EECC81LL10forceResetySb_tF', symObjAddr: 0x1EB0, symBinAddr: 0x1000221B0, symSize: 0x780 } - - { offset: 0x11A5DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV12loadFromFile33_45EEDC5FDAAB16083A3A535BA0EECC81LLyyF', symObjAddr: 0x2770, symBinAddr: 0x100022A70, symSize: 0x1F0 } - - { offset: 0x11A6CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_', symObjAddr: 0x2960, symBinAddr: 0x100022C60, symSize: 0x6A0 } - - { offset: 0x11A768, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_', symObjAddr: 0x3000, symBinAddr: 0x100023300, symSize: 0x13C0 } - - { offset: 0x11A8A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_', symObjAddr: 0x43C0, symBinAddr: 0x1000246C0, symSize: 0x300 } - - { offset: 0x11A9DD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A33_yXEfU_', symObjAddr: 0x46C0, symBinAddr: 0x1000249C0, symSize: 0x520 } - - { offset: 0x11AAE6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A60_yXEfU0_', symObjAddr: 0x4BE0, symBinAddr: 0x100024EE0, symSize: 0x760 } - - { offset: 0x11ABD3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A60_yXEfU0_yyScMYccfU_', symObjAddr: 0x5340, symBinAddr: 0x100025640, symSize: 0x1A0 } - - { offset: 0x11AC12, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A60_yXEfU0_A54_yXEfU0_', symObjAddr: 0x54E0, symBinAddr: 0x1000257E0, symSize: 0x40 } - - { offset: 0x11AC5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_', symObjAddr: 0x5520, symBinAddr: 0x100025820, symSize: 0x750 } - - { offset: 0x11ADDE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_A44_yYbcfU_', symObjAddr: 0x5C70, symBinAddr: 0x100025F70, symSize: 0x110 } - - { offset: 0x11AE04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A78_yXEfU_A76_yXEfU1_yA44_YbcfU0_', symObjAddr: 0x5D80, symBinAddr: 0x100026080, symSize: 0x130 } - - { offset: 0x11AE53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_', symObjAddr: 0x5EB0, symBinAddr: 0x1000261B0, symSize: 0x900 } - - { offset: 0x11AED0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_', symObjAddr: 0x67B0, symBinAddr: 0x100026AB0, symSize: 0x60 } - - { offset: 0x11AF7C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_A98_yXEfU_', symObjAddr: 0x6810, symBinAddr: 0x100026B10, symSize: 0x590 } - - { offset: 0x11B011, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_A98_yXEfU_SSyYbcfU_', symObjAddr: 0x6DA0, symBinAddr: 0x1000270A0, symSize: 0x130 } - - { offset: 0x11B0C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_A98_yXEfU_ySSYbcfU0_', symObjAddr: 0x6ED0, symBinAddr: 0x1000271D0, symSize: 0x1F0 } - - { offset: 0x11B1D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_A99_SicfU_A98_yXEfU_yyScMYccfU1_', symObjAddr: 0x70C0, symBinAddr: 0x1000273C0, symSize: 0x190 } - - { offset: 0x11B29E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A108_yXEfU0_yyScMYccfU0_', symObjAddr: 0x7260, symBinAddr: 0x100027560, symSize: 0x1B0 } - - { offset: 0x11B3C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_', symObjAddr: 0x7430, symBinAddr: 0x100027730, symSize: 0x510 } - - { offset: 0x11B477, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_', symObjAddr: 0x7940, symBinAddr: 0x100027C40, symSize: 0xC0 } - - { offset: 0x11B577, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_', symObjAddr: 0x7A00, symBinAddr: 0x100027D00, symSize: 0x8B0 } - - { offset: 0x11B633, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_SSyYbcfU_', symObjAddr: 0x82B0, symBinAddr: 0x1000285B0, symSize: 0x160 } - - { offset: 0x11B7BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_ySSYbcfU0_', symObjAddr: 0x8410, symBinAddr: 0x100028710, symSize: 0x230 } - - { offset: 0x11BA4B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_SSyYbcfU1_', symObjAddr: 0x8640, symBinAddr: 0x100028940, symSize: 0x160 } - - { offset: 0x11BBFE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_ySSYbcfU2_', symObjAddr: 0x87A0, symBinAddr: 0x100028AA0, symSize: 0x220 } - - { offset: 0x11BE2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A125_A111_yA115_Gcfu_A125_A183_cfU_A124_yXEfU_yyScMYccfU3_', symObjAddr: 0x89C0, symBinAddr: 0x100028CC0, symSize: 0x300 } - - { offset: 0x11BFD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_yyScMYccfU0_', symObjAddr: 0x8CC0, symBinAddr: 0x100028FC0, symSize: 0x210 } - - { offset: 0x11C131, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A127_yXEfU1_A103_yXEfU1_A101_yXEfU_', symObjAddr: 0x8F90, symBinAddr: 0x100029290, symSize: 0x100 } - - { offset: 0x11C1E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A137_yXEfU2_', symObjAddr: 0x9090, symBinAddr: 0x100029390, symSize: 0x780 } - - { offset: 0x11C2F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A137_yXEfU2_A133_yXEfU0_', symObjAddr: 0x9970, symBinAddr: 0x100029C70, symSize: 0x550 } - - { offset: 0x11C471, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_', symObjAddr: 0x9EC0, symBinAddr: 0x10002A1C0, symSize: 0x5A0 } - - { offset: 0x11C4D1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A144_SicfU_A143_yXEfU_', symObjAddr: 0xA460, symBinAddr: 0x10002A760, symSize: 0x7F0 } - - { offset: 0x11C5BC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A144_SicfU_A143_yXEfU_SSyYbcfU_', symObjAddr: 0xAC50, symBinAddr: 0x10002AF50, symSize: 0xB0 } - - { offset: 0x11C62F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A144_SicfU_A143_yXEfU_ySSYbcfU0_', symObjAddr: 0xAD00, symBinAddr: 0x10002B000, symSize: 0x1A0 } - - { offset: 0x11C6F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A144_SicfU_A143_yXEfU_yyScMYccfU1_', symObjAddr: 0xAEA0, symBinAddr: 0x10002B1A0, symSize: 0x130 } - - { offset: 0x11C72D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_yyScMYccfU0_', symObjAddr: 0xAFD0, symBinAddr: 0x10002B2D0, symSize: 0x1B0 } - - { offset: 0x11C847, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A146_yXEfU3_A103_yXEfU1_A101_yXEfU_', symObjAddr: 0xB1A0, symBinAddr: 0x10002B4A0, symSize: 0x100 } - - { offset: 0x11C8F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A155_yXEfU4_', symObjAddr: 0xB2A0, symBinAddr: 0x10002B5A0, symSize: 0x450 } - - { offset: 0x11C9BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_', symObjAddr: 0xB6F0, symBinAddr: 0x10002B9F0, symSize: 0x900 } - - { offset: 0x11CA23, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_', symObjAddr: 0xBFF0, symBinAddr: 0x10002C2F0, symSize: 0x840 } - - { offset: 0x11CACB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_SSyYbcfU_', symObjAddr: 0xC830, symBinAddr: 0x10002CB30, symSize: 0x190 } - - { offset: 0x11CC5A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_ySSYbcfU0_', symObjAddr: 0xC9C0, symBinAddr: 0x10002CCC0, symSize: 0x330 } - - { offset: 0x11CF58, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_SSyYbcfU1_', symObjAddr: 0xCCF0, symBinAddr: 0x10002CFF0, symSize: 0x1A0 } - - { offset: 0x11D13B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_ySSYbcfU2_', symObjAddr: 0xCE90, symBinAddr: 0x10002D190, symSize: 0x310 } - - { offset: 0x11D3D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_A125_SicfU_A124_yXEfU_yyScMYccfU3_', symObjAddr: 0xD1A0, symBinAddr: 0x10002D4A0, symSize: 0x130 } - - { offset: 0x11D40A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A160_yXEfU5_yyScMYccfU0_', symObjAddr: 0xD2D0, symBinAddr: 0x10002D5D0, symSize: 0x1B0 } - - { offset: 0x11D547, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A166_yXEfU6_', symObjAddr: 0xD550, symBinAddr: 0x10002D850, symSize: 0x3B0 } - - { offset: 0x11D5FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A166_yXEfU6_A163_yXEfU_', symObjAddr: 0xD900, symBinAddr: 0x10002DC00, symSize: 0x4F0 } - - { offset: 0x11D763, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_', symObjAddr: 0xDDF0, symBinAddr: 0x10002E0F0, symSize: 0x5A0 } - - { offset: 0x11D7B5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A99_SicfU_A98_yXEfU_', symObjAddr: 0xE390, symBinAddr: 0x10002E690, symSize: 0x600 } - - { offset: 0x11D843, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A99_SicfU_A98_yXEfU_SSyYbcfU_', symObjAddr: 0xE990, symBinAddr: 0x10002EC90, symSize: 0xB0 } - - { offset: 0x11D8B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A99_SicfU_A98_yXEfU_ySSYbcfU0_', symObjAddr: 0xEA40, symBinAddr: 0x10002ED40, symSize: 0x1A0 } - - { offset: 0x11D97D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A99_SicfU_A98_yXEfU_yyScMYccfU1_', symObjAddr: 0xEBE0, symBinAddr: 0x10002EEE0, symSize: 0x130 } - - { offset: 0x11D9B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_yyScMYccfU0_', symObjAddr: 0xED10, symBinAddr: 0x10002F010, symSize: 0x1B0 } - - { offset: 0x11DACE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A106_yXEfU7_A103_yXEfU1_A101_yXEfU_', symObjAddr: 0xEEE0, symBinAddr: 0x10002F1E0, symSize: 0x100 } - - { offset: 0x11DB31, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A153_yXEfU8_', symObjAddr: 0xEFE0, symBinAddr: 0x10002F2E0, symSize: 0x130 } - - { offset: 0x11DC15, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_', symObjAddr: 0xF110, symBinAddr: 0x10002F410, symSize: 0x3580 } - - { offset: 0x11EA95, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_SbyYbcfU_', symObjAddr: 0x12690, symBinAddr: 0x100032990, symSize: 0xA0 } - - { offset: 0x11EABB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_ySbYbcfU0_', symObjAddr: 0x12730, symBinAddr: 0x100032A30, symSize: 0x120 } - - { offset: 0x11EAE1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_SbyYbcfU1_', symObjAddr: 0x12850, symBinAddr: 0x100032B50, symSize: 0xA0 } - - { offset: 0x11EB07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV08advancedD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6HStackVyAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo_tGG_A10_yAGyAyEE9fixedSizeQryFQOyA8__Qo__AE6SpacerVAyEE10monospacedyQrSbFQOyAyEE14truncationModeyQrA8_14TruncationModeOFQOyAyEE9lineLimityQrSiSgFQOyA8__Qo__Qo__Qo_AyEE4helpyQrAQFQOyAyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAE5ImageVG_AE05PlainY5StyleVQo__Qo_tGGA10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyAyEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A69_AE9AlignmentVtFQOyA26__Qo__A28_Qo__Qo__Qo_tGGtGAE05EmptyD0VG_A6_yA8_AGyAE6ToggleVyA8_G_AGyAE7ForEachVySnySiGSiA10_yAGyA8__A38_AyEEA35_QryFQOyAC9IPv4FieldV_Qo_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEE15foregroundColoryQrAE5ColorVSgFQOyA54__Qo_G_A57_Qo_tGGG_AyEEA49_yQrqd__AEA50_Rd__lFQOyA52_yAyEEA91_yQrA94_FQOyA10_yAGyA54__A8_tGG_Qo_G_A57_Qo_tGSgtGA8_GA6_yA8_AGyA86_yAE7BindingVySayAA08EasyTierB5ModelV11ProxySubnetVGG10Foundation4UUIDVA10_yAGyA8__A38_AyEEA35_QryFQOyAC13IPv4CidrFieldV_Qo_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AGyA10_yAGyA8__A38_A123_tGG_A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyAyEEA17_QryFQOyA72__Qo__Qo_tGGtGSgtGA80_GA6_yA8_AGyA86_yA87_SiA10_yAGyAyEEA11_yQrA12_FQOyAyEEA13_yQrA16_FQOyAyEEA17_QryFQOyAyEEA18_yQrqd__AEA19_Rd__lFQOyA25__A28_Qo__Qo__Qo__Qo__A38_A97_tGGG_A105_tGA80_GA6_yA8_AGyA84__AC17stringListSectionAILL4list11placeholderQrA111_ySaySSGG_SStFQOy_Qo_SgtGA8_GA6_yA8_AGyA84__AGyA86_yA87_SiA125_G_A105_tGSgtGA8_GA6_yA8_AGyA84__A10_yAGyA8__A38_AyEEA13_yQrA16_FQOyA72__Qo_tGGSgtGA8_GA6_yA8_A106_A8_GA6_yA8_A153_A8_GA6_yA8_AGyAC9toggleRowAILL__4isOnQrAQ_AQA111_ySbGtFQOy_Qo__A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_A173_tGA80_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A176_yXEfU0_A174_yXEfU9_ySbYbcfU2_', symObjAddr: 0x128F0, symBinAddr: 0x100032BF0, symSize: 0x120 } - - { offset: 0x11EB3B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_', symObjAddr: 0x12A10, symBinAddr: 0x100032D10, symSize: 0x4A0 } - - { offset: 0x11EC1D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_', symObjAddr: 0x12EB0, symBinAddr: 0x1000331B0, symSize: 0x90 } - - { offset: 0x11ECCC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_', symObjAddr: 0x12F40, symBinAddr: 0x100033240, symSize: 0x740 } - - { offset: 0x11EDB2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_SSyYbcfU_', symObjAddr: 0x13680, symBinAddr: 0x100033980, symSize: 0xF0 } - - { offset: 0x11EE65, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_ySSYbcfU0_', symObjAddr: 0x13770, symBinAddr: 0x100033A70, symSize: 0x140 } - - { offset: 0x11EF43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A32_SicfU_A31_yXEfU_yyScMYccfU1_', symObjAddr: 0x138B0, symBinAddr: 0x100033BB0, symSize: 0xE0 } - - { offset: 0x11F023, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_yyScMYccfU0_', symObjAddr: 0x13990, symBinAddr: 0x100033C90, symSize: 0x110 } - - { offset: 0x11F129, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17stringListSection33_45EEDC5FDAAB16083A3A535BA0EECC81LL4list11placeholderQr7SwiftUI7BindingVySaySSGG_SStFAH05TupleD0VyAH7ForEachVySnySiGSiAH6HStackVyANyAH0D0PAHE21disableAutocorrectionyQrSbSgFQOyAuHE15textContentTypeyQrSo06NSTextZ4TypeaSgFQOyAuHE12labelsHiddenQryFQOyAuHE0Y10FieldStyleyQrqd__AH14TextFieldStyleRd__lFQOyAH9TextFieldVyAH4TextVG_AH19PlainTextFieldStyleVQo__Qo__Qo__Qo__AH6SpacerVAuHE11buttonStyleyQrqd__AH20PrimitiveButtonStyleRd__lFQOyAH6ButtonVyAuHE15foregroundColoryQrAH5ColorVSgFQOyAH5ImageV_Qo_G_AH16PlainButtonStyleVQo_tGGG_AuHEA16_yQrqd__AHA17_Rd__lFQOyA19_yAuHEA20_yQrA23_FQOyAH5LabelVyA6_A25_G_Qo_G_A29_Qo_tGyXEfU_A37_yXEfU1_', symObjAddr: 0x13AA0, symBinAddr: 0x100033DA0, symSize: 0xA0 } - - { offset: 0x11F1C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9toggleRow33_45EEDC5FDAAB16083A3A535BA0EECC81LL__4isOnQr7SwiftUI18LocalizedStringKeyV_AiG7BindingVySbGtFAG05TupleD0VyAG6ToggleVyAG4TextVG_AG0D0PAGE9fixedSize10horizontal8verticalQrSb_SbtFQOyAR_Qo_tGyXEfU_', symObjAddr: 0x13B40, symBinAddr: 0x100033E40, symSize: 0x2B0 } - - { offset: 0x11F22F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV15safePeerBinding33_45EEDC5FDAAB16083A3A535BA0EECC81LL2at7SwiftUI0G0VySSGSi_tFSSyYbcfU_', symObjAddr: 0x13DF0, symBinAddr: 0x1000340F0, symSize: 0x130 } - - { offset: 0x11F2EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV15safePeerBinding33_45EEDC5FDAAB16083A3A535BA0EECC81LL2at7SwiftUI0G0VySSGSi_tFySSYbcfU0_', symObjAddr: 0x13F20, symBinAddr: 0x100034220, symSize: 0x1F0 } - - { offset: 0x11F407, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_', symObjAddr: 0x14110, symBinAddr: 0x100034410, symSize: 0x770 } - - { offset: 0x11F4A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_yycfU_', symObjAddr: 0x14880, symBinAddr: 0x100034B80, symSize: 0xB0 } - - { offset: 0x11F525, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV15generateAndSave33_45EEDC5FDAAB16083A3A535BA0EECC81LLyyF', symObjAddr: 0x14980, symBinAddr: 0x100034C30, symSize: 0x830 } - - { offset: 0x11F7EE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_', symObjAddr: 0x151B0, symBinAddr: 0x100035460, symSize: 0x470 } - - { offset: 0x11F84E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A23_yXEfU_', symObjAddr: 0x15620, symBinAddr: 0x1000358D0, symSize: 0x550 } - - { offset: 0x11F945, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_', symObjAddr: 0x15F90, symBinAddr: 0x100036240, symSize: 0xFF0 } - - { offset: 0x11FC97, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A78_yXEfU1_', symObjAddr: 0x174C0, symBinAddr: 0x100037770, symSize: 0x110 } - - { offset: 0x11FD03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A78_yXEfU1_A77_A71_cfU_', symObjAddr: 0x175D0, symBinAddr: 0x100037880, symSize: 0xF0 } - - { offset: 0x11FDB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A111_SicfU2_A110_yXEfU_', symObjAddr: 0x17730, symBinAddr: 0x1000379E0, symSize: 0x7D0 } - - { offset: 0x11FEA8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A111_SicfU2_A110_yXEfU_yyScMYccfU_', symObjAddr: 0x17F00, symBinAddr: 0x1000381B0, symSize: 0x190 } - - { offset: 0x11FF74, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_yyScMYccfU3_', symObjAddr: 0x180F0, symBinAddr: 0x1000383A0, symSize: 0x1C0 } - - { offset: 0x12009C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A123_yXEfU0_A119_yXEfU5_', symObjAddr: 0x183C0, symBinAddr: 0x100038670, symSize: 0x270 } - - { offset: 0x120133, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV04mainD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0Q4Role05rightR00Q6Action0tU0QrAE18LocalizedStringKeyV_AqE06ButtonS0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7SectionVyAE4TextVAGyAE6ToggleVyA8_G_AE6HStackVyAGyA8__AE6SpacerVAyEE9fixedSizeQryFQOyAC13IPv4CidrFieldV_Qo_tGGSgtGAE05EmptyD0VG_A6_yA8_AGyA13_yAGyA8__AyEE21disableAutocorrectionyQrSbSgFQOyAyEE15textContentTypeyQrSo17NSTextContentTypeaSgFQOyAyEE5frame8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeight9alignmentQr12CoreGraphics7CGFloatVSg_A44_A44_A44_A44_A44_AE9AlignmentVtFQOyAyEE12labelsHiddenQryFQOyAyEE22multilineTextAlignmentyQrAE13TextAlignmentOFQOyAE9TextFieldVyA8_G_Qo__Qo__Qo__Qo__Qo_tGG_A60_AyEE7paddingyQrAE4EdgeO3SetV_A44_tFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA8_AA8PeerModeOAE7ForEachVySayA71_GSSAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA8__A71_Qo_GG_AE20SegmentedPickerStyleVQo__Qo_AE19_ConditionalContentVyAGyA73_ySnySiGSiA13_yAGyAyEEA27_yQrA28_FQOyAyEEA29_yQrA32_FQOyAyEEA47_QryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA53__AE19PlainTextFieldStyleVQo__Qo__Qo__Qo__A15_AyEE11buttonStyleyQrqd__AE09PrimitiveY5StyleRd__lFQOyAE0Y0VyAyEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE05PlainY5StyleVQo_tGGG_AyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEEA99_yQrA102_FQOyA13_yAGyA104__A8_tGG_Qo_G_A108_Qo_tGA13_yAGyA8__A15_A8_tGGGSgtGA25_GA6_yA25_AGyAyEEA95_yQrqd__AEA96_Rd__lFQOyA98_yAyEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyA13_yAGyA8__A15_AyEE4fontyQrAE4FontVSgFQOyA105__Qo_tGG_AE9RectangleVQo_G_A108_Qo__A139_tGA25_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A142_yXEfU1_A140_yXEfU1_', symObjAddr: 0x18630, symBinAddr: 0x1000388E0, symSize: 0x3E0 } - - { offset: 0x12019B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV4push33_45EEDC5FDAAB16083A3A535BA0EECC81LLyyAA0B6ScreenOF', symObjAddr: 0x18A10, symBinAddr: 0x100038CC0, symSize: 0x120 } - - { offset: 0x1202C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_', symObjAddr: 0x18E30, symBinAddr: 0x1000390E0, symSize: 0x6A0 } - - { offset: 0x120368, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_', symObjAddr: 0x195B0, symBinAddr: 0x100039860, symSize: 0x420 } - - { offset: 0x12042F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_', symObjAddr: 0x199D0, symBinAddr: 0x100039C80, symSize: 0x170 } - - { offset: 0x120571, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_', symObjAddr: 0x19B40, symBinAddr: 0x100039DF0, symSize: 0xD0 } - - { offset: 0x12068F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_A101_yXEfU_', symObjAddr: 0x19C10, symBinAddr: 0x100039EC0, symSize: 0x8F0 } - - { offset: 0x12087A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_A101_yXEfU_A74_yXEfU_', symObjAddr: 0x1A500, symBinAddr: 0x10003A7B0, symSize: 0x440 } - - { offset: 0x120960, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_A101_yXEfU_A74_yXEfU_A68_yXEfU_', symObjAddr: 0x1A940, symBinAddr: 0x10003ABF0, symSize: 0x290 } - - { offset: 0x120A2D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A103_yXEfU_A101_yXEfU_A99_yXEfU1_', symObjAddr: 0x1ABD0, symBinAddr: 0x10003AE80, symSize: 0x2A0 } - - { offset: 0x120AEB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A43_yXEfU0_A42_yXEfU_', symObjAddr: 0x1B360, symBinAddr: 0x10003B610, symSize: 0x380 } - - { offset: 0x120C1F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A106_A8_yA10_Gcfu_A106_A121_cfU_A43_yXEfU0_A42_yXEfU_yyScMYccfU_', symObjAddr: 0x1B6E0, symBinAddr: 0x10003B990, symSize: 0x3D0 } - - { offset: 0x120E50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A112_yXEfU0_', symObjAddr: 0x1BAB0, symBinAddr: 0x10003BD60, symSize: 0x1C0 } - - { offset: 0x120EA4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A112_yXEfU0_yyScMYccfU_', symObjAddr: 0x1BC70, symBinAddr: 0x10003BF20, symSize: 0x280 } - - { offset: 0x120FFD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV014portForwardingD0Qrvg7SwiftUI05TupleD0VyAC6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0R4Role05rightS00R6Action0uV0QrAE18LocalizedStringKeyV_AqE06ButtonT0VSgAQSgyycyycSgtFQOy_Qo__AE0D0PAEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAyEE9formStyleyQrqd__AE9FormStyleRd__lFQOyAE4FormVyAGyAE7ForEachVyAE7BindingVySayAA15PortForwardRuleVGG10Foundation4UUIDVAE7SectionVyAE6HStackVyAGyAE6SpacerV_AyEE11buttonStyleyQrqd__AE09PrimitiveZ5StyleRd__lFQOyAyEE15foregroundColoryQrAE5ColorVSgFQOyAyEE4fontyQrAE4FontVSgFQOyAE0Z0VyAE4TextVG_Qo__Qo__AE05PlainZ5StyleVQo_tGGAyEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE6VStackVyAGyA19_yAGyA35__A21_AyEE5frame5width6height9alignmentQrA52__A52_AE9AlignmentVtFQOyAyEE11pickerStyleyQrqd__AE11PickerStyleRd__lFQOyAE6PickerVyA35_SSAGyAyEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA35__SSQo__A67_tGG_AE20SegmentedPickerStyleVQo__Qo_tGG_AE7DividerVAyEE12labelsHiddenQryFQOyAyEE14textFieldStyleyQrqd__AE14TextFieldStyleRd__lFQOyA19_yAGyA35__A21_AyEE9fixedSizeQryFQOyAC9IPv4FieldV_Qo_A35_AyEEA55_A56_A57_A58_QrA52__A52_A60_tFQOyAE9TextFieldVyA35_G_Qo_tGG_AE19PlainTextFieldStyleVQo__Qo_A19_yAGyA21__AyEEA24_yQrA27_FQOyAyEEA28_yQrA31_FQOyAE5ImageV_Qo__Qo_A35_A21_tGGA94_tGG_Qo_AE05EmptyD0VGG_A17_yA105_AyEEA22_yQrqd__AEA23_Rd__lFQOyA33_yAyEEA24_yQrA27_FQOyA19_yAGyA96__A35_tGG_Qo_G_A40_Qo_A105_GtGG_AE16GroupedFormStyleVQo__Qo_tGyXEfU_A114_yXEfU0_A112_yXEfU0_A110_yXEfU0_A108_yXEfU_', symObjAddr: 0x1BF10, symBinAddr: 0x10003C1C0, symSize: 0x100 } - - { offset: 0x121067, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0M4Role05rightN00M6Action0pQ0Qr7SwiftUI18LocalizedStringKeyV_AnL06ButtonO0VSgANSgyycyycSgtFAL0D0PALE11buttonStyleyQrqd__AL09PrimitivewY0Rd__lFQOyAL0W0VyAL4TextVG_AL08BorderedwY0VQo_ycfU_', symObjAddr: 0x1C010, symBinAddr: 0x10003C2C0, symSize: 0x1B0 } - - { offset: 0x1210DD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV6header33_45EEDC5FDAAB16083A3A535BA0EECC81LL5title7leftBtn0M4Role05rightN00M6Action0pQ0Qr7SwiftUI18LocalizedStringKeyV_AnL06ButtonO0VSgANSgyycyycSgtFAL19_ConditionalContentVyAL0D0PALE8disabledyQrSbFQOyAwLE11buttonStyleyQrqd__AL09PrimitiveW5StyleRd__lFQOyAL0W0VyAL4TextVG_AL017BorderedProminentW5StyleVQo__Qo_AwLE6hiddenQryFQOyAwLEAYyQrqd__AlZRd__lFQOyA3__AL08BorderedW5StyleVQo__Qo_GycfU0_', symObjAddr: 0x1C1C0, symBinAddr: 0x10003C470, symSize: 0x5A0 } - - { offset: 0x121219, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV12generateTOML33_45EEDC5FDAAB16083A3A535BA0EECC81LL5peersSSSaySSG_tF', symObjAddr: 0x1C770, symBinAddr: 0x10003CA10, symSize: 0x2EB0 } - - { offset: 0x123672, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9parseTOML33_45EEDC5FDAAB16083A3A535BA0EECC81LLyAA08EasyTierB5ModelVSSF', symObjAddr: 0x1F620, symBinAddr: 0x10003F8C0, symSize: 0x4B20 } - - { offset: 0x1260ED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC12updateFields4from4cidrySS_SStF', symObjAddr: 0x24140, symBinAddr: 0x1000443E0, symSize: 0x680 } - - { offset: 0x1266A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC11syncToModelyyF', symObjAddr: 0x247C0, symBinAddr: 0x100044A60, symSize: 0x670 } - - { offset: 0x126B55, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC11cidrChangedyySo13NSPopUpButtonCF', symObjAddr: 0x24E30, symBinAddr: 0x1000450D0, symSize: 0x1A0 } - - { offset: 0x126BC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC11cidrChangedyySo13NSPopUpButtonCFTo', symObjAddr: 0x24FD0, symBinAddr: 0x100045270, symSize: 0x50 } - - { offset: 0x126C01, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorC7control_04textD011doCommandBySbSo9NSControlC_So06NSTextD0C10ObjectiveC8SelectorVtFTo', symObjAddr: 0x25060, symBinAddr: 0x100045300, symSize: 0x90 } - - { offset: 0x126C2C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorCfD', symObjAddr: 0x25140, symBinAddr: 0x1000453E0, symSize: 0x310 } - - { offset: 0x126C6D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV11CoordinatorCfETo', symObjAddr: 0x25450, symBinAddr: 0x1000456F0, symSize: 0x90 } - - { offset: 0x126C9A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAafGP04makeJ07context0J4TypeQzAF0jK7ContextVyxG_tFTW', symObjAddr: 0x25500, symBinAddr: 0x1000457A0, symSize: 0x10 } - - { offset: 0x126CCC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAafGP06updateJ0_7contexty0J4TypeQz_AF0jK7ContextVyxGtFTW', symObjAddr: 0x25510, symBinAddr: 0x1000457B0, symSize: 0x50 } - - { offset: 0x126D3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV7SwiftUI19NSViewRepresentableAafGP15makeCoordinator0M0QzyFTW', symObjAddr: 0x25570, symBinAddr: 0x100045800, symSize: 0xD0 } - - { offset: 0x126DCB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorC12updateFields4fromySS_tF', symObjAddr: 0x25780, symBinAddr: 0x100045970, symSize: 0x4C0 } - - { offset: 0x1272D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorC11syncToModelyyF', symObjAddr: 0x25C40, symBinAddr: 0x100045E30, symSize: 0x5E0 } - - { offset: 0x12776A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorC7control_04textD011doCommandBySbSo9NSControlC_So06NSTextD0C10ObjectiveC8SelectorVtFTo', symObjAddr: 0x26A70, symBinAddr: 0x100046C60, symSize: 0x90 } - - { offset: 0x127795, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorCfD', symObjAddr: 0x26B20, symBinAddr: 0x100046D10, symSize: 0x310 } - - { offset: 0x1277D6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV11CoordinatorCfETo', symObjAddr: 0x26E30, symBinAddr: 0x100047020, symSize: 0x50 } - - { offset: 0x127803, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAafGP04makeI07context0I4TypeQzAF0iJ7ContextVyxG_tFTW', symObjAddr: 0x26EA0, symBinAddr: 0x100047090, symSize: 0x10 } - - { offset: 0x127861, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAafGP06updateI0_7contexty0I4TypeQz_AF0iJ7ContextVyxGtFTW', symObjAddr: 0x26EB0, symBinAddr: 0x1000470A0, symSize: 0xB0 } - - { offset: 0x1278F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV7SwiftUI19NSViewRepresentableAafGP15makeCoordinator0L0QzyFTW', symObjAddr: 0x26F60, symBinAddr: 0x100047150, symSize: 0xC0 } - - { offset: 0x127980, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC5frameAESo6CGRectV_tcfcTo', symObjAddr: 0x27120, symBinAddr: 0x1000472B0, symSize: 0x70 } - - { offset: 0x1279DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC5coderAESgSo7NSCoderC_tcfcTo', symObjAddr: 0x27190, symBinAddr: 0x100047320, symSize: 0x90 } - - { offset: 0x127A12, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldCfD', symObjAddr: 0x27270, symBinAddr: 0x100047400, symSize: 0x310 } - - { offset: 0x127A53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldCfETo', symObjAddr: 0x27580, symBinAddr: 0x100047710, symSize: 0x20 } - - { offset: 0x127A79, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x2AB60, symBinAddr: 0x10004ABD0, symSize: 0x10 } - - { offset: 0x127AB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15PortForwardRuleV23__derived_struct_equalsySbAC_ACtFZTf4nnd_n', symObjAddr: 0x2CBD0, symBinAddr: 0x10004CBF0, symSize: 0x160 } - - { offset: 0x127BAE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelV23__derived_struct_equalsySbAC_ACtFZTf4nnd_n', symObjAddr: 0x2CD30, symBinAddr: 0x10004CD50, symSize: 0x620 } - - { offset: 0x127DAC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19EasyTierConfigModelVACycfCTf4d_n', symObjAddr: 0x2D350, symBinAddr: 0x10004D370, symSize: 0x2E0 } - - { offset: 0x127E02, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerModeO8rawValueACSgSS_tcfCTf4nd_n', symObjAddr: 0x2D630, symBinAddr: 0x10004D650, symSize: 0x60 } - - { offset: 0x127ECD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV10makeNSView7contextSo07NSStackD0C7SwiftUI0I20RepresentableContextVyAEG_tFTf4nd_n', symObjAddr: 0x2D800, symBinAddr: 0x10004D820, symSize: 0x6B0 } - - { offset: 0x1280EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV13IPv4CidrFieldV12updateNSView_7contextySo07NSStackD0C_7SwiftUI0I20RepresentableContextVyAEGtFTf4dnn_n', symObjAddr: 0x2DEB0, symBinAddr: 0x10004DED0, symSize: 0xE0 } - - { offset: 0x12818A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ConfigGeneratorViewV9IPv4FieldV10makeNSView7contextSo07NSStackD0C7SwiftUI0H20RepresentableContextVyAEG_tFTf4nd_n', symObjAddr: 0x2E020, symBinAddr: 0x10004E040, symSize: 0x460 } - - { offset: 0x1284C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC6sharedACvpZ', symObjAddr: 0x14A40, symBinAddr: 0x100137C40, symSize: 0x0 } - - { offset: 0x128667, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x100054280, symSize: 0x40 } - - { offset: 0x1287E2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCMU', symObjAddr: 0x3310, symBinAddr: 0x100057590, symSize: 0x10 } - - { offset: 0x1287F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCMa', symObjAddr: 0x3320, symBinAddr: 0x1000575A0, symSize: 0x30 } - - { offset: 0x12880A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCMr', symObjAddr: 0x3350, symBinAddr: 0x1000575D0, symSize: 0x70 } - - { offset: 0x12881E, size: 0x8, addend: 0x0, symName: '_$s7Combine9PublishedVySay10Foundation3URLVGGMa', symObjAddr: 0x33C0, symBinAddr: 0x100057640, symSize: 0x50 } - - { offset: 0x128832, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC7Combine16ObservableObjectAA0F19WillChangePublisherAdEP_AD0I0PWT', symObjAddr: 0x3460, symBinAddr: 0x100057690, symSize: 0x10 } - - { offset: 0x128846, size: 0x8, addend: 0x0, symName: '_$sSo17OS_dispatch_queueCMa', symObjAddr: 0x34E0, symBinAddr: 0x1000576D0, symSize: 0x40 } - - { offset: 0x12885A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFyyScMYccfU_TA', symObjAddr: 0x3520, symBinAddr: 0x100057710, symSize: 0x10 } - - { offset: 0x12886E, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x3530, symBinAddr: 0x100057720, symSize: 0x20 } - - { offset: 0x128882, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x3550, symBinAddr: 0x100057740, symSize: 0x10 } - - { offset: 0x128896, size: 0x8, addend: 0x0, symName: '_$sSay8Dispatch0A13WorkItemFlagsVGSayxGSTsWl', symObjAddr: 0x3560, symBinAddr: 0x100057750, symSize: 0x40 } - - { offset: 0x128901, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFyyScMYccfU2_TA', symObjAddr: 0x3650, symBinAddr: 0x100057840, symSize: 0x20 } - - { offset: 0x128970, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKF10Foundation3URLV_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1cn_n', symObjAddr: 0x3690, symBinAddr: 0x100057880, symSize: 0x100 } - - { offset: 0x128B8A, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFySryxGz_SiztKXEfU_10Foundation3URLV_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1nnncn_n', symObjAddr: 0x3790, symBinAddr: 0x100057980, symSize: 0xA40 } - - { offset: 0x1290B0, size: 0x8, addend: 0x0, symName: '_$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSry10Foundation3URLVG_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1nncn_n', symObjAddr: 0x41D0, symBinAddr: 0x1000583C0, symSize: 0x2A0 } - - { offset: 0x129241, size: 0x8, addend: 0x0, symName: '_$sSr13_mergeTopRuns_6buffer2bySbSaySnySiGGz_SpyxGSbx_xtKXEtKF10Foundation3URLV_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1nncn_n', symObjAddr: 0x4470, symBinAddr: 0x100058660, symSize: 0x2E0 } - - { offset: 0x1295E3, size: 0x8, addend: 0x0, symName: '_$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlF10Foundation3URLV_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1nnnnc_n', symObjAddr: 0x4750, symBinAddr: 0x100058940, symSize: 0x640 } - - { offset: 0x129725, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC15migrateToiCloudyyFyyScMYccfU0_TA', symObjAddr: 0x4E00, symBinAddr: 0x100058FF0, symSize: 0x30 } - - { offset: 0x129739, size: 0x8, addend: 0x0, symName: '_$s10Foundation3URLVSgWOb', symObjAddr: 0x4E30, symBinAddr: 0x100059020, symSize: 0x40 } - - { offset: 0x12974D, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOy', symObjAddr: 0x4E70, symBinAddr: 0x100059060, symSize: 0x40 } - - { offset: 0x129761, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOe', symObjAddr: 0x4EB0, symBinAddr: 0x1000590A0, symSize: 0x40 } - - { offset: 0x129775, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOe', symObjAddr: 0x4EF0, symBinAddr: 0x1000590E0, symSize: 0x20 } - - { offset: 0x129789, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC16currentDirectory10Foundation3URLVSgvgyyScMYccfU_TA', symObjAddr: 0x4F40, symBinAddr: 0x100059130, symSize: 0x20 } - - { offset: 0x129906, size: 0x8, addend: 0x0, symName: '_$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFs15ContiguousArrayVy10Foundation3URLVG_Tg580$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFSbAG_AGtXEfU1_Tf1cn_n', symObjAddr: 0x35A0, symBinAddr: 0x100057790, symSize: 0x80 } - - { offset: 0x129A39, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC11configFilesSay10Foundation3URLVGvg', symObjAddr: 0x40, symBinAddr: 0x1000542C0, symSize: 0x60 } - - { offset: 0x129ABD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC16currentDirectory10Foundation3URLVSgvg', symObjAddr: 0xA0, symBinAddr: 0x100054320, symSize: 0x8A0 } - - { offset: 0x129BD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC16currentDirectory10Foundation3URLVSgvgyyScMYccfU_', symObjAddr: 0x940, symBinAddr: 0x100054BC0, symSize: 0x70 } - - { offset: 0x129C8F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC7Combine16ObservableObjectAadEP16objectWillChange0fhI9PublisherQzvgTW', symObjAddr: 0x3470, symBinAddr: 0x1000576A0, symSize: 0x30 } - - { offset: 0x129CF6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCACyc33_19B190CE439D0CF18D9BB158F630925FLlfc', symObjAddr: 0x9B0, symBinAddr: 0x100054C30, symSize: 0x410 } - - { offset: 0x129E5D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC18selectCustomFolderyyF', symObjAddr: 0xDC0, symBinAddr: 0x100055040, symSize: 0x2E0 } - - { offset: 0x129F5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC16openiCloudFolderyyF', symObjAddr: 0x10A0, symBinAddr: 0x100055320, symSize: 0x120 } - - { offset: 0x129F98, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14iCloudDriveURL33_19B190CE439D0CF18D9BB158F630925FLL10Foundation0F0VSgvg', symObjAddr: 0x11C0, symBinAddr: 0x100055440, symSize: 0x330 } - - { offset: 0x12A015, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC15migrateToiCloudyyF', symObjAddr: 0x14F0, symBinAddr: 0x100055770, symSize: 0xF00 } - - { offset: 0x12A541, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC15migrateToiCloudyyFyyScMYccfU0_', symObjAddr: 0x23F0, symBinAddr: 0x100056670, symSize: 0xD0 } - - { offset: 0x12A5C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyF', symObjAddr: 0x24C0, symBinAddr: 0x100056740, symSize: 0x8E0 } - - { offset: 0x12A9BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFyyScMYccfU_', symObjAddr: 0x2DA0, symBinAddr: 0x100057020, symSize: 0x60 } - - { offset: 0x12AA06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerC14refreshConfigsSay10Foundation3URLVGyFyyScMYccfU2_', symObjAddr: 0x2E00, symBinAddr: 0x100057080, symSize: 0x70 } - - { offset: 0x12AACB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCfZ', symObjAddr: 0x2E70, symBinAddr: 0x1000570F0, symSize: 0xF0 } - - { offset: 0x12AB35, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ConfigManagerCfD', symObjAddr: 0x2F60, symBinAddr: 0x1000571E0, symSize: 0x3B0 } - - { offset: 0x12ADDB, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE8containsySbABFSay10Foundation3URLVG_Tg5', symObjAddr: 0x0, symBinAddr: 0x100059220, symSize: 0xA0 } - - { offset: 0x12C732, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewCMa', symObjAddr: 0x117E0, symBinAddr: 0x10006A9C0, symSize: 0x20 } - - { offset: 0x12C746, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVMa', symObjAddr: 0x11840, symBinAddr: 0x10006A9E0, symSize: 0x30 } - - { offset: 0x12C75A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15isWindowVisibleSbvpACTK', symObjAddr: 0x11870, symBinAddr: 0x10006AA10, symSize: 0x70 } - - { offset: 0x12C788, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15isWindowVisibleSbvpACTk', symObjAddr: 0x118E0, symBinAddr: 0x10006AA80, symSize: 0x60 } - - { offset: 0x12C7B6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV11colorSchemeAA05ColorF0OvpACTk', symObjAddr: 0x11960, symBinAddr: 0x10006AB00, symSize: 0x60 } - - { offset: 0x12C7CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwCP', symObjAddr: 0x11BC0, symBinAddr: 0x10006ABB0, symSize: 0x3E0 } - - { offset: 0x12C7E2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwxx', symObjAddr: 0x11FB0, symBinAddr: 0x10006AFA0, symSize: 0x1C0 } - - { offset: 0x12C7F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwcp', symObjAddr: 0x12180, symBinAddr: 0x10006B170, symSize: 0x3C0 } - - { offset: 0x12C80A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwca', symObjAddr: 0x12540, symBinAddr: 0x10006B530, symSize: 0x530 } - - { offset: 0x12C81E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwtk', symObjAddr: 0x12A70, symBinAddr: 0x10006BA60, symSize: 0x280 } - - { offset: 0x12C832, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwta', symObjAddr: 0x12CF0, symBinAddr: 0x10006BCE0, symSize: 0x4A0 } - - { offset: 0x12C846, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwet', symObjAddr: 0x13190, symBinAddr: 0x10006C180, symSize: 0x20 } - - { offset: 0x12C85A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVwst', symObjAddr: 0x13250, symBinAddr: 0x10006C240, symSize: 0x20 } - - { offset: 0x12C86E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVMr', symObjAddr: 0x13300, symBinAddr: 0x10006C2F0, symSize: 0x110 } - - { offset: 0x12C882, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5StateVy10Foundation4UUIDVGMa', symObjAddr: 0x13410, symBinAddr: 0x10006C400, symSize: 0x50 } - - { offset: 0x12C896, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0x13500, symBinAddr: 0x10006C450, symSize: 0x20 } - - { offset: 0x12C8AA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgySay10Foundation3URLVGcfU0_TA', symObjAddr: 0x13540, symBinAddr: 0x10006C490, symSize: 0x40 } - - { offset: 0x12C8BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgy10Foundation4UUIDVcfU5_TA', symObjAddr: 0x13640, symBinAddr: 0x10006C590, symSize: 0x40 } - - { offset: 0x12C8D2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVyACyACyAA6HStackVyAGyAA0G0PAAE9menuStyleyQrqd__AA04MenuJ0Rd__lFQOyAA0K0VyACyACyACyAIyAGyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGA0_GAA11_ClipEffectVyAA16RoundedRectangleVGGAGyAA7SectionVyAsA012_ConditionalD0VyACyAA6ButtonVyASGAA01_no9TransformQ0VySbGGAA7ForEachVySay10Foundation3URLVGA24_A14_yAIyAGyAS_AQSgtGGGGGAA05EmptyG0VG_AA7DividerVA15_A19_A19_A36_A15_A15_A15_A36_A19_tGG_AA010BorderlesszkJ0VQo__AA6SpacerVAIyAGyAkAE06buttonJ0yQrqd__AA09PrimitivezJ0Rd__lFQOyA14_yACyACyACyAqUyAA4FontVSgGGA0_GAA01_d5ShapeQ0VyAA0W0VGGG_AA05PlainzJ0VQo__A61_AkAEA44_yQrqd__AAA45_Rd__lFQOyA14_yACyACyACyA50_AUyAA5ColorVSgGGA0_GA56_GG_A60_Qo_tGGtGGA0_GAA06_TraitpQ0VyAA011ZIndexTraitO0VGG_ACyAA6ZStackVyA12_yAA14GeometryReaderVyACyACyACyACyA83_yAGyACyACyACyACyACy8Swiftier011RippleRingsG0VAA06_FrameS0VGAA09_PositionS0VGAA017_AllowsHitTestingQ0VGA77_yAA015TransitionTraitO0VGGA80_GSg_ACyACyACyAA6IDViewVyA86_0dG0V12PeerListAreaVA22_4UUIDVGA90_GA100_GA80_GSgACyA107_14SpeedDashboardVA80_GSgtGGAA010_AnimationQ0VySbGGA125_GAA05_BlurU0VGAA08_OpacityU0VGGA63_GGAA010_FlexFrameS0VGtGGA90_GAA011_BackgroundjQ0VyA63_GGACyxq_GAaj2aJRzAA0gQ0R_rlWl', symObjAddr: 0x136C0, symBinAddr: 0x10006C610, symSize: 0x90 } - - { offset: 0x12C8E6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyACyACyAA6HStackVyAGyAA0G0PAAE9menuStyleyQrqd__AA04MenuJ0Rd__lFQOyAA0K0VyACyACyACyAIyAGyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGA0_GAA11_ClipEffectVyAA16RoundedRectangleVGGAGyAA7SectionVyAsA012_ConditionalD0VyACyAA6ButtonVyASGAA01_no9TransformQ0VySbGGAA7ForEachVySay10Foundation3URLVGA24_A14_yAIyAGyAS_AQSgtGGGGGAA05EmptyG0VG_AA7DividerVA15_A19_A19_A36_A15_A15_A15_A36_A19_tGG_AA010BorderlesszkJ0VQo__AA6SpacerVAIyAGyAkAE06buttonJ0yQrqd__AA09PrimitivezJ0Rd__lFQOyA14_yACyACyACyAqUyAA4FontVSgGGA0_GAA01_d5ShapeQ0VyAA0W0VGGG_AA05PlainzJ0VQo__A61_AkAEA44_yQrqd__AAA45_Rd__lFQOyA14_yACyACyACyA50_AUyAA5ColorVSgGGA0_GA56_GG_A60_Qo_tGGtGGA0_GAA06_TraitpQ0VyAA011ZIndexTraitO0VGG_ACyAA6ZStackVyA12_yAA14GeometryReaderVyACyACyACyACyA83_yAGyACyACyACyACyACy8Swiftier011RippleRingsG0VAA06_FrameS0VGAA09_PositionS0VGAA017_AllowsHitTestingQ0VGA77_yAA015TransitionTraitO0VGGA80_GSg_ACyACyACyAA6IDViewVyA86_0dG0V12PeerListAreaVA22_4UUIDVGA90_GA100_GA80_GSgACyA107_14SpeedDashboardVA80_GSgtGGAA010_AnimationQ0VySbGGA125_GAA05_BlurU0VGAA08_OpacityU0VGGA63_GGAA010_FlexFrameS0VGtGGA90_GACyxq_GAaj2aJRzAA0gQ0R_rlWl', symObjAddr: 0x13750, symBinAddr: 0x10006C6A0, symSize: 0x80 } - - { offset: 0x12C8FA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ColorVAA12_FrameLayoutVGACyxq_GAA4ViewA2aJRzAA0H8ModifierR_rlWl', symObjAddr: 0x137D0, symBinAddr: 0x10006C720, symSize: 0x60 } - - { offset: 0x12C90E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier12FDAGuideViewVAA21_TraitWritingModifierVyAA06ZIndexH3KeyVGGSgWOy', symObjAddr: 0x13830, symBinAddr: 0x10006C780, symSize: 0x30 } - - { offset: 0x12C922, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier12FDAGuideViewVAA21_TraitWritingModifierVyAA06ZIndexH3KeyVGGSgWOe', symObjAddr: 0x13860, symBinAddr: 0x10006C7B0, symSize: 0x30 } - - { offset: 0x12C936, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ColorVAA21_TraitWritingModifierVyAA06ZIndexF3KeyVGGACyxq_GAA4ViewA2aMRzAA0kH0R_rlWl', symObjAddr: 0x138F0, symBinAddr: 0x10006C840, symSize: 0x80 } - - { offset: 0x12C94A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV18minimumScaleFactor14CoreFoundation7CGFloatVvpACTKq', symObjAddr: 0x13990, symBinAddr: 0x10006C8E0, symSize: 0x20 } - - { offset: 0x12C95E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV18minimumScaleFactor14CoreFoundation7CGFloatVvpACTkq', symObjAddr: 0x139B0, symBinAddr: 0x10006C900, symSize: 0x20 } - - { offset: 0x12C972, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_ySbYbcfU1_TA', symObjAddr: 0x13C10, symBinAddr: 0x10006CB50, symSize: 0x40 } - - { offset: 0x12C986, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_TA', symObjAddr: 0x13CD0, symBinAddr: 0x10006CBE0, symSize: 0x10 } - - { offset: 0x12C99A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A11_yXEfU0_TA', symObjAddr: 0x13CE0, symBinAddr: 0x10006CBF0, symSize: 0x10 } - - { offset: 0x12C9AE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6HStackVyAA9TupleViewVyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGATGAA11_ClipEffectVyAA16RoundedRectangleVGGACyxq_GAA0G0A2AA2_RzAA0gM0R_rlWl', symObjAddr: 0x13CF0, symBinAddr: 0x10006CC00, symSize: 0x90 } - - { offset: 0x12C9C2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6HStackVyAA9TupleViewVyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGATGACyxq_GAA0G0A2aXRzAA0gM0R_rlWl', symObjAddr: 0x13D80, symBinAddr: 0x10006CC90, symSize: 0x70 } - - { offset: 0x12C9D6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGACyxq_GAA0G0A2aWRzAA0gM0R_rlWl', symObjAddr: 0x13DF0, symBinAddr: 0x10006CD00, symSize: 0x80 } - - { offset: 0x12C9EA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAA14_PaddingLayoutVGAA01_d5ShapeI0VyAA9RectangleVGGACyxq_GAA4ViewA2aWRzAA0oI0R_rlWl', symObjAddr: 0x13E90, symBinAddr: 0x10006CDA0, symSize: 0x90 } - - { offset: 0x12C9FE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAA14_PaddingLayoutVGACyxq_GAA4ViewA2aQRzAA0mI0R_rlWl', symObjAddr: 0x13F20, symBinAddr: 0x10006CE30, symSize: 0x70 } - - { offset: 0x12CA12, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGACyxq_GAA4ViewA2aNRzAA0kI0R_rlWl', symObjAddr: 0x13F90, symBinAddr: 0x10006CEA0, symSize: 0x80 } - - { offset: 0x12CA26, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAGyAA5ColorVSgGGAA14_PaddingLayoutVGAA01_d5ShapeI0VyAA9RectangleVGGACyxq_GAA4ViewA2AA0_RzAA0pI0R_rlWl', symObjAddr: 0x14030, symBinAddr: 0x10006CF40, symSize: 0x90 } - - { offset: 0x12CA3A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAGyAA5ColorVSgGGAA14_PaddingLayoutVGACyxq_GAA4ViewA2aVRzAA0nI0R_rlWl', symObjAddr: 0x140C0, symBinAddr: 0x10006CFD0, symSize: 0x70 } - - { offset: 0x12CA4E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAGyAA5ColorVSgGGACyxq_GAA4ViewA2aSRzAA0lI0R_rlWl', symObjAddr: 0x14130, symBinAddr: 0x10006D040, symSize: 0x90 } - - { offset: 0x12CA62, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x14200, symBinAddr: 0x10006D110, symSize: 0x20 } - - { offset: 0x12CA76, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x14220, symBinAddr: 0x10006D130, symSize: 0x10 } - - { offset: 0x12CA8A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU1_yyXEfU_TA', symObjAddr: 0x14440, symBinAddr: 0x10006D310, symSize: 0x10 } - - { offset: 0x12CA9E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU_yyXEfU_TA', symObjAddr: 0x14450, symBinAddr: 0x10006D320, symSize: 0x10 } - - { offset: 0x12CAB2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_TA', symObjAddr: 0x144F0, symBinAddr: 0x10006D350, symSize: 0x10 } - - { offset: 0x12CAC6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA08ModifiedD0VyAA6ButtonVyAA4TextVGAA32_EnvironmentKeyTransformModifierVySbGGAA7ForEachVySay10Foundation3URLVGAsGyAA6HStackVyAA9TupleViewVyAI_AA5ImageVSgtGGGGGACyxq_GAA0R0A2AA6_RzAAA6_R_rlWl', symObjAddr: 0x14500, symBinAddr: 0x10006D360, symSize: 0x70 } - - { offset: 0x12CADA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ButtonVyAA4TextVGAA32_EnvironmentKeyTransformModifierVySbGGACyxq_GAA4ViewA2aNRzAA0kJ0R_rlWl', symObjAddr: 0x14570, symBinAddr: 0x10006D3D0, symSize: 0xA0 } - - { offset: 0x12CAEE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySay10Foundation3URLVGAfA6ButtonVyAA6HStackVyAA9TupleViewVyAA4TextV_AA5ImageVSgtGGGGACyxq_q0_GAA0J0A2aXR0_rlWl', symObjAddr: 0x14610, symBinAddr: 0x10006D470, symSize: 0x70 } - - { offset: 0x12CB02, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4ViewPAAE8disabledyQrSbFySbzcfU_TA', symObjAddr: 0x14710, symBinAddr: 0x10006D570, symSize: 0x10 } - - { offset: 0x12CB16, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU2_yyXEfU_TA', symObjAddr: 0x14830, symBinAddr: 0x10006D690, symSize: 0x10 } - - { offset: 0x12CB2A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU1_yyXEfU_TA', symObjAddr: 0x14840, symBinAddr: 0x10006D6A0, symSize: 0x10 } - - { offset: 0x12CB3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU0_yyXEfU_TA', symObjAddr: 0x14850, symBinAddr: 0x10006D6B0, symSize: 0x20 } - - { offset: 0x12CB52, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_yyScMYccfU_TA', symObjAddr: 0x14B40, symBinAddr: 0x10006D9A0, symSize: 0x50 } - - { offset: 0x12CB66, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_A29_yXEfU0_TA', symObjAddr: 0x14B90, symBinAddr: 0x10006D9F0, symSize: 0x20 } - - { offset: 0x12CB7A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12createConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyFyyXEfU0_TA', symObjAddr: 0x14BF0, symBinAddr: 0x10006DA50, symSize: 0x10 } - - { offset: 0x12CB8E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12createConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyFyyXEfU1_TA', symObjAddr: 0x14C00, symBinAddr: 0x10006DA60, symSize: 0x20 } - - { offset: 0x12CBA2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_A123_yXEfU0_yyScMYccfU_yyXEfU_TA', symObjAddr: 0x14C20, symBinAddr: 0x10006DA80, symSize: 0x10 } - - { offset: 0x12CBB6, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE14textFieldStyleyQrqd__AA04TextgH0Rd__lFQOyAA0iG0VyAA0I0VG_AA013RoundedBorderigH0VQo_AA30_EnvironmentKeyWritingModifierVySSSgGGACyxq_GAad2aDRzAA0eO0R_rlWl', symObjAddr: 0x14C50, symBinAddr: 0x10006DAB0, symSize: 0x120 } - - { offset: 0x12CBCA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwxx', symObjAddr: 0x14FD0, symBinAddr: 0x10006DE30, symSize: 0x30 } - - { offset: 0x12CBDE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwcp', symObjAddr: 0x15000, symBinAddr: 0x10006DE60, symSize: 0x60 } - - { offset: 0x12CBF2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwca', symObjAddr: 0x15060, symBinAddr: 0x10006DEC0, symSize: 0x80 } - - { offset: 0x12CC06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwta', symObjAddr: 0x15100, symBinAddr: 0x10006DF40, symSize: 0x50 } - - { offset: 0x12CC1A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwet', symObjAddr: 0x15150, symBinAddr: 0x10006DF90, symSize: 0x50 } - - { offset: 0x12CC2E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVwst', symObjAddr: 0x151A0, symBinAddr: 0x10006DFE0, symSize: 0x50 } - - { offset: 0x12CC42, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewVMa', symObjAddr: 0x151F0, symBinAddr: 0x10006E030, symSize: 0x10 } - - { offset: 0x12CC56, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVwxx', symObjAddr: 0x15230, symBinAddr: 0x10006E040, symSize: 0x30 } - - { offset: 0x12CC6A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVwcp', symObjAddr: 0x15260, symBinAddr: 0x10006E070, symSize: 0x60 } - - { offset: 0x12CC7E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVwca', symObjAddr: 0x152C0, symBinAddr: 0x10006E0D0, symSize: 0x90 } - - { offset: 0x12CC92, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVwta', symObjAddr: 0x15380, symBinAddr: 0x10006E160, symSize: 0x70 } - - { offset: 0x12CCA6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVMa', symObjAddr: 0x15490, symBinAddr: 0x10006E1D0, symSize: 0x10 } - - { offset: 0x12CCBA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwxx', symObjAddr: 0x154A0, symBinAddr: 0x10006E1E0, symSize: 0x30 } - - { offset: 0x12CCCE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwcp', symObjAddr: 0x154D0, symBinAddr: 0x10006E210, symSize: 0x60 } - - { offset: 0x12CCE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwca', symObjAddr: 0x15530, symBinAddr: 0x10006E270, symSize: 0x80 } - - { offset: 0x12CCF6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwta', symObjAddr: 0x155D0, symBinAddr: 0x10006E2F0, symSize: 0x50 } - - { offset: 0x12CD0A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwet', symObjAddr: 0x15620, symBinAddr: 0x10006E340, symSize: 0x50 } - - { offset: 0x12CD1E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVwst', symObjAddr: 0x15670, symBinAddr: 0x10006E390, symSize: 0x50 } - - { offset: 0x12CD32, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaVMa', symObjAddr: 0x156C0, symBinAddr: 0x10006E3E0, symSize: 0x10 } - - { offset: 0x12CD46, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA16SubscriptionViewVy7Combine9PublishedV9PublisherVy10Foundation4UUIDV_GAEyAJySb_GAEyAoCyACyACyAA6ZStackVyAA05TupleF0VyAA012_ConditionalD0VyACyACyAA6VStackVyASyACyACyAA6HStackVyASyAA0F0PAAE9menuStyleyQrqd__AA04MenuR0Rd__lFQOyAA0S0VyACyACyACyAYyASyAA5ImageV_ACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGtGGAA14_PaddingLayoutVGA16_GAA11_ClipEffectVyAA16RoundedRectangleVGGASyAA7SectionVyA7_AUyACyAA6ButtonVyA7_GAA01_vw9TransformY0VySbGGAA7ForEachVySayAK3URLVGA37_A28_yAYyASyA7__A5_SgtGGGGGAA05EmptyF0VG_AA7DividerVA29_A33_A33_A49_A29_A29_A29_A49_A33_tGG_AA016BorderlessButtonsR0VQo__AA6SpacerVAYyASyA_AAE06buttonR0yQrqd__AA015PrimitiveButtonR0Rd__lFQOyA28_yACyACyACyA5_A9_yAA4FontVSgGGA16_GAA01_d5ShapeY0VyAA9RectangleVGGG_AA011PlainButtonR0VQo__A74_A_AAEA57_yQrqd__AAA58_Rd__lFQOyA28_yACyACyACyA63_A9_yAA5ColorVSgGGA16_GA69_GG_A73_Qo_tGGtGGA16_GAA06_TraitxY0VyAA011ZIndexTraitW0VGG_ACyAQyAUyAA14GeometryReaderVyACyACyACyACyAQyASyACyACyACyACyACy8Swiftier011RippleRingsF0VAA12_FrameLayoutVGAA15_PositionLayoutVGAA017_AllowsHitTestingY0VGA90_yAA015TransitionTraitW0VGGA93_GSg_ACyACyACyAA6IDViewVyA97_0dF0V12PeerListAreaVAMGA101_GA111_GA93_GSgACyA118_14SpeedDashboardVA93_GSgtGGAA010_AnimationY0VySbGGA134_GAA11_BlurEffectVGAA14_OpacityEffectVGGA76_GGAA16_FlexFrameLayoutVGtGGA101_GAA011_BackgroundrY0VyA76_GGACyA76_A101_GG_ACyACyACyACyACyA97_03LogF0VA147_GA153_yAA8MaterialVGGAA23_CompositingGroupEffectVGA93_GA111_GSgACyACyACyACyA97_08SettingsF0VA147_GA163_GA93_GA111_GSgACyACyACyACyA97_012ConfigEditorF0VA147_GA163_GA93_GA111_GSgACyACyACyA116_yA97_015ConfigGeneratorF0VA37_SgGA147_GA93_GA111_GSgASyA_AAE12onTapGesture5count7performQrSi_yyctFQOyACyA76_A93_G_Qo__ACyACyACyACyACyACyAWyASyA7__ACyACyA7_A9_yAA0U9AlignmentOGGA16_GSgACyAWyASyA7__A_AAE8onSubmit2of_QrAA14SubmitTriggersV_yyctFQOyA_AAE21disableAutocorrectionyQrSbSgFQOyACyA_AAE09textFieldR0yQrqd__AA0u5FieldR0Rd__lFQOyAA0U5FieldVyA7_G_AA013RoundedBorderu5FieldR0VQo_A9_ySSSgGG_Qo__Qo_A7_tGGA16_GAYyASyA29__ACyA_AAEA57_yQrqd__AAA58_Rd__lFQOyA29__AA023BorderedProminentButtonR0VQo_A32_GtGGtGGA16_GA101_GAA011_BackgroundY0VyAA06_ShapeF0VyA22_A76_GGGAA13_ShadowEffectVGA93_GA111_GtGSgACyA97_08FDAGuideF0VA93_GSgtGGAA012_ValueActionY0VyA38_GGAA017_AppearanceActionY0VGA261_GGGGA237_yA97_11ScrollFixerVGGACyxq_GAaz2aZRzAA0fY0R_rlWl', symObjAddr: 0x156E0, symBinAddr: 0x10006E400, symSize: 0xA0 } - - { offset: 0x12CD5A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV7SwiftUI0C0AA4BodyAfGP_AIWT', symObjAddr: 0x15780, symBinAddr: 0x10006E4A0, symSize: 0x20 } - - { offset: 0x12CD6E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV7SwiftUI0C0AA4BodyAfGP_AIWT', symObjAddr: 0x157A0, symBinAddr: 0x10006E4C0, symSize: 0x20 } - - { offset: 0x12CD82, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0x157C0, symBinAddr: 0x10006E4E0, symSize: 0x20 } - - { offset: 0x12CD96, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvgy10Foundation12NotificationVcfU0_TA', symObjAddr: 0x157F0, symBinAddr: 0x10006E510, symSize: 0x20 } - - { offset: 0x12CDEC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11TransactionVWOc', symObjAddr: 0x15840, symBinAddr: 0x10006E530, symSize: 0x30 } - - { offset: 0x12CE00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_yyScMYccfU0_TA', symObjAddr: 0x15870, symBinAddr: 0x10006E560, symSize: 0x10 } - - { offset: 0x12CE14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_yyScMYccfU0_yyXEfU_TA', symObjAddr: 0x15880, symBinAddr: 0x10006E570, symSize: 0x60 } - - { offset: 0x12CE70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_yyScMYccfU_TA', symObjAddr: 0x158E0, symBinAddr: 0x10006E5D0, symSize: 0x10 } - - { offset: 0x12CEB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_yyScMYccfU0_TA', symObjAddr: 0x15930, symBinAddr: 0x10006E620, symSize: 0x10 } - - { offset: 0x12CEC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_yyScMYccfU_TA', symObjAddr: 0x159B0, symBinAddr: 0x10006E6A0, symSize: 0x10 } - - { offset: 0x12CED8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_A0_yXEfU0_TA', symObjAddr: 0x159C0, symBinAddr: 0x10006E6B0, symSize: 0x10 } - - { offset: 0x12CEEC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardVWOc', symObjAddr: 0x159D0, symBinAddr: 0x10006E6C0, symSize: 0x30 } - - { offset: 0x12CF00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVAC7SwiftUI4ViewAAWl', symObjAddr: 0x15A00, symBinAddr: 0x10006E6F0, symSize: 0x30 } - - { offset: 0x12CF14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerInfoVWOh', symObjAddr: 0x15B80, symBinAddr: 0x10006E7E0, symSize: 0x30 } - - { offset: 0x12CF28, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA9LazyHGridVyAA7ForEachVySay8Swiftier8PeerInfoVGSSACyACyACyAA13EquatableViewVyAH0J4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionU3KeyVGGGGAA08_PaddingP0VGAA01_d5ShapeW0VyAA0T0VGGACyxq_GAA0M0A2AA16_RzAA0mW0R_rlWl', symObjAddr: 0x15BD0, symBinAddr: 0x10006E830, symSize: 0x90 } - - { offset: 0x12CF3C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA9LazyHGridVyAA7ForEachVySay8Swiftier8PeerInfoVGSSACyACyACyAA13EquatableViewVyAH0J4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionU3KeyVGGGGAA08_PaddingP0VGACyxq_GAA0M0A2AA10_RzAA0mW0R_rlWl', symObjAddr: 0x15C60, symBinAddr: 0x10006E8C0, symSize: 0x80 } - - { offset: 0x12CF50, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySay8Swiftier8PeerInfoVGSSAA15ModifiedContentVyAIyAIyAA13EquatableViewVyAD0F4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionS3KeyVGGGACyxq_q0_GAA0K0A2AA4_R0_rlWl', symObjAddr: 0x15D40, symBinAddr: 0x10006E9A0, symSize: 0x60 } - - { offset: 0x12CF64, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA13EquatableViewVy8Swiftier8PeerCardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionP3KeyVGGACyxq_GAA0F0A2aZRzAA0fR0R_rlWl', symObjAddr: 0x15DA0, symBinAddr: 0x10006EA00, symSize: 0x90 } - - { offset: 0x12CF78, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA13EquatableViewVy8Swiftier8PeerCardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGACyxq_GAA0F0A2aTRzAA0F8ModifierR_rlWl', symObjAddr: 0x15E30, symBinAddr: 0x10006EA90, symSize: 0x90 } - - { offset: 0x12CF8C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA13EquatableViewVy8Swiftier8PeerCardVGAA12_FrameLayoutVGACyxq_GAA0F0A2aNRzAA0F8ModifierR_rlWl', symObjAddr: 0x15EC0, symBinAddr: 0x10006EB20, symSize: 0x80 } - - { offset: 0x12CFA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVwca', symObjAddr: 0x15FC0, symBinAddr: 0x10006EBE0, symSize: 0x40 } - - { offset: 0x12CFB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVwta', symObjAddr: 0x16020, symBinAddr: 0x10006EC20, symSize: 0x40 } - - { offset: 0x12CFC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVwet', symObjAddr: 0x16060, symBinAddr: 0x10006EC60, symSize: 0x50 } - - { offset: 0x12CFDC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVwst', symObjAddr: 0x160B0, symBinAddr: 0x10006ECB0, symSize: 0x40 } - - { offset: 0x12CFF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreVMa', symObjAddr: 0x160F0, symBinAddr: 0x10006ECF0, symSize: 0x10 } - - { offset: 0x12D004, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwxx', symObjAddr: 0x16100, symBinAddr: 0x10006ED00, symSize: 0x40 } - - { offset: 0x12D018, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwcp', symObjAddr: 0x16140, symBinAddr: 0x10006ED40, symSize: 0xA0 } - - { offset: 0x12D02C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwca', symObjAddr: 0x161E0, symBinAddr: 0x10006EDE0, symSize: 0xD0 } - - { offset: 0x12D040, size: 0x8, addend: 0x0, symName: ___swift_memcpy74_8, symObjAddr: 0x162B0, symBinAddr: 0x10006EEB0, symSize: 0x30 } - - { offset: 0x12D054, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwta', symObjAddr: 0x162E0, symBinAddr: 0x10006EEE0, symSize: 0xA0 } - - { offset: 0x12D068, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwet', symObjAddr: 0x16380, symBinAddr: 0x10006EF80, symSize: 0x50 } - - { offset: 0x12D07C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVwst', symObjAddr: 0x163D0, symBinAddr: 0x10006EFD0, symSize: 0x60 } - - { offset: 0x12D090, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVMa', symObjAddr: 0x16430, symBinAddr: 0x10006F030, symSize: 0x10 } - - { offset: 0x12D0A4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6HStackVyAA9TupleViewVyACyAA09EquatableG0Vy8Swiftier0dG0V9SpeedCardVGAA21_TraitWritingModifierVyAA010TransitionL3KeyVGGSg_ACyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonR0Rd__lFQOyAA0T0VyAJ09StartStopT4CoreVG_AA05PlaintR0VQo_AQyAA06ZIndexlP0VGGAVtGGAA14_PaddingLayoutVGAA12_FrameLayoutVGAA15_PositionLayoutVGACyxq_GAaw2aWRzAA0gN0R_rlWl', symObjAddr: 0x16480, symBinAddr: 0x10006F080, symSize: 0x70 } - - { offset: 0x12D0B8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6HStackVyAA9TupleViewVyACyAA09EquatableG0Vy8Swiftier0dG0V9SpeedCardVGAA21_TraitWritingModifierVyAA010TransitionL3KeyVGGSg_ACyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonR0Rd__lFQOyAA0T0VyAJ09StartStopT4CoreVG_AA05PlaintR0VQo_AQyAA06ZIndexlP0VGGAVtGGAA14_PaddingLayoutVGAA12_FrameLayoutVGACyxq_GAaw2aWRzAA0gN0R_rlWl', symObjAddr: 0x164F0, symBinAddr: 0x10006F0F0, symSize: 0x70 } - - { offset: 0x12D0CC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyACyAA09EquatableG0Vy8Swiftier0dG0V9SpeedCardVGAA21_TraitWritingModifierVyAA010TransitionL3KeyVGGSg_ACyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonR0Rd__lFQOyAA0T0VyAJ09StartStopT4CoreVG_AA05PlaintR0VQo_AQyAA06ZIndexlP0VGGAVtGGAA14_PaddingLayoutVGACyxq_GAaw2aWRzAA0gN0R_rlWl', symObjAddr: 0x16560, symBinAddr: 0x10006F160, symSize: 0x80 } - - { offset: 0x12D0E0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVyAA6SpacerV_ACyACyACyAA6ZStackVyAGyACyACyAA06ScrollG0VyACyACyAA9LazyHGridVyAA7ForEachVySay8Swiftier8PeerInfoVGSSACyACyACyAA09EquatableG0VyAR0P4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionZ3KeyVGGGGAA08_PaddingU0VGAA01_D13ShapeModifierVyAA0Y0VGGGAA19_BackgroundModifierVyAA14GeometryReaderVyACyAA5ColorVA27_yAR0J5FixerVGGGGGA0_G_ACyACyACyAEyAGyACyACyAA08ProgressG0VyAA05EmptyG0VA43_GAA06_ScaleW0VGAA30_EnvironmentKeyWritingModifierVyAA11ControlSizeOGG_AA4TextVtGGAA05_FlextU0VGA0_GA12_GSgtGGA59_GA0_GA17_GtGGA59_GAA18_AnimationModifierVySaySSGGGACyxq_GAA0G0A2AA78_RzAA0G8ModifierR_rlWl', symObjAddr: 0x165F0, symBinAddr: 0x10006F1F0, symSize: 0x90 } - - { offset: 0x12D0F4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAA6SpacerV_ACyACyACyAA6ZStackVyAGyACyACyAA06ScrollG0VyACyACyAA9LazyHGridVyAA7ForEachVySay8Swiftier8PeerInfoVGSSACyACyACyAA09EquatableG0VyAR0P4CardVGAA12_FrameLayoutVGAA11_ClipEffectVyAA16RoundedRectangleVGGAA21_TraitWritingModifierVyAA010TransitionZ3KeyVGGGGAA08_PaddingU0VGAA01_D13ShapeModifierVyAA0Y0VGGGAA19_BackgroundModifierVyAA14GeometryReaderVyACyAA5ColorVA27_yAR0J5FixerVGGGGGA0_G_ACyACyACyAEyAGyACyACyAA08ProgressG0VyAA05EmptyG0VA43_GAA06_ScaleW0VGAA30_EnvironmentKeyWritingModifierVyAA11ControlSizeOGG_AA4TextVtGGAA05_FlextU0VGA0_GA12_GSgtGGA59_GA0_GA17_GtGGA59_GACyxq_GAA0G0A2AA73_RzAA0G8ModifierR_rlWl', symObjAddr: 0x16680, symBinAddr: 0x10006F280, symSize: 0x80 } - - { offset: 0x12D108, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV7SwiftUI0C0AA4BodyAfGP_AIWT', symObjAddr: 0x16700, symBinAddr: 0x10006F300, symSize: 0x20 } - - { offset: 0x12D11C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x16720, symBinAddr: 0x10006F320, symSize: 0x20 } - - { offset: 0x12D130, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA4TextVAA12_FrameLayoutVGAA30_EnvironmentKeyWritingModifierVySiSgGGAJy12CoreGraphics7CGFloatVGGAA13_OffsetEffectVGSgWOi0_', symObjAddr: 0x16740, symBinAddr: 0x10006F340, symSize: 0x40 } - - { offset: 0x12D15A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6ZStackVyAA9TupleViewVyACyACyAA06_ShapeG0VyAA6CircleVAA5ColorVGAA12_FrameLayoutVGAA13_ShadowEffectVG_ACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAA016_ForegroundStyleS0VyAMGGACyACyACyACyAA4TextVAPGAXySiSgGGAXy12CoreGraphics7CGFloatVGGAA07_OffsetN0VGSgtGGAPGAA08_PaddingL0VGACyxq_GAA0G0A2AA28_RzAA0gS0R_rlWl', symObjAddr: 0x16870, symBinAddr: 0x10006F3D0, symSize: 0x70 } - - { offset: 0x12D16E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ZStackVyAA9TupleViewVyACyACyAA06_ShapeG0VyAA6CircleVAA5ColorVGAA12_FrameLayoutVGAA13_ShadowEffectVG_ACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAA016_ForegroundStyleS0VyAMGGACyACyACyACyAA4TextVAPGAXySiSgGGAXy12CoreGraphics7CGFloatVGGAA07_OffsetN0VGSgtGGAPGACyxq_GAA0G0A2AA25_RzAA0gS0R_rlWl', symObjAddr: 0x168E0, symBinAddr: 0x10006F440, symSize: 0x80 } - - { offset: 0x12D182, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyACy8Swiftier014SmartSparklineG0VAA16_FlexFrameLayoutVGAA08_PaddingM0VGAA21_TraitWritingModifierVyAA06ZIndexO3KeyVGGAA017_AllowsHitTestingQ0VG_ACyACyAA6VStackVyAGyACyAA6HStackVyAGyACyACyAA5ImageVAA012_EnvironmentspQ0VyAA5ColorVSgGGA5_yAA4FontVSgGG_AA4TextVtGGAOG_AA6SpacerVACyA1_yAGyA17__A17_tGGALGA22_ACyA7_AA01_lM0VGtGGAOGAUGtGGALGA27_GAA011_BackgroundQ0VyAA06_ShapeG0VyAA16RoundedRectangleVA7_GGGAA08_OverlayQ0VyA40_yAA13_StrokedShapeVyA42_GA7_GGGACyxq_GAA0G0A2AA55_RzAA0gQ0R_rlWl', symObjAddr: 0x16970, symBinAddr: 0x10006F4D0, symSize: 0x90 } - - { offset: 0x12D196, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyACy8Swiftier014SmartSparklineG0VAA16_FlexFrameLayoutVGAA08_PaddingM0VGAA21_TraitWritingModifierVyAA06ZIndexO3KeyVGGAA017_AllowsHitTestingQ0VG_ACyACyAA6VStackVyAGyACyAA6HStackVyAGyACyACyAA5ImageVAA012_EnvironmentspQ0VyAA5ColorVSgGGA5_yAA4FontVSgGG_AA4TextVtGGAOG_AA6SpacerVACyA1_yAGyA17__A17_tGGALGA22_ACyA7_AA01_lM0VGtGGAOGAUGtGGALGA27_GAA011_BackgroundQ0VyAA06_ShapeG0VyAA16RoundedRectangleVA7_GGGACyxq_GAA0G0A2AA47_RzAA0gQ0R_rlWl', symObjAddr: 0x16A00, symBinAddr: 0x10006F560, symSize: 0x90 } - - { offset: 0x12D1AA, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6ZStackVyAA9TupleViewVyACyACyACyACy8Swiftier014SmartSparklineG0VAA16_FlexFrameLayoutVGAA08_PaddingM0VGAA21_TraitWritingModifierVyAA06ZIndexO3KeyVGGAA017_AllowsHitTestingQ0VG_ACyACyAA6VStackVyAGyACyAA6HStackVyAGyACyACyAA5ImageVAA012_EnvironmentspQ0VyAA5ColorVSgGGA5_yAA4FontVSgGG_AA4TextVtGGAOG_AA6SpacerVACyA1_yAGyA17__A17_tGGALGA22_ACyA7_AA01_lM0VGtGGAOGAUGtGGALGA27_GACyxq_GAA0G0A2AA38_RzAA0gQ0R_rlWl', symObjAddr: 0x16A90, symBinAddr: 0x10006F5F0, symSize: 0x70 } - - { offset: 0x12D1BE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ZStackVyAA9TupleViewVyACyACyACyACy8Swiftier014SmartSparklineG0VAA16_FlexFrameLayoutVGAA08_PaddingM0VGAA21_TraitWritingModifierVyAA06ZIndexO3KeyVGGAA017_AllowsHitTestingQ0VG_ACyACyAA6VStackVyAGyACyAA6HStackVyAGyACyACyAA5ImageVAA012_EnvironmentspQ0VyAA5ColorVSgGGA5_yAA4FontVSgGG_AA4TextVtGGAOG_AA6SpacerVACyA1_yAGyA17__A17_tGGALGA22_ACyA7_AA01_lM0VGtGGAOGAUGtGGALGACyxq_GAA0G0A2AA37_RzAA0gQ0R_rlWl', symObjAddr: 0x16B00, symBinAddr: 0x10006F660, symSize: 0x80 } - - { offset: 0x12D1DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV17isAnyOverlayShown33_FD6C0C263E4B6E937596903D0DEE615BLLSbvg', symObjAddr: 0xE0, symBinAddr: 0x100059300, symSize: 0x160 } - - { offset: 0x130418, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg', symObjAddr: 0x240, symBinAddr: 0x100059460, symSize: 0x500 } - - { offset: 0x13067C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_', symObjAddr: 0x740, symBinAddr: 0x100059960, symSize: 0x2430 } - - { offset: 0x13136D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A21_yXEfU_', symObjAddr: 0x2B70, symBinAddr: 0x10005BD90, symSize: 0x520 } - - { offset: 0x131607, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_ySbYbcfU1_', symObjAddr: 0x3090, symBinAddr: 0x10005C2B0, symSize: 0xF0 } - - { offset: 0x131632, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_yycfU2_', symObjAddr: 0x3180, symBinAddr: 0x10005C3A0, symSize: 0x90 } - - { offset: 0x13165D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_', symObjAddr: 0x3210, symBinAddr: 0x10005C430, symSize: 0x700 } - - { offset: 0x131800, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_A108_yXEfU_', symObjAddr: 0x3910, symBinAddr: 0x10005CB30, symSize: 0x740 } - - { offset: 0x13190A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_A123_yXEfU0_', symObjAddr: 0x4C90, symBinAddr: 0x10005DEB0, symSize: 0x520 } - - { offset: 0x1319B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvg7SwiftUI05TupleC0VyAE012_ConditionalB0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AzE9AlignmentVtFQOyAE6VStackVyAGyAC06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvpQOy_Qo__AkEEAS8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAVQrAZ_A5ZA0_tFQOyAE6ZStackVyAIyAC07contentL0A4_LLQrvpQOy_Qo_AE5ColorVGG_Qo_tGG_Qo__A17_Qo_AkEEAstuVQrAZ_AZA0_tFQOyA17__Qo_G_AkEE10transitionyQrAE13AnyTransitionVFQOyAkEE6zIndexyQrSdFQOyAkEE16compositingGroupQryFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA03LogC0V_Qo__AE8MaterialVQo__Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA08SettingsC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEAL_AMQrqd___AQtAeRRd__lFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAA012ConfigEditorC0V_Qo__A36_Qo__Qo__Qo_SgAkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEEASA6_A7_A8_A9_A10_A11_AVQrAZ_A5ZA0_tFQOyAkEE2idyQrqd__SHRd__lFQOyAA015ConfigGeneratorC0V_10Foundation3URLVSgQo__Qo__Qo__Qo_SgAGyAkEE12onTapGesture5count7performQrSi_yyctFQOyAkEEA30_yQrSdFQOyA17__Qo__Qo__AkEEA27_yQrA29_FQOyAkEEA30_yQrSdFQOyAkEE6shadow5color6radius1x1yQrA17__A3YtFQOyAkEEAL_AVQrqd___A0_tAeJRd__lFQOyAkEEAstuVQrAZ_AZA0_tFQOyAkEE7paddingyQrAQ_AZtFQOyA2_yAGyAE4TextV_AkEEA78_yQrAQ_AZtFQOyAkEE013multilineTextY0yQrAE04TextY0OFQOyA80__Qo__Qo_SgAkEEA78_yQrAQ_AZtFQOyA2_yAGyA80__AkEE8onSubmit2of_QrAE14SubmitTriggersV_yyctFQOyAkEE21disableAutocorrectionyQrSbSgFQOyAkEE04textB4TypeyQrSo06NSTextB4TypeaSgFQOyAkEE09textFieldQ0yQrqd__AE09TextFieldQ0Rd__lFQOyAE9TextFieldVyA80_G_AE022RoundedBorderTextFieldQ0VQo__Qo__Qo__Qo_A80_tGG_Qo_AE6HStackVyAGyAE6ButtonVyA80_G_AkEE8disabledyQrSbFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyA115__AE023BorderedProminentButtonQ0VQo__Qo_tGGtGG_Qo__Qo__AE0P0PAEE4fill_5styleQrqd___AE04FillQ0VtAeRRd__lFQOyAE16RoundedRectangleV_A17_Qo_Qo__Qo__Qo__Qo_tGSgAkEEA30_yQrSdFQOyAA08FDAGuideC0V_Qo_SgtGyXEfU_A125_yXEfU4_A123_yXEfU0_yyScMYccfU_yyXEfU_', symObjAddr: 0x51B0, symBinAddr: 0x10005E3D0, symSize: 0xB0 } - - { offset: 0x1319E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgySay10Foundation3URLVGcfU0_', symObjAddr: 0x5260, symBinAddr: 0x10005E480, symSize: 0x260 } - - { offset: 0x131AE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgyycfU1_', symObjAddr: 0x54C0, symBinAddr: 0x10005E6E0, symSize: 0x470 } - - { offset: 0x131C2E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgyycfU2_', symObjAddr: 0x5930, symBinAddr: 0x10005EB50, symSize: 0x60 } - - { offset: 0x131C76, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgySbcfU3_', symObjAddr: 0x5990, symBinAddr: 0x10005EBB0, symSize: 0x50 } - - { offset: 0x131CAD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgySbcfU4_', symObjAddr: 0x59E0, symBinAddr: 0x10005EC00, symSize: 0x50 } - - { offset: 0x131CE4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV4bodyQrvgy10Foundation4UUIDVcfU5_', symObjAddr: 0x5A30, symBinAddr: 0x10005EC50, symSize: 0x90 } - - { offset: 0x131F26, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12createConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyF', symObjAddr: 0x4050, symBinAddr: 0x10005D270, symSize: 0xC40 } - - { offset: 0x132512, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12createConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyFyyXEfU0_', symObjAddr: 0xE170, symBinAddr: 0x100067350, symSize: 0xA0 } - - { offset: 0x1325B1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_', symObjAddr: 0x5AC0, symBinAddr: 0x10005ECE0, symSize: 0x370 } - - { offset: 0x13265F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_', symObjAddr: 0x5E30, symBinAddr: 0x10005F050, symSize: 0xF50 } - - { offset: 0x1327C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_', symObjAddr: 0x6D80, symBinAddr: 0x10005FFA0, symSize: 0x4C0 } - - { offset: 0x13289A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_', symObjAddr: 0x7250, symBinAddr: 0x100060460, symSize: 0x180 } - - { offset: 0x1328DF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_yyScMYccfU_', symObjAddr: 0x73D0, symBinAddr: 0x1000605E0, symSize: 0x100 } - - { offset: 0x132929, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_A29_yXEfU0_', symObjAddr: 0x74D0, symBinAddr: 0x1000606E0, symSize: 0x70 } - - { offset: 0x1329D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A32_yXEfU_A30_A25_cfU0_A29_yXEfU0_A28_yXEfU_', symObjAddr: 0x7540, symBinAddr: 0x100060750, symSize: 0x420 } - - { offset: 0x132A4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU0_', symObjAddr: 0x7960, symBinAddr: 0x100060B70, symSize: 0xF0 } - - { offset: 0x132A88, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU1_yyXEfU_', symObjAddr: 0x7A50, symBinAddr: 0x100060C60, symSize: 0x70 } - - { offset: 0x132AAD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_yyScMYccfU2_yyXEfU_', symObjAddr: 0x7AC0, symBinAddr: 0x100060CD0, symSize: 0xF0 } - - { offset: 0x132AD2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV20deleteSelectedConfig33_FD6C0C263E4B6E937596903D0DEE615BLLyyF', symObjAddr: 0x7C40, symBinAddr: 0x100060E50, symSize: 0x230 } - - { offset: 0x132B10, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A38_yXEfU_A5_yXEfU7_', symObjAddr: 0x7E70, symBinAddr: 0x100061080, symSize: 0x100 } - - { offset: 0x132B61, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A11_yXEfU0_', symObjAddr: 0x7F70, symBinAddr: 0x100061180, symSize: 0x220 } - - { offset: 0x132CE1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A11_yXEfU0_A7_yXEfU_', symObjAddr: 0x8190, symBinAddr: 0x1000613A0, symSize: 0x2B0 } - - { offset: 0x132D8E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_', symObjAddr: 0x8440, symBinAddr: 0x100061650, symSize: 0x590 } - - { offset: 0x132E0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU_yyXEfU_', symObjAddr: 0x89D0, symBinAddr: 0x100061BE0, symSize: 0x70 } - - { offset: 0x132E30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU1_yyXEfU_', symObjAddr: 0x8AB0, symBinAddr: 0x100061CC0, symSize: 0x70 } - - { offset: 0x132E84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_', symObjAddr: 0x8C40, symBinAddr: 0x100061E50, symSize: 0x340 } - - { offset: 0x132F73, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05TupleC0VyAF0C0PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyAF0R0VyAjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackVyAHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7SectionVyA5_AF012_ConditionalB0VyAjFE8disabledyQrSbFQOyAF6ButtonVyA5_G_Qo_AF7ForEachVySay10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyC0VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_A69_yXEfU4_', symObjAddr: 0x9000, symBinAddr: 0x100062210, symSize: 0x130 } - - { offset: 0x13301B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV11contentArea33_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI0C0PAFE7opacityyQrSdFQOyAhFE4blur6radius6opaqueQr12CoreGraphics7CGFloatV_SbtFQOyAhFE9animation_5valueQrAF9AnimationVSg_qd__tSQRd__lFQOyAhFEAP_AQQrAT_qd__tSQRd__lFQOyAF6ZStackVyAF05TupleC0VyAhFE6zIndexyQrSdFQOyAhFE10transitionyQrAF13AnyTransitionVFQOyAhFE16allowsHitTestingyQrSbFQOyAhFE8position1x1yQrAO_AOtFQOyAhFE5frame5width6height9alignmentQrAOSg_A9_AF9AlignmentVtFQOyAA011RippleRingsC0V_Qo__Qo__Qo__Qo__Qo_Sg_AhFEAYyQrSdFQOyAhFEAZyQrA0_FQOyAhFEA5_A6_A7_A8_QrA9__A9_A11_tFQOyAhFE2idyQrqd__SHRd__lFQOyAC08PeerListE0V_10Foundation4UUIDVQo__Qo__Qo__Qo_SgAhFEAYyQrSdFQOyAC14SpeedDashboardV_Qo_SgtGG_SbQo__SbQo__Qo__Qo_AF13GeometryProxyVcfU_', symObjAddr: 0x9130, symBinAddr: 0x100062340, symSize: 0x250 } - - { offset: 0x133254, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV11contentArea33_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI0C0PAFE7opacityyQrSdFQOyAhFE4blur6radius6opaqueQr12CoreGraphics7CGFloatV_SbtFQOyAhFE9animation_5valueQrAF9AnimationVSg_qd__tSQRd__lFQOyAhFEAP_AQQrAT_qd__tSQRd__lFQOyAF6ZStackVyAF05TupleC0VyAhFE6zIndexyQrSdFQOyAhFE10transitionyQrAF13AnyTransitionVFQOyAhFE16allowsHitTestingyQrSbFQOyAhFE8position1x1yQrAO_AOtFQOyAhFE5frame5width6height9alignmentQrAOSg_A9_AF9AlignmentVtFQOyAA011RippleRingsC0V_Qo__Qo__Qo__Qo__Qo_Sg_AhFEAYyQrSdFQOyAhFEAZyQrA0_FQOyAhFEA5_A6_A7_A8_QrA9__A9_A11_tFQOyAhFE2idyQrqd__SHRd__lFQOyAC08PeerListE0V_10Foundation4UUIDVQo__Qo__Qo__Qo_SgAhFEAYyQrSdFQOyAC14SpeedDashboardV_Qo_SgtGG_SbQo__SbQo__Qo__Qo_AF13GeometryProxyVcfU_A35_yXEfU_', symObjAddr: 0x9380, symBinAddr: 0x100062590, symSize: 0xEC0 } - - { offset: 0x1337C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV10splitValue33_FD6C0C263E4B6E937596903D0DEE615BLLSS6number_SS4unittvg', symObjAddr: 0xA240, symBinAddr: 0x100063450, symSize: 0xE0 } - - { offset: 0x1338AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg', symObjAddr: 0xA320, symBinAddr: 0x100063530, symSize: 0x450 } - - { offset: 0x133AE9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE16allowsHitTestingyQrSbFQOyAkGE6zIndexyQrSdFQOyAkGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAkGE5frame8minWidth05idealV003maxV00U6Height0wY00xY09alignmentQrAV_A5vG9AlignmentVtFQOyAA014SmartSparklineC0V_Qo__Qo__Qo__Qo__AkGEAMyQrSdFQOyAkGEANyQrAR_AVtFQOyAG6VStackVyAIyAkGEANyQrAR_AVtFQOyAG6HStackVyAIyAkGE4fontyQrAG4FontVSgFQOyAkGE15foregroundColoryQrAG5ColorVSgFQOyAG5ImageV_Qo__Qo__AG4TextVtGG_Qo__AG6SpacerVAkGEAwxyZA_A0_A1_A2_QrAV_A5VA4_tFQOyA14_yAIyA28__A28_tGG_Qo_A33_AkGEAW5width6heightA2_QrAV_AVA4_tFQOyA21__Qo_tGG_Qo__Qo_tGyXEfU_', symObjAddr: 0xA770, symBinAddr: 0x100063980, symSize: 0x5D0 } - - { offset: 0x133C4C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE16allowsHitTestingyQrSbFQOyAkGE6zIndexyQrSdFQOyAkGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAkGE5frame8minWidth05idealV003maxV00U6Height0wY00xY09alignmentQrAV_A5vG9AlignmentVtFQOyAA014SmartSparklineC0V_Qo__Qo__Qo__Qo__AkGEAMyQrSdFQOyAkGEANyQrAR_AVtFQOyAG6VStackVyAIyAkGEANyQrAR_AVtFQOyAG6HStackVyAIyAkGE4fontyQrAG4FontVSgFQOyAkGE15foregroundColoryQrAG5ColorVSgFQOyAG5ImageV_Qo__Qo__AG4TextVtGG_Qo__AG6SpacerVAkGEAwxyZA_A0_A1_A2_QrAV_A5VA4_tFQOyA14_yAIyA28__A28_tGG_Qo_A33_AkGEAW5width6heightA2_QrAV_AVA4_tFQOyA21__Qo_tGG_Qo__Qo_tGyXEfU_A40_yXEfU_', symObjAddr: 0xAD40, symBinAddr: 0x100063F50, symSize: 0x6C0 } - - { offset: 0x133DE1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE16allowsHitTestingyQrSbFQOyAkGE6zIndexyQrSdFQOyAkGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAkGE5frame8minWidth05idealV003maxV00U6Height0wY00xY09alignmentQrAV_A5vG9AlignmentVtFQOyAA014SmartSparklineC0V_Qo__Qo__Qo__Qo__AkGEAMyQrSdFQOyAkGEANyQrAR_AVtFQOyAG6VStackVyAIyAkGEANyQrAR_AVtFQOyAG6HStackVyAIyAkGE4fontyQrAG4FontVSgFQOyAkGE15foregroundColoryQrAG5ColorVSgFQOyAG5ImageV_Qo__Qo__AG4TextVtGG_Qo__AG6SpacerVAkGEAwxyZA_A0_A1_A2_QrAV_A5VA4_tFQOyA14_yAIyA28__A28_tGG_Qo_A33_AkGEAW5width6heightA2_QrAV_AVA4_tFQOyA21__Qo_tGG_Qo__Qo_tGyXEfU_A40_yXEfU_A29_yXEfU_', symObjAddr: 0xB400, symBinAddr: 0x100064610, symSize: 0x350 } - - { offset: 0x133E87, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE16allowsHitTestingyQrSbFQOyAkGE6zIndexyQrSdFQOyAkGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAkGE5frame8minWidth05idealV003maxV00U6Height0wY00xY09alignmentQrAV_A5vG9AlignmentVtFQOyAA014SmartSparklineC0V_Qo__Qo__Qo__Qo__AkGEAMyQrSdFQOyAkGEANyQrAR_AVtFQOyAG6VStackVyAIyAkGEANyQrAR_AVtFQOyAG6HStackVyAIyAkGE4fontyQrAG4FontVSgFQOyAkGE15foregroundColoryQrAG5ColorVSgFQOyAG5ImageV_Qo__Qo__AG4TextVtGG_Qo__AG6SpacerVAkGEAwxyZA_A0_A1_A2_QrAV_A5VA4_tFQOyA14_yAIyA28__A28_tGG_Qo_A33_AkGEAW5width6heightA2_QrAV_AVA4_tFQOyA21__Qo_tGG_Qo__Qo_tGyXEfU_A40_yXEfU_A34_yXEfU0_', symObjAddr: 0xB750, symBinAddr: 0x100064960, symSize: 0x330 } - - { offset: 0x133F64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardV7SwiftUI0C0AafGP4body4BodyQzvgTW', symObjAddr: 0xBA80, symBinAddr: 0x100064C90, symSize: 0x50 } - - { offset: 0x133F8D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV9SpeedCardVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0xBAD0, symBinAddr: 0x100064CE0, symSize: 0xD0 } - - { offset: 0x134014, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg', symObjAddr: 0xBBA0, symBinAddr: 0x100064DB0, symSize: 0x1D0 } - - { offset: 0x1341C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_', symObjAddr: 0xBD70, symBinAddr: 0x100064F80, symSize: 0xB10 } - - { offset: 0x134401, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_yyScMYccfU_', symObjAddr: 0xC880, symBinAddr: 0x100065A90, symSize: 0xB0 } - - { offset: 0x13445B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV4bodyQrvg7SwiftUI05TupleC0VyAG0C0PAGE10transitionyQrAG13AnyTransitionVFQOyAG09EquatableC0VyAC0D4CardVG_Qo_Sg_AkGE6zIndexyQrSdFQOyAkGE11buttonStyleyQrqd__AG015PrimitiveButtonQ0Rd__lFQOyAG0S0VyAA09StartStopS4CoreVG_AG05PlainsQ0VQo__Qo_AUtGyXEfU_A0_yXEfU0_', symObjAddr: 0xC930, symBinAddr: 0x100065B40, symSize: 0xC0 } - - { offset: 0x13455E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV14SpeedDashboardV7SwiftUI0C0AafGP4body4BodyQzvgTW', symObjAddr: 0xCA20, symBinAddr: 0x100065C00, symSize: 0x40 } - - { offset: 0x1345A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg', symObjAddr: 0xCAB0, symBinAddr: 0x100065C90, symSize: 0x3E0 } - - { offset: 0x13489F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_', symObjAddr: 0xCE90, symBinAddr: 0x100066070, symSize: 0x3B0 } - - { offset: 0x134A43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_', symObjAddr: 0xD240, symBinAddr: 0x100066420, symSize: 0x6E0 } - - { offset: 0x134D34, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_A44_yXEfU_', symObjAddr: 0xD920, symBinAddr: 0x100066B00, symSize: 0x1A0 } - - { offset: 0x134E1E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_A44_yXEfU_A39_yXEfU_', symObjAddr: 0xDAC0, symBinAddr: 0x100066CA0, symSize: 0x160 } - - { offset: 0x134E73, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_A44_yXEfU_A39_yXEfU_A38_A20_cfU_', symObjAddr: 0xDC20, symBinAddr: 0x100066E00, symSize: 0x210 } - - { offset: 0x135039, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV4bodyQrvg7SwiftUI05TupleC0VyAG6SpacerV_AG0C0PAGE7paddingyQrAG4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAmGE5frame5width6height9alignmentQrAV_AvG9AlignmentVtFQOyAmGEAW8minWidth05idealX003maxX00W6Height0Y6Height0Z6HeightAZQrAV_A5VA0_tFQOyAG6ZStackVyAIyAmGEAwxyZQrAV_AVA0_tFQOyAmAE21preventVerticalBounceQryFQOyAG06ScrollC0VyAmGE12contentShape_6eoFillQrqd___SbtAG5ShapeRd__lFQOyAmGEANyQrAR_AVtFQOyAG9LazyHGridVyAG7ForEachVySayAA0D4InfoVGSSAmGE10transitionyQrAG13AnyTransitionVFQOyAmGE9clipShape_5styleQrqd___AG9FillStyleVtAGA14_Rd__lFQOyAmGEAwxyZQrAV_AVA0_tFQOyAG09EquatableC0VyAA0D4CardVG_Qo__AG16RoundedRectangleVQo__Qo_GG_Qo__AG9RectangleVQo_G_Qo__Qo__AmGEA22_yQrA24_FQOyAmGEAwxyZQrAV_AVA0_tFQOyAmGEAWA1_A2_A3_A4_A5_A6_AZQrAV_A5VA0_tFQOyAG6VStackVyAIyAmGE11controlSizeyQrAG11ControlSizeOFQOyAmGE11scaleEffect_6anchorQrAU_AG9UnitPointVtFQOyAG08ProgressC0VyAG05EmptyC0VA60_G_Qo__Qo__AG4TextVtGG_Qo__Qo__Qo_SgtGG_Qo__Qo__Qo_tGyXEfU_A72_yXEfU_A66_yXEfU0_', symObjAddr: 0xDE30, symBinAddr: 0x100067010, symSize: 0x320 } - - { offset: 0x1351D1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV12PeerListAreaV7SwiftUI0C0AafGP4body4BodyQzvgTW', symObjAddr: 0xE150, symBinAddr: 0x100067330, symSize: 0x20 } - - { offset: 0x1351F1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewVACycfC', symObjAddr: 0xE280, symBinAddr: 0x100067460, symSize: 0x420 } - - { offset: 0x13536F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ContentViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0xE6A0, symBinAddr: 0x100067880, symSize: 0x10 } - - { offset: 0x1353AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreV4bodyQrvg', symObjAddr: 0xE6B0, symBinAddr: 0x100067890, symSize: 0x1B0 } - - { offset: 0x1354B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreV4bodyQrvg7SwiftUI9TupleViewVyAE0J0PAEE6shadow5color6radius1x1yQrAE5ColorV_0E8Graphics7CGFloatVA2StFQOyAiEE5frame5width6height9alignmentQrASSg_AxE9AlignmentVtFQOyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0vZ0Rd__lFQOyAE6CircleV_APQo__Qo__Qo__AiEE010foregroundZ0yQrqd__AEA5_Rd__lFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__APQo_AiEE6offsetAmNQrAS_AStFQOyAiEE18minimumScaleFactoryQrASFQOyAiEE9lineLimityQrSiSgFQOyAiEEAtuvWQrAX_AxZtFQOyAE4TextV_Qo__Qo__Qo__Qo_SgtGyXEfU_', symObjAddr: 0xE860, symBinAddr: 0x100067A40, symSize: 0x6B0 } - - { offset: 0x135686, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19StartStopButtonCoreV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0xEF10, symBinAddr: 0x1000680F0, symSize: 0x20 } - - { offset: 0x1356BD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg', symObjAddr: 0xEF30, symBinAddr: 0x100068110, symSize: 0x2C0 } - - { offset: 0x1357D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_', symObjAddr: 0xF1F0, symBinAddr: 0x1000683D0, symSize: 0x430 } - - { offset: 0x135A4C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_', symObjAddr: 0xF620, symBinAddr: 0x100068800, symSize: 0x280 } - - { offset: 0x135B28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_', symObjAddr: 0xF8A0, symBinAddr: 0x100068A80, symSize: 0x6A0 } - - { offset: 0x135CB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A42_yXEfU_', symObjAddr: 0xFF40, symBinAddr: 0x100069120, symSize: 0x4A0 } - - { offset: 0x135EA5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_', symObjAddr: 0x103E0, symBinAddr: 0x1000695C0, symSize: 0x3E0 } - - { offset: 0x135FA9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_', symObjAddr: 0x107C0, symBinAddr: 0x1000699A0, symSize: 0x4D0 } - - { offset: 0x13602E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_A58_yXEfU_yyScMYccfU0_', symObjAddr: 0x10C90, symBinAddr: 0x100069E70, symSize: 0x120 } - - { offset: 0x1360A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV4bodyQrvg7SwiftUI05TupleC0VyAE5ShapePAEE4fill_5styleQrqd___AE9FillStyleVtAE0hL0Rd__lFQOyAE9RectangleV_AE8MaterialVQo__AE0C0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A1_AE9AlignmentVtFQOyAuEE6shadow5color6radius1x1yQrAE5ColorV_A0_A0_A0_tFQOyAuEE10background_AYQrqd___A3_tAeTRd__lFQOyAuEE7paddingyQrA0_FQOyAE6VStackVyAGyAuEE010foregroundZ0yQrA10_SgFQOyAuEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__A14_yAGyAE4TextV_AuEEA12_yQrAE4EdgeO3SetV_A1_tFQOyAuEEA15_yQrA16_FQOyAuEE013multilineTextV0yQrAE04TextV0OFQOyA26__Qo__Qo__Qo_AuEEA12_yQrA30__A1_tFQOyA14_yAGyAC9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStFQOy_Qo__A41_A41_tGG_Qo_A14_yAGyAE6HStackVyAGyAuEE06buttonL0yQrqd__AE015PrimitiveButtonL0Rd__lFQOyAE6ButtonVyA26_G_AE014BorderedButtonL0VQo__AuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE023BorderedProminentButtonL0VQo_tGG_AuEEA15_yQrA16_FQOyAuEEA47_yQrqd__AEA48_Rd__lFQOyA51__AE011PlainButtonL0VQo__Qo_tGGtGGtGG_Qo__AiEEAJ_AKQrqd___AMtAeNRd__lFQOyAE07RoundedM0V_A10_Qo_Qo__Qo__Qo_tGyXEfU_A68_yXEfU_A66_yXEfU_A64_yXEfU0_yyScMYccfU0_', symObjAddr: 0x10DB0, symBinAddr: 0x100069F90, symSize: 0x50 } - - { offset: 0x13627E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV9guideStep33_FD6C0C263E4B6E937596903D0DEE615BLL6number4textQrSS_SStF7SwiftUI05TupleC0VyAH0C0PAHE10background_9alignmentQrqd___AH9AlignmentVtAhKRd__lFQOyAlHE5frame5width6heightANQr12CoreGraphics7CGFloatVSg_AwPtFQOyAH4TextV_Qo__AH5ShapePAHE4fill_5styleQrqd___AH9FillStyleVtAH10ShapeStyleRd__lFQOyAH6CircleV_AH5ColorVQo_Qo__AYtGyXEfU_', symObjAddr: 0x10E00, symBinAddr: 0x100069FE0, symSize: 0x4B0 } - - { offset: 0x13636E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12FDAGuideViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0x112B0, symBinAddr: 0x10006A490, symSize: 0x40 } - - { offset: 0x1363C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewC11scrollWheel4withySo7NSEventC_tFTo', symObjAddr: 0x112F0, symBinAddr: 0x10006A4D0, symSize: 0xD0 } - - { offset: 0x136466, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewC5frameACSo6CGRectV_tcfcTo', symObjAddr: 0x113C0, symBinAddr: 0x10006A5A0, symSize: 0x60 } - - { offset: 0x1364C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewC5coderACSgSo7NSCoderC_tcfcTo', symObjAddr: 0x11420, symBinAddr: 0x10006A600, symSize: 0x80 } - - { offset: 0x1364F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewCfZ', symObjAddr: 0x114A0, symBinAddr: 0x10006A680, symSize: 0x30 } - - { offset: 0x13653F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24HorizontalOnlyScrollViewCfD', symObjAddr: 0x114D0, symBinAddr: 0x10006A6B0, symSize: 0x310 } - - { offset: 0x1366D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x10006F950, symSize: 0x30 } - - { offset: 0x1366F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC6sharedACvpZ', symObjAddr: 0x4E80, symBinAddr: 0x100137C48, symSize: 0x0 } - - { offset: 0x1367E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x10006F950, symSize: 0x30 } - - { offset: 0x1368A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceCMa', symObjAddr: 0x5C0, symBinAddr: 0x10006FF10, symSize: 0x20 } - - { offset: 0x1368B4, size: 0x8, addend: 0x0, symName: '_$sScPSgWOh', symObjAddr: 0x7D0, symBinAddr: 0x10006FF80, symSize: 0x40 } - - { offset: 0x1368C8, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tgq5TA', symObjAddr: 0x830, symBinAddr: 0x10006FFE0, symSize: 0x80 } - - { offset: 0x1368DC, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tgq5TATQ0_', symObjAddr: 0x8B0, symBinAddr: 0x100070060, symSize: 0x50 } - - { offset: 0x136990, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC5start10configPath10completionySS_ySbctFySb_SSSgtcfU_', symObjAddr: 0x30, symBinAddr: 0x10006F980, symSize: 0x160 } - - { offset: 0x136ACA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC4stop10completionyySbc_tFySbcfU_091$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05Tuplem5VyAF0m40PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyy2R0x36AjFE12cornerRadius_11antialiasedQr12b91Graphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackx78AHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7Sectionx22A5_AF012_ConditionalB0x31AjFE8disabledyQrSbFQOyAF6Buttonx18A5_G_Qo_AF7ForEachx60Say10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyM504VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_ySbcfU_Tf3npf_n', symObjAddr: 0x190, symBinAddr: 0x10006FAE0, symSize: 0x10 } - - { offset: 0x136B09, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC4stop10completionyySbc_tFySbcfU_', symObjAddr: 0x1A0, symBinAddr: 0x10006FAF0, symSize: 0x20 } - - { offset: 0x136B45, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC9getStatus10completionyySb_s5Int32Vtc_tFyAGcfU_092$s8Swiftier11AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySb_s5G6VtcfU_Tf3npf_n', symObjAddr: 0x1C0, symBinAddr: 0x10006FB10, symSize: 0x20 } - - { offset: 0x136B8B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC9getStatus10completionyySb_s5Int32Vtc_tFyAGcfU_', symObjAddr: 0x1E0, symBinAddr: 0x10006FB30, symSize: 0x30 } - - { offset: 0x136BE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceCfZ', symObjAddr: 0x210, symBinAddr: 0x10006FB60, symSize: 0x90 } - - { offset: 0x136C54, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceCfD', symObjAddr: 0x2A0, symBinAddr: 0x10006FBF0, symSize: 0x320 } - - { offset: 0x136DDD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC6sharedACvpZ', symObjAddr: 0x116D8, symBinAddr: 0x100137C50, symSize: 0x0 } - - { offset: 0x1370A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC6shared_WZ', symObjAddr: 0x470, symBinAddr: 0x1000704A0, symSize: 0x40 } - - { offset: 0x1372AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCfETo', symObjAddr: 0x1BE0, symBinAddr: 0x100071C10, symSize: 0x20 } - - { offset: 0x1372DB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCMU', symObjAddr: 0x1C60, symBinAddr: 0x100071C90, symSize: 0x10 } - - { offset: 0x1372EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCMr', symObjAddr: 0x1CB0, symBinAddr: 0x100071CC0, symSize: 0x90 } - - { offset: 0x137303, size: 0x8, addend: 0x0, symName: '_$s7Combine9PublishedVySSGMa', symObjAddr: 0x1D40, symBinAddr: 0x100071D50, symSize: 0x30 } - - { offset: 0x137317, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCMa', symObjAddr: 0x1D70, symBinAddr: 0x100071D80, symSize: 0x20 } - - { offset: 0x13732B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwCP', symObjAddr: 0x1D90, symBinAddr: 0x100071DA0, symSize: 0x100 } - - { offset: 0x13733F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwxx', symObjAddr: 0x1EE0, symBinAddr: 0x100071EA0, symSize: 0x70 } - - { offset: 0x137353, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwcp', symObjAddr: 0x1F60, symBinAddr: 0x100071F10, symSize: 0xD0 } - - { offset: 0x137367, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwca', symObjAddr: 0x2030, symBinAddr: 0x100071FE0, symSize: 0x110 } - - { offset: 0x13737B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwtk', symObjAddr: 0x2140, symBinAddr: 0x1000720F0, symSize: 0x80 } - - { offset: 0x13738F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwta', symObjAddr: 0x21C0, symBinAddr: 0x100072170, symSize: 0xB0 } - - { offset: 0x1373A3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwet', symObjAddr: 0x2270, symBinAddr: 0x100072220, symSize: 0x20 } - - { offset: 0x1373B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVwst', symObjAddr: 0x2310, symBinAddr: 0x1000722C0, symSize: 0x20 } - - { offset: 0x1373CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppVMr', symObjAddr: 0x23A0, symBinAddr: 0x100072350, symSize: 0x80 } - - { offset: 0x1373DF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI28NSApplicationDelegateAdaptorVy8Swiftier03AppD0CGMa', symObjAddr: 0x2420, symBinAddr: 0x1000723D0, symSize: 0x40 } - - { offset: 0x1373F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV7SwiftUI0E0AA4BodyAdEP_AD5ScenePWT', symObjAddr: 0x2470, symBinAddr: 0x100072410, symSize: 0x20 } - - { offset: 0x137407, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LlfcySbcfU_TA', symObjAddr: 0x2570, symBinAddr: 0x100072450, symSize: 0x10 } - - { offset: 0x13741B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5Llfcy10Foundation12NotificationVcfU0_TA', symObjAddr: 0x2580, symBinAddr: 0x100072460, symSize: 0x10 } - - { offset: 0x13742F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC07currentD0SSvpACTK', symObjAddr: 0x2590, symBinAddr: 0x100072470, symSize: 0x70 } - - { offset: 0x13745D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC07currentD0SSvpACTk', symObjAddr: 0x2610, symBinAddr: 0x1000724F0, symSize: 0x80 } - - { offset: 0x137495, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV4bodyQrvgAA16MenuBarLabelViewVyXEfU0_TA', symObjAddr: 0x26A0, symBinAddr: 0x100072580, symSize: 0x10 } - - { offset: 0x1374A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVAC7SwiftUI0E0AAWl', symObjAddr: 0x26B0, symBinAddr: 0x100072590, symSize: 0x30 } - - { offset: 0x13754E, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x2E90, symBinAddr: 0x100072D70, symSize: 0x20 } - - { offset: 0x137562, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x2EB0, symBinAddr: 0x100072D90, symSize: 0x10 } - - { offset: 0x137576, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFyAGcfU0_TA', symObjAddr: 0x2EC0, symBinAddr: 0x100072DA0, symSize: 0x20 } - - { offset: 0x13758A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC10startTimer33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySo7NSTimerCYbcfU_TA', symObjAddr: 0x30B0, symBinAddr: 0x100072E10, symSize: 0x10 } - - { offset: 0x13759E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVwxx', symObjAddr: 0x32F0, symBinAddr: 0x100072E70, symSize: 0x10 } - - { offset: 0x1375B2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVwca', symObjAddr: 0x3300, symBinAddr: 0x100072E80, symSize: 0x40 } - - { offset: 0x1375C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVwta', symObjAddr: 0x3350, symBinAddr: 0x100072EC0, symSize: 0x30 } - - { offset: 0x1375DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewVMa', symObjAddr: 0x3410, symBinAddr: 0x100072EF0, symSize: 0x10 } - - { offset: 0x1375EE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewV7SwiftUI0E0AA4BodyAdEP_AGWT', symObjAddr: 0x34B0, symBinAddr: 0x100072F90, symSize: 0x20 } - - { offset: 0x137633, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV4bodyQrvgAA11ContentViewVyXEfU_', symObjAddr: 0x70, symBinAddr: 0x1000700D0, symSize: 0x10 } - - { offset: 0x137724, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV4bodyQrvgAA16MenuBarLabelViewVyXEfU0_', symObjAddr: 0x80, symBinAddr: 0x1000700E0, symSize: 0xA0 } - - { offset: 0x1377AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV7SwiftUI0E0AadEP4body4BodyQzvgTW', symObjAddr: 0x120, symBinAddr: 0x100070180, symSize: 0x1F0 } - - { offset: 0x1378B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18EasyTierControlAppV7SwiftUI0E0AadEPxycfCTW', symObjAddr: 0x310, symBinAddr: 0x100070370, symSize: 0x90 } - - { offset: 0x137A14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarLabelViewV7SwiftUI0E0AadEP4body4BodyQzvgTW', symObjAddr: 0x3D0, symBinAddr: 0x100070400, symSize: 0xA0 } - - { offset: 0x137ABC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC07currentD0SSvg', symObjAddr: 0x4B0, symBinAddr: 0x1000704E0, symSize: 0x60 } - - { offset: 0x137B0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC7Combine16ObservableObjectAadEP16objectWillChange0hjK9PublisherQzvgTW', symObjAddr: 0x1500, symBinAddr: 0x100071530, symSize: 0x30 } - - { offset: 0x137B6D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5Llfc', symObjAddr: 0x510, symBinAddr: 0x100070540, symSize: 0x610 } - - { offset: 0x137C74, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LlfcySbcfU_', symObjAddr: 0xB20, symBinAddr: 0x100070B50, symSize: 0x110 } - - { offset: 0x137D29, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCACyc33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5Llfcy10Foundation12NotificationVcfU0_', symObjAddr: 0xC30, symBinAddr: 0x100070C60, symSize: 0x50 } - - { offset: 0x137D86, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC011updateTimerE033_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyF', symObjAddr: 0xC80, symBinAddr: 0x100070CB0, symSize: 0x1D0 } - - { offset: 0x137E01, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC10startTimer33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyF', symObjAddr: 0xE50, symBinAddr: 0x100070E80, symSize: 0xF0 } - - { offset: 0x137E23, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateC10startTimer33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySo7NSTimerCYbcfU_', symObjAddr: 0xF40, symBinAddr: 0x100070F70, symSize: 0xC0 } - - { offset: 0x137EB3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCfd', symObjAddr: 0x1000, symBinAddr: 0x100071030, symSize: 0x110 } - - { offset: 0x137ED2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCfZ', symObjAddr: 0x1110, symBinAddr: 0x100071140, symSize: 0x30 } - - { offset: 0x137F3A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16MenuBarIconStateCfD', symObjAddr: 0x1140, symBinAddr: 0x100071170, symSize: 0x3C0 } - - { offset: 0x138006, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC29applicationDidFinishLaunchingyy10Foundation12NotificationVFTo', symObjAddr: 0x1530, symBinAddr: 0x100071560, symSize: 0xA0 } - - { offset: 0x13805C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC24applicationWillTerminateyy10Foundation12NotificationVFTo', symObjAddr: 0x15D0, symBinAddr: 0x100071600, symSize: 0x60 } - - { offset: 0x13808C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySb_s5Int32VtcfU_yyScMYccfU_', symObjAddr: 0x1630, symBinAddr: 0x100071660, symSize: 0x230 } - - { offset: 0x138272, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCACycfcTo', symObjAddr: 0x1860, symBinAddr: 0x100071890, symSize: 0x50 } - - { offset: 0x1382A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCfZ', symObjAddr: 0x18B0, symBinAddr: 0x1000718E0, symSize: 0x30 } - - { offset: 0x1382CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateCfD', symObjAddr: 0x18E0, symBinAddr: 0x100071910, symSize: 0x300 } - - { offset: 0x138312, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x1C00, symBinAddr: 0x100071C30, symSize: 0x40 } - - { offset: 0x138372, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFySb_s5Int32VtcfU_Tf4nd_n', symObjAddr: 0x26E0, symBinAddr: 0x1000725C0, symSize: 0x330 } - - { offset: 0x1384CB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyFTf4d_n', symObjAddr: 0x2A10, symBinAddr: 0x1000728F0, symSize: 0x480 } - - { offset: 0x1386B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC6sharedACvpZ', symObjAddr: 0x572B0, symBinAddr: 0x100137C58, symSize: 0x0 } - - { offset: 0x138D2D, size: 0x8, addend: 0x0, symName: '_$sIeg_IeyB_TR', symObjAddr: 0x580, symBinAddr: 0x100073600, symSize: 0x30 } - - { offset: 0x138FF4, size: 0x8, addend: 0x0, symName: '_$sSo7NSTimerCIeghg_ABIeyBhy_TR', symObjAddr: 0x15E0, symBinAddr: 0x1000745C0, symSize: 0x50 } - - { offset: 0x139022, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC6shared_WZ', symObjAddr: 0x1C50, symBinAddr: 0x100074C30, symSize: 0x40 } - - { offset: 0x139052, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15maxHistorySpeedSdvpACTK', symObjAddr: 0x1DB0, symBinAddr: 0x100074D90, symSize: 0x70 } - - { offset: 0x139080, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15maxHistorySpeedSdvpACTk', symObjAddr: 0x1E20, symBinAddr: 0x100074E00, symSize: 0x70 } - - { offset: 0x139807, size: 0x8, addend: 0x0, symName: '_$sSiIgd_SiIegr_TR111$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_SiyXEfu1_Tf3npf_n', symObjAddr: 0x93A0, symBinAddr: 0x10007C380, symSize: 0x10 } - - { offset: 0x13982A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCMU', symObjAddr: 0x9E50, symBinAddr: 0x10007CE30, symSize: 0x10 } - - { offset: 0x13983E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCMa', symObjAddr: 0x9E60, symBinAddr: 0x10007CE40, symSize: 0x30 } - - { offset: 0x139852, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCMr', symObjAddr: 0x9E90, symBinAddr: 0x10007CE70, symSize: 0x310 } - - { offset: 0x139866, size: 0x8, addend: 0x0, symName: '_$ss5Int32VIegy_ABIeyBy_TR', symObjAddr: 0xA320, symBinAddr: 0x10007D260, symSize: 0x40 } - - { offset: 0x13987E, size: 0x8, addend: 0x0, symName: '_$sSdIegy_SdIeyBy_TR', symObjAddr: 0xA360, symBinAddr: 0x10007D2A0, symSize: 0x40 } - - { offset: 0x139896, size: 0x8, addend: 0x0, symName: '_$sSSSgIegg_So8NSStringCSgIeyBy_TR', symObjAddr: 0xA3A0, symBinAddr: 0x10007D2E0, symSize: 0x60 } - - { offset: 0x139972, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV15reserveCapacityyySiFSS_Tg5', symObjAddr: 0xA980, symBinAddr: 0x10007D8C0, symSize: 0x50 } - - { offset: 0x139A1F, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFs6UInt16V_Tg5', symObjAddr: 0xAA50, symBinAddr: 0x10007D990, symSize: 0x110 } - - { offset: 0x139B84, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSs_Tg5', symObjAddr: 0xAB80, symBinAddr: 0x10007DAA0, symSize: 0x120 } - - { offset: 0x139CDE, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSnySiG_Tg5', symObjAddr: 0xAE40, symBinAddr: 0x10007DD60, symSize: 0x120 } - - { offset: 0x139E36, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC_Tg5', symObjAddr: 0xAF60, symBinAddr: 0x10007DE80, symSize: 0x140 } - - { offset: 0x139FC8, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF8Swiftier14HighlightRangeV_Tg5', symObjAddr: 0xB0A0, symBinAddr: 0x10007DFC0, symSize: 0x130 } - - { offset: 0x13A12D, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSd_Tg5', symObjAddr: 0xB200, symBinAddr: 0x10007E120, symSize: 0x120 } - - { offset: 0x13A292, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSo7CGPointV_Tg5', symObjAddr: 0xB320, symBinAddr: 0x10007E240, symSize: 0x120 } - - { offset: 0x13A387, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV19_uninitializedCount15minimumCapacityAByxGSi_SitcfC8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC_Tt1g5', symObjAddr: 0xB440, symBinAddr: 0x10007E360, symSize: 0x90 } - - { offset: 0x13A3DE, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV19_uninitializedCount15minimumCapacityAByxGSi_SitcfC8Swiftier8LogEntryV_Tt1g5', symObjAddr: 0xB4D0, symBinAddr: 0x10007E3F0, symSize: 0xE0 } - - { offset: 0x13A487, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV13_copyContents8subRange12initializingSpyxGSnySiG_AFtF8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC_Tg5', symObjAddr: 0xB5B0, symBinAddr: 0x10007E4D0, symSize: 0x100 } - - { offset: 0x13A585, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV034_makeUniqueAndReserveCapacityIfNotD0yyFSS_Tg5', symObjAddr: 0xB6C0, symBinAddr: 0x10007E5D0, symSize: 0x40 } - - { offset: 0x13A5D7, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV36_reserveCapacityAssumingUniqueBuffer8oldCountySi_tFSS_Tg5', symObjAddr: 0xB700, symBinAddr: 0x10007E610, symSize: 0x40 } - - { offset: 0x13A5EB, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV37_appendElementAssumeUniqueAndCapacity_03newD0ySi_xntFSS_Tg5', symObjAddr: 0xB740, symBinAddr: 0x10007E650, symSize: 0x20 } - - { offset: 0x13A614, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSS_Tg5', symObjAddr: 0xB760, symBinAddr: 0x10007E670, symSize: 0x20 } - - { offset: 0x13A62C, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF10Foundation3URLV_Tg5', symObjAddr: 0xB780, symBinAddr: 0x10007E690, symSize: 0x40 } - - { offset: 0x13A644, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFypSg_Tg5', symObjAddr: 0xB7C0, symBinAddr: 0x10007E6D0, symSize: 0x20 } - - { offset: 0x13A65C, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFyp_Tg5', symObjAddr: 0xB7E0, symBinAddr: 0x10007E6F0, symSize: 0x20 } - - { offset: 0x13A674, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF8Swiftier8LogEntryV_Tg5', symObjAddr: 0xB800, symBinAddr: 0x10007E710, symSize: 0x40 } - - { offset: 0x13A68C, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtF8Swiftier10EventEntryV_Tg5', symObjAddr: 0xB840, symBinAddr: 0x10007E750, symSize: 0x40 } - - { offset: 0x13A6A4, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSDySSypG_Tg5', symObjAddr: 0xB880, symBinAddr: 0x10007E790, symSize: 0x20 } - - { offset: 0x13A714, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFypSg_Tg5', symObjAddr: 0xB9C0, symBinAddr: 0x10007E8D0, symSize: 0x140 } - - { offset: 0x13A84D, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFyp_Tg5', symObjAddr: 0xBB00, symBinAddr: 0x10007EA10, symSize: 0x120 } - - { offset: 0x13A991, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSDySSypG_Tg5', symObjAddr: 0xBDC0, symBinAddr: 0x10007ECD0, symSize: 0x150 } - - { offset: 0x13AA88, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSS_Tg5', symObjAddr: 0xBF10, symBinAddr: 0x10007EE20, symSize: 0x60 } - - { offset: 0x13AACB, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlF10Foundation3URLVSg_Tg5', symObjAddr: 0xBF70, symBinAddr: 0x10007EE80, symSize: 0x140 } - - { offset: 0x13AB08, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSi_Tg5', symObjAddr: 0xC0B0, symBinAddr: 0x10007EFC0, symSize: 0x30 } - - { offset: 0x13AB35, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSo18NSFileAttributeKeya_Tg5', symObjAddr: 0xC0E0, symBinAddr: 0x10007EFF0, symSize: 0x80 } - - { offset: 0x13ABBE, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSS_Tg5', symObjAddr: 0xC160, symBinAddr: 0x10007F070, symSize: 0xC0 } - - { offset: 0x13AC20, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlF10Foundation3URLVSg_Tg5', symObjAddr: 0xC220, symBinAddr: 0x10007F130, symSize: 0x350 } - - { offset: 0x13AC45, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSi_Tg5', symObjAddr: 0xC570, symBinAddr: 0x10007F480, symSize: 0x70 } - - { offset: 0x13AC72, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSo18NSFileAttributeKeya_Tg5', symObjAddr: 0xC5E0, symBinAddr: 0x10007F4F0, symSize: 0x100 } - - { offset: 0x13AD70, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0xC6E0, symBinAddr: 0x10007F5F0, symSize: 0x270 } - - { offset: 0x13ADE4, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyFSS_ypTg5', symObjAddr: 0xC950, symBinAddr: 0x10007F860, symSize: 0x1F0 } - - { offset: 0x13AE75, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV4copyyyFSS_SiTg5', symObjAddr: 0xCB40, symBinAddr: 0x10007FA50, symSize: 0x180 } - - { offset: 0x13AF5A, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0xCCC0, symBinAddr: 0x10007FBD0, symSize: 0x9F0 } - - { offset: 0x13AFF8, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtFSS_ypTg5', symObjAddr: 0xD6B0, symBinAddr: 0x1000805C0, symSize: 0x320 } - - { offset: 0x13B0EA, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV20_copyOrMoveAndResize8capacity12moveElementsySi_SbtFSS_SiTg5', symObjAddr: 0xD9D0, symBinAddr: 0x1000808E0, symSize: 0x300 } - - { offset: 0x13B1E5, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV16_unsafeInsertNew3key5valueyxn_q_ntF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0xDCD0, symBinAddr: 0x100080BE0, symSize: 0x1C0 } - - { offset: 0x13B24A, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier15PortForwardRuleV_Tg5', symObjAddr: 0xDE90, symBinAddr: 0x100080DA0, symSize: 0x40 } - - { offset: 0x13B282, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier19EasyTierConfigModelV11ProxySubnetV_Tg5', symObjAddr: 0xDED0, symBinAddr: 0x100080DE0, symSize: 0x40 } - - { offset: 0x13B2BA, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier12ConfigScreenO_Tg5', symObjAddr: 0xDF10, symBinAddr: 0x100080E20, symSize: 0x30 } - - { offset: 0x13B2E7, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSS_Tg5', symObjAddr: 0xDF40, symBinAddr: 0x100080E50, symSize: 0x20 } - - { offset: 0x13B314, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyFSnySiG_Tg5', symObjAddr: 0xDF60, symBinAddr: 0x100080E70, symSize: 0x20 } - - { offset: 0x13B34C, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier10EventEntryV_Tg5', symObjAddr: 0xDF80, symBinAddr: 0x100080E90, symSize: 0x40 } - - { offset: 0x13B3D4, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKF8Swiftier8PeerInfoV_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04F13G0V_AGtXEfU2_Tf1cn_n', symObjAddr: 0xDFC0, symBinAddr: 0x100080ED0, symSize: 0x100 } - - { offset: 0x13B4E3, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFSS_Tg560$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1cn_n', symObjAddr: 0xE0C0, symBinAddr: 0x100080FD0, symSize: 0xE0 } - - { offset: 0x13B6E7, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFySryxGz_SiztKXEfU_8Swiftier8PeerInfoV_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04F13G0V_AGtXEfU2_Tf1nnncn_n', symObjAddr: 0xE1A0, symBinAddr: 0x1000810B0, symSize: 0xC20 } - - { offset: 0x13BDF5, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFySryxGz_SiztKXEfU_SS_Tg560$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1nnncn_n', symObjAddr: 0xEDC0, symBinAddr: 0x100081CD0, symSize: 0x4D0 } - - { offset: 0x13C46B, size: 0x8, addend: 0x0, symName: '_$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSry8Swiftier8PeerInfoVG_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04J13G0V_AGtXEfU2_Tf1nncn_n', symObjAddr: 0xF290, symBinAddr: 0x1000821A0, symSize: 0x400 } - - { offset: 0x13C643, size: 0x8, addend: 0x0, symName: '_$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSrySSG_Tg508$sSTsSL7H45RpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1nncn_n', symObjAddr: 0xF690, symBinAddr: 0x1000825A0, symSize: 0xE0 } - - { offset: 0x13C82D, size: 0x8, addend: 0x0, symName: '_$sSr13_mergeTopRuns_6buffer2bySbSaySnySiGGz_SpyxGSbx_xtKXEtKF8Swiftier8PeerInfoV_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04G13G0V_AGtXEfU2_Tf1nncn_n', symObjAddr: 0xF770, symBinAddr: 0x100082680, symSize: 0x2E0 } - - { offset: 0x13CBB9, size: 0x8, addend: 0x0, symName: '_$sSr13_mergeTopRuns_6buffer2bySbSaySnySiGGz_SpyxGSbx_xtKXEtKFSS_Tg560$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1nncn_n', symObjAddr: 0xFA50, symBinAddr: 0x100082960, symSize: 0x2C0 } - - { offset: 0x13CF5B, size: 0x8, addend: 0x0, symName: '_$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlF8Swiftier8PeerInfoV_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04H13G0V_AGtXEfU2_Tf1nnnnc_n', symObjAddr: 0xFD10, symBinAddr: 0x100082C20, symSize: 0x920 } - - { offset: 0x13D204, size: 0x8, addend: 0x0, symName: '_$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlFSS_Tg560$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1nnnnc_n', symObjAddr: 0x10630, symBinAddr: 0x100083540, symSize: 0x280 } - - { offset: 0x13D3CF, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnFSi_Tg5', symObjAddr: 0x10AF0, symBinAddr: 0x1000838C0, symSize: 0xD0 } - - { offset: 0x13D451, size: 0x8, addend: 0x0, symName: '_$sSh8_VariantV6insertySb8inserted_x17memberAfterInserttxnFSS_Tg5', symObjAddr: 0x10BC0, symBinAddr: 0x100083990, symSize: 0x180 } - - { offset: 0x13D51A, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtFSi_Tg5', symObjAddr: 0x10D40, symBinAddr: 0x100083B10, symSize: 0x100 } - - { offset: 0x13D5A7, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV9insertNew_2at8isUniqueyxn_s10_HashTableV6BucketVSbtFSS_Tg5', symObjAddr: 0x10E40, symBinAddr: 0x100083C10, symSize: 0x150 } - - { offset: 0x13D667, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyFSi_Tg5', symObjAddr: 0x10F90, symBinAddr: 0x100083D60, symSize: 0x140 } - - { offset: 0x13D6E4, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV4copyyyFSS_Tg5', symObjAddr: 0x110D0, symBinAddr: 0x100083EA0, symSize: 0x160 } - - { offset: 0x13D76C, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tFSi_Tg5', symObjAddr: 0x11230, symBinAddr: 0x100084000, symSize: 0x200 } - - { offset: 0x13D822, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV13copyAndResize8capacityySi_tFSS_Tg5', symObjAddr: 0x11430, symBinAddr: 0x100084200, symSize: 0x270 } - - { offset: 0x13D8D0, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tFSi_Tg5', symObjAddr: 0x116A0, symBinAddr: 0x100084470, symSize: 0x240 } - - { offset: 0x13D9A3, size: 0x8, addend: 0x0, symName: '_$ss10_NativeSetV6resize8capacityySi_tFSS_Tg5', symObjAddr: 0x118E0, symBinAddr: 0x1000846B0, symSize: 0x2B0 } - - { offset: 0x13DAD0, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV6filteryAByxq_GSbx3key_q_5valuet_tKXEKFSS_SiTg5127$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_SbSS3key_Si5valuet_tXEfU_Tf1cn_n', symObjAddr: 0x11B90, symBinAddr: 0x100084960, symSize: 0x160 } - - { offset: 0x13DBE9, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV6filteryAByxq_GSbx3key_q_5valuet_tKXEKFADs13_UnsafeBitsetVKXEfU_SS_SiTg5127$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_SbSS3key_Si5valuet_tXEfU_Tf1nnc_n', symObjAddr: 0x11CF0, symBinAddr: 0x100084AC0, symSize: 0xD0 } - - { offset: 0x13DC47, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV07extractB05using5countAByxq_Gs13_UnsafeBitsetV_SitFSS_SiTg5', symObjAddr: 0x11DC0, symBinAddr: 0x100084B90, symSize: 0x280 } - - { offset: 0x13DD3D, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyF10Foundation3URLV_Tg5', symObjAddr: 0x12040, symBinAddr: 0x100084E10, symSize: 0x40 } - - { offset: 0x13DD75, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyF8Swiftier8PeerInfoV_Tg5', symObjAddr: 0x12080, symBinAddr: 0x100084E50, symSize: 0x40 } - - { offset: 0x13DDA2, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyFSS_Tg5', symObjAddr: 0x120C0, symBinAddr: 0x100084E90, symSize: 0x20 } - - { offset: 0x13DDE5, size: 0x8, addend: 0x0, symName: '_$sSTsE21_copySequenceContents12initializing8IteratorQz_SitSry7ElementQzG_tFShySSG_Tg5', symObjAddr: 0x12120, symBinAddr: 0x100084EB0, symSize: 0x1A0 } - - { offset: 0x13DF62, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_TA', symObjAddr: 0x12800, symBinAddr: 0x100085590, symSize: 0x20 } - - { offset: 0x13DF76, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC9getStatus10completionyySb_s5Int32Vtc_tFyAGcfU_TA', symObjAddr: 0x12840, symBinAddr: 0x1000855B0, symSize: 0x20 } - - { offset: 0x13DF8A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFys5Error_pcfU_TA', symObjAddr: 0x12880, symBinAddr: 0x1000855F0, symSize: 0x20 } - - { offset: 0x13DF9E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_yyScMYccfU1_TA', symObjAddr: 0x128B0, symBinAddr: 0x100085620, symSize: 0x20 } - - { offset: 0x13DFB2, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x128D0, symBinAddr: 0x100085640, symSize: 0x20 } - - { offset: 0x13DFC6, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x128F0, symBinAddr: 0x100085660, symSize: 0x10 } - - { offset: 0x13DFDA, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOd', symObjAddr: 0x12920, symBinAddr: 0x100085670, symSize: 0x40 } - - { offset: 0x13DFEE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFyyXEfU_TA', symObjAddr: 0x12AE0, symBinAddr: 0x100085830, symSize: 0x20 } - - { offset: 0x13E002, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU1_TA', symObjAddr: 0x12B60, symBinAddr: 0x1000858B0, symSize: 0x40 } - - { offset: 0x13E0BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU0_TA', symObjAddr: 0x12EA0, symBinAddr: 0x100085BF0, symSize: 0x10 } - - { offset: 0x13E0CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU0_yyScMYccfU_TA', symObjAddr: 0x12EB0, symBinAddr: 0x100085C00, symSize: 0x10 } - - { offset: 0x13E0E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU1_yyScMYccfU_TA', symObjAddr: 0x12F40, symBinAddr: 0x100085C90, symSize: 0x40 } - - { offset: 0x13E0F7, size: 0x8, addend: 0x0, symName: '_$sypWOb', symObjAddr: 0x12F90, symBinAddr: 0x100085CE0, symSize: 0x20 } - - { offset: 0x13E10B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_yyScMYccfU_TA', symObjAddr: 0x13030, symBinAddr: 0x100085D80, symSize: 0x40 } - - { offset: 0x13E11F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_yyScMYccfU_yyScMYccfU_TA', symObjAddr: 0x130F0, symBinAddr: 0x100085E40, symSize: 0x50 } - - { offset: 0x13E133, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16refreshPeersOnce33_5AE8CE027D2E90CABD911C820651C4B6LLyyFySSSgcfU_TA', symObjAddr: 0x13140, symBinAddr: 0x100085E90, symSize: 0x10 } - - { offset: 0x13E147, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFys5Error_pcfU_TA', symObjAddr: 0x13150, symBinAddr: 0x100085EA0, symSize: 0x20 } - - { offset: 0x13E15B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFyAFcfU0_TA', symObjAddr: 0x13170, symBinAddr: 0x100085EC0, symSize: 0x20 } - - { offset: 0x13E16F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusVACSeAAWl', symObjAddr: 0x131C0, symBinAddr: 0x100085EE0, symSize: 0x30 } - - { offset: 0x13E183, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU1_TA', symObjAddr: 0x133B0, symBinAddr: 0x100085F80, symSize: 0x30 } - - { offset: 0x13E197, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_TA', symObjAddr: 0x13410, symBinAddr: 0x100085FE0, symSize: 0x20 } - - { offset: 0x13E1AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU0_TA', symObjAddr: 0x13450, symBinAddr: 0x100086020, symSize: 0x20 } - - { offset: 0x13E1BF, size: 0x8, addend: 0x0, symName: '_$sSh8IteratorV8_VariantOySS__GWOe', symObjAddr: 0x13620, symBinAddr: 0x1000861F0, symSize: 0x20 } - - { offset: 0x13E1D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierStatusV13PeerRoutePairVSgWOi0_', symObjAddr: 0x13680, symBinAddr: 0x100086210, symSize: 0x10 } - - { offset: 0x13E1E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU_TA', symObjAddr: 0x13700, symBinAddr: 0x100086290, symSize: 0x20 } - - { offset: 0x13E227, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0VySdG_s15EmptyCollectionVySdGTg5Tf4nndn_n', symObjAddr: 0x13930, symBinAddr: 0x1000864C0, symSize: 0x90 } - - { offset: 0x13E2FC, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lFSd_s15EmptyCollectionVySdGTg5Tf4ndn_n', symObjAddr: 0x139C0, symBinAddr: 0x100086550, symSize: 0xB0 } - - { offset: 0x13E40C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_yyXEfU1_TA', symObjAddr: 0x13B40, symBinAddr: 0x1000866B0, symSize: 0x20 } - - { offset: 0x13E420, size: 0x8, addend: 0x0, symName: '_$sSD5IndexV8_VariantOySSSi__GWOe', symObjAddr: 0x13BA0, symBinAddr: 0x100086710, symSize: 0x20 } - - { offset: 0x13E434, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17updatePollingMode33_5AE8CE027D2E90CABD911C820651C4B6LLyyFy10Foundation4DateVcfU_TA', symObjAddr: 0x13C40, symBinAddr: 0x100086780, symSize: 0x10 } - - { offset: 0x13E448, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16startUptimeTimer33_5AE8CE027D2E90CABD911C820651C4B6LLyyFySo7NSTimerCYbcfU_TA', symObjAddr: 0x13D70, symBinAddr: 0x100086870, symSize: 0x10 } - - { offset: 0x13E45C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_ySdcfU_TA', symObjAddr: 0x13DB0, symBinAddr: 0x1000868B0, symSize: 0x20 } - - { offset: 0x13E470, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFys5Error_pcfU_TA', symObjAddr: 0x13DD0, symBinAddr: 0x1000868D0, symSize: 0x20 } - - { offset: 0x13E484, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFySdcfU0_TA', symObjAddr: 0x13E10, symBinAddr: 0x100086910, symSize: 0x20 } - - { offset: 0x13E498, size: 0x8, addend: 0x0, symName: '_$sypWOc', symObjAddr: 0x13F80, symBinAddr: 0x100086990, symSize: 0x30 } - - { offset: 0x13E50F, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy8Swiftier10EventEntryVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x13FB0, symBinAddr: 0x1000869C0, symSize: 0x120 } - - { offset: 0x13E662, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF8Swiftier10EventEntryV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x140D0, symBinAddr: 0x100086AE0, symSize: 0xE0 } - - { offset: 0x13E8BA, size: 0x8, addend: 0x0, symName: '_$sSlsE3mapySayqd__Gqd__7ElementQzqd_0_YKXEqd_0_YKs5ErrorRd_0_r0_lFSDySSSiG_SSs5NeverOTg5127$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_S2S3key_Si5valuet_tXEfU0_Tf1cn_n', symObjAddr: 0x0, symBinAddr: 0x100073080, symSize: 0x320 } - - { offset: 0x13EAEE, size: 0x8, addend: 0x0, symName: '_$sSa6remove2atxSi_tFSS_Tg5', symObjAddr: 0x460, symBinAddr: 0x1000734E0, symSize: 0x90 } - - { offset: 0x13EB83, size: 0x8, addend: 0x0, symName: '_$sSa6remove2atxSi_tFSnySiG_Tg5', symObjAddr: 0x4F0, symBinAddr: 0x100073570, symSize: 0x90 } - - { offset: 0x13EC3D, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSS_Tt1g5', symObjAddr: 0x5B0, symBinAddr: 0x100073630, symSize: 0xA0 } - - { offset: 0x13ED5F, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ8Swiftier15PortForwardRuleV_Tt1g5', symObjAddr: 0x650, symBinAddr: 0x1000736D0, symSize: 0x280 } - - { offset: 0x13EF2E, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ8Swiftier19EasyTierConfigModelV11ProxySubnetV_Tt1g5', symObjAddr: 0x8D0, symBinAddr: 0x100073950, symSize: 0x1C0 } - - { offset: 0x13F059, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSd_Tt1g5', symObjAddr: 0xBA0, symBinAddr: 0x100073B80, symSize: 0x70 } - - { offset: 0x13F079, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSd_Tt1g5', symObjAddr: 0xBA0, symBinAddr: 0x100073B80, symSize: 0x70 } - - { offset: 0x13F08D, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSd_Tt1g5', symObjAddr: 0xBA0, symBinAddr: 0x100073B80, symSize: 0x70 } - - { offset: 0x13F0A1, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZSd_Tt1g5', symObjAddr: 0xBA0, symBinAddr: 0x100073B80, symSize: 0x70 } - - { offset: 0x13F151, size: 0x8, addend: 0x0, symName: '_$sSasSQRzlE2eeoiySbSayxG_ABtFZ8Swiftier14HighlightRangeV_Tt1g5', symObjAddr: 0xC10, symBinAddr: 0x100073BF0, symSize: 0x100 } - - { offset: 0x13F467, size: 0x8, addend: 0x0, symName: '_$ss15_arrayForceCastySayq_GSayxGr0_lFSS_ypTg5', symObjAddr: 0x7D40, symBinAddr: 0x10007AD20, symSize: 0x120 } - - { offset: 0x13F647, size: 0x8, addend: 0x0, symName: '_$ss15_arrayForceCastySayq_GSayxGr0_lFSo10CGColorRefa_ypTg5', symObjAddr: 0x7E60, symBinAddr: 0x10007AE40, symSize: 0x250 } - - { offset: 0x13F8F3, size: 0x8, addend: 0x0, symName: '_$sSTsSL7ElementRpzrlE3maxABSgyFSaySdG_Tg5', symObjAddr: 0x8850, symBinAddr: 0x10007B830, symSize: 0x150 } - - { offset: 0x13FADA, size: 0x8, addend: 0x0, symName: '_$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFs15ContiguousArrayVy8Swiftier8PeerInfoVG_Tg5096$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04G13G0V_AGtXEfU2_Tf1cn_n', symObjAddr: 0xA400, symBinAddr: 0x10007D340, symSize: 0x80 } - - { offset: 0x13FB8A, size: 0x8, addend: 0x0, symName: '_$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFs15ContiguousArrayVySSG_Tg508$sSTsSL7C45RpzrlE6sortedSayABGyFSbAB_ABtcfu_ShySSG_Tt1G5Tf1cn_n', symObjAddr: 0xA480, symBinAddr: 0x10007D3C0, symSize: 0x60 } - - { offset: 0x13FD87, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SSTt0g5Tf4g_n', symObjAddr: 0x122C0, symBinAddr: 0x100085050, symSize: 0x110 } - - { offset: 0x13FED0, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfC10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTt0g5Tf4g_n', symObjAddr: 0x123D0, symBinAddr: 0x100085160, symSize: 0x220 } - - { offset: 0x13FFF5, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSi_Si2rx_Si2tx10Foundation4DateV4timetTt0g5Tf4g_n', symObjAddr: 0x125F0, symBinAddr: 0x100085380, symSize: 0x180 } - - { offset: 0x140130, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SiTt0g5Tf4g_n', symObjAddr: 0x12BA0, symBinAddr: 0x1000858F0, symSize: 0xF0 } - - { offset: 0x140279, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSo18NSFileAttributeKeya_ypTt0g5Tf4g_n', symObjAddr: 0x12C90, symBinAddr: 0x1000859E0, symSize: 0x100 } - - { offset: 0x140397, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_ypTt0g5Tf4g_n', symObjAddr: 0x12D90, symBinAddr: 0x100085AE0, symSize: 0x110 } - - { offset: 0x140490, size: 0x8, addend: 0x0, symName: '_$sShyShyxGqd__nc7ElementQyd__RszSTRd__lufCSS_SaySSGTt0g5Tf4g_n', symObjAddr: 0x13A90, symBinAddr: 0x100086620, symSize: 0x90 } - - { offset: 0x1407DC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC7Combine16ObservableObjectAadEP16objectWillChange0giJ9PublisherQzvgTW', symObjAddr: 0xA2C0, symBinAddr: 0x10007D240, symSize: 0x20 } - - { offset: 0x14080E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSF', symObjAddr: 0x5C50, symBinAddr: 0x100078C30, symSize: 0x20F0 } - - { offset: 0x1415A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU_', symObjAddr: 0x80B0, symBinAddr: 0x10007B090, symSize: 0x80 } - - { offset: 0x1415F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU0_', symObjAddr: 0x8130, symBinAddr: 0x10007B110, symSize: 0x720 } - - { offset: 0x141DCD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU1_', symObjAddr: 0x89A0, symBinAddr: 0x10007B980, symSize: 0xE0 } - - { offset: 0x141E2E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFSbAA04PeerG0V_AGtXEfU2_', symObjAddr: 0x8A80, symBinAddr: 0x10007BA60, symSize: 0x1A0 } - - { offset: 0x141F44, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_', symObjAddr: 0x8C20, symBinAddr: 0x10007BC00, symSize: 0x780 } - - { offset: 0x142701, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18processRunningInfo33_5AE8CE027D2E90CABD911C820651C4B6LLyySSFyyScMYccfU3_yyXEfU1_', symObjAddr: 0x93B0, symBinAddr: 0x10007C390, symSize: 0x70 } - - { offset: 0x1429A9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC15maxHistorySpeedSdvg', symObjAddr: 0xD10, symBinAddr: 0x100073CF0, symSize: 0x60 } - - { offset: 0x142AC3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tF', symObjAddr: 0xDF0, symBinAddr: 0x100073DD0, symSize: 0x720 } - - { offset: 0x142CFD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFyyXEfU_', symObjAddr: 0x46C0, symBinAddr: 0x1000776A0, symSize: 0xC0 } - - { offset: 0x142D80, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU0_', symObjAddr: 0x4780, symBinAddr: 0x100077760, symSize: 0x270 } - - { offset: 0x142DD9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU0_yyScMYccfU_', symObjAddr: 0x49F0, symBinAddr: 0x1000779D0, symSize: 0x70 } - - { offset: 0x142E2C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU1_', symObjAddr: 0x4A60, symBinAddr: 0x100077A40, symSize: 0x330 } - - { offset: 0x142EA6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC13toggleService10configPathySS_tFySbcfU1_yyScMYccfU_', symObjAddr: 0x4D90, symBinAddr: 0x100077D70, symSize: 0x270 } - - { offset: 0x142F85, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tF', symObjAddr: 0x1630, symBinAddr: 0x100074610, symSize: 0x620 } - - { offset: 0x14327F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_', symObjAddr: 0x2F80, symBinAddr: 0x100075F60, symSize: 0x6B0 } - - { offset: 0x1433CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_ySdcfU_', symObjAddr: 0x3630, symBinAddr: 0x100076610, symSize: 0x280 } - - { offset: 0x14344E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_ySdcfU_yyScMYccfU_', symObjAddr: 0x38B0, symBinAddr: 0x100076890, symSize: 0x490 } - - { offset: 0x143656, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17syncWithCoreState10completionyySbcSg_tFySb_s5Int32VtcfU_yyScMYccfU1_', symObjAddr: 0x40A0, symBinAddr: 0x100077080, symSize: 0x5B0 } - - { offset: 0x143B39, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCACyc33_5AE8CE027D2E90CABD911C820651C4B6Llfc', symObjAddr: 0x2060, symBinAddr: 0x100075040, symSize: 0x930 } - - { offset: 0x143EE9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17updatePollingMode33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x2990, symBinAddr: 0x100075970, symSize: 0x290 } - - { offset: 0x143F3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC17updatePollingMode33_5AE8CE027D2E90CABD911C820651C4B6LLyyFy10Foundation4DateVcfU_', symObjAddr: 0x2DA0, symBinAddr: 0x100075D80, symSize: 0x50 } - - { offset: 0x143F8E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC24handleAppDidBecomeActive33_5AE8CE027D2E90CABD911C820651C4B6LLyyFTo', symObjAddr: 0x2C20, symBinAddr: 0x100075C00, symSize: 0xC0 } - - { offset: 0x144036, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC25handleAppWillResignActive33_5AE8CE027D2E90CABD911C820651C4B6LLyyFTo', symObjAddr: 0x2CE0, symBinAddr: 0x100075CC0, symSize: 0xC0 } - - { offset: 0x14412E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16refreshPeersOnce33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x2DF0, symBinAddr: 0x100075DD0, symSize: 0x190 } - - { offset: 0x1441A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16refreshPeersOnce33_5AE8CE027D2E90CABD911C820651C4B6LLyyFySSSgcfU_', symObjAddr: 0x5BE0, symBinAddr: 0x100078BC0, symSize: 0x70 } - - { offset: 0x1442BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC18resetSpeedCounters33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x3D40, symBinAddr: 0x100076D20, symSize: 0x200 } - - { offset: 0x1443D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16startUptimeTimer33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x3F40, symBinAddr: 0x100076F20, symSize: 0x160 } - - { offset: 0x144420, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16startUptimeTimer33_5AE8CE027D2E90CABD911C820651C4B6LLyyFySo7NSTimerCYbcfU_', symObjAddr: 0x9790, symBinAddr: 0x10007C770, symSize: 0x50 } - - { offset: 0x14452C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_', symObjAddr: 0x5000, symBinAddr: 0x100077FE0, symSize: 0x2B0 } - - { offset: 0x1445B1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_yyScMYccfU_', symObjAddr: 0x52B0, symBinAddr: 0x100078290, symSize: 0x6D0 } - - { offset: 0x1447C8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC12performStart33_5AE8CE027D2E90CABD911C820651C4B6LL10configPath12newSessionID10retryCountySS_10Foundation4UUIDVSitFySbcfU_yyScMYccfU_yyScMYccfU_', symObjAddr: 0x5980, symBinAddr: 0x100078960, symSize: 0x260 } - - { offset: 0x144AD4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC16updateUptimeText33_5AE8CE027D2E90CABD911C820651C4B6LLyyF', symObjAddr: 0x9420, symBinAddr: 0x10007C400, symSize: 0x370 } - - { offset: 0x144C77, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCfd', symObjAddr: 0x97E0, symBinAddr: 0x10007C7C0, symSize: 0x330 } - - { offset: 0x144C9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCfZ', symObjAddr: 0x9B10, symBinAddr: 0x10007CAF0, symSize: 0x30 } - - { offset: 0x144CF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerCfD', symObjAddr: 0x9B40, symBinAddr: 0x10007CB20, symSize: 0x310 } - - { offset: 0x144DD5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC11formatBytes33_5AE8CE027D2E90CABD911C820651C4B6LLySSSiFTf4nd_n', symObjAddr: 0x13470, symBinAddr: 0x100086040, symSize: 0x1B0 } - - { offset: 0x144EFF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14EasyTierRunnerC11formatSpeed33_5AE8CE027D2E90CABD911C820651C4B6LLySSSdFTf4nd_n', symObjAddr: 0x13720, symBinAddr: 0x1000862B0, symSize: 0x190 } - - { offset: 0x14585F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewCMa', symObjAddr: 0x3B80, symBinAddr: 0x10008AA80, symSize: 0x20 } - - { offset: 0x1458F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwxx', symObjAddr: 0x41E0, symBinAddr: 0x10008AE50, symSize: 0x30 } - - { offset: 0x14590C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwca', symObjAddr: 0x4210, symBinAddr: 0x10008AE80, symSize: 0x50 } - - { offset: 0x145920, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwta', symObjAddr: 0x4270, symBinAddr: 0x10008AED0, symSize: 0x30 } - - { offset: 0x145934, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwet', symObjAddr: 0x42A0, symBinAddr: 0x10008AF00, symSize: 0x40 } - - { offset: 0x145948, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVwst', symObjAddr: 0x42E0, symBinAddr: 0x10008AF40, symSize: 0x40 } - - { offset: 0x14595C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVMa', symObjAddr: 0x4320, symBinAddr: 0x10008AF80, symSize: 0x10 } - - { offset: 0x145970, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x4330, symBinAddr: 0x10008AF90, symSize: 0x20 } - - { offset: 0x145984, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_TA', symObjAddr: 0x4360, symBinAddr: 0x10008AFC0, symSize: 0x20 } - - { offset: 0x145998, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentV7StorageOyAA08ModifiedD0VyAA6VStackVyAA9TupleViewVyAGyAGyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAOyAA5ColorVSgGG_AA4TextVtGGAA16_FlexFrameLayoutVGAA06ScrollI6ReaderVyAA6ZStackVyAKyAA0I0PAAE9listStyleyQrqd__AA04ListY0Rd__lFQOyA10_AAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAA0Z0Vys5NeverOAA7ForEachVys18ReversedCollectionVySay8Swiftier10EventEntryVGG10Foundation4UUIDVAA6IDViewVyAGyA10_AAE0X12RowSeparator_5edgesQrA15__AA12VerticalEdgeO3SetVtFQOyAA6HStackVyAKyAGyAGyAGyAIyACyAKyA__A_tGA_GGAA01_sT0VGAA08_PaddingT0VGA49_G_AGyAGyA8_yAKyAGyAA06_ShapeI0VyAA9RectangleVAVGA46_G_AGyAGyAGyA53_yAA6CircleVAVGA46_GAA011_BackgroundyN0VyAVGGA49_GtGGA46_GA49_GAGyAIyAKyA__AGyAGyAGyAGyA24_20CharWrappingJSONViewVA49_GA49_GA64_GAA11_ClipEffectVyAA16RoundedRectangleVGGtGGA49_GtGG_Qo_AA06_TraitmN0VyAA0z14RowInsetsTraitL0VGGA31_GGG_Qo__AA05PlainzY0VQo__AGyA10_AAE06buttonY0yQrqd__AA015PrimitiveButtonY0Rd__lFQOyAA6ButtonVyAGyATA24_016FlatCircleButtonN0VGG_AA011PlainButtonY0VQo_A49_GtGGG_GWOi0_', symObjAddr: 0x4380, symBinAddr: 0x10008AFE0, symSize: 0x10 } - - { offset: 0x1459AC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAKyAA5ColorVSgGG_AA4TextVtGGAA16_FlexFrameLayoutVGACyxq_GAA0G0A2AA2_RzAA0gL0R_rlWl', symObjAddr: 0x4390, symBinAddr: 0x10008AFF0, symSize: 0x80 } - - { offset: 0x1459C0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentV7StorageOyAA08ModifiedD0VyAA6VStackVyAA9TupleViewVyAGyAGyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAOyAA5ColorVSgGG_AA4TextVtGGAA16_FlexFrameLayoutVGAA06ScrollI6ReaderVyAA6ZStackVyAKyAA0I0PAAE9listStyleyQrqd__AA04ListY0Rd__lFQOyA10_AAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAA0Z0Vys5NeverOAA7ForEachVys18ReversedCollectionVySay8Swiftier10EventEntryVGG10Foundation4UUIDVAA6IDViewVyAGyA10_AAE0X12RowSeparator_5edgesQrA15__AA12VerticalEdgeO3SetVtFQOyAA6HStackVyAKyAGyAGyAGyAIyACyAKyA__A_tGA_GGAA01_sT0VGAA08_PaddingT0VGA49_G_AGyAGyA8_yAKyAGyAA06_ShapeI0VyAA9RectangleVAVGA46_G_AGyAGyAGyA53_yAA6CircleVAVGA46_GAA011_BackgroundyN0VyAVGGA49_GtGGA46_GA49_GAGyAIyAKyA__AGyAGyAGyAGyA24_20CharWrappingJSONViewVA49_GA49_GA64_GAA11_ClipEffectVyAA16RoundedRectangleVGGtGGA49_GtGG_Qo_AA06_TraitmN0VyAA0z14RowInsetsTraitL0VGGA31_GGG_Qo__AA05PlainzY0VQo__AGyA10_AAE06buttonY0yQrqd__AA015PrimitiveButtonY0Rd__lFQOyAA6ButtonVyAGyATA24_016FlatCircleButtonN0VGG_AA011PlainButtonY0VQo_A49_GtGGG_GWOi_', symObjAddr: 0x4460, symBinAddr: 0x10008B070, symSize: 0x10 } - - { offset: 0x1459D4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_TA', symObjAddr: 0x44F0, symBinAddr: 0x10008B0C0, symSize: 0x20 } - - { offset: 0x1459E8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVys18ReversedCollectionVySay8Swiftier10EventEntryVGG10Foundation4UUIDVAA6IDViewVyAA15ModifiedContentVyAA4ViewPAAE16listRowSeparator_5edgesQrAA10VisibilityO_AA12VerticalEdgeO3SetVtFQOyAA6HStackVyAA05TupleO0VyAQyAQyAQyAA6VStackVyAA012_ConditionalN0VyA3_yAA4TextV_A9_tGA9_GGAA12_FrameLayoutVGAA14_PaddingLayoutVGA17_G_AQyAQyAA6ZStackVyA3_yAQyAA06_ShapeO0VyAA9RectangleVAA5ColorVGA14_G_AQyAQyAQyA23_yAA6CircleVA27_GA14_GAA24_BackgroundStyleModifierVyA27_GGA17_GtGGA14_GA17_GAQyA5_yA3_yA9__AQyAQyAQyAQyAF20CharWrappingJSONViewVA17_GA17_GA36_GAA11_ClipEffectVyAA16RoundedRectangleVGGtGGA17_GtGG_Qo_AA21_TraitWritingModifierVyAA04ListQ14InsetsTraitKeyVGGAMGGACyxq_q0_GAar2aRR0_rlWl', symObjAddr: 0x4510, symBinAddr: 0x10008B0E0, symSize: 0x70 } - - { offset: 0x1459FC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_yyScMYccfU0_TA', symObjAddr: 0x4600, symBinAddr: 0x10008B1D0, symSize: 0x30 } - - { offset: 0x145A10, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGG8Swiftier016FlatCircleButtonI0VGACyxq_GAA4ViewA2aRRzAA0oI0R_rlWl', symObjAddr: 0x4630, symBinAddr: 0x10008B200, symSize: 0x70 } - - { offset: 0x145A24, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierVAC7SwiftUI04ViewE0AAWl', symObjAddr: 0x4720, symBinAddr: 0x10008B270, symSize: 0x30 } - - { offset: 0x145A38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVWOc', symObjAddr: 0x47D0, symBinAddr: 0x10008B320, symSize: 0x30 } - - { offset: 0x145A4C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_yyScMYccfU0_yyXEfU_TA', symObjAddr: 0x4800, symBinAddr: 0x10008B350, symSize: 0x20 } - - { offset: 0x145A60, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVWOh', symObjAddr: 0x4820, symBinAddr: 0x10008B370, symSize: 0x30 } - - { offset: 0x145A74, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_TA', symObjAddr: 0x4880, symBinAddr: 0x10008B3D0, symSize: 0x20 } - - { offset: 0x145A88, size: 0x8, addend: 0x0, symName: '_$ss18ReversedCollectionVySay8Swiftier10EventEntryVGGAByxGSksSkRzrlWl', symObjAddr: 0x48A0, symBinAddr: 0x10008B3F0, symSize: 0x70 } - - { offset: 0x145A9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVMa', symObjAddr: 0x4910, symBinAddr: 0x10008B460, symSize: 0x30 } - - { offset: 0x145AB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVWOb', symObjAddr: 0x4970, symBinAddr: 0x10008B490, symSize: 0x30 } - - { offset: 0x145AC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwCP', symObjAddr: 0x4A30, symBinAddr: 0x10008B4C0, symSize: 0xB0 } - - { offset: 0x145AD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwxx', symObjAddr: 0x4AE0, symBinAddr: 0x10008B570, symSize: 0x50 } - - { offset: 0x145AEC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwcp', symObjAddr: 0x4B30, symBinAddr: 0x10008B5C0, symSize: 0x90 } - - { offset: 0x145B00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwca', symObjAddr: 0x4BC0, symBinAddr: 0x10008B650, symSize: 0x80 } - - { offset: 0x145B14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwtk', symObjAddr: 0x4C40, symBinAddr: 0x10008B6D0, symSize: 0x50 } - - { offset: 0x145B28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwta', symObjAddr: 0x4C90, symBinAddr: 0x10008B720, symSize: 0x70 } - - { offset: 0x145B3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwet', symObjAddr: 0x4D00, symBinAddr: 0x10008B790, symSize: 0x20 } - - { offset: 0x145B50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVwst', symObjAddr: 0x4D90, symBinAddr: 0x10008B820, symSize: 0x20 } - - { offset: 0x145B64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewVMr', symObjAddr: 0x4E10, symBinAddr: 0x10008B8A0, symSize: 0x70 } - - { offset: 0x145B78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierVMa', symObjAddr: 0x4E80, symBinAddr: 0x10008B910, symSize: 0x10 } - - { offset: 0x145B8C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA08ModifiedD0VyAA6VStackVyAA9TupleViewVyAEyAEyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAMyAA5ColorVSgGG_AA4TextVtGGAA16_FlexFrameLayoutVGAA06ScrollH6ReaderVyAA6ZStackVyAIyAA0H0PAAE9listStyleyQrqd__AA04ListX0Rd__lFQOyA8_AAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAA0Y0Vys5NeverOAA7ForEachVys18ReversedCollectionVySay8Swiftier10EventEntryVGG10Foundation4UUIDVAA6IDViewVyAEyA8_AAE0W12RowSeparator_5edgesQrA13__AA12VerticalEdgeO3SetVtFQOyAA6HStackVyAIyAEyAEyAEyAGyACyAIyAY_AYtGAYGGAA01_rS0VGAA08_PaddingS0VGA47_G_AEyAEyA6_yAIyAEyAA06_ShapeH0VyAA9RectangleVATGA44_G_AEyAEyAEyA51_yAA6CircleVATGA44_GAA011_BackgroundxM0VyATGGA47_GtGGA44_GA47_GAEyAGyAIyAY_AEyAEyAEyAEyA22_20CharWrappingJSONViewVA47_GA47_GA62_GAA11_ClipEffectVyAA16RoundedRectangleVGGtGGA47_GtGG_Qo_AA06_TraitlM0VyAA0y14RowInsetsTraitK0VGGA29_GGG_Qo__AA05PlainyX0VQo__AEyA8_AAE06buttonX0yQrqd__AA015PrimitiveButtonX0Rd__lFQOyAA6ButtonVyAEyARA22_016FlatCircleButtonM0VGG_AA011PlainButtonX0VQo_A47_GtGGGGACyxq_GAAA7_A2AA7_RzAAA7_R_rlWl', symObjAddr: 0x4EA0, symBinAddr: 0x10008B930, symSize: 0x90 } - - { offset: 0x145BA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI19NSViewRepresentableAaD4ViewPWb', symObjAddr: 0x4F40, symBinAddr: 0x10008B9C0, symSize: 0x20 } - - { offset: 0x145BB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AA4BodyAdEP_AD0H0PWT', symObjAddr: 0x4F60, symBinAddr: 0x10008B9E0, symSize: 0x20 } - - { offset: 0x145BC8, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGAA14_PaddingLayoutVGAA011_BackgroundF0VyAA06_ShapeE0VyAA0I0VAMGGGAA01_dqF0VyAXGGAA012_HoverRegionF0VGACyxq_GAA0E0A2AA8_RzAA0eF0R_rlWl', symObjAddr: 0x4FC0, symBinAddr: 0x10008BA10, symSize: 0x70 } - - { offset: 0x145BDC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGAA14_PaddingLayoutVGAA011_BackgroundF0VyAA06_ShapeE0VyAA0I0VAMGGGAA01_dqF0VyAXGGACyxq_GAA0E0A2AA5_RzAA0eF0R_rlWl', symObjAddr: 0x5030, symBinAddr: 0x10008BA80, symSize: 0x90 } - - { offset: 0x145BF0, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGAA14_PaddingLayoutVGAA011_BackgroundF0VyAA06_ShapeE0VyAA0I0VAMGGGACyxq_GAA0E0A2AA1_RzAA0eF0R_rlWl', symObjAddr: 0x50C0, symBinAddr: 0x10008BB10, symSize: 0x90 } - - { offset: 0x145C04, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGAA14_PaddingLayoutVGACyxq_GAA0E0A2aTRzAA0eF0R_rlWl', symObjAddr: 0x5150, symBinAddr: 0x10008BBA0, symSize: 0x70 } - - { offset: 0x145C18, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA014_ViewModifier_D0Vy8Swiftier016FlatCircleButtonF0VGAA016_ForegroundStyleF0VyAA5ColorVGGACyxq_GAA0E0A2aQRzAA0eF0R_rlWl', symObjAddr: 0x51C0, symBinAddr: 0x10008BC10, symSize: 0xA0 } - - { offset: 0x145C2C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI20_HoverRegionModifierVAcA04ViewE0AAWl', symObjAddr: 0x52A0, symBinAddr: 0x10008BCB0, symSize: 0x30 } - - { offset: 0x14628F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI19NSViewRepresentableAadEP15makeCoordinator0J0QzyFTW', symObjAddr: 0x3C30, symBinAddr: 0x10008AAE0, symSize: 0x10 } - - { offset: 0x1462AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI4ViewAadEP05_makeG04view6inputsAD01_G7OutputsVAD11_GraphValueVyxG_AD01_G6InputsVtFZTW', symObjAddr: 0x3CD0, symBinAddr: 0x10008AAF0, symSize: 0x50 } - - { offset: 0x1462C7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI4ViewAadEP05_makeG4List4view6inputsAD01_gI7OutputsVAD11_GraphValueVyxG_AD01_gI6InputsVtFZTW', symObjAddr: 0x3D20, symBinAddr: 0x10008AB40, symSize: 0x50 } - - { offset: 0x1462E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x3D70, symBinAddr: 0x10008AB90, symSize: 0x30 } - - { offset: 0x1465BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AadEP05_makeH08modifier6inputs4bodyAD01_H7OutputsVAD11_GraphValueVyxG_AD01_H6InputsVAlD01_N0V_AQtctFZTW', symObjAddr: 0x3E10, symBinAddr: 0x10008AC30, symSize: 0x10 } - - { offset: 0x1465D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AadEP05_makeH4List8modifier6inputs4bodyAD01_hJ7OutputsVAD11_GraphValueVyxG_AD01_hJ6InputsVAlD01_O0V_AQtctFZTW', symObjAddr: 0x3E20, symBinAddr: 0x10008AC40, symSize: 0x10 } - - { offset: 0x1465F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AadEP14_viewListCount6inputs4bodySiSgAD01_hjK6InputsV_AjLXEtFZTW', symObjAddr: 0x3E30, symBinAddr: 0x10008AC50, symSize: 0x10 } - - { offset: 0x146ACC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg', symObjAddr: 0x0, symBinAddr: 0x100086F30, symSize: 0x350 } - - { offset: 0x146C3A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE15foregroundColoryQrAE0J0VSgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo__AE4TextVtGyXEfU_', symObjAddr: 0x350, symBinAddr: 0x100087280, symSize: 0x2F0 } - - { offset: 0x146CF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_', symObjAddr: 0x640, symBinAddr: 0x100087570, symSize: 0x60 } - - { offset: 0x146D7D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_', symObjAddr: 0x6A0, symBinAddr: 0x1000875D0, symSize: 0x570 } - - { offset: 0x146E3B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_', symObjAddr: 0xC10, symBinAddr: 0x100087B40, symSize: 0x110 } - - { offset: 0x146E76, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_', symObjAddr: 0xD20, symBinAddr: 0x100087C50, symSize: 0x170 } - - { offset: 0x146F93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_A79_yXEfU_', symObjAddr: 0xE90, symBinAddr: 0x100087DC0, symSize: 0x850 } - - { offset: 0x14722F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_A79_yXEfU_A38_yXEfU_', symObjAddr: 0x16E0, symBinAddr: 0x100088610, symSize: 0x900 } - - { offset: 0x147379, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_A79_yXEfU_A64_yXEfU0_', symObjAddr: 0x1FE0, symBinAddr: 0x100088F10, symSize: 0x500 } - - { offset: 0x1474FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A84_yXEfU_A83_AZcfU_A79_yXEfU_A76_yXEfU1_', symObjAddr: 0x24E0, symBinAddr: 0x100089410, symSize: 0x600 } - - { offset: 0x147693, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_yyScMYccfU0_', symObjAddr: 0x2AE0, symBinAddr: 0x100089A10, symSize: 0xE0 } - - { offset: 0x1477F4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_yyScMYccfU0_yyXEfU_', symObjAddr: 0x2BC0, symBinAddr: 0x100089AF0, symSize: 0x80 } - - { offset: 0x147835, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV4bodyQrvg7SwiftUI6ZStackVyAE05TupleD0VyAE0D0PAEE9listStyleyQrqd__AE0cK0Rd__lFQOyAkEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAE0C0Vys5NeverOAE7ForEachVys18ReversedCollectionVySayAA0B5EntryVGG10Foundation4UUIDVAkEE2idyQrqd__SHRd__lFQOyAkEE0J9RowInsetsyQrAE04EdgeZ0VSgFQOyAkEE0jY9Separator_5edgesQrAP_AE12VerticalEdgeO3SetVtFQOyAE6HStackVyAIyAkEE7paddingyQrAE4EdgeOA13_V_12CoreGraphics7CGFloatVSgtFQOyAkEEA17_yQrA20__A24_tFQOyAkEE5frame5width6height9alignmentQrA24__A24_AE9AlignmentVtFQOyAE6VStackVyAE012_ConditionalM0VyAIyAE4TextV_A36_tGA36_GG_Qo__Qo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAGyAIyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyAE5ShapePAEE4fill_5styleQrqd___AE04FillK0VtAE05ShapeK0Rd__lFQOyAE9RectangleV_AE5ColorVQo__Qo__AkEEA17_yQrA20__A24_tFQOyAkEE10background_20ignoresSafeAreaEdgesQrqd___A20_tAEA49_Rd__lFQOyAkEEA25_A26_A27_A28_QrA24__A24_A30_tFQOyA44_AEEA45__A46_Qrqd___A48_tAEA49_Rd__lFQOyAE6CircleV_A53_Qo__Qo__A53_Qo__Qo_tGG_Qo__Qo_AkEEA17_yQrA20__A24_tFQOyA32_yAIyA36__AkEE12cornerRadius_11antialiasedQrA23__SbtFQOyAkEEA56__A57_Qrqd___A20_tAEA49_Rd__lFQOyAkEEA17_yQrA20__A24_tFQOyAkEEA17_yQrA20__A24_tFQOyAA20CharWrappingJSONViewV_Qo__Qo__A53_Qo__Qo_tGG_Qo_tGG_Qo__Qo__A3_Qo_GG_Qo__AE05PlaincK0VQo__AkEEA17_yQrA23_FQOyAkEE06buttonK0yQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE6ButtonVyAE08ModifiedM0VyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE011PlainButtonK0VQo__Qo_tGGAE06ScrollD5ProxyVcfU0_A111_yXEfU_A105_yXEfU1_', symObjAddr: 0x2C40, symBinAddr: 0x100089B70, symSize: 0xE0 } - - { offset: 0x1479B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x2D50, symBinAddr: 0x100089C50, symSize: 0x20 } - - { offset: 0x147A45, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV10makeNSView7contextAC0C8TextViewC7SwiftUI0F20RepresentableContextVyACG_tF', symObjAddr: 0x2D70, symBinAddr: 0x100089C70, symSize: 0xF0 } - - { offset: 0x147AB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV12updateNSView_7contextyAC0C8TextViewC_7SwiftUI0F20RepresentableContextVyACGtF', symObjAddr: 0x2E60, symBinAddr: 0x100089D60, symSize: 0x1B0 } - - { offset: 0x147B57, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV21highlightWithMetadata33_AA67B34B58048746B4F02B333314D66CLL_10highlightsSo18NSAttributedStringCSS_SayAA14HighlightRangeVGtF', symObjAddr: 0x3010, symBinAddr: 0x100089F10, symSize: 0x4C0 } - - { offset: 0x147DC9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC20intrinsicContentSizeSo6CGSizeVvgTo', symObjAddr: 0x34D0, symBinAddr: 0x10008A3D0, symSize: 0x40 } - - { offset: 0x147DF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC20intrinsicContentSizeSo6CGSizeVvg', symObjAddr: 0x3510, symBinAddr: 0x10008A410, symSize: 0x110 } - - { offset: 0x147E70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC22viewDidMoveToSuperviewyyF', symObjAddr: 0x3620, symBinAddr: 0x10008A520, symSize: 0xB0 } - - { offset: 0x147E93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC22viewDidMoveToSuperviewyyFTo', symObjAddr: 0x36D0, symBinAddr: 0x10008A5D0, symSize: 0x30 } - - { offset: 0x147EDE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC5frame13textContainerAESo6CGRectV_So06NSTextI0CSgtcfcTo', symObjAddr: 0x3700, symBinAddr: 0x10008A600, symSize: 0x60 } - - { offset: 0x147F3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC5coderAESgSo7NSCoderC_tcfcTo', symObjAddr: 0x3760, symBinAddr: 0x10008A660, symSize: 0x80 } - - { offset: 0x147F93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewC5frameAESo6CGRectV_tcfcTo', symObjAddr: 0x37E0, symBinAddr: 0x10008A6E0, symSize: 0x60 } - - { offset: 0x147FC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewCfZ', symObjAddr: 0x3840, symBinAddr: 0x10008A740, symSize: 0x30 } - - { offset: 0x14800E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV0C8TextViewCfD', symObjAddr: 0x3870, symBinAddr: 0x10008A770, symSize: 0x310 } - - { offset: 0x14804D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI19NSViewRepresentableAadEP04makeG07context0G4TypeQzAD0gH7ContextVyxG_tFTW', symObjAddr: 0x3C00, symBinAddr: 0x10008AAC0, symSize: 0x10 } - - { offset: 0x148061, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20CharWrappingJSONViewV7SwiftUI19NSViewRepresentableAadEP06updateG0_7contexty0G4TypeQz_AD0gH7ContextVyxGtFTW', symObjAddr: 0x3C10, symBinAddr: 0x10008AAD0, symSize: 0x10 } - - { offset: 0x148075, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV4body7contentQr7SwiftUI05_ViewE8_ContentVyACG_tFySbcfU_', symObjAddr: 0x3DA0, symBinAddr: 0x10008ABC0, symSize: 0x70 } - - { offset: 0x1480C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier24FlatCircleButtonModifierV7SwiftUI04ViewE0AadEP4body7content4BodyQzAD01_hE8_ContentVyxG_tFTW', symObjAddr: 0x3E40, symBinAddr: 0x10008AC60, symSize: 0x170 } - - { offset: 0x1483CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC6sharedACvpZ', symObjAddr: 0x21778, symBinAddr: 0x100137C60, symSize: 0x0 } - - { offset: 0x1488A8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC6shared_WZ', symObjAddr: 0xE30, symBinAddr: 0x10008CB30, symSize: 0xD0 } - - { offset: 0x148927, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerCMa', symObjAddr: 0xFB0, symBinAddr: 0x10008CCB0, symSize: 0x20 } - - { offset: 0x148963, size: 0x8, addend: 0x0, symName: '_$sSo7NSErrorCSgIeyBhy_ytTz_', symObjAddr: 0x2E70, symBinAddr: 0x10008EB20, symSize: 0x80 } - - { offset: 0x148A1D, size: 0x8, addend: 0x0, symName: '_$sSbSSSgIegyg_10ObjectiveC8ObjCBoolVSo8NSStringCSgIeyByy_TR', symObjAddr: 0x4140, symBinAddr: 0x10008FDF0, symSize: 0x80 } - - { offset: 0x148A4A, size: 0x8, addend: 0x0, symName: '_$sSSIegg_So8NSStringCIeyBy_TR', symObjAddr: 0x41C0, symBinAddr: 0x10008FE70, symSize: 0x50 } - - { offset: 0x148A62, size: 0x8, addend: 0x0, symName: '_$sSbIegy_10ObjectiveC8ObjCBoolVIeyBy_TR', symObjAddr: 0x49D0, symBinAddr: 0x100090680, symSize: 0x40 } - - { offset: 0x148AB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCMa', symObjAddr: 0x58C0, symBinAddr: 0x100091570, symSize: 0x20 } - - { offset: 0x148AC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFyAGcfU0_yyScMYccfU_TA', symObjAddr: 0x5940, symBinAddr: 0x1000915B0, symSize: 0x20 } - - { offset: 0x148B00, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x5960, symBinAddr: 0x1000915D0, symSize: 0x20 } - - { offset: 0x148B14, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x5980, symBinAddr: 0x1000915F0, symSize: 0x10 } - - { offset: 0x148B28, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tg5', symObjAddr: 0x5AB0, symBinAddr: 0x100091650, symSize: 0x60 } - - { offset: 0x148B47, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tg5TQ0_', symObjAddr: 0x5B10, symBinAddr: 0x1000916B0, symSize: 0x50 } - - { offset: 0x148B87, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC4stop10completionyySbc_tFySbcfU_TA', symObjAddr: 0x6170, symBinAddr: 0x100091D10, symSize: 0x20 } - - { offset: 0x148B9B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFyycfU_TA', symObjAddr: 0x61B0, symBinAddr: 0x100091D50, symSize: 0x20 } - - { offset: 0x148BAF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFySbcfU1_TA', symObjAddr: 0x6220, symBinAddr: 0x100091DC0, symSize: 0x20 } - - { offset: 0x148BC3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFys5Error_pcfU0_yyScMYccfU_TA', symObjAddr: 0x6280, symBinAddr: 0x100091E00, symSize: 0x20 } - - { offset: 0x148BF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11CoreServiceC5start10configPath10completionySS_ySbctFySb_SSSgtcfU_TA', symObjAddr: 0x69F0, symBinAddr: 0x100092570, symSize: 0x20 } - - { offset: 0x148C0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFyycfU0_TA', symObjAddr: 0x6A40, symBinAddr: 0x1000925C0, symSize: 0x20 } - - { offset: 0x148C1F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_ySb_AHtcfU0_TA', symObjAddr: 0x6AB0, symBinAddr: 0x100092630, symSize: 0x30 } - - { offset: 0x148C33, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_ySb_AHtcfU0_yyScMYccfU_TA', symObjAddr: 0x6B10, symBinAddr: 0x100092690, symSize: 0x30 } - - { offset: 0x148C71, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFyycfU0_yyScMYccfU_TA', symObjAddr: 0x6C90, symBinAddr: 0x100092810, symSize: 0x40 } - - { offset: 0x148CBA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TA', symObjAddr: 0x6D10, symBinAddr: 0x100092890, symSize: 0xA0 } - - { offset: 0x148CCE, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tg5TA', symObjAddr: 0x6E40, symBinAddr: 0x100092930, symSize: 0x80 } - - { offset: 0x148CE2, size: 0x8, addend: 0x0, symName: '_$sxIeAgHr_xs5Error_pIegHrzo_s8SendableRzs5NeverORs_r0_lTRyt_Tg5TA.127', symObjAddr: 0x6EC0, symBinAddr: 0x1000929B0, symSize: 0x80 } - - { offset: 0x148CF6, size: 0x8, addend: 0x0, symName: _block_copy_helper.131, symObjAddr: 0x6FF0, symBinAddr: 0x100092A30, symSize: 0x20 } - - { offset: 0x148D0A, size: 0x8, addend: 0x0, symName: _block_destroy_helper.132, symObjAddr: 0x7040, symBinAddr: 0x100092A50, symSize: 0x10 } - - { offset: 0x148D1E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFyAFcfU0_yyScMYccfU_TA', symObjAddr: 0x70E0, symBinAddr: 0x100092A90, symSize: 0x30 } - - { offset: 0x148D5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC03getB033_BF822A7A050631C76F346418077C0BFCLL12errorHandlerAA0B8Protocol_pSgys5Error_pcSg_tFysAI_pcfU_TA', symObjAddr: 0x7140, symBinAddr: 0x100092AF0, symSize: 0x20 } - - { offset: 0x148D70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyFyycfU_TA', symObjAddr: 0x7180, symBinAddr: 0x100092B10, symSize: 0x10 } - - { offset: 0x148D84, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyFyycfU0_TA', symObjAddr: 0x7190, symBinAddr: 0x100092B20, symSize: 0x10 } - - { offset: 0x148D98, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFySdcfU0_yyScMYccfU_TA', symObjAddr: 0x71C0, symBinAddr: 0x100092B50, symSize: 0x20 } - - { offset: 0x148DD4, size: 0x8, addend: 0x0, symName: '_$sSay8Swiftier14ProcessedEventVGSayxGSesSeRzlWl', symObjAddr: 0x71E0, symBinAddr: 0x100092B70, symSize: 0x70 } - - { offset: 0x148DE8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC23handleRunningInfoUpdate33_BF822A7A050631C76F346418077C0BFCLLyySSFyyScMYccfU_TA', symObjAddr: 0x72E0, symBinAddr: 0x100092C40, symSize: 0x20 } - - { offset: 0x148FF4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctF', symObjAddr: 0x0, symBinAddr: 0x10008BD00, symSize: 0x700 } - - { offset: 0x149226, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySb_AHtcfU_', symObjAddr: 0x3180, symBinAddr: 0x10008EE30, symSize: 0x90 } - - { offset: 0x1492A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFyycfU0_', symObjAddr: 0x3210, symBinAddr: 0x10008EEC0, symSize: 0x240 } - - { offset: 0x149340, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFys5Error_pcfU1_', symObjAddr: 0x3450, symBinAddr: 0x10008F100, symSize: 0x280 } - - { offset: 0x14953C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_', symObjAddr: 0x36D0, symBinAddr: 0x10008F380, symSize: 0x720 } - - { offset: 0x149825, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_ySb_AHtcfU_', symObjAddr: 0x3DF0, symBinAddr: 0x10008FAA0, symSize: 0x100 } - - { offset: 0x149933, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctFySScfU2_ySb_AHtcfU0_', symObjAddr: 0x3EF0, symBinAddr: 0x10008FBA0, symSize: 0x250 } - - { offset: 0x149A2D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tF013$s8Swiftier11e43ServiceC4stop10completionyySbc_tFySbcfU_091gh991ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05Tuplem5VyAF0m40PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyy2R0x36AjFE12cornerRadius_11antialiasedQr12b91Graphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackx78AHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7Sectionx22A5_AF012_ConditionalB0x31AjFE8disabledyQrSbFQOyAF6Buttonx18A5_G_Qo_AF7ForEachx60Say10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyM504VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_yM10U_Tf3npf_nTf1cn_n', symObjAddr: 0x700, symBinAddr: 0x10008C400, symSize: 0x3E0 } - - { offset: 0x149B5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctF', symObjAddr: 0xAE0, symBinAddr: 0x10008C7E0, symSize: 0x350 } - - { offset: 0x149D28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_', symObjAddr: 0x1710, symBinAddr: 0x10008D3C0, symSize: 0x140 } - - { offset: 0x149D92, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY0_', symObjAddr: 0x1850, symBinAddr: 0x10008D500, symSize: 0x670 } - - { offset: 0x14A010, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY1_', symObjAddr: 0x1EC0, symBinAddr: 0x10008DB70, symSize: 0x90 } - - { offset: 0x14A0A3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY2_', symObjAddr: 0x1F50, symBinAddr: 0x10008DC00, symSize: 0xA0 } - - { offset: 0x14A14B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TQ4_', symObjAddr: 0x1FF0, symBinAddr: 0x10008DCA0, symSize: 0xA0 } - - { offset: 0x14A1AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY5_', symObjAddr: 0x2090, symBinAddr: 0x10008DD40, symSize: 0x80 } - - { offset: 0x14A20B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TQ6_', symObjAddr: 0x2110, symBinAddr: 0x10008DDC0, symSize: 0xC0 } - - { offset: 0x14A26D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY8_', symObjAddr: 0x21D0, symBinAddr: 0x10008DE80, symSize: 0x90 } - - { offset: 0x14A300, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY9_', symObjAddr: 0x2260, symBinAddr: 0x10008DF10, symSize: 0x90 } - - { offset: 0x14A393, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY10_', symObjAddr: 0x22F0, symBinAddr: 0x10008DFA0, symSize: 0x80 } - - { offset: 0x14A40C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY11_', symObjAddr: 0x2370, symBinAddr: 0x10008E020, symSize: 0x90 } - - { offset: 0x14A49F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY12_', symObjAddr: 0x2400, symBinAddr: 0x10008E0B0, symSize: 0xA0 } - - { offset: 0x14A547, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TQ14_', symObjAddr: 0x24A0, symBinAddr: 0x10008E150, symSize: 0x90 } - - { offset: 0x14A5BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY15_', symObjAddr: 0x2530, symBinAddr: 0x10008E1E0, symSize: 0x90 } - - { offset: 0x14A651, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY16_', symObjAddr: 0x25C0, symBinAddr: 0x10008E270, symSize: 0x90 } - - { offset: 0x14A6E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY18_', symObjAddr: 0x2650, symBinAddr: 0x10008E300, symSize: 0x90 } - - { offset: 0x14A7AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY19_', symObjAddr: 0x26E0, symBinAddr: 0x10008E390, symSize: 0xA0 } - - { offset: 0x14A88B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY20_', symObjAddr: 0x2780, symBinAddr: 0x10008E430, symSize: 0xA0 } - - { offset: 0x14A904, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY21_', symObjAddr: 0x2820, symBinAddr: 0x10008E4D0, symSize: 0x90 } - - { offset: 0x14A9D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY22_', symObjAddr: 0x28B0, symBinAddr: 0x10008E560, symSize: 0xE0 } - - { offset: 0x14AA9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY24_', symObjAddr: 0x2990, symBinAddr: 0x10008E640, symSize: 0xA0 } - - { offset: 0x14AAFA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC07installB05force10completionySb_ySb_SSSgtctFyyYacfU_TY25_', symObjAddr: 0x2A30, symBinAddr: 0x10008E6E0, symSize: 0x440 } - - { offset: 0x14AE15, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC20invalidateConnection33_BF822A7A050631C76F346418077C0BFCLLyyF', symObjAddr: 0xF00, symBinAddr: 0x10008CC00, symSize: 0x60 } - - { offset: 0x14AE8D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerCfD', symObjAddr: 0xF60, symBinAddr: 0x10008CC60, symSize: 0x50 } - - { offset: 0x14AEC6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyF', symObjAddr: 0xFD0, symBinAddr: 0x10008CCD0, symSize: 0x2F0 } - - { offset: 0x14B009, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyFyycfU_', symObjAddr: 0x12C0, symBinAddr: 0x10008CFC0, symSize: 0x140 } - - { offset: 0x14B05E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getConnection33_BF822A7A050631C76F346418077C0BFCLLSo15NSXPCConnectionCyFyycfU0_', symObjAddr: 0x1400, symBinAddr: 0x10008D100, symSize: 0x70 } - - { offset: 0x14B11A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC03getB033_BF822A7A050631C76F346418077C0BFCLL12errorHandlerAA0B8Protocol_pSgys5Error_pcSg_tF', symObjAddr: 0x1470, symBinAddr: 0x10008D170, symSize: 0x160 } - - { offset: 0x14B165, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC03getB033_BF822A7A050631C76F346418077C0BFCLL12errorHandlerAA0B8Protocol_pSgys5Error_pcSg_tFysAI_pcfU_', symObjAddr: 0x15D0, symBinAddr: 0x10008D2D0, symSize: 0xF0 } - - { offset: 0x14B258, size: 0x8, addend: 0x0, symName: '_$sScTss5NeverORs_rlE4name8priority9operationScTyxABGSSSg_ScPSgxyYaYAcntcfCyt_Tt2g5', symObjAddr: 0x2EF0, symBinAddr: 0x10008EBA0, symSize: 0x290 } - - { offset: 0x14B2E4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFyycfU_', symObjAddr: 0x4210, symBinAddr: 0x10008FEC0, symSize: 0x240 } - - { offset: 0x14B38B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFys5Error_pcfU0_', symObjAddr: 0x4450, symBinAddr: 0x100090100, symSize: 0x350 } - - { offset: 0x14B4CD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tFySbcfU1_', symObjAddr: 0x47A0, symBinAddr: 0x100090450, symSize: 0x230 } - - { offset: 0x14B572, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFys5Error_pcfU_013$s8Swiftier11e37ServiceC9getStatus10completionyySb_s5h16Vtc_tFyAGcfU_092jk72AppDelegateC19checkAndAutoConnect33_D61CA3F2DBEA35B3CBAB90B57CBB2BC5LLyyro1_P16G6VtcfU_Tf3npf_nTf3npf_n', symObjAddr: 0x4A10, symBinAddr: 0x1000906C0, symSize: 0x10 } - - { offset: 0x14B5D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFys5Error_pcfU_', symObjAddr: 0x4A20, symBinAddr: 0x1000906D0, symSize: 0x20 } - - { offset: 0x14B607, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC13getCoreStatus10completionyys5Int32Vc_tFyAGcfU0_', symObjAddr: 0x4A40, symBinAddr: 0x1000906F0, symSize: 0x1D0 } - - { offset: 0x14B676, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFys5Error_pcfU_', symObjAddr: 0x4C10, symBinAddr: 0x1000908C0, symSize: 0x20 } - - { offset: 0x14B6AD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC16getCoreStartTime10completionyySdc_tFySdcfU0_', symObjAddr: 0x4C30, symBinAddr: 0x1000908E0, symSize: 0x1D0 } - - { offset: 0x14B710, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC04quitB010completionyyyc_tFySbcfU_091$s8Swiftier11ContentViewV06headerC033_FD6C0C263E4B6E937596903D0DEE615BLLQrvg7SwiftUI05Tuplem5VyAF0m40PAFE9menuStyleyQrqd__AF04MenuQ0Rd__lFQOyy2R0x131AjFE12cornerRadius_11antialiasedQr12CoreGraphics7CGFloatV_SbtFQOyAjFE7paddingyQrAF4EdgeO3SetV_ASSgtFQOyAjFEATyQrAX_AYtFQOyAF6HStackx78AHyAF5ImageV_AjFE9lineLimityQrSiSgFQOyAF4TextV_Qo_tGG_Qo__Qo__Qo_AHyAF7Sectionx22A5_AF012_ConditionalB0x31AjFE8disabledyQrSbFQOyAF6Buttonx18A5_G_Qo_AF7ForEachx60Say10Foundation3URLVGA25_A18_yA_yAHyA5__A1_SgtGGGGGAF05EmptyM504VG_AF7DividerVA19_A20_A20_A37_A19_A19_A19_A37_A20_tGG_AF016BorderlessButtonrQ0VQo__AF6SpacerVA_yAHyAjFE06buttonQ0yQrqd__AF015PrimitiveButtonQ0Rd__lFQOyA18_yAjFE12contentShape_6eoFillQrqd___SbtAF5ShapeRd__lFQOyAjFEATyQrASFQOyAjFE4fontyQrAF4FontVSgFQOyA1__Qo__Qo__AF9RectangleVQo_G_AF011PlainButtonQ0VQo__A62_AjFEA45_yQrqd__AFA46_Rd__lFQOyA18_yAjFEA47__A48_Qrqd___SbtAFA49_Rd__lFQOyAjFEATyQrASFQOyAjFE15foregroundColoryQrAF5ColorVSgFQOyA54__Qo__Qo__A57_Qo_G_A61_Qo_tGGtGyXEfU_A72_yXEfU1_yyScMYccfU3_yycfU0_Tf3npf_n', symObjAddr: 0x4E00, symBinAddr: 0x100090AB0, symSize: 0x10 } - - { offset: 0x14B740, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC15getRecentEvents10sinceIndex10completionySi_ySayAA14ProcessedEventVG_SitctFys5Error_pcfU_', symObjAddr: 0x4E10, symBinAddr: 0x100090AC0, symSize: 0x30 } - - { offset: 0x14B7A1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC15getRecentEvents10sinceIndex10completionySi_ySayAA14ProcessedEventVG_SitctFy10Foundation4DataV_SitcfU0_', symObjAddr: 0x4E40, symBinAddr: 0x100090AF0, symSize: 0x280 } - - { offset: 0x14B84F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFys5Error_pcfU_', symObjAddr: 0x50C0, symBinAddr: 0x100090D70, symSize: 0x20 } - - { offset: 0x14B886, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14getRunningInfo5replyyySSSgc_tFyAFcfU0_', symObjAddr: 0x50E0, symBinAddr: 0x100090D90, symSize: 0x1F0 } - - { offset: 0x14B8E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC23handleRunningInfoUpdate33_BF822A7A050631C76F346418077C0BFCLLyySSF', symObjAddr: 0x52D0, symBinAddr: 0x100090F80, symSize: 0x1E0 } - - { offset: 0x14B94B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC23handleRunningInfoUpdate33_BF822A7A050631C76F346418077C0BFCLLyySSFyyScMYccfU_', symObjAddr: 0x5A60, symBinAddr: 0x100091600, symSize: 0x50 } - - { offset: 0x14B9C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLC18runningInfoUpdatedyySSFTo', symObjAddr: 0x54B0, symBinAddr: 0x100091160, symSize: 0x70 } - - { offset: 0x14BA1D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLC10logUpdatedyySaySSGFTo', symObjAddr: 0x5520, symBinAddr: 0x1000911D0, symSize: 0x10 } - - { offset: 0x14BA46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCAFycfcTo', symObjAddr: 0x5530, symBinAddr: 0x1000911E0, symSize: 0x30 } - - { offset: 0x14BAA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCfZ', symObjAddr: 0x5560, symBinAddr: 0x100091210, symSize: 0x40 } - - { offset: 0x14BACD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCfD', symObjAddr: 0x55A0, symBinAddr: 0x100091250, symSize: 0x300 } - - { offset: 0x14BB0E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC14ClientListener33_BF822A7A050631C76F346418077C0BFCLLCfETo', symObjAddr: 0x58A0, symBinAddr: 0x100091550, symSize: 0x20 } - - { offset: 0x14BB69, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC3log33_BF822A7A050631C76F346418077C0BFCLLyySSFTf4nd_n', symObjAddr: 0x5B60, symBinAddr: 0x100091700, symSize: 0x1A0 } - - { offset: 0x14BCCB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC8stopCore10completionyySbc_tF013$s8Swiftier11E40ServiceC4stop10completionyySbc_tFySbcfU_SbIegy_Tf1cn_nTf4ng_n', symObjAddr: 0x5D00, symBinAddr: 0x1000918A0, symSize: 0x470 } - - { offset: 0x14BDEF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC9startCore10configPath12consoleLevel10completionySS_SSySb_SSSgtctF013$s8Swiftier11E61ServiceC5start10configPath10completionySS_ySbctFySb_SSSgtcfU_SbIegy_Tf1nncn_nTf4nnng_n', symObjAddr: 0x62A0, symBinAddr: 0x100091E20, symSize: 0x750 } - - { offset: 0x14C1CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier22kHelperMachServiceNameSSvp', symObjAddr: 0x2BA0, symBinAddr: 0x100122248, symSize: 0x0 } - - { offset: 0x14C1E8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20kTargetHelperVersionSSvp', symObjAddr: 0x2D58, symBinAddr: 0x1000DF600, symSize: 0x0 } - - { offset: 0x14C1F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier22kHelperMachServiceNameSSvau', symObjAddr: 0x0, symBinAddr: 0x100093280, symSize: 0x10 } - - { offset: 0x14C214, size: 0x8, addend: 0x0, symName: '_$s8Swiftier20kTargetHelperVersionSSvau', symObjAddr: 0x10, symBinAddr: 0x100093290, symSize: 0x10 } - - { offset: 0x14C4B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs0D3KeyAAWl', symObjAddr: 0x450, symBinAddr: 0x1000935F0, symSize: 0x30 } - - { offset: 0x14C6AE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVMa', symObjAddr: 0x1340, symBinAddr: 0x1000943D0, symSize: 0x30 } - - { offset: 0x14C6C2, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOc', symObjAddr: 0x1370, symBinAddr: 0x100094400, symSize: 0x40 } - - { offset: 0x14C6D6, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOb', symObjAddr: 0x13B0, symBinAddr: 0x100094440, symSize: 0x40 } - - { offset: 0x14C6EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs0D3KeyAAWl', symObjAddr: 0x13F0, symBinAddr: 0x100094480, symSize: 0x30 } - - { offset: 0x14C6FE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVACSEAAWl', symObjAddr: 0x1470, symBinAddr: 0x1000944B0, symSize: 0x30 } - - { offset: 0x14C712, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOh', symObjAddr: 0x14D0, symBinAddr: 0x1000944E0, symSize: 0x40 } - - { offset: 0x14C726, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVACSeAAWl', symObjAddr: 0x15A0, symBinAddr: 0x100094580, symSize: 0x30 } - - { offset: 0x14C73A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVWOc', symObjAddr: 0x15D0, symBinAddr: 0x1000945B0, symSize: 0x30 } - - { offset: 0x14C74E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVWOh', symObjAddr: 0x1600, symBinAddr: 0x1000945E0, symSize: 0x30 } - - { offset: 0x14C762, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwxx', symObjAddr: 0x1660, symBinAddr: 0x100094610, symSize: 0x10 } - - { offset: 0x14C776, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwcp', symObjAddr: 0x1670, symBinAddr: 0x100094620, symSize: 0x40 } - - { offset: 0x14C78A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwca', symObjAddr: 0x16B0, symBinAddr: 0x100094660, symSize: 0x60 } - - { offset: 0x14C79E, size: 0x8, addend: 0x0, symName: ___swift_memcpy33_8, symObjAddr: 0x1710, symBinAddr: 0x1000946C0, symSize: 0x20 } - - { offset: 0x14C7B2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwta', symObjAddr: 0x1730, symBinAddr: 0x1000946E0, symSize: 0x40 } - - { offset: 0x14C7C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwet', symObjAddr: 0x1770, symBinAddr: 0x100094720, symSize: 0x50 } - - { offset: 0x14C7DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVwst', symObjAddr: 0x17C0, symBinAddr: 0x100094770, symSize: 0x50 } - - { offset: 0x14C7EE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVMa', symObjAddr: 0x1810, symBinAddr: 0x1000947C0, symSize: 0x10 } - - { offset: 0x14C802, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwCP', symObjAddr: 0x1820, symBinAddr: 0x1000947D0, symSize: 0x170 } - - { offset: 0x14C816, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwxx', symObjAddr: 0x1990, symBinAddr: 0x100094940, symSize: 0xA0 } - - { offset: 0x14C82A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwcp', symObjAddr: 0x1A30, symBinAddr: 0x1000949E0, symSize: 0x150 } - - { offset: 0x14C83E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwca', symObjAddr: 0x1B80, symBinAddr: 0x100094B30, symSize: 0x1E0 } - - { offset: 0x14C852, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwtk', symObjAddr: 0x1D60, symBinAddr: 0x100094D10, symSize: 0x100 } - - { offset: 0x14C866, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwta', symObjAddr: 0x1E60, symBinAddr: 0x100094E10, symSize: 0x1B0 } - - { offset: 0x14C87A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwet', symObjAddr: 0x2010, symBinAddr: 0x100094FC0, symSize: 0x20 } - - { offset: 0x14C88E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVwst', symObjAddr: 0x20C0, symBinAddr: 0x100095070, symSize: 0x20 } - - { offset: 0x14C8A2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVMr', symObjAddr: 0x2160, symBinAddr: 0x100095110, symSize: 0xA0 } - - { offset: 0x14C8B6, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgMa', symObjAddr: 0x2200, symBinAddr: 0x1000951B0, symSize: 0x50 } - - { offset: 0x14C8CA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOMa', symObjAddr: 0x23D0, symBinAddr: 0x100095200, symSize: 0x10 } - - { offset: 0x14C8DE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOMa', symObjAddr: 0x2560, symBinAddr: 0x100095210, symSize: 0x10 } - - { offset: 0x14C8F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOSHAASQWb', symObjAddr: 0x2570, symBinAddr: 0x100095220, symSize: 0x10 } - - { offset: 0x14C906, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFSQAAWl', symObjAddr: 0x2580, symBinAddr: 0x100095230, symSize: 0x30 } - - { offset: 0x14C91A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOSHAASQWb', symObjAddr: 0x25B0, symBinAddr: 0x100095260, symSize: 0x10 } - - { offset: 0x14C92E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFSQAAWl', symObjAddr: 0x25C0, symBinAddr: 0x100095270, symSize: 0x30 } - - { offset: 0x14C942, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x25F0, symBinAddr: 0x1000952A0, symSize: 0x10 } - - { offset: 0x14C956, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x2600, symBinAddr: 0x1000952B0, symSize: 0x30 } - - { offset: 0x14C96A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x2630, symBinAddr: 0x1000952E0, symSize: 0x10 } - - { offset: 0x14C97E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x2640, symBinAddr: 0x1000952F0, symSize: 0x30 } - - { offset: 0x14C992, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x2670, symBinAddr: 0x100095320, symSize: 0x10 } - - { offset: 0x14C9A6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x2680, symBinAddr: 0x100095330, symSize: 0x30 } - - { offset: 0x14C9BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x26B0, symBinAddr: 0x100095360, symSize: 0x10 } - - { offset: 0x14C9CE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x26C0, symBinAddr: 0x100095370, symSize: 0x30 } - - { offset: 0x14CA00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x1B0, symBinAddr: 0x1000933C0, symSize: 0x20 } - - { offset: 0x14CA1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x1D0, symBinAddr: 0x1000933E0, symSize: 0x20 } - - { offset: 0x14CA5C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x8A0, symBinAddr: 0x100093930, symSize: 0x20 } - - { offset: 0x14CA78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x8C0, symBinAddr: 0x100093950, symSize: 0x20 } - - { offset: 0x14CAC9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV5startSivg', symObjAddr: 0x20, symBinAddr: 0x1000932A0, symSize: 0x10 } - - { offset: 0x14CADD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV6lengthSivg', symObjAddr: 0x30, symBinAddr: 0x1000932B0, symSize: 0x10 } - - { offset: 0x14CAF1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV5colorSSvg', symObjAddr: 0x40, symBinAddr: 0x1000932C0, symSize: 0x30 } - - { offset: 0x14CB05, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV4boldSbvg', symObjAddr: 0x70, symBinAddr: 0x1000932F0, symSize: 0x10 } - - { offset: 0x14CB25, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV5start6length5color4boldACSi_SiSSSbtcfC', symObjAddr: 0x80, symBinAddr: 0x100093300, symSize: 0x20 } - - { offset: 0x14CBB2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0xF0, symBinAddr: 0x100093320, symSize: 0x80 } - - { offset: 0x14CBE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x170, symBinAddr: 0x1000933A0, symSize: 0x20 } - - { offset: 0x14CC0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV23__derived_struct_equalsySbAC_ACtFZ', symObjAddr: 0x1F0, symBinAddr: 0x100093400, symSize: 0x80 } - - { offset: 0x14CC64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV6encode2toys7Encoder_p_tKF', symObjAddr: 0x270, symBinAddr: 0x100093480, symSize: 0x170 } - - { offset: 0x14CC95, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV4fromACs7Decoder_p_tKcfC', symObjAddr: 0x480, symBinAddr: 0x100093620, symSize: 0x40 } - - { offset: 0x14CCB7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x500, symBinAddr: 0x100093660, symSize: 0x10 } - - { offset: 0x14CCFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x510, symBinAddr: 0x100093670, symSize: 0x80 } - - { offset: 0x14CD5F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV9timestampSSvg', symObjAddr: 0x5C0, symBinAddr: 0x1000936F0, symSize: 0x30 } - - { offset: 0x14CD73, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV4time10Foundation4DateVSgvg', symObjAddr: 0x5F0, symBinAddr: 0x100093720, symSize: 0x30 } - - { offset: 0x14CD87, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV4typeSSvg', symObjAddr: 0x620, symBinAddr: 0x100093750, symSize: 0x30 } - - { offset: 0x14CD9B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV7detailsSSvg', symObjAddr: 0x650, symBinAddr: 0x100093780, symSize: 0x30 } - - { offset: 0x14CDAF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10highlightsSayAA14HighlightRangeVGvg', symObjAddr: 0x680, symBinAddr: 0x1000937B0, symSize: 0x20 } - - { offset: 0x14CDCA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV2id9timestamp4time4type7details10highlightsAC10Foundation4UUIDV_SSAJ4DateVSgS2SSayAA14HighlightRangeVGtcfC', symObjAddr: 0x6A0, symBinAddr: 0x1000937D0, symSize: 0xA0 } - - { offset: 0x14CE55, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0x7C0, symBinAddr: 0x100093870, symSize: 0xA0 } - - { offset: 0x14CE93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLOs0D3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x860, symBinAddr: 0x100093910, symSize: 0x20 } - - { offset: 0x14CEBC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV6encode2toys7Encoder_p_tKF', symObjAddr: 0x8E0, symBinAddr: 0x100093970, symSize: 0x2A0 } - - { offset: 0x14CEED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV4fromACs7Decoder_p_tKcfC', symObjAddr: 0xB80, symBinAddr: 0x100093C10, symSize: 0x4A0 } - - { offset: 0x14CF17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x1020, symBinAddr: 0x1000940B0, symSize: 0x10 } - - { offset: 0x14CF2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x1030, symBinAddr: 0x1000940C0, symSize: 0x10 } - - { offset: 0x14CF3F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x1040, symBinAddr: 0x1000940D0, symSize: 0x140 } - - { offset: 0x14CFC6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14HighlightRangeV4fromACs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0x1180, symBinAddr: 0x100094210, symSize: 0x1C0 } - - { offset: 0x14CFE9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14ProcessedEventV10CodingKeys33_D1355EF600CDCB5DCA8B00F1A1B02BE7LLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x26F0, symBinAddr: 0x1000953A0, symSize: 0x1C0 } - - { offset: 0x14D387, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwCP', symObjAddr: 0x0, symBinAddr: 0x100095560, symSize: 0x1E0 } - - { offset: 0x14D39B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwxx', symObjAddr: 0x220, symBinAddr: 0x100095740, symSize: 0xE0 } - - { offset: 0x14D3AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwcp', symObjAddr: 0x300, symBinAddr: 0x100095820, symSize: 0x1B0 } - - { offset: 0x14D3C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwca', symObjAddr: 0x4B0, symBinAddr: 0x1000959D0, symSize: 0x300 } - - { offset: 0x14D3D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVWOh', symObjAddr: 0x7B0, symBinAddr: 0x100095CD0, symSize: 0x30 } - - { offset: 0x14D3EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwtk', symObjAddr: 0x7E0, symBinAddr: 0x100095D00, symSize: 0x150 } - - { offset: 0x14D3FF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwta', symObjAddr: 0x930, symBinAddr: 0x100095E50, symSize: 0x280 } - - { offset: 0x14D413, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwet', symObjAddr: 0xBB0, symBinAddr: 0x1000960D0, symSize: 0x20 } - - { offset: 0x14D427, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVwst', symObjAddr: 0xC50, symBinAddr: 0x100096170, symSize: 0x20 } - - { offset: 0x14D43B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewVMr', symObjAddr: 0xD00, symBinAddr: 0x100096220, symSize: 0x90 } - - { offset: 0x14D44F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7BindingVy8Swiftier8LogEntryVSgGMa', symObjAddr: 0xD90, symBinAddr: 0x1000962B0, symSize: 0x50 } - - { offset: 0x14D463, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0xE30, symBinAddr: 0x100096300, symSize: 0x20 } - - { offset: 0x14DAF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_TA', symObjAddr: 0x5160, symBinAddr: 0x10009A580, symSize: 0x40 } - - { offset: 0x14DB04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_TA', symObjAddr: 0x5230, symBinAddr: 0x10009A5C0, symSize: 0x10 } - - { offset: 0x14DB18, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySay8Swiftier8LogEntryVG10Foundation4UUIDVAA6IDViewVyAA4ViewPAAE12onTapGesture5count7performQrSi_yyctFQOyAA15ModifiedContentVyASyAnAE16listRowSeparator_5edgesQrAA10VisibilityO_AA12VerticalEdgeO3SetVtFQOyASyAD0f4ListT0VAA21_TraitWritingModifierVyAA04ListT14InsetsTraitKeyVGG_Qo_A3_yAA04ListT18BackgroundTraitKeyVGGAA01_R13ShapeModifierVyAA9RectangleVGG_Qo_AJGGACyxq_q0_GAam2aMR0_rlWl', symObjAddr: 0x5240, symBinAddr: 0x10009A5D0, symSize: 0x70 } - - { offset: 0x14DB63, size: 0x8, addend: 0x0, symName: '_$sSTsE13_copyContents12initializing8IteratorQz_SitSry7ElementQzG_tFs18ReversedCollectionVySay8Swiftier8LogEntryVGG_Tg5', symObjAddr: 0x55E0, symBinAddr: 0x10009A800, symSize: 0x130 } - - { offset: 0x14DC9F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_TA', symObjAddr: 0x5840, symBinAddr: 0x10009AA60, symSize: 0x40 } - - { offset: 0x14DCB3, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier10LogListRowVAA21_TraitWritingModifierVyAA0gh6InsetsI3KeyVGGACyxq_GAA4ViewA2aNRzAA0nK0R_rlWl', symObjAddr: 0x58D0, symBinAddr: 0x10009AAC0, symSize: 0xA0 } - - { offset: 0x14DCC7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA4ViewPAAE16listRowSeparator_5edgesQrAA10VisibilityO_AA12VerticalEdgeO3SetVtFQOyACy8Swiftier07LogListG0VAA21_TraitWritingModifierVyAA0pg6InsetsQ3KeyVGG_Qo_ARyAA0pg10BackgroundqU0VGGAA01_d5ShapeS0VyAA9RectangleVGGACyxq_GAad2aDRzAA0eS0R_rlWl', symObjAddr: 0x5BA0, symBinAddr: 0x10009AD90, symSize: 0x90 } - - { offset: 0x14DCDB, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE16listRowSeparator_5edgesQrAA10VisibilityO_AA12VerticalEdgeO3SetVtFQOyACy8Swiftier07LogListG0VAA21_TraitWritingModifierVyAA0pg6InsetsQ3KeyVGG_Qo_ARyAA0pg10BackgroundqU0VGGACyxq_GAad2aDRzAA0eS0R_rlWl', symObjAddr: 0x5C30, symBinAddr: 0x10009AE20, symSize: 0xC0 } - - { offset: 0x14DCEF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_yycfU0_yyXEfU_TA', symObjAddr: 0x5CF0, symBinAddr: 0x10009AEE0, symSize: 0x20 } - - { offset: 0x14DD03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwCP', symObjAddr: 0x5D10, symBinAddr: 0x10009AF00, symSize: 0x190 } - - { offset: 0x14DD17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwxx', symObjAddr: 0x5EA0, symBinAddr: 0x10009B090, symSize: 0xA0 } - - { offset: 0x14DD2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwcp', symObjAddr: 0x5F40, symBinAddr: 0x10009B130, symSize: 0x150 } - - { offset: 0x14DD3F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwca', symObjAddr: 0x6090, symBinAddr: 0x10009B280, symSize: 0x230 } - - { offset: 0x14DD53, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwtk', symObjAddr: 0x62C0, symBinAddr: 0x10009B4B0, symSize: 0x100 } - - { offset: 0x14DD67, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwta', symObjAddr: 0x63C0, symBinAddr: 0x10009B5B0, symSize: 0x1D0 } - - { offset: 0x14DD7B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwet', symObjAddr: 0x6590, symBinAddr: 0x10009B780, symSize: 0x20 } - - { offset: 0x14DD8F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVwst', symObjAddr: 0x65F0, symBinAddr: 0x10009B7E0, symSize: 0x20 } - - { offset: 0x14DDA3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewVMr', symObjAddr: 0x6690, symBinAddr: 0x10009B860, symSize: 0x60 } - - { offset: 0x14DDB7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwCP', symObjAddr: 0x66F0, symBinAddr: 0x10009B8C0, symSize: 0x110 } - - { offset: 0x14DDCB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwxx', symObjAddr: 0x6800, symBinAddr: 0x10009B9D0, symSize: 0x70 } - - { offset: 0x14DDDF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwcp', symObjAddr: 0x6870, symBinAddr: 0x10009BA40, symSize: 0xE0 } - - { offset: 0x14DDF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwca', symObjAddr: 0x6950, symBinAddr: 0x10009BB20, symSize: 0x110 } - - { offset: 0x14DE07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwtk', symObjAddr: 0x6A60, symBinAddr: 0x10009BC30, symSize: 0x90 } - - { offset: 0x14DE1B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwta', symObjAddr: 0x6AF0, symBinAddr: 0x10009BCC0, symSize: 0xE0 } - - { offset: 0x14DE2F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwet', symObjAddr: 0x6BD0, symBinAddr: 0x10009BDA0, symSize: 0x20 } - - { offset: 0x14DE43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVwst', symObjAddr: 0x6C60, symBinAddr: 0x10009BE30, symSize: 0x20 } - - { offset: 0x14DE57, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowVMr', symObjAddr: 0x6CE0, symBinAddr: 0x10009BEB0, symSize: 0x70 } - - { offset: 0x14DE6B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6IDViewVyAA6HStackVyAA9TupleViewVyACyAA06ScrollH6ReaderVyAA6ZStackVyAIyACyAA0H0PAAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAoAE9listStyleyQrqd__AA04ListP0Rd__lFQOyAA0Q0Vys5NeverOAA7ForEachVySay8Swiftier8LogEntryVG10Foundation4UUIDVAEyAoAE12onTapGesture5count7performQrSi_yyctFQOyACyACyAoAE0O12RowSeparator_5edgesQrAR_AA12VerticalEdgeO3SetVtFQOyACyA_0vQ3RowVAA21_TraitWritingModifierVyAA0Q17RowInsetsTraitKeyVGG_Qo_A18_yAA0q3RowM8TraitKeyVGGAA01_D13ShapeModifierVyAA9RectangleVGG_Qo_A5_GGG_AA05PlainqP0VQo__Qo_AA01_mP8ModifierVyAA5ColorVGG_ACyACyAoAE06buttonP0yQrqd__AA015PrimitiveButtonP0Rd__lFQOyAA6ButtonVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA_24FlatCircleButtonModifierVGG_AA011PlainButtonP0VQo_AA14_PaddingLayoutVGA18_yAA18TransitionTraitKeyVGGSgtGGGAA12_FrameLayoutVG_AIyAA7DividerV_ACyACyAA6VStackVyACyA_0v6DetailH0VA73_GGAA16_FlexFrameLayoutVGA46_GtGSgtGGSSGAA20_ValueActionModifierVyA1_SgGGACyxq_GAan2aNRzAA0H8ModifierR_rlWl', symObjAddr: 0x6D60, symBinAddr: 0x10009BF30, symSize: 0xA0 } - - { offset: 0x14DE7F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x6E00, symBinAddr: 0x10009BFD0, symSize: 0x20 } - - { offset: 0x14DE93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x6E20, symBinAddr: 0x10009BFF0, symSize: 0x20 } - - { offset: 0x14DEA7, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier14LogListTagViewVAA12_ScaleEffectVGSgWOy', symObjAddr: 0x6F70, symBinAddr: 0x10009C010, symSize: 0x30 } - - { offset: 0x14DEBB, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVy8Swiftier14LogListTagViewVAA12_ScaleEffectVGSgWOe', symObjAddr: 0x6FA0, symBinAddr: 0x10009C040, symSize: 0x30 } - - { offset: 0x14DECF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwxx', symObjAddr: 0x6FE0, symBinAddr: 0x10009C080, symSize: 0x30 } - - { offset: 0x14DEE3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwca', symObjAddr: 0x7050, symBinAddr: 0x10009C0F0, symSize: 0x60 } - - { offset: 0x14DEF7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwta', symObjAddr: 0x70D0, symBinAddr: 0x10009C150, symSize: 0x40 } - - { offset: 0x14DF0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwet', symObjAddr: 0x7110, symBinAddr: 0x10009C190, symSize: 0x50 } - - { offset: 0x14DF1F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVwst', symObjAddr: 0x7160, symBinAddr: 0x10009C1E0, symSize: 0x40 } - - { offset: 0x14DF33, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewVMa', symObjAddr: 0x71A0, symBinAddr: 0x10009C220, symSize: 0x10 } - - { offset: 0x14DF47, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA6VStackVyAA9TupleViewVyACyAA0G0PAAE9lineLimit_13reservesSpaceQrSi_SbtFQOyAA4TextV_Qo_AA16_FlexFrameLayoutVG_AA6HStackVyAGyAM_AA6SpacerVACy8Swiftier010LogListTagG0VAA12_ScaleEffectVGSgtGGtGGAA01_D13ShapeModifierVyAA9RectangleVGGAA08_PaddingO0VGA12_GAPGACyxq_GAah2aHRzAA0gY0R_rlWl', symObjAddr: 0x71C0, symBinAddr: 0x10009C240, symSize: 0x80 } - - { offset: 0x14DF5B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyACyAA0G0PAAE9lineLimit_13reservesSpaceQrSi_SbtFQOyAA4TextV_Qo_AA16_FlexFrameLayoutVG_AA6HStackVyAGyAM_AA6SpacerVACy8Swiftier010LogListTagG0VAA12_ScaleEffectVGSgtGGtGGAA01_D13ShapeModifierVyAA9RectangleVGGACyxq_GAah2aHRzAA0gY0R_rlWl', symObjAddr: 0x72D0, symBinAddr: 0x10009C350, symSize: 0xA0 } - - { offset: 0x14DF6F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewV7SwiftUI0E0AA4BodyAdEP_AGWT', symObjAddr: 0x73A0, symBinAddr: 0x10009C420, symSize: 0x20 } - - { offset: 0x14DF83, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA4TextVAA14_PaddingLayoutVGAGGAA19_BackgroundModifierVyAA10_ShapeViewVyAA7CapsuleVAA5ColorVGGGACyxq_GAA0K0A2aVRzAA0kI0R_rlWl', symObjAddr: 0x73D0, symBinAddr: 0x10009C450, symSize: 0xA0 } - - { offset: 0x14DFA6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV12filteredLogs33_53A08B2D54535736BABDFC5A434D255CLLSayAA0B5EntryVGvg', symObjAddr: 0xE50, symBinAddr: 0x100096320, symSize: 0x390 } - - { offset: 0x14EEF8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_', symObjAddr: 0x11E0, symBinAddr: 0x1000966B0, symSize: 0x850 } - - { offset: 0x14F1B2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_', symObjAddr: 0x1A30, symBinAddr: 0x100096F00, symSize: 0x50 } - - { offset: 0x14F244, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_', symObjAddr: 0x1A80, symBinAddr: 0x100096F50, symSize: 0x750 } - - { offset: 0x14F3D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_', symObjAddr: 0x21D0, symBinAddr: 0x1000976A0, symSize: 0x210 } - - { offset: 0x14F5D1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_', symObjAddr: 0x23E0, symBinAddr: 0x1000978B0, symSize: 0xF60 } - - { offset: 0x14F924, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_yycfU0_', symObjAddr: 0x3340, symBinAddr: 0x100098810, symSize: 0x70 } - - { offset: 0x14F97E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A50_yXEfU_A49_A15_cfU_yycfU0_yyXEfU_', symObjAddr: 0x33B0, symBinAddr: 0x100098880, symSize: 0x530 } - - { offset: 0x14F9EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_yyScMYccfU0_', symObjAddr: 0x38E0, symBinAddr: 0x100098DB0, symSize: 0xE0 } - - { offset: 0x14FB47, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AqE9AlignmentVtFQOyAE06ScrollD6ReaderVyAE6ZStackVyAGyAiEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE9listStyleyQrqd__AE0C5StyleRd__lFQOyAE0C0Vys5NeverOAE7ForEachVySayAA0B5EntryVG10Foundation4UUIDVAiEE2idyQrqd__SHRd__lFQOyAiEE12onTapGesture5count7performQrSi_yyctFQOyAiEE12contentShape_6eoFillQrqd___SbtAE5ShapeRd__lFQOyAiEE17listRowBackgroundyQrqd__SgAeHRd__lFQOyAiEE16listRowSeparator_5edgesQrA5__AE08VerticalY0OA0_VtFQOyAiEE13listRowInsetsyQrAE0Y6InsetsVSgFQOyAA0bC3RowV_Qo__Qo__AE5ColorVQo__AE9RectangleVQo__Qo__A19_Qo_GG_AE05PlainC5StyleVQo__Qo__A43_Qo__AiEE10transitionyQrAE13AnyTransitionVFQOyAiEE7paddingyQrAPFQOyAiEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAE15ModifiedContentVyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo_AA24FlatCircleButtonModifierVGG_AE16PlainButtonStyleVQo__Qo__Qo_SgtGGG_Qo__AGyAE7DividerV_AiEEAX_AYQrqd___A1_tAEA2_Rd__lFQOyAiEEAJ8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightAMQrAQ_A5qStFQOyAE6VStackVyAiEEA57_yQrA59_FQOyAA0b6DetailD0V_Qo_G_Qo__A43_Qo_tGSgtGyXEfU_A85_AE0qD5ProxyVcfU_A84_yXEfU_A76_yXEfU1_', symObjAddr: 0x3A40, symBinAddr: 0x100098E90, symSize: 0xE0 } - - { offset: 0x14FB8F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV4bodyQrvgyAA0B5EntryVSgcfU0_', symObjAddr: 0x3B20, symBinAddr: 0x100098F70, symSize: 0x70 } - - { offset: 0x14FBFC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LogListViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x3B90, symBinAddr: 0x100098FE0, symSize: 0xF0 } - - { offset: 0x14FD30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV4bodyQrvg', symObjAddr: 0x3C80, symBinAddr: 0x1000990D0, symSize: 0x240 } - - { offset: 0x14FEB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV4bodyQrvg7SwiftUI9TupleViewVyAE0I0PAEE5frame8minWidth05idealL003maxL00K6Height0mO00nO09alignmentQr12CoreGraphics7CGFloatVSg_A5uE9AlignmentVtFQOyAiEE9lineLimit_13reservesSpaceQrSi_SbtFQOyAE4TextV_Qo__Qo__AE6HStackVyAGyA__AE6SpacerVAiEE11scaleEffect_6anchorQrAT_AE9UnitPointVtFQOyAA0bc3TagI0V_Qo_SgtGGtGyXEfU_', symObjAddr: 0x3EC0, symBinAddr: 0x100099310, symSize: 0x790 } - - { offset: 0x14FFA9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV4bodyQrvg7SwiftUI9TupleViewVyAE0I0PAEE5frame8minWidth05idealL003maxL00K6Height0mO00nO09alignmentQr12CoreGraphics7CGFloatVSg_A5uE9AlignmentVtFQOyAiEE9lineLimit_13reservesSpaceQrSi_SbtFQOyAE4TextV_Qo__Qo__AE6HStackVyAGyA__AE6SpacerVAiEE11scaleEffect_6anchorQrAT_AE9UnitPointVtFQOyAA0bc3TagI0V_Qo_SgtGGtGyXEfU_A14_yXEfU_', symObjAddr: 0x4650, symBinAddr: 0x100099AA0, symSize: 0x470 } - - { offset: 0x150114, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10LogListRowV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x4AF0, symBinAddr: 0x100099F10, symSize: 0x10 } - - { offset: 0x150136, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewV4bodyQrvg', symObjAddr: 0x4B00, symBinAddr: 0x100099F20, symSize: 0x370 } - - { offset: 0x150278, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14LogListTagViewV7SwiftUI0E0AadEP4body4BodyQzvgTW', symObjAddr: 0x4E70, symBinAddr: 0x10009A290, symSize: 0x20 } - - { offset: 0x1502A5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewV4bodyQrvgAA10CodeEditorVSgyXEfU_', symObjAddr: 0x4E90, symBinAddr: 0x10009A2B0, symSize: 0x140 } - - { offset: 0x150381, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13LogDetailViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x4FD0, symBinAddr: 0x10009A3F0, symSize: 0x60 } - - { offset: 0x150560, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwCP', symObjAddr: 0x0, symBinAddr: 0x10009C500, symSize: 0x160 } - - { offset: 0x150574, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwxx', symObjAddr: 0x1A0, symBinAddr: 0x10009C660, symSize: 0xA0 } - - { offset: 0x150588, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwcp', symObjAddr: 0x240, symBinAddr: 0x10009C700, symSize: 0x130 } - - { offset: 0x15059C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwca', symObjAddr: 0x370, symBinAddr: 0x10009C830, symSize: 0x1C0 } - - { offset: 0x1505B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwtk', symObjAddr: 0x530, symBinAddr: 0x10009C9F0, symSize: 0x100 } - - { offset: 0x1505C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwta', symObjAddr: 0x630, symBinAddr: 0x10009CAF0, symSize: 0x1A0 } - - { offset: 0x1505D8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwet', symObjAddr: 0x7D0, symBinAddr: 0x10009CC90, symSize: 0x20 } - - { offset: 0x1505EC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVwst', symObjAddr: 0x880, symBinAddr: 0x10009CD40, symSize: 0x20 } - - { offset: 0x150600, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVMr', symObjAddr: 0x940, symBinAddr: 0x10009CE00, symSize: 0xA0 } - - { offset: 0x150614, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwCP', symObjAddr: 0xA30, symBinAddr: 0x10009CEA0, symSize: 0xD0 } - - { offset: 0x150628, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwxx', symObjAddr: 0xB00, symBinAddr: 0x10009CF70, symSize: 0x50 } - - { offset: 0x15063C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwcp', symObjAddr: 0xB50, symBinAddr: 0x10009CFC0, symSize: 0xB0 } - - { offset: 0x150650, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwca', symObjAddr: 0xC00, symBinAddr: 0x10009D070, symSize: 0xC0 } - - { offset: 0x150664, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwtk', symObjAddr: 0xCC0, symBinAddr: 0x10009D130, symSize: 0x70 } - - { offset: 0x150678, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwta', symObjAddr: 0xD30, symBinAddr: 0x10009D1A0, symSize: 0xB0 } - - { offset: 0x15068C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwet', symObjAddr: 0xDE0, symBinAddr: 0x10009D250, symSize: 0x20 } - - { offset: 0x1506A0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVwst', symObjAddr: 0xE70, symBinAddr: 0x10009D2E0, symSize: 0x20 } - - { offset: 0x1506B4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVMr', symObjAddr: 0xF30, symBinAddr: 0x10009D380, symSize: 0x80 } - - { offset: 0x150A4D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOAFs0D3KeyAAWl', symObjAddr: 0x2630, symBinAddr: 0x10009E8B0, symSize: 0x30 } - - { offset: 0x150A61, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOAESeAAWl', symObjAddr: 0x26D0, symBinAddr: 0x10009E8E0, symSize: 0x30 } - - { offset: 0x150A75, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOAESEAAWl', symObjAddr: 0x2810, symBinAddr: 0x10009E910, symSize: 0x30 } - - { offset: 0x150A89, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOMa', symObjAddr: 0x2B10, symBinAddr: 0x10009EA00, symSize: 0x10 } - - { offset: 0x150A9D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOwet', symObjAddr: 0x2B20, symBinAddr: 0x10009EA10, symSize: 0x80 } - - { offset: 0x150AB1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOwst', symObjAddr: 0x2BA0, symBinAddr: 0x10009EA90, symSize: 0xD0 } - - { offset: 0x150AC5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOMa', symObjAddr: 0x2CA0, symBinAddr: 0x10009EB60, symSize: 0x10 } - - { offset: 0x150AD9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOMa', symObjAddr: 0x2E10, symBinAddr: 0x10009EB70, symSize: 0x10 } - - { offset: 0x150AED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSHAASQWb', symObjAddr: 0x2E20, symBinAddr: 0x10009EB80, symSize: 0x10 } - - { offset: 0x150B01, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOACSQAAWl', symObjAddr: 0x2E30, symBinAddr: 0x10009EB90, symSize: 0x30 } - - { offset: 0x150B15, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSHAASQWb', symObjAddr: 0x2E60, symBinAddr: 0x10009EBC0, symSize: 0x10 } - - { offset: 0x150B29, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOAESQAAWl', symObjAddr: 0x2E70, symBinAddr: 0x10009EBD0, symSize: 0x30 } - - { offset: 0x150B3D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOSHAASQWb', symObjAddr: 0x2EA0, symBinAddr: 0x10009EC00, symSize: 0x10 } - - { offset: 0x150B51, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOAFSQAAWl', symObjAddr: 0x2EB0, symBinAddr: 0x10009EC10, symSize: 0x30 } - - { offset: 0x150B65, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs0D3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x2EE0, symBinAddr: 0x10009EC40, symSize: 0x10 } - - { offset: 0x150B79, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x2EF0, symBinAddr: 0x10009EC50, symSize: 0x30 } - - { offset: 0x150B8D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs0D3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x2F20, symBinAddr: 0x10009EC80, symSize: 0x10 } - - { offset: 0x150BA1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x2F30, symBinAddr: 0x10009EC90, symSize: 0x30 } - - { offset: 0x150BB5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOAESYAAWl', symObjAddr: 0x3120, symBinAddr: 0x10009EE80, symSize: 0x30 } - - { offset: 0x150BD4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x10F0, symBinAddr: 0x10009D540, symSize: 0x10 } - - { offset: 0x150C3B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSHAASH9hashValueSivgTW', symObjAddr: 0x1100, symBinAddr: 0x10009D550, symSize: 0xC0 } - - { offset: 0x150CE6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x11C0, symBinAddr: 0x10009D610, symSize: 0xA0 } - - { offset: 0x150D4D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x1260, symBinAddr: 0x10009D6B0, symSize: 0xC0 } - - { offset: 0x150DFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x13E0, symBinAddr: 0x10009D830, symSize: 0x70 } - - { offset: 0x150ECE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSHAASH9hashValueSivgTW', symObjAddr: 0x1450, symBinAddr: 0x10009D8A0, symSize: 0x50 } - - { offset: 0x150F4C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSHAASH4hash4intoys6HasherVz_tFTW', symObjAddr: 0x14A0, symBinAddr: 0x10009D8F0, symSize: 0x30 } - - { offset: 0x150F9E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSHAASH13_rawHashValue4seedS2i_tFTW', symObjAddr: 0x14D0, symBinAddr: 0x10009D920, symSize: 0x50 } - - { offset: 0x151001, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x1580, symBinAddr: 0x10009D9D0, symSize: 0x50 } - - { offset: 0x151024, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x15D0, symBinAddr: 0x10009DA20, symSize: 0x40 } - - { offset: 0x151055, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x1EB0, symBinAddr: 0x10009E230, symSize: 0x20 } - - { offset: 0x151071, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x1ED0, symBinAddr: 0x10009E250, symSize: 0x20 } - - { offset: 0x15109D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeO8rawValueSSvg', symObjAddr: 0xFB0, symBinAddr: 0x10009D400, symSize: 0x130 } - - { offset: 0x1510ED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogEntryVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x10E0, symBinAddr: 0x10009D530, symSize: 0x10 } - - { offset: 0x151164, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSYAASY8rawValuexSg03RawE0Qz_tcfCTW', symObjAddr: 0x1320, symBinAddr: 0x10009D770, symSize: 0x30 } - - { offset: 0x15118D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSYAASY8rawValue03RawE0QzvgTW', symObjAddr: 0x1350, symBinAddr: 0x10009D7A0, symSize: 0x90 } - - { offset: 0x1511D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSYAASY8rawValuexSg03RawF0Qz_tcfCTW', symObjAddr: 0x1520, symBinAddr: 0x10009D970, symSize: 0x30 } - - { offset: 0x1511FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeOSYAASY8rawValue03RawF0QzvgTW', symObjAddr: 0x1550, symBinAddr: 0x10009D9A0, symSize: 0x30 } - - { offset: 0x15120F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV6encode2toys7Encoder_p_tKF', symObjAddr: 0x1610, symBinAddr: 0x10009DA60, symSize: 0x2B0 } - - { offset: 0x151247, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV4fromACs7Decoder_p_tKcfC', symObjAddr: 0x18C0, symBinAddr: 0x10009DD10, symSize: 0x460 } - - { offset: 0x15128F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs0D3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0x1DD0, symBinAddr: 0x10009E170, symSize: 0xA0 } - - { offset: 0x1512BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLOs0D3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x1E70, symBinAddr: 0x10009E210, symSize: 0x20 } - - { offset: 0x1512F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x1F30, symBinAddr: 0x10009E270, symSize: 0x10 } - - { offset: 0x15131F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x1F40, symBinAddr: 0x10009E280, symSize: 0x10 } - - { offset: 0x151333, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x1F50, symBinAddr: 0x10009E290, symSize: 0x10 } - - { offset: 0x15135E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV23__derived_struct_equalsySbAC_ACtFZTf4nnd_n', symObjAddr: 0x1F80, symBinAddr: 0x10009E2A0, symSize: 0x610 } - - { offset: 0x15144D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelO8rawValueACSgSS_tcfCTf4nd_n', symObjAddr: 0x28D0, symBinAddr: 0x10009E940, symSize: 0x60 } - - { offset: 0x151484, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV0B4TypeO8rawValueAESgSS_tcfCTf4nd_n', symObjAddr: 0x2930, symBinAddr: 0x10009E9A0, symSize: 0x60 } - - { offset: 0x1514BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryV10CodingKeys33_13BCE490BA922737E2BE2CEF3496E38ELLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x2F60, symBinAddr: 0x10009ECC0, symSize: 0x1C0 } - - { offset: 0x151695, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC6sharedACvpZ', symObjAddr: 0x26720, symBinAddr: 0x100137C68, symSize: 0x0 } - - { offset: 0x151929, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSiIeggy_So6NSDataCSiIeyByy_TR', symObjAddr: 0x0, symBinAddr: 0x10009EEC0, symSize: 0x80 } - - { offset: 0x151941, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC6shared_WZ', symObjAddr: 0x80, symBinAddr: 0x10009EF40, symSize: 0x40 } - - { offset: 0x151F55, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCMU', symObjAddr: 0x35E0, symBinAddr: 0x1000A2450, symSize: 0x10 } - - { offset: 0x151F69, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCMa', symObjAddr: 0x35F0, symBinAddr: 0x1000A2460, symSize: 0x30 } - - { offset: 0x151F7D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCMr', symObjAddr: 0x3620, symBinAddr: 0x1000A2490, symSize: 0x130 } - - { offset: 0x151FD3, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tF10Foundation3URLVSg_8Swiftier19EasyTierConfigModelVTg5', symObjAddr: 0x3A80, symBinAddr: 0x1000A26B0, symSize: 0x360 } - - { offset: 0x152095, size: 0x8, addend: 0x0, symName: '_$ss17_NativeDictionaryV7_delete2atys10_HashTableV6BucketV_tFSS_ypTg5', symObjAddr: 0x3DE0, symBinAddr: 0x1000A2A10, symSize: 0x1F0 } - - { offset: 0x152167, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKF8Swiftier10EventEntryV_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10fG10V_AGtXEfU_Tf1cn_n', symObjAddr: 0x40A0, symBinAddr: 0x1000A2C00, symSize: 0x100 } - - { offset: 0x152381, size: 0x8, addend: 0x0, symName: '_$sSr15_stableSortImpl2byySbx_xtKXE_tKFySryxGz_SiztKXEfU_8Swiftier10EventEntryV_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10fG10V_AGtXEfU_Tf1nnncn_n', symObjAddr: 0x41A0, symBinAddr: 0x1000A2D00, symSize: 0xC10 } - - { offset: 0x152802, size: 0x8, addend: 0x0, symName: '_$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSry8Swiftier10EventEntryVG_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10jK10V_AGtXEfU_Tf1nncn_n', symObjAddr: 0x4DB0, symBinAddr: 0x1000A3910, symSize: 0x3E0 } - - { offset: 0x15295E, size: 0x8, addend: 0x0, symName: '_$sSr13_mergeTopRuns_6buffer2bySbSaySnySiGGz_SpyxGSbx_xtKXEtKF8Swiftier10EventEntryV_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10gH10V_AGtXEfU_Tf1nncn_n', symObjAddr: 0x5190, symBinAddr: 0x1000A3CF0, symSize: 0x2E0 } - - { offset: 0x152D00, size: 0x8, addend: 0x0, symName: '_$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlF8Swiftier10EventEntryV_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10hI10V_AGtXEfU_Tf1nnnnc_n', symObjAddr: 0x5470, symBinAddr: 0x1000A3FD0, symSize: 0x930 } - - { offset: 0x152E63, size: 0x8, addend: 0x0, symName: '_$ss32_copyCollectionToContiguousArrayys0dE0Vy7ElementQzGxSlRzlFs0E5SliceVy8Swiftier10EventEntryVG_Tg5', symObjAddr: 0x5DA0, symBinAddr: 0x1000A4900, symSize: 0x140 } - - { offset: 0x152FE6, size: 0x8, addend: 0x0, symName: '_$sSD4KeysVyxSD5IndexVyxq__GcigSS_ypTg5Tf4nn_g', symObjAddr: 0x5EE0, symBinAddr: 0x1000A4A40, symSize: 0x50 } - - { offset: 0x15322F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_Tf2ni_nTA', symObjAddr: 0x78E0, symBinAddr: 0x1000A63E0, symSize: 0x20 } - - { offset: 0x153243, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x7900, symBinAddr: 0x1000A6400, symSize: 0x20 } - - { offset: 0x153257, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x7920, symBinAddr: 0x1000A6420, symSize: 0x10 } - - { offset: 0x15326B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier10EventEntryVWOb', symObjAddr: 0x7970, symBinAddr: 0x1000A6430, symSize: 0x30 } - - { offset: 0x15327F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC22resetForNewCoreSessionyyFyyScMYccfU_TA', symObjAddr: 0x79A0, symBinAddr: 0x1000A6460, symSize: 0x10 } - - { offset: 0x153293, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_TA', symObjAddr: 0x79F0, symBinAddr: 0x1000A64B0, symSize: 0x10 } - - { offset: 0x1532A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC15getRecentEvents10sinceIndex10completionySi_ySayAA14ProcessedEventVG_SitctFys5Error_pcfU_TA', symObjAddr: 0x7A20, symBinAddr: 0x1000A64E0, symSize: 0x20 } - - { offset: 0x1532BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13HelperManagerC15getRecentEvents10sinceIndex10completionySi_ySayAA14ProcessedEventVG_SitctFy10Foundation4DataV_SitcfU0_TA', symObjAddr: 0x7A60, symBinAddr: 0x1000A6520, symSize: 0x20 } - - { offset: 0x1532CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_yyScMYccfU1_TA', symObjAddr: 0x7B20, symBinAddr: 0x1000A6580, symSize: 0x20 } - - { offset: 0x1532E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_yyScMYccfU_TA', symObjAddr: 0x7B40, symBinAddr: 0x1000A65A0, symSize: 0x10 } - - { offset: 0x1532F7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC20startXPCEventPolling33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySo7NSTimerCYbcfU_TA', symObjAddr: 0x7B50, symBinAddr: 0x1000A65B0, symSize: 0x10 } - - { offset: 0x153476, size: 0x8, addend: 0x0, symName: '_$sSa6append10contentsOfyqd__n_t7ElementQyd__RszSTRd__lF8Swiftier10EventEntryV_SayAGGTg5', symObjAddr: 0x1040, symBinAddr: 0x10009FEB0, symSize: 0x100 } - - { offset: 0x1537E0, size: 0x8, addend: 0x0, symName: '_$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFSay8Swiftier10EventEntryVG_Tg5077$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10eF10V_AGtXEfU_Tf1cn_n', symObjAddr: 0x2010, symBinAddr: 0x1000A0E80, symSize: 0x80 } - - { offset: 0x153C69, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC7Combine16ObservableObjectAadEP16objectWillChange0fhI9PublisherQzvgTW', symObjAddr: 0x37F0, symBinAddr: 0x1000A25C0, symSize: 0x30 } - - { offset: 0x153CFD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCACyc33_AAF48CBC8FFB4DC8247F0A0CFA4886E6Llfc', symObjAddr: 0x150, symBinAddr: 0x10009EFC0, symSize: 0x2A0 } - - { offset: 0x153E13, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC20startXPCEventPolling33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyF', symObjAddr: 0x3F0, symBinAddr: 0x10009F260, symSize: 0x100 } - - { offset: 0x153E35, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC20startXPCEventPolling33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySo7NSTimerCYbcfU_', symObjAddr: 0x4F0, symBinAddr: 0x10009F360, symSize: 0x50 } - - { offset: 0x153F06, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyF', symObjAddr: 0x540, symBinAddr: 0x10009F3B0, symSize: 0x1C0 } - - { offset: 0x153FBE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_', symObjAddr: 0x700, symBinAddr: 0x10009F570, symSize: 0x680 } - - { offset: 0x1542AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_yyScMYccfU_', symObjAddr: 0xD80, symBinAddr: 0x10009FBF0, symSize: 0x110 } - - { offset: 0x154367, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC13pollXPCEvents33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyyFySayAA14ProcessedEventVG_SitcfU_yyScMYccfU1_', symObjAddr: 0xE90, symBinAddr: 0x10009FD00, symSize: 0x1B0 } - - { offset: 0x15465E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC14stopMonitoringyyF', symObjAddr: 0x1140, symBinAddr: 0x10009FFB0, symSize: 0x90 } - - { offset: 0x154681, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC22resetForNewCoreSessionyyF', symObjAddr: 0x11D0, symBinAddr: 0x1000A0040, symSize: 0x200 } - - { offset: 0x1546CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC22resetForNewCoreSessionyyFyyScMYccfU_', symObjAddr: 0x13D0, symBinAddr: 0x1000A0240, symSize: 0xE0 } - - { offset: 0x154794, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGF', symObjAddr: 0x14B0, symBinAddr: 0x1000A0320, symSize: 0x710 } - - { offset: 0x154BE3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_Tf2ni_n', symObjAddr: 0x1BC0, symBinAddr: 0x1000A0A30, symSize: 0x240 } - - { offset: 0x154E1D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27updateEventsFromRunningInfoyySayypGFyyScMYccfU_SbAA10EventEntryV_AGtXEfU_', symObjAddr: 0x1E00, symBinAddr: 0x1000A0C70, symSize: 0x210 } - - { offset: 0x154E81, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC15parseEventEntry33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LL4fromAA0eF0VSgyp_tF', symObjAddr: 0x2090, symBinAddr: 0x1000A0F00, symSize: 0x950 } - - { offset: 0x155205, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC18recursiveJsonClean33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LL_5depthypSgAG_SitF', symObjAddr: 0x29E0, symBinAddr: 0x1000A1850, symSize: 0x750 } - - { offset: 0x15561F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCfd', symObjAddr: 0x3130, symBinAddr: 0x1000A1FA0, symSize: 0x170 } - - { offset: 0x155644, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCfZ', symObjAddr: 0x32A0, symBinAddr: 0x1000A2110, symSize: 0x30 } - - { offset: 0x155698, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserCfD', symObjAddr: 0x32D0, symBinAddr: 0x1000A2140, symSize: 0x310 } - - { offset: 0x155748, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC12mapEventType33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyAA0E5EntryV0eF0OSSFTf4nd_n', symObjAddr: 0x5F30, symBinAddr: 0x1000A4A90, symSize: 0x450 } - - { offset: 0x155995, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC27collapsePrettyPrintedArrays33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLyS2SFTf4nd_n', symObjAddr: 0x6380, symBinAddr: 0x1000A4EE0, symSize: 0x750 } - - { offset: 0x155F8F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC12formatAsJson33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LLySSypSgFTf4nd_n', symObjAddr: 0x6AD0, symBinAddr: 0x1000A5630, symSize: 0x2C0 } - - { offset: 0x156042, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9LogParserC19calculateHighlights33_AAF48CBC8FFB4DC8247F0A0CFA4886E6LL3forSayAA14HighlightRangeVGSS_tFTf4nd_n', symObjAddr: 0x6D90, symBinAddr: 0x1000A58F0, symSize: 0xAD0 } - - { offset: 0x156E92, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVMa', symObjAddr: 0x240, symBinAddr: 0x1000A68D0, symSize: 0x30 } - - { offset: 0x156EA6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOMa', symObjAddr: 0x410, symBinAddr: 0x1000A6900, symSize: 0x10 } - - { offset: 0x156EBA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwCP', symObjAddr: 0x420, symBinAddr: 0x1000A6910, symSize: 0x250 } - - { offset: 0x156ECE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwxx', symObjAddr: 0x670, symBinAddr: 0x1000A6B60, symSize: 0xF0 } - - { offset: 0x156EE2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwcp', symObjAddr: 0x760, symBinAddr: 0x1000A6C50, symSize: 0x220 } - - { offset: 0x156EF6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwca', symObjAddr: 0x980, symBinAddr: 0x1000A6E70, symSize: 0x360 } - - { offset: 0x156F0A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwtk', symObjAddr: 0xCE0, symBinAddr: 0x1000A71D0, symSize: 0x150 } - - { offset: 0x156F1E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwta', symObjAddr: 0xE30, symBinAddr: 0x1000A7320, symSize: 0x2E0 } - - { offset: 0x156F32, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwet', symObjAddr: 0x1110, symBinAddr: 0x1000A7600, symSize: 0x20 } - - { offset: 0x156F46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVwst', symObjAddr: 0x11B0, symBinAddr: 0x1000A76A0, symSize: 0x20 } - - { offset: 0x156F5A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVMr', symObjAddr: 0x1240, symBinAddr: 0x1000A7730, symSize: 0x90 } - - { offset: 0x156F6E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5StateVy8Swiftier8LogEntryVSgGMa', symObjAddr: 0x12D0, symBinAddr: 0x1000A77C0, symSize: 0x50 } - - { offset: 0x156F82, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0x1370, symBinAddr: 0x1000A7810, symSize: 0x20 } - - { offset: 0x1570BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOSHAASQWb', symObjAddr: 0x3980, symBinAddr: 0x1000A9CE0, symSize: 0x10 } - - { offset: 0x1570D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOAESQAAWl', symObjAddr: 0x3990, symBinAddr: 0x1000A9CF0, symSize: 0x30 } - - { offset: 0x1570E7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewVWOb', symObjAddr: 0x39D0, symBinAddr: 0x1000A9D30, symSize: 0x30 } - - { offset: 0x1570FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyyYaYbcfU0_TA', symObjAddr: 0x3A00, symBinAddr: 0x1000A9D60, symSize: 0x70 } - - { offset: 0x15710F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyycfU1_TA', symObjAddr: 0x3AC0, symBinAddr: 0x1000A9DD0, symSize: 0x40 } - - { offset: 0x157143, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13EventListViewVAC7SwiftUI0D0AAWl', symObjAddr: 0x3B50, symBinAddr: 0x1000A9E30, symSize: 0x30 } - - { offset: 0x157157, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOAESHAAWl', symObjAddr: 0x3C30, symBinAddr: 0x1000A9E80, symSize: 0x30 } - - { offset: 0x15716B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA5ImageVAA24_ForegroundStyleModifierVyAA017HierarchicalShapeG0VGGAA022_EnvironmentKeyWritingH0VyAA4FontVSgGGACyxq_GAA4ViewA2aTRzAA0oH0R_rlWl', symObjAddr: 0x3F20, symBinAddr: 0x1000AA060, symSize: 0x90 } - - { offset: 0x15717F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA5ImageVAA24_ForegroundStyleModifierVyAA017HierarchicalShapeG0VGGACyxq_GAA4ViewA2aMRzAA0kH0R_rlWl', symObjAddr: 0x3FB0, symBinAddr: 0x1000AA0F0, symSize: 0x80 } - - { offset: 0x157193, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOSgxSgSHsSHRzlWl', symObjAddr: 0x4090, symBinAddr: 0x1000AA170, symSize: 0x60 } - - { offset: 0x1571A7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8LogLevelOACSHAAWl', symObjAddr: 0x40F0, symBinAddr: 0x1000AA1D0, symSize: 0x30 } - - { offset: 0x1571BB, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6VStackVyAA9TupleViewVyAEyAGyACyACyACyAA6HStackVyAGyACyAA0G0PAAE11pickerStyleyQrqd__AA06PickerJ0Rd__lFQOyAA0K0VyAA4TextV8Swiftier03LogG0V0G4ModeOAGyAkAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAQ_AVQo__AYtGG_AA09SegmentedkJ0VQo_AA12_FrameLayoutVG_AA6SpacerVAIyAGyACyAkAEALyQrqd__AaMRd__lFQOyAOyAqR0N5LevelOSgAGyAkAEAW_AXQrqd___SbtSHRd__lFQOyAQ_A10_Qo__A11_A11_A11_A11_A11_tGG_AA04MenukJ0VQo_A4_GSg_AkAE4helpyQrAA18LocalizedStringKeyVFQOyAkAE06buttonJ0yQrqd__AA015PrimitiveButtonJ0Rd__lFQOyAA6ButtonVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA29_yAA5ColorVSgGGG_AA011PlainButtonJ0VQo__Qo_AkAEA22_yQrqd__AAA23_Rd__lFQOyA25_yACyACyA27_AA011_ForegroundJ8ModifierVyAA017HierarchicalShapeJ0VGGA33_GG_A42_Qo_tGGtGGAA08_PaddingU0VGA59_GAA011_BackgroundJ8ModifierVyA36_GG_AA7DividerVtGG_AA012_ConditionalD0VyAR09EventListG0VAR0n4ListG0VGtGGA64_GAA13_TaskModifierVGAA25_AppearanceActionModifierVGACyxq_GAaj2aJRzAA0G8ModifierR_rlWl', symObjAddr: 0x41C0, symBinAddr: 0x1000AA290, symSize: 0x70 } - - { offset: 0x1571CF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVyAEyAGyACyACyACyAA6HStackVyAGyACyAA0G0PAAE11pickerStyleyQrqd__AA06PickerJ0Rd__lFQOyAA0K0VyAA4TextV8Swiftier03LogG0V0G4ModeOAGyAkAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAQ_AVQo__AYtGG_AA09SegmentedkJ0VQo_AA12_FrameLayoutVG_AA6SpacerVAIyAGyACyAkAEALyQrqd__AaMRd__lFQOyAOyAqR0N5LevelOSgAGyAkAEAW_AXQrqd___SbtSHRd__lFQOyAQ_A10_Qo__A11_A11_A11_A11_A11_tGG_AA04MenukJ0VQo_A4_GSg_AkAE4helpyQrAA18LocalizedStringKeyVFQOyAkAE06buttonJ0yQrqd__AA015PrimitiveButtonJ0Rd__lFQOyAA6ButtonVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA29_yAA5ColorVSgGGG_AA011PlainButtonJ0VQo__Qo_AkAEA22_yQrqd__AAA23_Rd__lFQOyA25_yACyACyA27_AA011_ForegroundJ8ModifierVyAA017HierarchicalShapeJ0VGGA33_GG_A42_Qo_tGGtGGAA08_PaddingU0VGA59_GAA011_BackgroundJ8ModifierVyA36_GG_AA7DividerVtGG_AA012_ConditionalD0VyAR09EventListG0VAR0n4ListG0VGtGGA64_GAA13_TaskModifierVGACyxq_GAaj2aJRzAA0G8ModifierR_rlWl', symObjAddr: 0x4230, symBinAddr: 0x1000AA300, symSize: 0x80 } - - { offset: 0x1571E3, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAEyAGyACyACyACyAA6HStackVyAGyACyAA0G0PAAE11pickerStyleyQrqd__AA06PickerJ0Rd__lFQOyAA0K0VyAA4TextV8Swiftier03LogG0V0G4ModeOAGyAkAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAQ_AVQo__AYtGG_AA09SegmentedkJ0VQo_AA12_FrameLayoutVG_AA6SpacerVAIyAGyACyAkAEALyQrqd__AaMRd__lFQOyAOyAqR0N5LevelOSgAGyAkAEAW_AXQrqd___SbtSHRd__lFQOyAQ_A10_Qo__A11_A11_A11_A11_A11_tGG_AA04MenukJ0VQo_A4_GSg_AkAE4helpyQrAA18LocalizedStringKeyVFQOyAkAE06buttonJ0yQrqd__AA015PrimitiveButtonJ0Rd__lFQOyAA6ButtonVyACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGA29_yAA5ColorVSgGGG_AA011PlainButtonJ0VQo__Qo_AkAEA22_yQrqd__AAA23_Rd__lFQOyA25_yACyACyA27_AA011_ForegroundJ8ModifierVyAA017HierarchicalShapeJ0VGGA33_GG_A42_Qo_tGGtGGAA08_PaddingU0VGA59_GAA011_BackgroundJ8ModifierVyA36_GG_AA7DividerVtGG_AA012_ConditionalD0VyAR09EventListG0VAR0n4ListG0VGtGGA64_GACyxq_GAaj2aJRzAA0G8ModifierR_rlWl', symObjAddr: 0x42B0, symBinAddr: 0x1000AA380, symSize: 0xA0 } - - { offset: 0x157663, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV11isPresentedAC7SwiftUI7BindingVySbG_tcfC', symObjAddr: 0x0, symBinAddr: 0x1000A66D0, symSize: 0x200 } - - { offset: 0x15771E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV0C4ModeOSYAASY8rawValuexSg03RawF0Qz_tcfCTW', symObjAddr: 0x1440, symBinAddr: 0x1000A7830, symSize: 0x30 } - - { offset: 0x157CD7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg', symObjAddr: 0x1480, symBinAddr: 0x1000A7860, symSize: 0x1E0 } - - { offset: 0x157E3E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_', symObjAddr: 0x1660, symBinAddr: 0x1000A7A40, symSize: 0x550 } - - { offset: 0x158080, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_', symObjAddr: 0x1BB0, symBinAddr: 0x1000A7F90, symSize: 0x300 } - - { offset: 0x1581E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_', symObjAddr: 0x1EB0, symBinAddr: 0x1000A8290, symSize: 0x440 } - - { offset: 0x1582E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A15_yXEfU_', symObjAddr: 0x22F0, symBinAddr: 0x1000A86D0, symSize: 0x260 } - - { offset: 0x158328, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_', symObjAddr: 0x2550, symBinAddr: 0x1000A8930, symSize: 0x9B0 } - - { offset: 0x158427, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_A27_yXEfU_', symObjAddr: 0x2F00, symBinAddr: 0x1000A92E0, symSize: 0x660 } - - { offset: 0x1584C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_yyScMYccfU0_', symObjAddr: 0x3560, symBinAddr: 0x1000A9940, symSize: 0xC0 } - - { offset: 0x1584F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_A52_yXEfU1_', symObjAddr: 0x3620, symBinAddr: 0x1000A9A00, symSize: 0x90 } - - { offset: 0x15855A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_yyScMYccfU2_', symObjAddr: 0x36B0, symBinAddr: 0x1000A9A90, symSize: 0x50 } - - { offset: 0x1585D0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvg7SwiftUI05TupleC0VyAE6VStackVyAGyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAkEE7paddingyQrAQ_12CoreGraphics7CGFloatVSgtFQOyAkEEASyQrAQ_AWtFQOyAE6HStackVyAGyAkEE5frame5width6height9alignmentQrAW_AwE9AlignmentVtFQOyAkEE06pickerQ0yQrqd__AE06PickerQ0Rd__lFQOyAE6PickerVyAE4TextVAC0C4ModeOAGyAkEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA9__A11_Qo__A14_tGG_AE015SegmentedPickerQ0VQo__Qo__AE6SpacerVAYyAGyAkEEAZA_A0_A1_QrAW_AWA3_tFQOyAkEEA4_yQrqd__AEA5_Rd__lFQOyA7_yA9_AA0B5LevelOSgAGyAkEEA12__A13_Qrqd___SbtSHRd__lFQOyA9__A25_Qo__A26_A26_A26_A26_A26_tGG_AE010MenuPickerQ0VQo__Qo_Sg_AkEE4helpyQrAE18LocalizedStringKeyVFQOyAkEE06buttonQ0yQrqd__AE015PrimitiveButtonQ0Rd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAkEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_G_AE011PlainButtonQ0VQo__Qo_AkEEA37_yQrqd__AEA38_Rd__lFQOyA40_yAkEEA45_yQrA48_FQOyAkEE010foregroundQ0yQrqd__AeRRd__lFQOyA50__AE012HierarchicalpQ0VQo__Qo_G_A55_Qo_tGGtGG_Qo__Qo__A43_Qo__AE7DividerVtGG_AE19_ConditionalContentVyAA09EventListC0VAA0b4ListC0VGtGyXEfU_A74_yXEfU_A67_yXEfU_A65_yXEfU0_A62_yXEfU3_', symObjAddr: 0x3750, symBinAddr: 0x1000A9AE0, symSize: 0x70 } - - { offset: 0x15863A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyyYaYbcfU0_', symObjAddr: 0x37C0, symBinAddr: 0x1000A9B50, symSize: 0x70 } - - { offset: 0x158665, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyyYaYbcfU0_TQ0_', symObjAddr: 0x3830, symBinAddr: 0x1000A9BC0, symSize: 0xD0 } - - { offset: 0x158694, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV4bodyQrvgyyYaYbcfU0_TY1_', symObjAddr: 0x3900, symBinAddr: 0x1000A9C90, symSize: 0x40 } - - { offset: 0x158913, size: 0x8, addend: 0x0, symName: '_$s8Swiftier7LogViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0x3970, symBinAddr: 0x1000A9CD0, symSize: 0x10 } - - { offset: 0x158AB2, size: 0x8, addend: 0x0, symName: '_$sSTsSQ7ElementRpzrlE6starts4withSbqd___tSTRd__AAQyd__ABRSlFSS_SSTg5', symObjAddr: 0x3730, symBinAddr: 0x1000ADA50, symSize: 0x190 } - - { offset: 0x158D61, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwCP', symObjAddr: 0x0, symBinAddr: 0x1000AA470, symSize: 0x6D0 } - - { offset: 0x158D75, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwxx', symObjAddr: 0x710, symBinAddr: 0x1000AAB40, symSize: 0x220 } - - { offset: 0x158D89, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwcp', symObjAddr: 0x930, symBinAddr: 0x1000AAD60, symSize: 0x690 } - - { offset: 0x158D9D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwca', symObjAddr: 0xFC0, symBinAddr: 0x1000AB3F0, symSize: 0xC80 } - - { offset: 0x158DB1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwtk', symObjAddr: 0x1D00, symBinAddr: 0x1000AC070, symSize: 0x1B0 } - - { offset: 0x158DC5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwta', symObjAddr: 0x1EB0, symBinAddr: 0x1000AC220, symSize: 0x730 } - - { offset: 0x158DD9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwet', symObjAddr: 0x25E0, symBinAddr: 0x1000AC950, symSize: 0x20 } - - { offset: 0x158DED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVwst', symObjAddr: 0x2660, symBinAddr: 0x1000AC9D0, symSize: 0x20 } - - { offset: 0x158E01, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewVMr', symObjAddr: 0x2700, symBinAddr: 0x1000ACA70, symSize: 0x80 } - - { offset: 0x158E15, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11EnvironmentV7ContentOyAA7BindingVyAA16PresentationModeVG_GMa', symObjAddr: 0x2780, symBinAddr: 0x1000ACAF0, symSize: 0x50 } - - { offset: 0x158E29, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x2820, symBinAddr: 0x1000ACB40, symSize: 0x20 } - - { offset: 0x1596F0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE4TextV_Qo__AiEE9formStyleyQrqd__AE04FormQ0Rd__lFQOyAE0R0VyAE19_ConditionalContentVyA_yAC17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0V4InfoVFQOy_Qo_AC06remotebW0A1_LLyQrA3_0B9RoutePairVFQOy_Qo_GAC05basicW0A1_LLQrvpQOy_Qo_GG_AE07GroupedrQ0VQo_tGyXEfU_A14_yXEfU_TA', symObjAddr: 0xFA30, symBinAddr: 0x1000B9CF0, symSize: 0x10 } - - { offset: 0x159704, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyACyAA9TupleViewVyAA7SectionVyAA4TextVAEy8Swiftier9DetailRowV_A4LtGAA05EmptyF0VG_AGyAiA7ForEachVySnySiGSiALGAOGSgtGAEyAGyAiEyAL_A6lEyAL_A2LtGSgALSgtGAOG_AEyAGyAilOG_ARyASSiAGyAiEyAL_A3lYtGAOGGtGSgtGGAEyAGyAixOG_AGyAiEyAL_A3LtGAOGtGGACyxq_GAA0F0A2AA15_RzAAA15_R_rlWl', symObjAddr: 0xFA40, symBinAddr: 0x1000B9D00, symSize: 0x90 } - - { offset: 0x159718, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA9TupleViewVyAA7SectionVyAA4TextVAEy8Swiftier9DetailRowV_A4LtGAA05EmptyF0VG_AGyAiA7ForEachVySnySiGSiALGAOGSgtGAEyAGyAiEyAL_A6lEyAL_A2LtGSgALSgtGAOG_AEyAGyAilOG_ARyASSiAGyAiEyAL_A3lYtGAOGGtGSgtGGACyxq_GAA0F0A2AA10_RzAAA10_R_rlWl', symObjAddr: 0xFAD0, symBinAddr: 0x1000B9D90, symSize: 0xB0 } - - { offset: 0x15972C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI05TupleD0VyAA0C3RowV_A4NtGyXEfU_TA', symObjAddr: 0xFBE0, symBinAddr: 0x1000B9E40, symSize: 0x10 } - - { offset: 0x159740, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI7ForEachVySnySiGSiAA0C3RowVGyXEfU0_TA', symObjAddr: 0xFBF0, symBinAddr: 0x1000B9E50, symSize: 0x10 } - - { offset: 0x159754, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySnySiGSi8Swiftier9DetailRowVGACyxq_q0_GAA4ViewA2aJR0_rlWl', symObjAddr: 0xFC00, symBinAddr: 0x1000B9E60, symSize: 0x60 } - - { offset: 0x159768, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVAC7SwiftUI4ViewAAWl', symObjAddr: 0xFC60, symBinAddr: 0x1000B9EC0, symSize: 0x30 } - - { offset: 0x15977C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI7ForEachVySnySiGSiAA0C3RowVGyXEfU0_AOSicfU_TA', symObjAddr: 0xFCB0, symBinAddr: 0x1000B9F10, symSize: 0x10 } - - { offset: 0x159790, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVWOc', symObjAddr: 0xFD60, symBinAddr: 0x1000B9F20, symSize: 0x30 } - - { offset: 0x1597A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVWOh', symObjAddr: 0xFD90, symBinAddr: 0x1000B9F50, symSize: 0x20 } - - { offset: 0x1597B8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI05TupleD0VyAA0C3RowV_A6nLyAN_A2NtGSgANSgtGyXEfU_TA', symObjAddr: 0xFDB0, symBinAddr: 0x1000B9F70, symSize: 0x20 } - - { offset: 0x1597CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVFAA0C3RowVyXEfU0_TA', symObjAddr: 0xFDD0, symBinAddr: 0x1000B9F90, symSize: 0x10 } - - { offset: 0x1597E0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI7SectionVyAJ4TextVAJ05TupleD0VyAA0C3RowV_A3rPyAR_A2RtGSgtGAJ05EmptyD0VGSicfU1_TA', symObjAddr: 0x10050, symBinAddr: 0x1000BA210, symSize: 0x40 } - - { offset: 0x1597F4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7SectionVyAA4TextVAA9TupleViewVy8Swiftier9DetailRowV_A3jGyAJ_A2JtGSgtGAA05EmptyF0VGACyxq_q0_GAA0F0A2aRRzAaRR_AaRR0_rlWl', symObjAddr: 0x10090, symBinAddr: 0x1000BA250, symSize: 0x90 } - - { offset: 0x159808, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI7SectionVyAJ4TextVAJ05TupleD0VyAA0C3RowV_A3rPyAR_A2RtGSgtGAJ05EmptyD0VGSicfU1_AUyXEfU_TA', symObjAddr: 0x10150, symBinAddr: 0x1000BA2E0, symSize: 0x20 } - - { offset: 0x15981C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI9TupleViewVy8Swiftier9DetailRowV_A2FtGSgWOi0_', symObjAddr: 0x101A0, symBinAddr: 0x1000BA300, symSize: 0x60 } - - { offset: 0x1598B4, size: 0x8, addend: 0x0, symName: '_$sSa37_appendElementAssumeUniqueAndCapacity_03newB0ySi_xntFSs_Tg5', symObjAddr: 0x112D0, symBinAddr: 0x1000BB3E0, symSize: 0x30 } - - { offset: 0x1598E1, size: 0x8, addend: 0x0, symName: '_$sSa37_appendElementAssumeUniqueAndCapacity_03newB0ySi_xntFSS_Tg5', symObjAddr: 0x11300, symBinAddr: 0x1000BB410, symSize: 0x20 } - - { offset: 0x15990A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg7SwiftUI05TupleD0VyAA0C3RowV_A2JtGyXEfU_TA', symObjAddr: 0x113C0, symBinAddr: 0x1000BB4D0, symSize: 0x10 } - - { offset: 0x15991E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg7SwiftUI05TupleD0VyAA0C3RowV_A3JtGyXEfU0_TA', symObjAddr: 0x113D0, symBinAddr: 0x1000BB4E0, symSize: 0x10 } - - { offset: 0x159932, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwxx', symObjAddr: 0x11410, symBinAddr: 0x1000BB4F0, symSize: 0x40 } - - { offset: 0x159946, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwcp', symObjAddr: 0x11450, symBinAddr: 0x1000BB530, symSize: 0x80 } - - { offset: 0x15995A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwca', symObjAddr: 0x114D0, symBinAddr: 0x1000BB5B0, symSize: 0xB0 } - - { offset: 0x15996E, size: 0x8, addend: 0x0, symName: ___swift_memcpy72_8, symObjAddr: 0x11580, symBinAddr: 0x1000BB660, symSize: 0x30 } - - { offset: 0x159982, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwta', symObjAddr: 0x115B0, symBinAddr: 0x1000BB690, symSize: 0x80 } - - { offset: 0x159996, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwet', symObjAddr: 0x11630, symBinAddr: 0x1000BB710, symSize: 0x50 } - - { offset: 0x1599AA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVwst', symObjAddr: 0x11680, symBinAddr: 0x1000BB760, symSize: 0x50 } - - { offset: 0x1599BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowVMa', symObjAddr: 0x116D0, symBinAddr: 0x1000BB7B0, symSize: 0x10 } - - { offset: 0x1599D2, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyACyAA4TextVAA14_PaddingLayoutVG_AA0G0PAAE9formStyleyQrqd__AA04FormL0Rd__lFQOyAA0M0VyAA012_ConditionalD0VyATyAGyAA7SectionVyAiGy8Swiftier9DetailRowV_A4YtGAA05EmptyG0VG_AVyAiA7ForEachVySnySiGSiAYGA0_GSgtGAGyAVyAiGyAY_A6yGyAY_A2YtGSgAYSgtGA0_G_AGyAVyAiYA0_G_A3_yA4_SiAVyAiGyAY_A3YA10_tGA0_GGtGSgtGGAGyAVyAIA9_A0_G_AVyAiGyAY_A3YtGA0_GtGGG_AA07GroupedmL0VQo_tGGAA06_FrameJ0VGACyxq_GAam2aMRzAA0G8ModifierR_rlWl', symObjAddr: 0x116F0, symBinAddr: 0x1000BB7D0, symSize: 0x80 } - - { offset: 0x1599E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x11770, symBinAddr: 0x1000BB850, symSize: 0x20 } - - { offset: 0x1599FA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvgyycfU0_TA', symObjAddr: 0x117A0, symBinAddr: 0x1000BB880, symSize: 0x10 } - - { offset: 0x159A0E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6HStackVyAA9TupleViewVyACyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAA16_FixedSizeLayoutVGAA06_TraitkL0VyAA0o8PrioritypJ0VGG_AA6SpacerVACyACyACyAnKyAI14TruncationModeOGGAVGAA14_OpacityEffectVGtGGAA08_PaddingO0VGAA01_d5ShapeL0VyAA9RectangleVGGACyxq_GAA0G0A2AA18_RzAA0gL0R_rlWl', symObjAddr: 0x117B0, symBinAddr: 0x1000BB890, symSize: 0x90 } - - { offset: 0x159A22, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6HStackVyAA9TupleViewVyACyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAA16_FixedSizeLayoutVGAA06_TraitkL0VyAA0o8PrioritypJ0VGG_AA6SpacerVACyACyACyAnKyAI14TruncationModeOGGAVGAA14_OpacityEffectVGtGGAA08_PaddingO0VGACyxq_GAA0G0A2AA12_RzAA0gL0R_rlWl', symObjAddr: 0x11840, symBinAddr: 0x1000BB920, symSize: 0x80 } - - { offset: 0x159A36, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvgyycfU0_yyScMYccfU0_TA', symObjAddr: 0x11980, symBinAddr: 0x1000BB9F0, symSize: 0x10 } - - { offset: 0x159A4A, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x11990, symBinAddr: 0x1000BBA00, symSize: 0x20 } - - { offset: 0x159A5E, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x119B0, symBinAddr: 0x1000BBA20, symSize: 0x10 } - - { offset: 0x159A72, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwCP', symObjAddr: 0x11B60, symBinAddr: 0x1000BBB70, symSize: 0x6D0 } - - { offset: 0x159A86, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwxx', symObjAddr: 0x12230, symBinAddr: 0x1000BC240, symSize: 0x210 } - - { offset: 0x159A9A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwcp', symObjAddr: 0x12440, symBinAddr: 0x1000BC450, symSize: 0x690 } - - { offset: 0x159AAE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwca', symObjAddr: 0x12AD0, symBinAddr: 0x1000BCAE0, symSize: 0xCA0 } - - { offset: 0x159AC2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwtk', symObjAddr: 0x13770, symBinAddr: 0x1000BD780, symSize: 0x190 } - - { offset: 0x159AD6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwta', symObjAddr: 0x13900, symBinAddr: 0x1000BD910, symSize: 0x740 } - - { offset: 0x159AEA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwet', symObjAddr: 0x14040, symBinAddr: 0x1000BE050, symSize: 0x20 } - - { offset: 0x159AFE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVwst', symObjAddr: 0x14100, symBinAddr: 0x1000BE110, symSize: 0x20 } - - { offset: 0x159B12, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardVMr', symObjAddr: 0x141E0, symBinAddr: 0x1000BE1D0, symSize: 0x90 } - - { offset: 0x159B26, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11EnvironmentV7ContentOyAA11ColorSchemeO_GMa', symObjAddr: 0x14270, symBinAddr: 0x1000BE260, symSize: 0x50 } - - { offset: 0x159B3A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x142C0, symBinAddr: 0x1000BE2B0, symSize: 0x20 } - - { offset: 0x159B4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A73_AE13GeometryProxyVcfU2_TA', symObjAddr: 0x14370, symBinAddr: 0x1000BE300, symSize: 0x40 } - - { offset: 0x159B62, size: 0x8, addend: 0x0, symName: '_$sSlsSQ7ElementRpzrlE5split9separator9maxSplits25omittingEmptySubsequencesSay11SubSequenceQzGAB_SiSbtFSbABXEfU_SS_TG5TA', symObjAddr: 0x14430, symBinAddr: 0x1000BE3C0, symSize: 0x10 } - - { offset: 0x159C3C, size: 0x8, addend: 0x0, symName: '_$sSS11withCStringyxxSPys4Int8VGKXEKlFSb_Tg5024$sSdySdSgxcSyRzlufcSbSpyf6GXEfU_j5SPys4C7VGXEfU_SpySdGTf1cn_n', symObjAddr: 0x14460, symBinAddr: 0x1000BE3F0, symSize: 0xF0 } - - { offset: 0x159D8E, size: 0x8, addend: 0x0, symName: '_$sSdySdSgxcSyRzlufcSbSpySdGXEfU_SbSPys4Int8VGXEfU_TA', symObjAddr: 0x14590, symBinAddr: 0x1000BE500, symSize: 0x50 } - - { offset: 0x159E1F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_yyScMYccfU_TA', symObjAddr: 0x14930, symBinAddr: 0x1000BE8A0, symSize: 0x30 } - - { offset: 0x159E33, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_A33_ycfU1_TA', symObjAddr: 0x149E0, symBinAddr: 0x1000BE8D0, symSize: 0x40 } - - { offset: 0x159E47, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVwxx', symObjAddr: 0x14AF0, symBinAddr: 0x1000BE930, symSize: 0x30 } - - { offset: 0x159E5B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVwcp', symObjAddr: 0x14B20, symBinAddr: 0x1000BE960, symSize: 0x60 } - - { offset: 0x159E6F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVwca', symObjAddr: 0x14B80, symBinAddr: 0x1000BE9C0, symSize: 0x80 } - - { offset: 0x159E83, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVwta', symObjAddr: 0x14C20, symBinAddr: 0x1000BEA40, symSize: 0x50 } - - { offset: 0x159E97, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagVMa', symObjAddr: 0x14D10, symBinAddr: 0x1000BEA90, symSize: 0x10 } - - { offset: 0x159EAB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwxx', symObjAddr: 0x14D20, symBinAddr: 0x1000BEAA0, symSize: 0x40 } - - { offset: 0x159EBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwcp', symObjAddr: 0x14D60, symBinAddr: 0x1000BEAE0, symSize: 0xA0 } - - { offset: 0x159ED3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwca', symObjAddr: 0x14E00, symBinAddr: 0x1000BEB80, symSize: 0xD0 } - - { offset: 0x159EE7, size: 0x8, addend: 0x0, symName: ___swift_memcpy80_8, symObjAddr: 0x14ED0, symBinAddr: 0x1000BEC50, symSize: 0x30 } - - { offset: 0x159EFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwta', symObjAddr: 0x14F00, symBinAddr: 0x1000BEC80, symSize: 0xA0 } - - { offset: 0x159F0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwet', symObjAddr: 0x14FA0, symBinAddr: 0x1000BED20, symSize: 0x50 } - - { offset: 0x159F23, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVwst', symObjAddr: 0x14FF0, symBinAddr: 0x1000BED70, symSize: 0x60 } - - { offset: 0x159F37, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVMa', symObjAddr: 0x15050, symBinAddr: 0x1000BEDD0, symSize: 0x10 } - - { offset: 0x159F4B, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyACyACy8Swiftier13ScrollingTextVAA12_FrameLayoutVGAA010_FixedSizeM0VG_AA6SpacerVAA0G0PAAE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAA7BindingVySbG_AA017PopoverAttachmentU0OAA0W0OSgqd__yctAaURd__lFQOyAvAE11buttonStyleyQrqd__AA20PrimitiveButtonStyleRd__lFQOyAA6ButtonVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGG_AA16PlainButtonStyleVQo__ACyAJ010PeerDetailG0VANGQo_tGG_AIyAGyACyAA0K0VA15_ySiSgGG_ATA32_tGGACyACyAIyAGyACyACyAIyAGyACyA13_A15_yAA4FontVSgGG_ACyA32_A15_y12CoreGraphics7CGFloatVGGtGGA19_GAA05_FlexlM0VG_A53_ACyA32_ANGtGGA41_GA34_GACyACyAA14GeometryReaderVyACyAIyAGyACyAJ3TagVANG_A63_A63_A63_tGGAQGGANGAQGtGGAA08_PaddingM0VGA73_GA52_GAA19_BackgroundModifierVyACyACyACyAA06_ShapeG0VyAA16RoundedRectangleVA17_GAA24_BackgroundStyleModifierVyA17_GGAA16_OverlayModifierVyA80_yAA13_StrokedShapeVyA82_GA17_GGGAA11_ClipEffectVyA82_GGGGACyxq_GAau2aURzAA0G8ModifierR_rlWl', symObjAddr: 0x15070, symBinAddr: 0x1000BEDF0, symSize: 0x90 } - - { offset: 0x159F5F, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyACyACy8Swiftier13ScrollingTextVAA12_FrameLayoutVGAA010_FixedSizeM0VG_AA6SpacerVAA0G0PAAE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAA7BindingVySbG_AA017PopoverAttachmentU0OAA0W0OSgqd__yctAaURd__lFQOyAvAE11buttonStyleyQrqd__AA20PrimitiveButtonStyleRd__lFQOyAA6ButtonVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGG_AA16PlainButtonStyleVQo__ACyAJ010PeerDetailG0VANGQo_tGG_AIyAGyACyAA0K0VA15_ySiSgGG_ATA32_tGGACyACyAIyAGyACyACyAIyAGyACyA13_A15_yAA4FontVSgGG_ACyA32_A15_y12CoreGraphics7CGFloatVGGtGGA19_GAA05_FlexlM0VG_A53_ACyA32_ANGtGGA41_GA34_GACyACyAA14GeometryReaderVyACyAIyAGyACyAJ3TagVANG_A63_A63_A63_tGGAQGGANGAQGtGGAA08_PaddingM0VGA73_GA52_GACyxq_GAau2aURzAA0G8ModifierR_rlWl', symObjAddr: 0x15100, symBinAddr: 0x1000BEE80, symSize: 0x70 } - - { offset: 0x159F73, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyACyACy8Swiftier13ScrollingTextVAA12_FrameLayoutVGAA010_FixedSizeM0VG_AA6SpacerVAA0G0PAAE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAA7BindingVySbG_AA017PopoverAttachmentU0OAA0W0OSgqd__yctAaURd__lFQOyAvAE11buttonStyleyQrqd__AA20PrimitiveButtonStyleRd__lFQOyAA6ButtonVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGG_AA16PlainButtonStyleVQo__ACyAJ010PeerDetailG0VANGQo_tGG_AIyAGyACyAA0K0VA15_ySiSgGG_ATA32_tGGACyACyAIyAGyACyACyAIyAGyACyA13_A15_yAA4FontVSgGG_ACyA32_A15_y12CoreGraphics7CGFloatVGGtGGA19_GAA05_FlexlM0VG_A53_ACyA32_ANGtGGA41_GA34_GACyACyAA14GeometryReaderVyACyAIyAGyACyAJ3TagVANG_A63_A63_A63_tGGAQGGANGAQGtGGAA08_PaddingM0VGA73_GACyxq_GAau2aURzAA0G8ModifierR_rlWl', symObjAddr: 0x15170, symBinAddr: 0x1000BEEF0, symSize: 0x70 } - - { offset: 0x159F87, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyACyACy8Swiftier13ScrollingTextVAA12_FrameLayoutVGAA010_FixedSizeM0VG_AA6SpacerVAA0G0PAAE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAA7BindingVySbG_AA017PopoverAttachmentU0OAA0W0OSgqd__yctAaURd__lFQOyAvAE11buttonStyleyQrqd__AA20PrimitiveButtonStyleRd__lFQOyAA6ButtonVyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGG_AA16PlainButtonStyleVQo__ACyAJ010PeerDetailG0VANGQo_tGG_AIyAGyACyAA0K0VA15_ySiSgGG_ATA32_tGGACyACyAIyAGyACyACyAIyAGyACyA13_A15_yAA4FontVSgGG_ACyA32_A15_y12CoreGraphics7CGFloatVGGtGGA19_GAA05_FlexlM0VG_A53_ACyA32_ANGtGGA41_GA34_GACyACyAA14GeometryReaderVyACyAIyAGyACyAJ3TagVANG_A63_A63_A63_tGGAQGGANGAQGtGGAA08_PaddingM0VGACyxq_GAau2aURzAA0G8ModifierR_rlWl', symObjAddr: 0x151E0, symBinAddr: 0x1000BEF60, symSize: 0x80 } - - { offset: 0x159F9B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x15260, symBinAddr: 0x1000BEFE0, symSize: 0x20 } - - { offset: 0x159FAF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagV7SwiftUI4ViewAA4BodyAdEP_AGWT', symObjAddr: 0x15280, symBinAddr: 0x1000BF000, symSize: 0x20 } - - { offset: 0x159FC3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_TA', symObjAddr: 0x152B0, symBinAddr: 0x1000BF030, symSize: 0x10 } - - { offset: 0x159FD7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvgySbcfU0_TA', symObjAddr: 0x152C0, symBinAddr: 0x1000BF040, symSize: 0x50 } - - { offset: 0x15A015, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextVWOc', symObjAddr: 0x15310, symBinAddr: 0x1000BF090, symSize: 0x30 } - - { offset: 0x15A029, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_ySbcfU1_TA', symObjAddr: 0x15370, symBinAddr: 0x1000BF0F0, symSize: 0x10 } - - { offset: 0x15A03D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_A21_yXEfU_A4_A26_cfU_TA', symObjAddr: 0x153D0, symBinAddr: 0x1000BF150, symSize: 0x10 } - - { offset: 0x15A051, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGy12CoreGraphics7CGFloatVGGAA16_FlexFrameLayoutVGAA08_PaddingO0VGAA011_BackgroundI0VyAA10_ShapeViewVyAA7CapsuleVAA5ColorVGGGACyxq_GAA0S0A2AA6_RzAA0sI0R_rlWl', symObjAddr: 0x15540, symBinAddr: 0x1000BF260, symSize: 0x90 } - - { offset: 0x15A065, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGy12CoreGraphics7CGFloatVGGAA16_FlexFrameLayoutVGAA08_PaddingO0VGACyxq_GAA4ViewA2aWRzAA0qI0R_rlWl', symObjAddr: 0x155D0, symBinAddr: 0x1000BF2F0, symSize: 0x70 } - - { offset: 0x15A079, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGy12CoreGraphics7CGFloatVGGAA16_FlexFrameLayoutVGACyxq_GAA4ViewA2aTRzAA0pI0R_rlWl', symObjAddr: 0x15640, symBinAddr: 0x1000BF360, symSize: 0x70 } - - { offset: 0x15A08D, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA4TextVAA30_EnvironmentKeyWritingModifierVySiSgGGAGy12CoreGraphics7CGFloatVGGACyxq_GAA4ViewA2aQRzAA0mI0R_rlWl', symObjAddr: 0x156B0, symBinAddr: 0x1000BF3D0, symSize: 0x90 } - - { offset: 0x15A0A1, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyACyAA14GeometryReaderVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA4TextVAA16_FixedSizeLayoutVGAA19_BackgroundModifierVyAEyACyAA5ColorVAA017_AppearanceActionO0VGGGGAA14_OpacityEffectVG_ACyACyAnA07_OffsetT0VGAA010_AnimationO0Vy12CoreGraphics7CGFloatVGGtGGATGAA06_ValuerO0VySbGGGAA01_d5ShapeO0VyAA9RectangleVGGAA012_HoverRegionO0VGAA05_ClipT0VyA21_GGACyxq_GAA0I0A2AA32_RzAA0iO0R_rlWl', symObjAddr: 0x157D0, symBinAddr: 0x1000BF470, symSize: 0x90 } - - { offset: 0x15A0B5, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACyAA14GeometryReaderVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA4TextVAA16_FixedSizeLayoutVGAA19_BackgroundModifierVyAEyACyAA5ColorVAA017_AppearanceActionO0VGGGGAA14_OpacityEffectVG_ACyACyAnA07_OffsetT0VGAA010_AnimationO0Vy12CoreGraphics7CGFloatVGGtGGATGAA06_ValuerO0VySbGGGAA01_d5ShapeO0VyAA9RectangleVGGAA012_HoverRegionO0VGACyxq_GAA0I0A2AA28_RzAA0iO0R_rlWl', symObjAddr: 0x15860, symBinAddr: 0x1000BF500, symSize: 0x70 } - - { offset: 0x15A0C9, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA14GeometryReaderVyACyACyAA6ZStackVyAA9TupleViewVyACyACyACyAA4TextVAA16_FixedSizeLayoutVGAA19_BackgroundModifierVyAEyACyAA5ColorVAA017_AppearanceActionO0VGGGGAA14_OpacityEffectVG_ACyACyAnA07_OffsetT0VGAA010_AnimationO0Vy12CoreGraphics7CGFloatVGGtGGATGAA06_ValuerO0VySbGGGAA01_d5ShapeO0VyAA9RectangleVGGACyxq_GAA0I0A2AA25_RzAA0iO0R_rlWl', symObjAddr: 0x158D0, symBinAddr: 0x1000BF570, symSize: 0xA0 } - - { offset: 0x15AC5C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZAA7SectionVyAA4TextVAFyAA6HStackVyAFyAL_AaHPAAE21disableAutocorrectionyQrSbSgFQOyAA15ModifiedContentVyAoAE12labelsHiddenQryFQOyAoAE14textFieldStyleyQrqd__AA0irS0Rd__lFQOyASyAA0iR0VyALGAA30_EnvironmentKeyWritingModifierVyAA0I9AlignmentOGG_AA05PlainirS0VQo__Qo_A_ySSSgGG_Qo_tGG_ANyAFyASyAlA16_FixedSizeLayoutVG_AA6SpacerVAoAE10monospacedyQrSbFQOyASyASyALA_ySiSgGGA_yAL14TruncationModeOGG_Qo_AoAE4helpyQrAA015LocalizedStringU0VFQOyAoAE06buttonS0yQrqd__AA015PrimitiveButtonS0Rd__lFQOyAA6ButtonVyAA5ImageVG_AA0y6ButtonS0VQo__Qo_tGGANyAFyAL_A18_ASyAoAEATQryFQOyAoAEAUyQrqd__AaVRd__lFQOyASyA3_AA12_FrameLayoutVG_A5_Qo__Qo_A9_GtGGtGAA05EmptyC0VG_AJyAlFyAA6ToggleVyALG_AFyAA7ForEachVySnySiGSiANyAFyAL_A18_ASy8Swiftier015ConfigGeneratorC0V04IPv4R0VA15_GAoAEA31_yQrqd__AAA32_Rd__lFQOyA34_yASyA36_A_yAA5ColorVSgGGG_A39_Qo_tGGG_AoAEA31_yQrqd__AAA32_Rd__lFQOyA34_yASyANyAFyA36__ALtGGA71_GG_A39_Qo_tGSgtGALGAJyAlFyA60_yAA7BindingVySayA62_19EasyTierConfigModelV11ProxySubnetVGG10Foundation4UUIDVANyAFyAL_A18_ASyA64_08IPv4CidrR0VA15_GA74_tGGG_A82_tGA54_GAJyAlFyA58__AFyANyAFyAL_A18_A100_tGG_ANyAFyAL_A18_ASyAoAEATQryFQOyA46__Qo_A9_GtGGtGSgtGA54_GAJyAlFyA60_yA61_SiANyAFyAoAEAPyQrAQFQOyASyAoAEATQryFQOyAoAEAUyQrqd__AaVRd__lFQOyAY_A5_Qo__Qo_A9_G_Qo__A18_A74_tGGG_A82_tGA54_GAJyAlFyA58__AA5GroupVyAFyA122__AoAEA31_yQrqd__AAA32_Rd__lFQOyA34_yASyAA5LabelVyALA36_GA71_GG_A39_Qo_tGGSgtGALGAJyAlFyA58__AFyA60_yA61_SiA102_G_A82_tGSgtGALGAJyAlFyA58__ANyAFyAL_A18_ASyA46_A9_GtGGSgtGALGAJyALA83_ALGAJyALA134_ALGAJyAlFyASyAA6VStackVyAFyA58__A16_tGGAA14_PaddingLayoutVG_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_A157_tGA54_GQP_Tt1g5', symObjAddr: 0x2840, symBinAddr: 0x1000ACB60, symSize: 0x240 } - - { offset: 0x15AC77, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZAA15ModifiedContentVyAA6VStackVyAFyAA6ToggleVyAA4TextVG_AJyApA16_FixedSizeLayoutVGtGGAA08_PaddingO0VG_A19YQP_Tt1g5', symObjAddr: 0x2A80, symBinAddr: 0x1000ACDA0, symSize: 0x230 } - - { offset: 0x15AC92, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZAA7SectionVyAA4TextVAA19_ConditionalContentVyAA08ModifiedK0VyAA6ButtonVyALGAA32_EnvironmentKeyTransformModifierVySbGGAA7ForEachVySay10Foundation3URLVGA0_ARyAA6HStackVyAFyAL_AA5ImageVSgtGGGGGAA05EmptyC0VG_AA7DividerVAs2WA16_A3SA16_AWQP_Tt1g5', symObjAddr: 0x2CB0, symBinAddr: 0x1000ACFD0, symSize: 0x190 } - - { offset: 0x15ACAD, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZ8Swiftier9DetailRowV_A6kFyAK_A2KtGSgAKSgQP_Tt1g5', symObjAddr: 0x2E40, symBinAddr: 0x1000AD160, symSize: 0x4A0 } - - { offset: 0x15ACDD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV12shortVersion33_75818CA08CB81B7F5EA965C393FBF355LLSSvg', symObjAddr: 0x32E0, symBinAddr: 0x1000AD600, symSize: 0xF0 } - - { offset: 0x15AE1D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV5clean33_75818CA08CB81B7F5EA965C393FBF355LLyS2SF', symObjAddr: 0x33D0, symBinAddr: 0x1000AD6F0, symSize: 0x110 } - - { offset: 0x15AE52, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV15translateTunnel33_75818CA08CB81B7F5EA965C393FBF355LLyS2SF', symObjAddr: 0x34E0, symBinAddr: 0x1000AD800, symSize: 0x250 } - - { offset: 0x15AF13, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV12translateNAT33_75818CA08CB81B7F5EA965C393FBF355LLyS2SF', symObjAddr: 0x38C0, symBinAddr: 0x1000ADBE0, symSize: 0x2F0 } - - { offset: 0x15AFBA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV8natColor33_75818CA08CB81B7F5EA965C393FBF355LL3for7SwiftUI0E0VSS_tF', symObjAddr: 0x3BB0, symBinAddr: 0x1000ADED0, symSize: 0x3B0 } - - { offset: 0x15B006, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV8tagColor33_75818CA08CB81B7F5EA965C393FBF355LL3for7SwiftUI0E0VSS_tF', symObjAddr: 0x3F60, symBinAddr: 0x1000AE280, symSize: 0x1F0 } - - { offset: 0x15BB85, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg', symObjAddr: 0x4150, symBinAddr: 0x1000AE470, symSize: 0x2B0 } - - { offset: 0x15BD0D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_', symObjAddr: 0x4400, symBinAddr: 0x1000AE720, symSize: 0x920 } - - { offset: 0x15BEE9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_', symObjAddr: 0x4D20, symBinAddr: 0x1000AF040, symSize: 0x800 } - - { offset: 0x15C013, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_yyScMYccfU_', symObjAddr: 0x5520, symBinAddr: 0x1000AF840, symSize: 0x60 } - - { offset: 0x15C03E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_A26_yXEfU0_', symObjAddr: 0x5580, symBinAddr: 0x1000AF8A0, symSize: 0x60 } - - { offset: 0x15C07E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A35_yXEfU_A33_ycfU1_', symObjAddr: 0x55E0, symBinAddr: 0x1000AF900, symSize: 0xD0 } - - { offset: 0x15C146, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A42_yXEfU0_', symObjAddr: 0x56B0, symBinAddr: 0x1000AF9D0, symSize: 0x5F0 } - - { offset: 0x15C234, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A62_yXEfU1_', symObjAddr: 0x5CA0, symBinAddr: 0x1000AFFC0, symSize: 0x9A0 } - - { offset: 0x15C403, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A62_yXEfU1_A57_yXEfU_', symObjAddr: 0x6640, symBinAddr: 0x1000B0960, symSize: 0x370 } - - { offset: 0x15C55F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A62_yXEfU1_A57_yXEfU0_', symObjAddr: 0x69B0, symBinAddr: 0x1000B0CD0, symSize: 0x370 } - - { offset: 0x15C735, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV4bodyQrvg7SwiftUI9TupleViewVyAE6HStackVyAGyAE0H0PAEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_AvE9AlignmentVtFQOyAA13ScrollingTextV_Qo__Qo__AE6SpacerVAkEE7popover11isPresented16attachmentAnchor9arrowEdge7contentQrAE7BindingVySbG_AE23PopoverAttachmentAnchorOAE4EdgeOSgqd__yctAeJRd__lFQOyAkEE11buttonStyleyQrqd__AE20PrimitiveButtonStyleRd__lFQOyAE6ButtonVyAkEE15foregroundColoryQrAE5ColorVSgFQOyAE5ImageV_Qo_G_AE16PlainButtonStyleVQo__AkEEAopqRQrAV_AvXtFQOyAA0b6DetailH0V_Qo_Qo_tGG_AIyAGyAkEE9lineLimityQrSiSgFQOyAE0W0V_Qo__A2_A40_tGGAkEEA37_yQrA38_FQOyAkEE4fontyQrAE4FontVSgFQOyAIyAGyAkEEAO8minWidth10idealWidth8maxWidth9minHeight11idealHeight9maxHeightARQrAV_A5vXtFQOyAkEEA20_yQrA23_FQOyAIyAGyAkEEA44_yQrA47_FQOyA25__Qo__AkEE18minimumScaleFactoryQrAUFQOyA40__Qo_tGG_Qo__Qo__A60_AkEEAopqRQrAV_AvXtFQOyA40__Qo_tGG_Qo__Qo_AkEEAlmNQrSb_SbtFQOyAkEEAopqRQrAV_AvXtFQOyAE14GeometryReaderVyAkEEAlmNQrSb_SbtFQOyAIyAGyAkEEAopqRQrAV_AvXtFQOyAA3TagV_Qo__A70_A70_A70_tGG_Qo_G_Qo__Qo_tGyXEfU_A73_AE13GeometryProxyVcfU2_', symObjAddr: 0x6D20, symBinAddr: 0x1000B1040, symSize: 0xB10 } - - { offset: 0x15CC99, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV14cardBackground33_75818CA08CB81B7F5EA965C393FBF355LLQrvg', symObjAddr: 0x7830, symBinAddr: 0x1000B1B50, symSize: 0x290 } - - { offset: 0x15CEA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV11borderColor33_75818CA08CB81B7F5EA965C393FBF355LL7SwiftUI0E0Vvg', symObjAddr: 0x7AC0, symBinAddr: 0x1000B1DE0, symSize: 0x220 } - - { offset: 0x15CF0B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier8PeerCardV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x7CE0, symBinAddr: 0x1000B2000, symSize: 0x10 } - - { offset: 0x15CF49, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_', symObjAddr: 0x7D00, symBinAddr: 0x1000B2010, symSize: 0x270 } - - { offset: 0x15CFED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_A21_yXEfU_', symObjAddr: 0x7F70, symBinAddr: 0x1000B2280, symSize: 0x7A0 } - - { offset: 0x15D104, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_A21_yXEfU_A4_A26_cfU_', symObjAddr: 0x8710, symBinAddr: 0x1000B2A20, symSize: 0x100 } - - { offset: 0x15D149, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_A21_yXEfU_A4_A26_cfU_yycfU_', symObjAddr: 0x8810, symBinAddr: 0x1000B2B20, symSize: 0x50 } - - { offset: 0x15D17E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV13shouldAnimate33_75818CA08CB81B7F5EA965C393FBF355LLSbvg', symObjAddr: 0x8860, symBinAddr: 0x1000B2B70, symSize: 0xB0 } - - { offset: 0x15D1A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_yycfU0_', symObjAddr: 0x8910, symBinAddr: 0x1000B2C20, symSize: 0x50 } - - { offset: 0x15D1D9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4bodyQrvg7SwiftUI4ViewPAEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyAgEE0H6AppearAJQryycSg_tFQOyAE6ZStackVyAE05TupleG0VyAgEE7opacityyQrSdFQOyAgEE10background_9alignmentQrqd___AE9AlignmentVtAeFRd__lFQOyAgEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAE0C0V_Qo__AE14GeometryReaderVyAgEEAkJQrAL_tFQOyAE5ColorV_Qo_GQo__Qo__AgEE9animation_5valueQrAE9AnimationVSg_qd__tSQRd__lFQOyAgEE6offset1x1yQr12CoreGraphics7CGFloatV_A18_tFQOyA__Qo__A18_Qo_tGG_Qo__SbQo_AE0W5ProxyVcfU_ySbcfU1_', symObjAddr: 0x8960, symBinAddr: 0x1000B2C70, symSize: 0x120 } - - { offset: 0x15D231, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x8AB0, symBinAddr: 0x1000B2D90, symSize: 0x120 } - - { offset: 0x15D293, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagV4bodyQrvg', symObjAddr: 0x8BD0, symBinAddr: 0x1000B2EB0, symSize: 0x400 } - - { offset: 0x15D41E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier3TagV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x8FD0, symBinAddr: 0x1000B32B0, symSize: 0x10 } - - { offset: 0x15D440, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE4TextV_Qo__AiEE9formStyleyQrqd__AE04FormQ0Rd__lFQOyAE0R0VyAE19_ConditionalContentVyA_yAC17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0V4InfoVFQOy_Qo_AC06remotebW0A1_LLyQrA3_0B9RoutePairVFQOy_Qo_GAC05basicW0A1_LLQrvpQOy_Qo_GG_AE07GroupedrQ0VQo_tGyXEfU_', symObjAddr: 0x8FE0, symBinAddr: 0x1000B32C0, symSize: 0x580 } - - { offset: 0x15D4E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV4bodyQrvg7SwiftUI05TupleD0VyAE0D0PAEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAE4TextV_Qo__AiEE9formStyleyQrqd__AE04FormQ0Rd__lFQOyAE0R0VyAE19_ConditionalContentVyA_yAC17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0V4InfoVFQOy_Qo_AC06remotebW0A1_LLyQrA3_0B9RoutePairVFQOy_Qo_GAC05basicW0A1_LLQrvpQOy_Qo_GG_AE07GroupedrQ0VQo_tGyXEfU_A14_yXEfU_', symObjAddr: 0x9560, symBinAddr: 0x1000B3840, symSize: 0x500 } - - { offset: 0x15D5AC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF', symObjAddr: 0x9A60, symBinAddr: 0x1000B3D40, symSize: 0x3D0 } - - { offset: 0x15D664, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI05TupleD0VyAA0C3RowV_A4NtGyXEfU_', symObjAddr: 0xA890, symBinAddr: 0x1000B4B70, symSize: 0xCA0 } - - { offset: 0x15D82D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI7ForEachVySnySiGSiAA0C3RowVGyXEfU0_', symObjAddr: 0xB530, symBinAddr: 0x1000B5810, symSize: 0xD0 } - - { offset: 0x15D8D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV17localNodeSections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0F4InfoVF7SwiftUI7ForEachVySnySiGSiAA0C3RowVGyXEfU0_AOSicfU_', symObjAddr: 0xB600, symBinAddr: 0x1000B58E0, symSize: 0x160 } - - { offset: 0x15D9C4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF', symObjAddr: 0x9E30, symBinAddr: 0x1000B4110, symSize: 0x720 } - - { offset: 0x15DACE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI05TupleD0VyAA0C3RowV_A6nLyAN_A2NtGSgANSgtGyXEfU_', symObjAddr: 0xB760, symBinAddr: 0x1000B5A40, symSize: 0x1730 } - - { offset: 0x15DF30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVFAA0C3RowVyXEfU0_', symObjAddr: 0xD270, symBinAddr: 0x1000B7550, symSize: 0x190 } - - { offset: 0x15E043, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI7SectionVyAJ4TextVAJ05TupleD0VyAA0C3RowV_A3rPyAR_A2RtGSgtGAJ05EmptyD0VGSicfU1_', symObjAddr: 0xD400, symBinAddr: 0x1000B76E0, symSize: 0x280 } - - { offset: 0x15E0E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV06remoteB8Sections33_75818CA08CB81B7F5EA965C393FBF355LLyQrAA14EasyTierStatusV0B9RoutePairVF7SwiftUI7SectionVyAJ4TextVAJ05TupleD0VyAA0C3RowV_A3rPyAR_A2RtGSgtGAJ05EmptyD0VGSicfU1_AUyXEfU_', symObjAddr: 0xD680, symBinAddr: 0x1000B7960, symSize: 0x1290 } - - { offset: 0x15E3E3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg', symObjAddr: 0xA550, symBinAddr: 0x1000B4830, symSize: 0x340 } - - { offset: 0x15E41E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg7SwiftUI05TupleD0VyAA0C3RowV_A2JtGyXEfU_', symObjAddr: 0xEAC0, symBinAddr: 0x1000B8DA0, symSize: 0x610 } - - { offset: 0x15E518, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV13basicSections33_75818CA08CB81B7F5EA965C393FBF355LLQrvg7SwiftUI05TupleD0VyAA0C3RowV_A3JtGyXEfU0_', symObjAddr: 0xF0D0, symBinAddr: 0x1000B93B0, symSize: 0x890 } - - { offset: 0x15E6E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV11formatFlags33_75818CA08CB81B7F5EA965C393FBF355LLySSAA14EasyTierStatusV0B11FeatureFlagVF', symObjAddr: 0xCE90, symBinAddr: 0x1000B7170, symSize: 0x3E0 } - - { offset: 0x15EBBB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV11formatBytes33_75818CA08CB81B7F5EA965C393FBF355LLySSSiF', symObjAddr: 0xE910, symBinAddr: 0x1000B8BF0, symSize: 0x1B0 } - - { offset: 0x15ED47, size: 0x8, addend: 0x0, symName: '_$s8Swiftier14PeerDetailViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0xF960, symBinAddr: 0x1000B9C40, symSize: 0xB0 } - - { offset: 0x15EE46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvg', symObjAddr: 0x10210, symBinAddr: 0x1000BA360, symSize: 0x250 } - - { offset: 0x15EF3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvg7SwiftUI9TupleViewVyAE0H0PAEE14layoutPriorityyQrSdFQOyAiEE9fixedSize10horizontal8verticalQrSb_SbtFQOyAiEE9lineLimityQrSiSgFQOyAE4TextV_Qo__Qo__Qo__AE6SpacerVAiEE7opacityyQrSdFQOyAiEEAJyQrSdFQOyAiEE14truncationModeyQrAQ010TruncationU0OFQOyAR_Qo__Qo__Qo_tGyXEfU_', symObjAddr: 0x10460, symBinAddr: 0x1000BA5B0, symSize: 0x8B0 } - - { offset: 0x15F10F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvgyycfU0_', symObjAddr: 0x10D10, symBinAddr: 0x1000BAE60, symSize: 0x360 } - - { offset: 0x15F19C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV4bodyQrvgyycfU0_yyScMYccfU0_', symObjAddr: 0x11070, symBinAddr: 0x1000BB1C0, symSize: 0x50 } - - { offset: 0x15F27E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier9DetailRowV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x110C0, symBinAddr: 0x1000BB210, symSize: 0x50 } - - { offset: 0x15F292, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13ScrollingTextV4textACSS_tcfCTf4nd_n', symObjAddr: 0x145E0, symBinAddr: 0x1000BE550, symSize: 0x100 } - - { offset: 0x15F48A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC6sharedACvpZ', symObjAddr: 0x6590, symBinAddr: 0x100137C80, symSize: 0x0 } - - { offset: 0x15F56A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x1000BF680, symSize: 0x40 } - - { offset: 0x15F5C1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCMU', symObjAddr: 0xC30, symBinAddr: 0x1000C0280, symSize: 0x10 } - - { offset: 0x15F5D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCMa', symObjAddr: 0xC40, symBinAddr: 0x1000C0290, symSize: 0x30 } - - { offset: 0x15F5E9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCMr', symObjAddr: 0xC70, symBinAddr: 0x1000C02C0, symSize: 0x60 } - - { offset: 0x15F5FD, size: 0x8, addend: 0x0, symName: '_$s7Combine9PublishedVySbGMa', symObjAddr: 0xCD0, symBinAddr: 0x1000C0320, symSize: 0x30 } - - { offset: 0x15F611, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyFyyYbcfU_TA', symObjAddr: 0xDB0, symBinAddr: 0x1000C03B0, symSize: 0x20 } - - { offset: 0x15F625, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0xDD0, symBinAddr: 0x1000C03D0, symSize: 0x20 } - - { offset: 0x15F639, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0xDF0, symBinAddr: 0x1000C03F0, symSize: 0x10 } - - { offset: 0x15F64D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyFyyYbcfU_yyScMYccfU_Tf2ni_nTA', symObjAddr: 0xEF0, symBinAddr: 0x1000C0420, symSize: 0x20 } - - { offset: 0x15F661, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC12isFDAGrantedSbvpACTK', symObjAddr: 0xF10, symBinAddr: 0x1000C0440, symSize: 0x70 } - - { offset: 0x15F68F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC12isFDAGrantedSbvpACTk', symObjAddr: 0xF90, symBinAddr: 0x1000C04C0, symSize: 0x60 } - - { offset: 0x15F734, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC12isFDAGrantedSbvg', symObjAddr: 0x40, symBinAddr: 0x1000BF6C0, symSize: 0x60 } - - { offset: 0x15F780, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC7Combine16ObservableObjectAadEP16objectWillChange0fhI9PublisherQzvgTW', symObjAddr: 0xD10, symBinAddr: 0x1000C0350, symSize: 0x30 } - - { offset: 0x15F7B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCACyc33_0678C7761CFC24F1BCD55A2133350B18Llfc', symObjAddr: 0xA0, symBinAddr: 0x1000BF720, symSize: 0x160 } - - { offset: 0x15F87B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyF', symObjAddr: 0x200, symBinAddr: 0x1000BF880, symSize: 0x240 } - - { offset: 0x15F8F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyFyyYbcfU_', symObjAddr: 0x440, symBinAddr: 0x1000BFAC0, symSize: 0x2D0 } - - { offset: 0x15F96D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC19checkFullDiskAccessyyFyyYbcfU_yyScMYccfU_Tf2ni_n', symObjAddr: 0x710, symBinAddr: 0x1000BFD90, symSize: 0xB0 } - - { offset: 0x15FA3B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCfZ', symObjAddr: 0x7F0, symBinAddr: 0x1000BFE40, symSize: 0xD0 } - - { offset: 0x15FAA5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerCfD', symObjAddr: 0x8C0, symBinAddr: 0x1000BFF10, symSize: 0x370 } - - { offset: 0x15FB1F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17PermissionManagerC17revealAppInFinderyyFTf4d_n', symObjAddr: 0x12D0, symBinAddr: 0x1000C05A0, symSize: 0x170 } - - { offset: 0x15FD04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI0D0AadEP05_makeD04view6inputsAD01_D7OutputsVAD11_GraphValueVyxG_AD01_D6InputsVtFZTW', symObjAddr: 0x320, symBinAddr: 0x1000C09A0, symSize: 0x50 } - - { offset: 0x15FD20, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI0D0AadEP05_makeD4List4view6inputsAD01_dH7OutputsVAD11_GraphValueVyxG_AD01_dH6InputsVtFZTW', symObjAddr: 0x370, symBinAddr: 0x1000C09F0, symSize: 0x50 } - - { offset: 0x15FD3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x3D0, symBinAddr: 0x1000C0A40, symSize: 0x30 } - - { offset: 0x1600B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewCfETo', symObjAddr: 0x13C0, symBinAddr: 0x1000C1A30, symSize: 0x40 } - - { offset: 0x1600E6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewCMa', symObjAddr: 0x1400, symBinAddr: 0x1000C1A70, symSize: 0x20 } - - { offset: 0x1600FA, size: 0x8, addend: 0x0, symName: '_$sSo11CAAnimationCMa', symObjAddr: 0x1460, symBinAddr: 0x1000C1A90, symSize: 0x40 } - - { offset: 0x16010E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwCP', symObjAddr: 0x1900, symBinAddr: 0x1000C1D80, symSize: 0xD0 } - - { offset: 0x160122, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwxx', symObjAddr: 0x19D0, symBinAddr: 0x1000C1E50, symSize: 0x60 } - - { offset: 0x160136, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwcp', symObjAddr: 0x1A30, symBinAddr: 0x1000C1EB0, symSize: 0xA0 } - - { offset: 0x16014A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwca', symObjAddr: 0x1AD0, symBinAddr: 0x1000C1F50, symSize: 0xC0 } - - { offset: 0x16015E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwtk', symObjAddr: 0x1BC0, symBinAddr: 0x1000C2010, symSize: 0xA0 } - - { offset: 0x160172, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwta', symObjAddr: 0x1C60, symBinAddr: 0x1000C20B0, symSize: 0xC0 } - - { offset: 0x160186, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwet', symObjAddr: 0x1D20, symBinAddr: 0x1000C2170, symSize: 0x20 } - - { offset: 0x16019A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVwst', symObjAddr: 0x1DC0, symBinAddr: 0x1000C2210, symSize: 0x20 } - - { offset: 0x1601AE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVMa', symObjAddr: 0x1E50, symBinAddr: 0x1000C22A0, symSize: 0x30 } - - { offset: 0x1601C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewVMr', symObjAddr: 0x1E80, symBinAddr: 0x1000C22D0, symSize: 0x80 } - - { offset: 0x1601D6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI19NSViewRepresentableAaD0D0PWb', symObjAddr: 0x1F60, symBinAddr: 0x1000C2350, symSize: 0x20 } - - { offset: 0x1601EA, size: 0x8, addend: 0x0, symName: '_$s2os32getNullTerminatedUTF8PointerImpl_21storingStringOwnersInSVSS_SpyypGSgztF', symObjAddr: 0x1FB0, symBinAddr: 0x1000C2370, symSize: 0xB0 } - - { offset: 0x16020D, size: 0x8, addend: 0x0, symName: '_$ss11_StringGutsV16_deconstructUTF87scratchyXlSg5owner_xSi6lengthSb11usesScratchSb15allocatedMemorytSwSg_ts8_PointerRzlFSV_Tgq5', symObjAddr: 0x2090, symBinAddr: 0x1000C2420, symSize: 0x130 } - - { offset: 0x160264, size: 0x8, addend: 0x0, symName: '_$ss11_StringGutsV23_allocateForDeconstructyXl5owner_SVSi6lengthtyF', symObjAddr: 0x21F0, symBinAddr: 0x1000C2550, symSize: 0x60 } - - { offset: 0x1602A6, size: 0x8, addend: 0x0, symName: '_$ss32_copyCollectionToContiguousArrayys0dE0Vy7ElementQzGxSlRzlFSS8UTF8ViewV_Tgq5', symObjAddr: 0x2250, symBinAddr: 0x1000C25B0, symSize: 0xA0 } - - { offset: 0x1602FD, size: 0x8, addend: 0x0, symName: '_$sSa6append10contentsOfyqd__n_t7ElementQyd__RszSTRd__lFs5UInt8V_SayAFGTgq5', symObjAddr: 0x22F0, symBinAddr: 0x1000C2650, symSize: 0xE0 } - - { offset: 0x1603E5, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFs5UInt8V_Tgq5', symObjAddr: 0x23D0, symBinAddr: 0x1000C2730, symSize: 0x100 } - - { offset: 0x16053B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV06updateD10Properties33_1238B75A4D54138625C51D2C5A0047AELLyyAA0bC6NSViewCF', symObjAddr: 0x0, symBinAddr: 0x1000C0730, symSize: 0x1A0 } - - { offset: 0x16065F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI19NSViewRepresentableAadEP04makeG07context0G4TypeQzAD0gH7ContextVyxG_tFTW', symObjAddr: 0x1A0, symBinAddr: 0x1000C08D0, symSize: 0x40 } - - { offset: 0x160753, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15RippleRingsViewV7SwiftUI19NSViewRepresentableAadEP06updateG0_7contexty0G4TypeQz_AD0gH7ContextVyxGtFTW', symObjAddr: 0x1E0, symBinAddr: 0x1000C0910, symSize: 0x90 } - - { offset: 0x1608B6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC8durationSdvs', symObjAddr: 0x400, symBinAddr: 0x1000C0A70, symSize: 0xC0 } - - { offset: 0x160982, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC8maxScale12CoreGraphics7CGFloatVvs', symObjAddr: 0x4C0, symBinAddr: 0x1000C0B30, symSize: 0xC0 } - - { offset: 0x160B70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC5frameACSo6CGRectV_tcfc', symObjAddr: 0x580, symBinAddr: 0x1000C0BF0, symSize: 0x150 } - - { offset: 0x160BFB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC5frameACSo6CGRectV_tcfcTo', symObjAddr: 0x6D0, symBinAddr: 0x1000C0D40, symSize: 0x30 } - - { offset: 0x160C0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC5coderACSgSo7NSCoderC_tcfc', symObjAddr: 0x700, symBinAddr: 0x1000C0D70, symSize: 0x120 } - - { offset: 0x160C9A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC5coderACSgSo7NSCoderC_tcfcTo', symObjAddr: 0x820, symBinAddr: 0x1000C0E90, symSize: 0x30 } - - { offset: 0x160CC2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC11setupLayers33_1238B75A4D54138625C51D2C5A0047AELLyyF', symObjAddr: 0x850, symBinAddr: 0x1000C0EC0, symSize: 0x240 } - - { offset: 0x160D70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC6layoutyyF', symObjAddr: 0xA90, symBinAddr: 0x1000C1100, symSize: 0x190 } - - { offset: 0x160DDC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC6layoutyyFTo', symObjAddr: 0xC20, symBinAddr: 0x1000C1290, symSize: 0x30 } - - { offset: 0x160E43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC14startAnimation33_1238B75A4D54138625C51D2C5A0047AELLyyF', symObjAddr: 0xC50, symBinAddr: 0x1000C12C0, symSize: 0x3A0 } - - { offset: 0x160FBF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewC19viewDidMoveToWindowyyFTo', symObjAddr: 0xFF0, symBinAddr: 0x1000C1660, symSize: 0x90 } - - { offset: 0x160FFF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewCfZ', symObjAddr: 0x1080, symBinAddr: 0x1000C16F0, symSize: 0x30 } - - { offset: 0x161045, size: 0x8, addend: 0x0, symName: '_$s8Swiftier17RippleRingsNSViewCfD', symObjAddr: 0x10B0, symBinAddr: 0x1000C1720, symSize: 0x310 } - - { offset: 0x1610F4, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11EnvironmentV12wrappedValuexvgAA11ColorSchemeO_Tg5', symObjAddr: 0x14C0, symBinAddr: 0x1000C1AF0, symSize: 0x240 } - - { offset: 0x161294, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerVMa', symObjAddr: 0x0, symBinAddr: 0x1000C2830, symSize: 0x10 } - - { offset: 0x1612C5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI4ViewAadEP05_makeF04view6inputsAD01_F7OutputsVAD11_GraphValueVyxG_AD01_F6InputsVtFZTW', symObjAddr: 0x390, symBinAddr: 0x1000C2AF0, symSize: 0x40 } - - { offset: 0x1612E1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI4ViewAadEP05_makeF4List4view6inputsAD01_fH7OutputsVAD11_GraphValueVyxG_AD01_fH6InputsVtFZTW', symObjAddr: 0x3D0, symBinAddr: 0x1000C2B30, symSize: 0x40 } - - { offset: 0x1612FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI4ViewAadEP4body4BodyQzvgTW', symObjAddr: 0x420, symBinAddr: 0x1000C2B70, symSize: 0x20 } - - { offset: 0x161324, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerVMa', symObjAddr: 0x0, symBinAddr: 0x1000C2830, symSize: 0x10 } - - { offset: 0x1613B2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI19NSViewRepresentableAaD4ViewPWb', symObjAddr: 0x440, symBinAddr: 0x1000C2B90, symSize: 0x10 } - - { offset: 0x1613C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerVAC7SwiftUI4ViewAAWl', symObjAddr: 0x450, symBinAddr: 0x1000C2BA0, symSize: 0x30 } - - { offset: 0x1613DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV10makeNSView7contextSo0E0C7SwiftUI0E20RepresentableContextVyACG_tFyyScMYccfU_TA', symObjAddr: 0x4F0, symBinAddr: 0x1000C2C00, symSize: 0x10 } - - { offset: 0x1613EE, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x500, symBinAddr: 0x1000C2C10, symSize: 0x20 } - - { offset: 0x161402, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x520, symBinAddr: 0x1000C2C30, symSize: 0x10 } - - { offset: 0x161416, size: 0x8, addend: 0x0, symName: '_$s8Dispatch0A13WorkItemFlagsVACs10SetAlgebraAAWl', symObjAddr: 0x530, symBinAddr: 0x1000C2C40, symSize: 0x40 } - - { offset: 0x16142A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerVAC7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x640, symBinAddr: 0x1000C2C80, symSize: 0x30 } - - { offset: 0x16143E, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI4ViewP8SwiftierE21preventVerticalBounceQryFAcAE10background_9alignmentQrqd___AA9AlignmentVtAaBRd__lFQOyAA5ColorV_AD11ScrollFixerVQo_AA13GeometryProxyVcfU_', symObjAddr: 0x670, symBinAddr: 0x1000C2CB0, symSize: 0x30 } - - { offset: 0x161533, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV10makeNSView7contextSo0E0C7SwiftUI0E20RepresentableContextVyACG_tF', symObjAddr: 0x20, symBinAddr: 0x1000C2840, symSize: 0x1D0 } - - { offset: 0x1615CF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV10makeNSView7contextSo0E0C7SwiftUI0E20RepresentableContextVyACG_tFyyScMYccfU_', symObjAddr: 0x1F0, symBinAddr: 0x1000C2A10, symSize: 0xD0 } - - { offset: 0x1616F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11ScrollFixerV7SwiftUI19NSViewRepresentableAadEP04makeF07context0F4TypeQzAD0fG7ContextVyxG_tFTW', symObjAddr: 0x2C0, symBinAddr: 0x1000C2AE0, symSize: 0x10 } - - { offset: 0x1619BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI0D0AadEP05_makeD04view6inputsAD01_D7OutputsVAD11_GraphValueVyxG_AD01_D6InputsVtFZTW', symObjAddr: 0xC040, symBinAddr: 0x1000CEB50, symSize: 0x40 } - - { offset: 0x1619DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI0D0AadEP05_makeD4List4view6inputsAD01_dH7OutputsVAD11_GraphValueVyxG_AD01_dH6InputsVtFZTW', symObjAddr: 0xC080, symBinAddr: 0x1000CEB90, symSize: 0x40 } - - { offset: 0x1619F6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0xC0C0, symBinAddr: 0x1000CEBD0, symSize: 0x20 } - - { offset: 0x1625FD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateCfETo', symObjAddr: 0xBDF0, symBinAddr: 0x1000CE9F0, symSize: 0x40 } - - { offset: 0x16262E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateCMa', symObjAddr: 0xBE30, symBinAddr: 0x1000CEA30, symSize: 0x20 } - - { offset: 0x162746, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV11controlSizeAA07ControlF0OvpACTKq', symObjAddr: 0xCAB0, symBinAddr: 0x1000CF490, symSize: 0x20 } - - { offset: 0x16275A, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI17EnvironmentValuesV11controlSizeAA07ControlF0OvpACTkq', symObjAddr: 0xCAD0, symBinAddr: 0x1000CF4B0, symSize: 0x60 } - - { offset: 0x1628EF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwxx', symObjAddr: 0xCF20, symBinAddr: 0x1000CF900, symSize: 0xF0 } - - { offset: 0x162903, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwcp', symObjAddr: 0xD010, symBinAddr: 0x1000CF9F0, symSize: 0x270 } - - { offset: 0x162917, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwca', symObjAddr: 0xD280, symBinAddr: 0x1000CFC60, symSize: 0x410 } - - { offset: 0x16292B, size: 0x8, addend: 0x0, symName: ___swift_memcpy240_8, symObjAddr: 0xD690, symBinAddr: 0x1000D0070, symSize: 0x10 } - - { offset: 0x16293F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwta', symObjAddr: 0xD6A0, symBinAddr: 0x1000D0080, symSize: 0x2D0 } - - { offset: 0x162953, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwet', symObjAddr: 0xD970, symBinAddr: 0x1000D0350, symSize: 0x50 } - - { offset: 0x162967, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVwst', symObjAddr: 0xD9C0, symBinAddr: 0x1000D03A0, symSize: 0xA0 } - - { offset: 0x16297B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVMa', symObjAddr: 0xDA60, symBinAddr: 0x1000D0440, symSize: 0x10 } - - { offset: 0x16298F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0xDA70, symBinAddr: 0x1000D0450, symSize: 0x20 } - - { offset: 0x1629A3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvgyycfU0_TA', symObjAddr: 0xDAA0, symBinAddr: 0x1000D0480, symSize: 0x10 } - - { offset: 0x1629B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewVWOc', symObjAddr: 0xDAB0, symBinAddr: 0x1000D0490, symSize: 0x30 } - - { offset: 0x1629CB, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACy8Swiftier11LicenseViewVAA21_TraitWritingModifierVyAA010TransitionH3KeyVGGAHyAA06ZIndexhL0VGGSgWOy', symObjAddr: 0xDAE0, symBinAddr: 0x1000D04C0, symSize: 0x40 } - - { offset: 0x1629DF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyACy8Swiftier11LicenseViewVAA21_TraitWritingModifierVyAA010TransitionH3KeyVGGAHyAA06ZIndexhL0VGGSgWOe', symObjAddr: 0xDB20, symBinAddr: 0x1000D0500, symSize: 0x50 } - - { offset: 0x1629F3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVMa', symObjAddr: 0xDB70, symBinAddr: 0x1000D0550, symSize: 0x30 } - - { offset: 0x162A07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A7_ycfU0_TA', symObjAddr: 0xDBA0, symBinAddr: 0x1000D0580, symSize: 0x10 } - - { offset: 0x162A1B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_TA', symObjAddr: 0xDBB0, symBinAddr: 0x1000D0590, symSize: 0x10 } - - { offset: 0x162A2F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_TA', symObjAddr: 0xDC10, symBinAddr: 0x1000D05A0, symSize: 0x10 } - - { offset: 0x162A43, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_TA', symObjAddr: 0xDC20, symBinAddr: 0x1000D05B0, symSize: 0x10 } - - { offset: 0x162A57, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_TA', symObjAddr: 0xDC30, symBinAddr: 0x1000D05C0, symSize: 0x10 } - - { offset: 0x162A6B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_TA', symObjAddr: 0xDC40, symBinAddr: 0x1000D05D0, symSize: 0x10 } - - { offset: 0x162A7F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_yyScMYccfU2_TA', symObjAddr: 0xDC50, symBinAddr: 0x1000D05E0, symSize: 0x20 } - - { offset: 0x162A93, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVyAA6HStackVyAGyAA4TextV_AA6SpacerVACyACyAA5ImageVAA30_EnvironmentKeyWritingModifierVyAA4FontVSgGGAQyAA5ColorVSgGGtGG_ACyACyAkA16_FixedSizeLayoutVGAQyAA0I9AlignmentOGGtGGAA01_d5ShapeO0VyAA9RectangleVGGACyxq_GAA0G0A2AA18_RzAA0gO0R_rlWl', symObjAddr: 0xDC70, symBinAddr: 0x1000D0600, symSize: 0xA0 } - - { offset: 0x162AA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_yyScMYccfU2_yyXEfU_TA', symObjAddr: 0xDDB0, symBinAddr: 0x1000D0700, symSize: 0x50 } - - { offset: 0x162ADB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_A117_yXEfU_TA', symObjAddr: 0xDE00, symBinAddr: 0x1000D0750, symSize: 0x10 } - - { offset: 0x162AEF, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7ForEachVySaySSGSSAA4ViewPAAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAA4TextV_SSQo_GACyxq_q0_GAae2aER0_rlWl', symObjAddr: 0xDE10, symBinAddr: 0x1000D0760, symSize: 0xA0 } - - { offset: 0x162B03, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_A111_yXEfU_yyScMYccfU0_TA', symObjAddr: 0xDF00, symBinAddr: 0x1000D0820, symSize: 0x10 } - - { offset: 0x162B17, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ButtonVyAA4TextVGAA30_EnvironmentKeyWritingModifierVyAA5ColorVSgGGACyxq_GAA4ViewA2aQRzAA0lJ0R_rlWl', symObjAddr: 0xDF10, symBinAddr: 0x1000D0830, symSize: 0xA0 } - - { offset: 0x162B2B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_ySbcfU0_TA', symObjAddr: 0xDFB0, symBinAddr: 0x1000D08D0, symSize: 0x20 } - - { offset: 0x162B5E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A74_yXEfU_yyScMYccfU1_TA', symObjAddr: 0xDFD0, symBinAddr: 0x1000D08F0, symSize: 0x20 } - - { offset: 0x162B9C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TA', symObjAddr: 0xE220, symBinAddr: 0x1000D0A90, symSize: 0x70 } - - { offset: 0x162BB0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A7_ycfU0_yyScMYccfU_TA', symObjAddr: 0xE5E0, symBinAddr: 0x1000D0C00, symSize: 0x20 } - - { offset: 0x162BC4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwCP', symObjAddr: 0xE600, symBinAddr: 0x1000D0C20, symSize: 0x220 } - - { offset: 0x162BD8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwxx', symObjAddr: 0xE820, symBinAddr: 0x1000D0E40, symSize: 0xE0 } - - { offset: 0x162BEC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwcp', symObjAddr: 0xE900, symBinAddr: 0x1000D0F20, symSize: 0x200 } - - { offset: 0x162C00, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwca', symObjAddr: 0xEB00, symBinAddr: 0x1000D1120, symSize: 0x2A0 } - - { offset: 0x162C14, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwtk', symObjAddr: 0xEDA0, symBinAddr: 0x1000D13C0, symSize: 0x110 } - - { offset: 0x162C28, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwta', symObjAddr: 0xEEB0, symBinAddr: 0x1000D14D0, symSize: 0x240 } - - { offset: 0x162C3C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwet', symObjAddr: 0xF0F0, symBinAddr: 0x1000D1710, symSize: 0x20 } - - { offset: 0x162C50, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVwst', symObjAddr: 0xF190, symBinAddr: 0x1000D17B0, symSize: 0x20 } - - { offset: 0x162C64, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVMr', symObjAddr: 0xF220, symBinAddr: 0x1000D1840, symSize: 0xA0 } - - { offset: 0x162C78, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVwxx', symObjAddr: 0xF340, symBinAddr: 0x1000D18E0, symSize: 0x30 } - - { offset: 0x162C8C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVwcp', symObjAddr: 0xF370, symBinAddr: 0x1000D1910, symSize: 0x60 } - - { offset: 0x162CA0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVwca', symObjAddr: 0xF3D0, symBinAddr: 0x1000D1970, symSize: 0x80 } - - { offset: 0x162CB4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVwta', symObjAddr: 0xF470, symBinAddr: 0x1000D19F0, symSize: 0x50 } - - { offset: 0x162CC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewVMa', symObjAddr: 0xF560, symBinAddr: 0x1000D1A40, symSize: 0x10 } - - { offset: 0x162CDC, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6ZStackVyAA9TupleViewVyACyAA6VStackVyAGy8Swiftier13UnifiedHeaderVyACyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonM0Rd__lFQOyAA0O0VyAA4TextVG_AA08BorderedoM0VQo_AA15_HiddenModifierVGAnAEAOyQrqd__AaPRd__lFQOyAU_AA0q9ProminentoM0VQo_G_AnAE06scrollD10BackgroundyQrAA10VisibilityOFQOyAnAE04formM0yQrqd__AA04FormM0Rd__lFQOyAA0Y0VyAGyAA7SectionVyAtGyACyAA6HStackVyAGyAEyAGyACyAA06_ShapeG0VyAA16RoundedRectangleVAA5ColorVGAA12_FrameLayoutVG_ACyACyAA5ImageVAA022_EnvironmentKeyWritingS0VyAA4FontVSgGGA28_yA20_SgGGtGG_AIyAGyAT_ATtGGAA6SpacerVAnAEAOyQrqd__AaPRd__lFQOyACyAuA024_EnvironmentKeyTransformS0VySbGG_AWQo_ACyAA08ProgressG0VyAA05EmptyG0VA51_GA28_yAA11ControlSizeOGGSgtGGAA14_PaddingLayoutVG_AA6ToggleVyATGA65_A65_A65_ACyA65_AA012_ValueActionS0VySbGGA14_yAGyAT_A42_ACyAnAE06labelsR0QryFQOyAnAE06pickerM0yQrqd__AA06PickerM0Rd__lFQOyAA6PickerVyATSSAGyAnAE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyAT_SSQo__A77_A77_tGG_AA010MenuPickerM0VQo__Qo_AA16_FixedSizeLayoutVGtGGtGA51_G_A12_yATA14_yAGyAT_A42_AA012_ConditionalD0VyA14_yAGyACyA26_A35_G_ATtGGACyAUA35_GGtGGA51_GA12_yATA74_yATSSAA7ForEachVySaySSGSSA77_GGATGA12_yAtGyA14_yAGyAT_A42_ATtGG_A14_yAGyAT_A42_AnAE13textSelectionyQrqd__AA0P13SelectabilityRd__lFQOyAT_AA07EnabledP13SelectabilityVQo_tGGA14_yAGyAT_A42_ACyAA4LinkVyATGA35_GtGGAnAEAOyQrqd__AaPRd__lFQOyARyACyAIyAGyA14_yAGyAT_A42_A36_tGG_ACyACyATA85_GA28_yAA0P9AlignmentOGGtGGAA01_d5ShapeS0VyAA9RectangleVGGG_AA05PlainoM0VQo_tGA51_GtGG_AA07GroupedyM0VQo__Qo_tGGAA01_vmS0VyA20_GG_ACyACyAJ07LicenseG0VAA013_TraitWritingS0VyAA18TransitionTraitKeyVGGA158_yAA14ZIndexTraitKeyVGGSgACyACyAJ015AppUpdateDetailG0VA161_GA165_GSgtGGAA017_AppearanceActionS0VGACyxq_GAam2aMRzAA0gS0R_rlWl', symObjAddr: 0xF580, symBinAddr: 0x1000D1A60, symSize: 0x80 } - - { offset: 0x162CF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV7SwiftUI0C0AA4BodyAdEP_AGWT', symObjAddr: 0xF600, symBinAddr: 0x1000D1AE0, symSize: 0x20 } - - { offset: 0x162D04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV7SwiftUI0E0AA4BodyAdEP_AGWT', symObjAddr: 0xF620, symBinAddr: 0x1000D1B00, symSize: 0x20 } - - { offset: 0x162D18, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewVWOc', symObjAddr: 0xF640, symBinAddr: 0x1000D1B20, symSize: 0x30 } - - { offset: 0x162D2C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI19_ConditionalContentVyAA6HStackVyAA9TupleViewVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonI0Rd__lFQOyAA0K0VyAA4TextVG_AA08BorderedkI0VQo__AiAEAJyQrqd__AaKRd__lFQOyAP_AA0m9ProminentkI0VQo_tGGAA08ModifiedD0VyAiAE08progressgI0yQrqd__AA08ProgressgI0Rd__lFQOyAA0qG0VyAA05EmptyG0VA4_G_AA06LinearqgI0VQo_AA12_FrameLayoutVGGACyxq_GAah2aHRzAaHR_rlWl', symObjAddr: 0xF750, symBinAddr: 0x1000D1C00, symSize: 0x90 } - - { offset: 0x162D40, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA4ViewPAAE08progressE5StyleyQrqd__AA08ProgresseG0Rd__lFQOyAA0hE0VyAA05EmptyE0VAKG_AA06LinearheG0VQo_AA12_FrameLayoutVGACyxq_GAad2aDRzAA0E8ModifierR_rlWl', symObjAddr: 0xF7E0, symBinAddr: 0x1000D1C90, symSize: 0x100 } - - { offset: 0x162D54, size: 0x8, addend: 0x0, symName: '_$sS2dSBsWl', symObjAddr: 0xF8E0, symBinAddr: 0x1000D1D90, symSize: 0x30 } - - { offset: 0x162D68, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFySdcfU_TA', symObjAddr: 0xF9E0, symBinAddr: 0x1000D1E30, symSize: 0x40 } - - { offset: 0x162D7C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_TA', symObjAddr: 0xFB90, symBinAddr: 0x1000D1FE0, symSize: 0x70 } - - { offset: 0x162D90, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU0_TA', symObjAddr: 0xFD30, symBinAddr: 0x1000D2180, symSize: 0x90 } - - { offset: 0x162DA4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU_TA', symObjAddr: 0xFF30, symBinAddr: 0x1000D2380, symSize: 0xC0 } - - { offset: 0x162DB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFySdcfU_yyScMYccfU_TA', symObjAddr: 0x10170, symBinAddr: 0x1000D2580, symSize: 0x40 } - - { offset: 0x162DCC, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x101B0, symBinAddr: 0x1000D25C0, symSize: 0x20 } - - { offset: 0x162DE0, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x101D0, symBinAddr: 0x1000D25E0, symSize: 0x10 } - - { offset: 0x162DF4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_AUycfU_TA', symObjAddr: 0x103B0, symBinAddr: 0x1000D2780, symSize: 0x10 } - - { offset: 0x162E08, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_A13_yXEfU1_TA', symObjAddr: 0x103C0, symBinAddr: 0x1000D2790, symSize: 0x10 } - - { offset: 0x162E1C, size: 0x8, addend: 0x0, symName: '_$sSSWOc', symObjAddr: 0x10400, symBinAddr: 0x1000D27A0, symSize: 0x30 } - - { offset: 0x162E30, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_AUycfU_yyScMYccfU_TA', symObjAddr: 0x10500, symBinAddr: 0x1000D2810, symSize: 0x10 } - - { offset: 0x162E44, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewVMa', symObjAddr: 0x106D0, symBinAddr: 0x1000D2830, symSize: 0x10 } - - { offset: 0x162E58, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_AA012_ConditionalD0VyAXyAA6HStackVyAGyAV_AlAEAMyQrqd__AaNRd__lFQOyAS_AA0p9ProminentnL0VQo_tGGACyAlAE08progressgL0yQrqd__AA08ProgressgL0Rd__lFQOyAA0uG0VyAA05EmptyG0VA9_G_AA06LinearugL0VQo_AA12_FrameLayoutVGGA1_GG_AH011MarkdownWebG0VtGGAA011_BackgroundL8ModifierVyAA5ColorVGGACyxq_GAak2aKRzAA0G8ModifierR_rlWl', symObjAddr: 0x106F0, symBinAddr: 0x1000D2850, symSize: 0xA0 } - - { offset: 0x162E6C, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI15ModifiedContentVyAA6VStackVyAA9TupleViewVy8Swiftier13UnifiedHeaderVyAA0G0PAAE11buttonStyleyQrqd__AA015PrimitiveButtonL0Rd__lFQOyAA0N0VyAA4TextVG_AA08BorderednL0VQo_AA05EmptyG0VG_AA06ScrollG0VyAlAE13textSelectionyQrqd__AA0O13SelectabilityRd__lFQOyACyArA14_PaddingLayoutVG_AA07EnabledoU0VQo_GtGGAA011_BackgroundL8ModifierVyAA5ColorVGGACyxq_GAak2aKRzAA0gZ0R_rlWl', symObjAddr: 0x107A0, symBinAddr: 0x1000D2900, symSize: 0xA0 } - - { offset: 0x162E80, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI19NSViewRepresentableAaD0D0PWb', symObjAddr: 0x10890, symBinAddr: 0x1000D29A0, symSize: 0x10 } - - { offset: 0x162E94, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewVAC7SwiftUI0D0AAWl', symObjAddr: 0x108A0, symBinAddr: 0x1000D29B0, symSize: 0x30 } - - { offset: 0x162EC9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewVAC7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x10BB0, symBinAddr: 0x1000D2CC0, symSize: 0x30 } - - { offset: 0x16477D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_', symObjAddr: 0x0, symBinAddr: 0x1000C2CE0, symSize: 0x810 } - - { offset: 0x164AC2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_', symObjAddr: 0x810, symBinAddr: 0x1000C34F0, symSize: 0x3E0 } - - { offset: 0x164B45, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A4_ycfU_', symObjAddr: 0xBF0, symBinAddr: 0x1000C38D0, symSize: 0x140 } - - { offset: 0x164B86, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A7_ycfU0_', symObjAddr: 0xD40, symBinAddr: 0x1000C3A10, symSize: 0x190 } - - { offset: 0x164BDE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_', symObjAddr: 0xED0, symBinAddr: 0x1000C3BA0, symSize: 0x710 } - - { offset: 0x164C61, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_', symObjAddr: 0x15E0, symBinAddr: 0x1000C42B0, symSize: 0x800 } - - { offset: 0x164E46, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A74_yXEfU_', symObjAddr: 0x1DE0, symBinAddr: 0x1000C4AB0, symSize: 0x760 } - - { offset: 0x16502D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A74_yXEfU_A55_yXEfU_', symObjAddr: 0x2540, symBinAddr: 0x1000C5210, symSize: 0x520 } - - { offset: 0x1651C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A74_yXEfU_A57_yXEfU0_', symObjAddr: 0x2A60, symBinAddr: 0x1000C5730, symSize: 0x4E0 } - - { offset: 0x165255, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyF', symObjAddr: 0x2F40, symBinAddr: 0x1000C5C10, symSize: 0x190 } - - { offset: 0x165279, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_', symObjAddr: 0x5E50, symBinAddr: 0x1000C8AD0, symSize: 0x220 } - - { offset: 0x1653F2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY0_', symObjAddr: 0x6070, symBinAddr: 0x1000C8CF0, symSize: 0x2D0 } - - { offset: 0x1654F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TQ1_', symObjAddr: 0x6340, symBinAddr: 0x1000C8FC0, symSize: 0x100 } - - { offset: 0x16555E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY2_', symObjAddr: 0x6440, symBinAddr: 0x1000C90C0, symSize: 0x1180 } - - { offset: 0x1659E5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY3_', symObjAddr: 0x75C0, symBinAddr: 0x1000CA240, symSize: 0x90 } - - { offset: 0x165BE8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY4_', symObjAddr: 0x7650, symBinAddr: 0x1000CA2D0, symSize: 0x2E0 } - - { offset: 0x165D72, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY5_', symObjAddr: 0x7930, symBinAddr: 0x1000CA5B0, symSize: 0xC0 } - - { offset: 0x165F04, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY6_', symObjAddr: 0x79F0, symBinAddr: 0x1000CA670, symSize: 0x90 } - - { offset: 0x1660B7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY7_', symObjAddr: 0x7A80, symBinAddr: 0x1000CA700, symSize: 0xD0 } - - { offset: 0x166269, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY8_', symObjAddr: 0x7B50, symBinAddr: 0x1000CA7D0, symSize: 0xB0 } - - { offset: 0x1663FB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY9_', symObjAddr: 0x7C00, symBinAddr: 0x1000CA880, symSize: 0x90 } - - { offset: 0x166461, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY10_', symObjAddr: 0x7C90, symBinAddr: 0x1000CA910, symSize: 0xC0 } - - { offset: 0x1664C6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY11_', symObjAddr: 0x7D50, symBinAddr: 0x1000CA9D0, symSize: 0x100 } - - { offset: 0x1664F5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY12_', symObjAddr: 0x7E50, symBinAddr: 0x1000CAAD0, symSize: 0x90 } - - { offset: 0x166577, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY13_', symObjAddr: 0x7EE0, symBinAddr: 0x1000CAB60, symSize: 0xF0 } - - { offset: 0x1665F8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY14_', symObjAddr: 0x7FD0, symBinAddr: 0x1000CAC50, symSize: 0x60 } - - { offset: 0x16663D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV14checkAppUpdate33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFyyYacfU_TY15_', symObjAddr: 0x8030, symBinAddr: 0x1000CACB0, symSize: 0xB0 } - - { offset: 0x166713, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV19toggleLaunchAtLogin33_2F0BF8495421D1333AD07E5A9581ACEFLL7enabledySb_tF', symObjAddr: 0x30D0, symBinAddr: 0x1000C5DA0, symSize: 0x220 } - - { offset: 0x166830, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A100_yXEfU1_', symObjAddr: 0x32F0, symBinAddr: 0x1000C5FC0, symSize: 0x420 } - - { offset: 0x1668FA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A102_yXEfU_A100_yXEfU1_A93_yXEfU_', symObjAddr: 0x3710, symBinAddr: 0x1000C63E0, symSize: 0x400 } - - { offset: 0x166A4A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_', symObjAddr: 0x3B10, symBinAddr: 0x1000C67E0, symSize: 0x50 } - - { offset: 0x166B0F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_A111_yXEfU_', symObjAddr: 0x3B60, symBinAddr: 0x1000C6830, symSize: 0x4B0 } - - { offset: 0x166C9A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_A111_yXEfU_A107_yXEfU_', symObjAddr: 0x4010, symBinAddr: 0x1000C6CE0, symSize: 0x1B0 } - - { offset: 0x166D1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A112_yXEfU0_A111_yXEfU_yyScMYccfU0_', symObjAddr: 0x41C0, symBinAddr: 0x1000C6E90, symSize: 0x120 } - - { offset: 0x166D8A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_', symObjAddr: 0x42E0, symBinAddr: 0x1000C6FB0, symSize: 0xD0 } - - { offset: 0x166DBB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_A117_yXEfU_', symObjAddr: 0x43B0, symBinAddr: 0x1000C7080, symSize: 0x100 } - - { offset: 0x166DF0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A118_yXEfU1_A117_yXEfU_A92_SScfU_', symObjAddr: 0x44B0, symBinAddr: 0x1000C7180, symSize: 0xD0 } - - { offset: 0x166EC1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_', symObjAddr: 0x4580, symBinAddr: 0x1000C7250, symSize: 0x6D0 } - - { offset: 0x167027, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A120_yXEfU_', symObjAddr: 0x4C50, symBinAddr: 0x1000C7920, symSize: 0x210 } - - { offset: 0x1670A4, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A127_yXEfU0_', symObjAddr: 0x4E60, symBinAddr: 0x1000C7B30, symSize: 0x340 } - - { offset: 0x167125, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A133_yXEfU1_', symObjAddr: 0x51A0, symBinAddr: 0x1000C7E70, symSize: 0x320 } - - { offset: 0x16721E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A150_yXEfU3_', symObjAddr: 0x5510, symBinAddr: 0x1000C8190, symSize: 0xF0 } - - { offset: 0x1672BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A150_yXEfU3_A146_yXEfU_', symObjAddr: 0x5600, symBinAddr: 0x1000C8280, symSize: 0x5A0 } - - { offset: 0x1673E5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvg7SwiftUI05TupleC0VyAE0C0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAE6VStackVyAGyAA13UnifiedHeaderVyAiEE6hiddenQryFQOyAiEE06buttonP0yQrqd__AE015PrimitiveButtonP0Rd__lFQOyAE0W0VyAE4TextVG_AE08BorderedwP0VQo__Qo_AiEEAVyQrqd__AeWRd__lFQOyA0__AE0y9ProminentwP0VQo_G_AiEE23scrollContentBackgroundyQrAE10VisibilityOFQOyAiEE04formP0yQrqd__AE04FormP0Rd__lFQOyAE4FormVyAGyAE7SectionVyA_AGyAiEE7paddingyQrAO_12CoreGraphics7CGFloatVSgtFQOyAE6HStackVyAGyAE6ZStackVyAGyAiEE5frame5width6height9alignmentQrA22__A22_AE9AlignmentVtFQOyAE0O0PAEE4fill_5styleQrqd___AE04FillP0VtAePRd__lFQOyAE16RoundedRectangleV_AE5ColorVQo__Qo__AiEE15foregroundColoryQrA42_SgFQOyAiEE4fontyQrAE4FontVSgFQOyAE5ImageV_Qo__Qo_tGG_ARyAGyA__A_tGGAE6SpacerVAiEEAVyQrqd__AeWRd__lFQOyAiEE8disabledyQrSbFQOyA0__Qo__A2_Qo_AiEE11controlSizeyQrAE11ControlSizeOFQOyAE08ProgressC0VyAE05EmptyC0VA70_G_Qo_SgtGG_Qo__AE6ToggleVyA_GA79_A79_A79_AiEE8onChange2of7performQrqd___yqd__ctSQRd__lFQOyA79__SbQo_A24_yAGyA__A60_AiEE9fixedSizeQryFQOyAiEE12labelsHiddenQryFQOyAiEE06pickerP0yQrqd__AE06PickerP0Rd__lFQOyAE6PickerVyA_SSAGyAiEE3tag_15includeOptionalQrqd___SbtSHRd__lFQOyA__SSQo__A92_A92_tGG_AE010MenuPickerP0VQo__Qo__Qo_tGGtGA70_G_A17_yA_A24_yAGyA__A60_AE19_ConditionalContentVyA24_yAGyAiEEA45_yQrA46_FQOyA52__Qo__A_tGGAiEEA45_yQrA46_FQOyA0__Qo_GtGGA70_GA17_yA_A89_yA_SSAE7ForEachVySaySSGSSA92_GGA_GA17_yA_AGyA24_yAGyA__A60_A_tGG_A24_yAGyA__A60_AiEE13textSelectionyQrqd__AE0X13SelectabilityRd__lFQOyA__AE07EnabledX13SelectabilityVQo_tGGA24_yAGyA__A60_AiEEA45_yQrA46_FQOyAE4LinkVyA_G_Qo_tGGAiEEAVyQrqd__AeWRd__lFQOyAYyAiEE07contentO0_6eoFillQrqd___SbtAEA33_Rd__lFQOyARyAGyA24_yAGyA__A60_A54_tGG_AiEE09multilineX9AlignmentyQrAE0X9AlignmentOFQOyAiEEA84_10horizontal8verticalQrSb_SbtFQOyA__Qo__Qo_tGG_AE9RectangleVQo_G_AE05PlainwP0VQo_tGA70_GtGG_AE011GroupedFormP0VQo__Qo_tGG_A42_Qo__AiEE6zIndexyQrSdFQOyAiEE10transitionyQrAE13AnyTransitionVFQOyAA07LicenseC0V_Qo__Qo_SgAiEEA166_yQrSdFQOyAiEEA167_yQrA169_FQOyAA015AppUpdateDetailC0V_Qo__Qo_SgtGyXEfU_A163_yXEfU_A157_yXEfU1_A155_yXEfU2_A150_yXEfU3_A146_yXEfU_A137_yXEfU_', symObjAddr: 0x5BA0, symBinAddr: 0x1000C8820, symSize: 0x230 } - - { offset: 0x167497, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV4bodyQrvgyycfU0_', symObjAddr: 0x5DD0, symBinAddr: 0x1000C8A50, symSize: 0x80 } - - { offset: 0x167597, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0x8110, symBinAddr: 0x1000CAD60, symSize: 0xD0 } - - { offset: 0x167692, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg', symObjAddr: 0x81E0, symBinAddr: 0x1000CAE30, symSize: 0x1A0 } - - { offset: 0x167747, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_', symObjAddr: 0x8380, symBinAddr: 0x1000CAFD0, symSize: 0x1E0 } - - { offset: 0x167805, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_AUycfU_', symObjAddr: 0x8560, symBinAddr: 0x1000CB1B0, symSize: 0x1D0 } - - { offset: 0x167859, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_AUycfU_yyScMYccfU_', symObjAddr: 0x8730, symBinAddr: 0x1000CB380, symSize: 0x120 } - - { offset: 0x1678D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_A25_ycfU0_', symObjAddr: 0x88A0, symBinAddr: 0x1000CB4A0, symSize: 0x970 } - - { offset: 0x167A38, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_A25_ycfU0_A1_yXEfU_', symObjAddr: 0x9210, symBinAddr: 0x1000CBE10, symSize: 0x4A0 } - - { offset: 0x167AA7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV4bodyQrvg7SwiftUI05TupleE0VyAA13UnifiedHeaderVyAE0E0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonM0Rd__lFQOyAE0O0VyAE4TextVG_AE08BorderedoM0VQo_AE19_ConditionalContentVyAWyAE6HStackVyAGyAU_AkEEALyQrqd__AeMRd__lFQOyAR_AE0q9ProminentoM0VQo_tGGAkEE5frame5width6height9alignmentQr12CoreGraphics7CGFloatVSg_A10_AE9AlignmentVtFQOyAkEE08progresseM0yQrqd__AE08ProgresseM0Rd__lFQOyAE08ProgressE0VyAE05EmptyE0VA18_G_AE014LinearProgresseM0VQo__Qo_GA0_GG_AA011MarkdownWebE0VtGyXEfU_A25_ycfU0_A1_yXEfU_yyScMYccfU_', symObjAddr: 0x96B0, symBinAddr: 0x1000CC2B0, symSize: 0x1B0 } - - { offset: 0x167C4E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV12smartInstall33_2F0BF8495421D1333AD07E5A9581ACEFLLyyF', symObjAddr: 0x9860, symBinAddr: 0x1000CC460, symSize: 0x9B0 } - - { offset: 0x167FE0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyF', symObjAddr: 0xA210, symBinAddr: 0x1000CCE10, symSize: 0x540 } - - { offset: 0x1680F1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFySdcfU_', symObjAddr: 0xAD00, symBinAddr: 0x1000CD900, symSize: 0x250 } - - { offset: 0x16815B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFySdcfU_yyScMYccfU_', symObjAddr: 0xAF50, symBinAddr: 0x1000CDB50, symSize: 0x50 } - - { offset: 0x168199, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_', symObjAddr: 0xAFA0, symBinAddr: 0x1000CDBA0, symSize: 0x770 } - - { offset: 0x1683D5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU_', symObjAddr: 0xB710, symBinAddr: 0x1000CE310, symSize: 0xC0 } - - { offset: 0x168413, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU_TY0_', symObjAddr: 0xB7D0, symBinAddr: 0x1000CE3D0, symSize: 0x270 } - - { offset: 0x1684C0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU0_', symObjAddr: 0xBA40, symBinAddr: 0x1000CE640, symSize: 0x80 } - - { offset: 0x1684ED, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV13startDownload33_2F0BF8495421D1333AD07E5A9581ACEFLLyyFy10Foundation3URLVSg_s5Error_pSgtcfU0_yyYaYbScMYccfU0_TY0_', symObjAddr: 0xBAC0, symBinAddr: 0x1000CE6C0, symSize: 0x80 } - - { offset: 0x16851E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV16findBestAssetURL33_2F0BF8495421D1333AD07E5A9581ACEFLLSSSgyF', symObjAddr: 0xA750, symBinAddr: 0x1000CD350, symSize: 0x5B0 } - - { offset: 0x168958, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19AppUpdateDetailViewV7SwiftUI0E0AadEP4body4BodyQzvgTW', symObjAddr: 0xBB40, symBinAddr: 0x1000CE740, symSize: 0x10 } - - { offset: 0x16898E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateC10urlSession_12downloadTask22didFinishDownloadingToySo12NSURLSessionC_So0lbG0C10Foundation3URLVtFTo', symObjAddr: 0xBB50, symBinAddr: 0x1000CE750, symSize: 0x100 } - - { offset: 0x168A17, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateC10urlSession_12downloadTask12didWriteData17totalBytesWritten0kl10ExpectedToI0ySo12NSURLSessionC_So0pbG0Cs5Int64VA2NtFTo', symObjAddr: 0xBC50, symBinAddr: 0x1000CE850, symSize: 0x60 } - - { offset: 0x168AC8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateC10urlSession_4task20didCompleteWithErrorySo12NSURLSessionC_So0K4TaskCs0J0_pSgtFTo', symObjAddr: 0xBCB0, symBinAddr: 0x1000CE8B0, symSize: 0xE0 } - - { offset: 0x168B1C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateCACycfcTo', symObjAddr: 0xBD90, symBinAddr: 0x1000CE990, symSize: 0x30 } - - { offset: 0x168B7D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier16DownloadDelegateCfD', symObjAddr: 0xBDC0, symBinAddr: 0x1000CE9C0, symSize: 0x30 } - - { offset: 0x168C2A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI19NSViewRepresentableAadEP04makeG07context0G4TypeQzAD0gH7ContextVyxG_tFTW', symObjAddr: 0xBE90, symBinAddr: 0x1000CEA50, symSize: 0x90 } - - { offset: 0x168CDC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV7SwiftUI19NSViewRepresentableAadEP06updateG0_7contexty0G4TypeQz_AD0gH7ContextVyxGtFTW', symObjAddr: 0xBF20, symBinAddr: 0x1000CEAE0, symSize: 0x70 } - - { offset: 0x168D86, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_', symObjAddr: 0xC0E0, symBinAddr: 0x1000CEBF0, symSize: 0x2B0 } - - { offset: 0x168E31, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_AUycfU_', symObjAddr: 0xC390, symBinAddr: 0x1000CEEA0, symSize: 0x1D0 } - - { offset: 0x168E7E, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_AUycfU_yyScMYccfU_', symObjAddr: 0xC560, symBinAddr: 0x1000CF070, symSize: 0x50 } - - { offset: 0x168EBD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV4bodyQrvg7SwiftUI05TupleC0VyAA13UnifiedHeaderVyAE0C0PAEE11buttonStyleyQrqd__AE015PrimitiveButtonK0Rd__lFQOyAE0M0VyAE4TextVG_AE08BorderedmK0VQo_AE05EmptyC0VG_AE06ScrollC0VyAkEE13textSelectionyQrqd__AE0N13SelectabilityRd__lFQOyAkEE7paddingyQrAE4EdgeO3SetV_12CoreGraphics7CGFloatVSgtFQOyAQ_Qo__AE07EnablednT0VQo_GtGyXEfU_A13_yXEfU1_', symObjAddr: 0xC5C0, symBinAddr: 0x1000CF0C0, symSize: 0x300 } - - { offset: 0x168FA3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier11LicenseViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0xC8C0, symBinAddr: 0x1000CF3C0, symSize: 0xD0 } - - { offset: 0x1690A3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier12SettingsViewV11isPresentedAC7SwiftUI7BindingVySbG_tcfCTf4nd_n', symObjAddr: 0xCB30, symBinAddr: 0x1000CF510, symSize: 0x3F0 } - - { offset: 0x1692BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15MarkdownWebViewV12generateHTML4fromS2S_tFTf4nd_n', symObjAddr: 0x108D0, symBinAddr: 0x1000D29E0, symSize: 0x2E0 } - - { offset: 0x169586, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVMi', symObjAddr: 0x0, symBinAddr: 0x1000D2DD0, symSize: 0x10 } - - { offset: 0x16959A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVwxx', symObjAddr: 0x40, symBinAddr: 0x1000D2DE0, symSize: 0x40 } - - { offset: 0x1695AE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVwcp', symObjAddr: 0x80, symBinAddr: 0x1000D2E20, symSize: 0x70 } - - { offset: 0x1695C2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVwca', symObjAddr: 0xF0, symBinAddr: 0x1000D2E90, symSize: 0xA0 } - - { offset: 0x1695D6, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVwta', symObjAddr: 0x1C0, symBinAddr: 0x1000D2F30, symSize: 0x70 } - - { offset: 0x1695EA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVMa', symObjAddr: 0x2D0, symBinAddr: 0x1000D2FA0, symSize: 0x10 } - - { offset: 0x1695FE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVyxq_G7SwiftUI4ViewAA4BodyAeFP_AHWT', symObjAddr: 0x2E0, symBinAddr: 0x1000D2FB0, symSize: 0x40 } - - { offset: 0x169644, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI5ColorVAcA10ShapeStyleAAWl', symObjAddr: 0x10F0, symBinAddr: 0x1000D3D40, symSize: 0x30 } - - { offset: 0x169658, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI7DividerVAcA4ViewAAWl', symObjAddr: 0x1120, symBinAddr: 0x1000D3D70, symSize: 0x40 } - - { offset: 0x1697CE, size: 0x8, addend: 0x0, symName: '_$s7SwiftUI11ViewBuilderV10buildBlockyAA05TupleC0VyxxQp_tGxxQpRvzAA0C0RzlFZ', symObjAddr: 0x320, symBinAddr: 0x1000D2FF0, symSize: 0x1E0 } - - { offset: 0x16985C, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderV4bodyQrvg', symObjAddr: 0x500, symBinAddr: 0x1000D31D0, symSize: 0x220 } - - { offset: 0x1698FC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderV4bodyQrvg7SwiftUI9TupleViewVyAE0H0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE7paddingyQr12CoreGraphics7CGFloatVFQOyAE6HStackVyAGyx_AE6SpacerVAiEE9lineLimityQrSiSgFQOyAE4TextV_Qo_AXq_tGG_Qo__AE5ColorVQo__AE7DividerVtGyXEfU_', symObjAddr: 0x720, symBinAddr: 0x1000D33F0, symSize: 0x470 } - - { offset: 0x1699B0, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderV4bodyQrvg7SwiftUI9TupleViewVyAE0H0PAEE10background_20ignoresSafeAreaEdgesQrqd___AE4EdgeO3SetVtAE10ShapeStyleRd__lFQOyAiEE7paddingyQr12CoreGraphics7CGFloatVFQOyAE6HStackVyAGyx_AE6SpacerVAiEE9lineLimityQrSiSgFQOyAE4TextV_Qo_AXq_tGG_Qo__AE5ColorVQo__AE7DividerVtGyXEfU_A2_yXEfU_', symObjAddr: 0xB90, symBinAddr: 0x1000D3860, symSize: 0x440 } - - { offset: 0x169B93, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13UnifiedHeaderVyxq_G7SwiftUI4ViewAaeFP4body4BodyQzvgTW', symObjAddr: 0x1000, symBinAddr: 0x1000D3CA0, symSize: 0x40 } - - { offset: 0x169FA1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI0C0AadEP05_makeC04view6inputsAD01_C7OutputsVAD11_GraphValueVyxG_AD01_C6InputsVtFZTW', symObjAddr: 0x11F0, symBinAddr: 0x1000D5050, symSize: 0x40 } - - { offset: 0x169FBD, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI0C0AadEP05_makeC4List4view6inputsAD01_cG7OutputsVAD11_GraphValueVyxG_AD01_cG6InputsVtFZTW', symObjAddr: 0x1230, symBinAddr: 0x1000D5090, symSize: 0x40 } - - { offset: 0x169FD9, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI0C0AadEP4body4BodyQzvgTW', symObjAddr: 0x1280, symBinAddr: 0x1000D50D0, symSize: 0x20 } - - { offset: 0x16A43A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV11CoordinatorCMa', symObjAddr: 0x1020, symBinAddr: 0x1000D4F20, symSize: 0x20 } - - { offset: 0x16A5AB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewCfETo', symObjAddr: 0x2E30, symBinAddr: 0x1000D6C60, symSize: 0xD0 } - - { offset: 0x16A5DA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewCMa', symObjAddr: 0x2F00, symBinAddr: 0x1000D6D30, symSize: 0x20 } - - { offset: 0x16A60F, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV19_getElementSlowPathyyXlSiF8Swiftier19ConfigGeneratorViewV17MacOctetTextFieldC_Tg5', symObjAddr: 0x2F40, symBinAddr: 0x1000D6D70, symSize: 0x1D0 } - - { offset: 0x16A6D6, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV19_getElementSlowPathyyXlSiFSo10CGColorRefa_Tg5', symObjAddr: 0x3310, symBinAddr: 0x1000D7140, symSize: 0x1D0 } - - { offset: 0x16A773, size: 0x8, addend: 0x0, symName: ___swift_memcpy25_8, symObjAddr: 0x3820, symBinAddr: 0x1000D73A0, symSize: 0x20 } - - { offset: 0x16A787, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewVMa', symObjAddr: 0x3840, symBinAddr: 0x1000D73C0, symSize: 0x10 } - - { offset: 0x16A79B, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewV7SwiftUI0D0AA4BodyAdEP_AGWT', symObjAddr: 0x3850, symBinAddr: 0x1000D73D0, symSize: 0x20 } - - { offset: 0x16A7AF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewVMa', symObjAddr: 0x3A80, symBinAddr: 0x1000D75D0, symSize: 0x10 } - - { offset: 0x16A7C3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewVAC7SwiftUI0C0AAWl', symObjAddr: 0x3BA0, symBinAddr: 0x1000D76A0, symSize: 0x30 } - - { offset: 0x16A7D7, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI19NSViewRepresentableAaD0C0PWb', symObjAddr: 0x3BE0, symBinAddr: 0x1000D76D0, symSize: 0x10 } - - { offset: 0x16A7EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewVAC7SwiftUI19NSViewRepresentableAAWl', symObjAddr: 0x3C20, symBinAddr: 0x1000D76E0, symSize: 0x30 } - - { offset: 0x16A926, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV12updateNSView_7contextyAA0bE0C_7SwiftUI0E20RepresentableContextVyACGtF', symObjAddr: 0x0, symBinAddr: 0x1000D3F00, symSize: 0x160 } - - { offset: 0x16ACB5, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC10updateData_12isLayoutPassySaySdG_SbtF', symObjAddr: 0x160, symBinAddr: 0x1000D4060, symSize: 0xEA0 } - - { offset: 0x16B789, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV11CoordinatorCfD', symObjAddr: 0x1000, symBinAddr: 0x1000D4F00, symSize: 0x20 } - - { offset: 0x16B7EB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI19NSViewRepresentableAadEP04makeF07context0F4TypeQzAD0fG7ContextVyxG_tFTW', symObjAddr: 0x1040, symBinAddr: 0x1000D4F40, symSize: 0xC0 } - - { offset: 0x16B895, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI19NSViewRepresentableAadEP06updateF0_7contexty0F4TypeQz_AD0fG7ContextVyxGtFTW', symObjAddr: 0x1100, symBinAddr: 0x1000D5000, symSize: 0x20 } - - { offset: 0x16B8BE, size: 0x8, addend: 0x0, symName: '_$s8Swiftier13SparklineViewV7SwiftUI19NSViewRepresentableAadEP15makeCoordinator0I0QzyFTW', symObjAddr: 0x1130, symBinAddr: 0x1000D5020, symSize: 0x30 } - - { offset: 0x16B9BA, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewV4bodyQrvgyycfU_', symObjAddr: 0x12A0, symBinAddr: 0x1000D50F0, symSize: 0x60 } - - { offset: 0x16BA1D, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewV4bodyQrvgyycfU0_', symObjAddr: 0x1300, symBinAddr: 0x1000D5150, symSize: 0x60 } - - { offset: 0x16BB41, size: 0x8, addend: 0x0, symName: '_$s8Swiftier18SmartSparklineViewV7SwiftUI0D0AadEP4body4BodyQzvgTW', symObjAddr: 0x1380, symBinAddr: 0x1000D51B0, symSize: 0x70 } - - { offset: 0x16BB99, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC12updateColors33_BC94CB1C6C921A66659798F7853C85C9LLyyF', symObjAddr: 0x13F0, symBinAddr: 0x1000D5220, symSize: 0x2B0 } - - { offset: 0x16BCB8, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5frameACSo6CGRectV_tcfc', symObjAddr: 0x16A0, symBinAddr: 0x1000D54D0, symSize: 0x350 } - - { offset: 0x16BE70, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5setup33_BC94CB1C6C921A66659798F7853C85C9LLyyF', symObjAddr: 0x19F0, symBinAddr: 0x1000D5820, symSize: 0x4E0 } - - { offset: 0x16BEF3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5frameACSo6CGRectV_tcfcTo', symObjAddr: 0x1ED0, symBinAddr: 0x1000D5D00, symSize: 0x30 } - - { offset: 0x16BF07, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5coderACSgSo7NSCoderC_tcfc', symObjAddr: 0x1F00, symBinAddr: 0x1000D5D30, symSize: 0x320 } - - { offset: 0x16C0BF, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC5coderACSgSo7NSCoderC_tcfcTo', symObjAddr: 0x2220, symBinAddr: 0x1000D6050, symSize: 0x30 } - - { offset: 0x16C0D3, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC6layoutyyF', symObjAddr: 0x2250, symBinAddr: 0x1000D6080, symSize: 0x5A0 } - - { offset: 0x16C363, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC6layoutyyFTo', symObjAddr: 0x27F0, symBinAddr: 0x1000D6620, symSize: 0x30 } - - { offset: 0x16C393, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewC16triggerHaloPulse33_BC94CB1C6C921A66659798F7853C85C9LLyyF', symObjAddr: 0x2820, symBinAddr: 0x1000D6650, symSize: 0x310 } - - { offset: 0x16C4BB, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewCfZ', symObjAddr: 0x2B30, symBinAddr: 0x1000D6960, symSize: 0x30 } - - { offset: 0x16C501, size: 0x8, addend: 0x0, symName: '_$s8Swiftier15SparklineNSViewCfD', symObjAddr: 0x2B60, symBinAddr: 0x1000D6990, symSize: 0x2D0 } - - { offset: 0x16C653, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_C3827ED1CF4376E068C68EE2372FFBE3LLCfZ', symObjAddr: 0x0, symBinAddr: 0x1000D7770, symSize: 0x90 } - - { offset: 0x16C6CC, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_C3827ED1CF4376E068C68EE2372FFBE3LLCMa', symObjAddr: 0x3B0, symBinAddr: 0x1000D7B20, symSize: 0x20 } - - { offset: 0x16C70F, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_C3827ED1CF4376E068C68EE2372FFBE3LLCfZ', symObjAddr: 0x0, symBinAddr: 0x1000D7770, symSize: 0x90 } - - { offset: 0x16C781, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_C3827ED1CF4376E068C68EE2372FFBE3LLCfD', symObjAddr: 0x90, symBinAddr: 0x1000D7800, symSize: 0x320 } - - { offset: 0x16C8D1, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_36BF40AF2C2F833B8EC1F5774C1AB3F5LLCfZ', symObjAddr: 0x0, symBinAddr: 0x1000D7BB0, symSize: 0x90 } - - { offset: 0x16C94A, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_36BF40AF2C2F833B8EC1F5774C1AB3F5LLCMa', symObjAddr: 0x3B0, symBinAddr: 0x1000D7F60, symSize: 0x20 } - - { offset: 0x16C95E, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_', symObjAddr: 0x470, symBinAddr: 0x1000D7FA0, symSize: 0x70 } - - { offset: 0x16C976, size: 0x8, addend: 0x0, symName: '_$ss36_deinitOnExecutorMainActorBackDeployyyyXln_yyXlnXfBeBwtFyyYaScMYccfU_TY0_', symObjAddr: 0x4E0, symBinAddr: 0x1000D8010, symSize: 0x60 } - - { offset: 0x16C9D2, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_36BF40AF2C2F833B8EC1F5774C1AB3F5LLCfZ', symObjAddr: 0x0, symBinAddr: 0x1000D7BB0, symSize: 0x90 } - - { offset: 0x16CA44, size: 0x8, addend: 0x0, symName: '_$s8Swiftier19ResourceBundleClass33_36BF40AF2C2F833B8EC1F5774C1AB3F5LLCfD', symObjAddr: 0x90, symBinAddr: 0x1000D7C40, symSize: 0x320 } -... diff --git a/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Info.plist b/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Info.plist deleted file mode 100644 index 3742f53..0000000 --- a/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleIdentifier - com.apple.xcode.dsym.SwiftierHelper - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - dSYM - CFBundleSignature - ???? - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/DWARF/SwiftierHelper b/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/DWARF/SwiftierHelper deleted file mode 100644 index 8a9362b..0000000 Binary files a/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/DWARF/SwiftierHelper and /dev/null differ diff --git a/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/Relocations/aarch64/SwiftierHelper.yml b/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/Relocations/aarch64/SwiftierHelper.yml deleted file mode 100644 index e572336..0000000 --- a/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/Relocations/aarch64/SwiftierHelper.yml +++ /dev/null @@ -1,1349 +0,0 @@ ---- -triple: 'arm64-apple-darwin' -binary-path: '/Users/alick/Library/Developer/Xcode/DerivedData/Swiftier-ctkjodxpxqqyhsbthnbqoqrbkuwb/Build/Intermediates.noindex/ArchiveIntermediates/Swiftier/IntermediateBuildFilesPath/UninstalledProducts/macosx/SwiftierHelper' -relocations: - - { offset: 0x76AFB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper01kB15MachServiceNameSSvp', symObjAddr: 0x15F50, symBinAddr: 0x1011B2500, symSize: 0x0 } - - { offset: 0x76B15, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper01kB7VersionSSvp', symObjAddr: 0x15F60, symBinAddr: 0x1011B2510, symSize: 0x0 } - - { offset: 0x76B2F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper7logPathSSvp', symObjAddr: 0x15F70, symBinAddr: 0x1011B2520, symSize: 0x0 } - - { offset: 0x76B4A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper8delegateAA0B8DelegateCvp', symObjAddr: 0x15F80, symBinAddr: 0x1011B2530, symSize: 0x0 } - - { offset: 0x76EA6, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper8listenerSo13NSXPCListenerCvp', symObjAddr: 0x15F88, symBinAddr: 0x1011B2538, symSize: 0x0 } - - { offset: 0x76EC0, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC6sharedACvpZ', symObjAddr: 0x15F90, symBinAddr: 0x1011B2540, symSize: 0x0 } - - { offset: 0x77080, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x0, symBinAddr: 0x1000012C0, symSize: 0x290 } - - { offset: 0x77295, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12setupLoggingyyF', symObjAddr: 0x290, symBinAddr: 0x100001550, symSize: 0x1B8 } - - { offset: 0x77336, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper3logyySSF', symObjAddr: 0x448, symBinAddr: 0x100001708, symSize: 0x3C8 } - - { offset: 0x77533, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateCMa', symObjAddr: 0x810, symBinAddr: 0x100001AD0, symSize: 0x20 } - - { offset: 0x77547, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC6shared_WZ', symObjAddr: 0x830, symBinAddr: 0x100001AF0, symSize: 0x3C } - - { offset: 0x776B9, size: 0x8, addend: 0x0, symName: '_$sSo7NSTimerCIeghg_ABIeyBhy_TR', symObjAddr: 0x1AA0, symBinAddr: 0x100002D60, symSize: 0x4C } - - { offset: 0x776E7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCMU', symObjAddr: 0x1FD0, symBinAddr: 0x100003290, symSize: 0x8 } - - { offset: 0x776FB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCMa', symObjAddr: 0x1FD8, symBinAddr: 0x100003298, symSize: 0x38 } - - { offset: 0x7770F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCMr', symObjAddr: 0x2010, symBinAddr: 0x1000032D0, symSize: 0xB4 } - - { offset: 0x77723, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgMa', symObjAddr: 0x20C4, symBinAddr: 0x100003384, symSize: 0x54 } - - { offset: 0x7778B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateCfETo', symObjAddr: 0x2C84, symBinAddr: 0x100003F44, symSize: 0x5C } - - { offset: 0x77870, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_TA', symObjAddr: 0x2E20, symBinAddr: 0x100004060, symSize: 0x8 } - - { offset: 0x77884, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x2E28, symBinAddr: 0x100004068, symSize: 0x10 } - - { offset: 0x77898, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x2E38, symBinAddr: 0x100004078, symSize: 0x8 } - - { offset: 0x778AC, size: 0x8, addend: 0x0, symName: '_$s8Dispatch0A13WorkItemFlagsVACs10SetAlgebraAAWl', symObjAddr: 0x2E40, symBinAddr: 0x100004080, symSize: 0x44 } - - { offset: 0x778C0, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameV2, symObjAddr: 0x2E84, symBinAddr: 0x1000040C4, symSize: 0x50 } - - { offset: 0x778D4, size: 0x8, addend: 0x0, symName: '_$sSay8Dispatch0A13WorkItemFlagsVGSayxGSTsWl', symObjAddr: 0x2ED4, symBinAddr: 0x100004114, symSize: 0x50 } - - { offset: 0x778E8, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstractV2, symObjAddr: 0x2F24, symBinAddr: 0x100004164, symSize: 0x54 } - - { offset: 0x778FC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_ySo7NSTimerCYbcfU_TA', symObjAddr: 0x2F78, symBinAddr: 0x1000041B8, symSize: 0x8 } - - { offset: 0x77A39, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOe', symObjAddr: 0x3D90, symBinAddr: 0x100004FD0, symSize: 0x40 } - - { offset: 0x77A4D, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFyycfU_TA', symObjAddr: 0x3E20, symBinAddr: 0x100005060, symSize: 0x8 } - - { offset: 0x77A61, size: 0x8, addend: 0x0, symName: '_$sS2SSysWl', symObjAddr: 0x3E68, symBinAddr: 0x1000050A8, symSize: 0x40 } - - { offset: 0x77A75, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_TA', symObjAddr: 0x3EA8, symBinAddr: 0x1000050E8, symSize: 0x8 } - - { offset: 0x77A89, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_ySo7NSTimerCYbcfU_TA', symObjAddr: 0x3ED4, symBinAddr: 0x100005114, symSize: 0x8 } - - { offset: 0x77A9D, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOd', symObjAddr: 0x3EDC, symBinAddr: 0x10000511C, symSize: 0x50 } - - { offset: 0x77AB1, size: 0x8, addend: 0x0, symName: '_$sypWOb', symObjAddr: 0x3F2C, symBinAddr: 0x10000516C, symSize: 0x10 } - - { offset: 0x77AC5, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5Int32VSPys4Int8VGXEfU_TA', symObjAddr: 0x3F3C, symBinAddr: 0x10000517C, symSize: 0x1C } - - { offset: 0x77AD9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5Int32VSPys4Int8VGXEfU_AhKXEfU_TA', symObjAddr: 0x3F58, symBinAddr: 0x100005198, symSize: 0x18 } - - { offset: 0x77AED, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOe', symObjAddr: 0x3FF8, symBinAddr: 0x100005238, symSize: 0x14 } - - { offset: 0x77D8E, size: 0x8, addend: 0x0, symName: '_$sSS11withCStringyxxSPys4Int8VGKXEKlFs5Int32V_Tg5066$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5d6VSPys4C15VGXEfU_AhKXEfU_A2DSgTf1cn_n', symObjAddr: 0x2CE0, symBinAddr: 0x100003FA0, symSize: 0x9C } - - { offset: 0x77EB9, size: 0x8, addend: 0x0, symName: '_$sSS11withCStringyxxSPys4Int8VGKXEKlFs5Int32V_Tg5066$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5d6VSPys4C7VGXEfU_SSADSgTf1cn_nTf4ngn_n', symObjAddr: 0x2F80, symBinAddr: 0x1000041C0, symSize: 0x8C } - - { offset: 0x78003, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_ypTt0g5Tf4g_n', symObjAddr: 0x300C, symBinAddr: 0x10000424C, symSize: 0x12C } - - { offset: 0x78143, size: 0x8, addend: 0x0, symName: '_$sSlsE6prefixy11SubSequenceQzSiFSS_Tg5Tf4ng_n', symObjAddr: 0x3B84, symBinAddr: 0x100004DC4, symSize: 0x88 } - - { offset: 0x78483, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCACyc33_7DF960DDBA7E38F611BC80C1A069EF24Llfc', symObjAddr: 0x86C, symBinAddr: 0x100001B2C, symSize: 0xF8 } - - { offset: 0x784FE, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC9startTimeSdvg', symObjAddr: 0x964, symBinAddr: 0x100001C24, symSize: 0x194 } - - { offset: 0x7863E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC5start10configPath12consoleLevelySS_SStKF', symObjAddr: 0xAF8, symBinAddr: 0x100001DB8, symSize: 0x864 } - - { offset: 0x78BDC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC4stopyyF', symObjAddr: 0x135C, symBinAddr: 0x10000261C, symSize: 0x344 } - - { offset: 0x78C87, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC4stopyyFyyYbcfU_', symObjAddr: 0x16A0, symBinAddr: 0x100002960, symSize: 0xEC } - - { offset: 0x78D49, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyF', symObjAddr: 0x178C, symBinAddr: 0x100002A4C, symSize: 0x1D0 } - - { offset: 0x78D97, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_', symObjAddr: 0x195C, symBinAddr: 0x100002C1C, symSize: 0xF0 } - - { offset: 0x78DC2, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_ySo7NSTimerCYbcfU_', symObjAddr: 0x1A4C, symBinAddr: 0x100002D0C, symSize: 0x54 } - - { offset: 0x78E50, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC12checkLogFile33_7DF960DDBA7E38F611BC80C1A069EF24LLyyF', symObjAddr: 0x1B1C, symBinAddr: 0x100002DDC, symSize: 0x300 } - - { offset: 0x78F96, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCfD', symObjAddr: 0x1F40, symBinAddr: 0x100003200, symSize: 0x90 } - - { offset: 0x79019, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFyycfU_', symObjAddr: 0x2118, symBinAddr: 0x1000033D8, symSize: 0x204 } - - { offset: 0x790A5, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFyycfU0_', symObjAddr: 0x231C, symBinAddr: 0x1000035DC, symSize: 0x1C } - - { offset: 0x790BD, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFyycfU0_', symObjAddr: 0x231C, symBinAddr: 0x1000035DC, symSize: 0x1C } - - { offset: 0x790E9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFTo', symObjAddr: 0x2338, symBinAddr: 0x1000035F8, symSize: 0x74 } - - { offset: 0x7911B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC16registerListener8endpointySo21NSXPCListenerEndpointC_tFTo', symObjAddr: 0x23AC, symBinAddr: 0x10000366C, symSize: 0x1C } - - { offset: 0x79133, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC16registerListener8endpointySo21NSXPCListenerEndpointC_tFTo', symObjAddr: 0x23AC, symBinAddr: 0x10000366C, symSize: 0x1C } - - { offset: 0x79149, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC16registerListener8endpointySo21NSXPCListenerEndpointC_tFTo', symObjAddr: 0x23AC, symBinAddr: 0x10000366C, symSize: 0x1C } - - { offset: 0x7915D, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyF', symObjAddr: 0x23C8, symBinAddr: 0x100003688, symSize: 0x1E8 } - - { offset: 0x791AE, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_', symObjAddr: 0x25B0, symBinAddr: 0x100003870, symSize: 0x108 } - - { offset: 0x79221, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_ySo7NSTimerCYbcfU_', symObjAddr: 0x26B8, symBinAddr: 0x100003978, symSize: 0x150 } - - { offset: 0x79390, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC9startCore10configPath04coreG012consoleLevel5replyySS_S2SySb_SSSgtctFTo', symObjAddr: 0x2808, symBinAddr: 0x100003AC8, symSize: 0xB0 } - - { offset: 0x793D0, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8stopCore5replyyySbc_tFTo', symObjAddr: 0x28B8, symBinAddr: 0x100003B78, symSize: 0x88 } - - { offset: 0x79460, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC16getCoreStartTime5replyyySdc_tFTo', symObjAddr: 0x294C, symBinAddr: 0x100003C0C, symSize: 0xF0 } - - { offset: 0x7954F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC10getVersion5replyyySSc_tFTo', symObjAddr: 0x2A3C, symBinAddr: 0x100003CFC, symSize: 0x54 } - - { offset: 0x795DB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC15getRecentEvents10sinceIndex5replyySi_y10Foundation4DataV_SitctFTo', symObjAddr: 0x2A90, symBinAddr: 0x100003D50, symSize: 0xB0 } - - { offset: 0x79644, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC04quitB05replyyySbc_tFyyScMYccfU_', symObjAddr: 0x2B40, symBinAddr: 0x100003E00, symSize: 0x10 } - - { offset: 0x7966D, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateCACycfcTo', symObjAddr: 0x2BC8, symBinAddr: 0x100003E88, symSize: 0x8C } - - { offset: 0x796CF, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateCfD', symObjAddr: 0x2C54, symBinAddr: 0x100003F14, symSize: 0x30 } - - { offset: 0x7975E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15processLogChunk33_7DF960DDBA7E38F611BC80C1A069EF24LLyySSFTf4nd_n', symObjAddr: 0x3138, symBinAddr: 0x100004378, symSize: 0x198 } - - { offset: 0x798F8, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFTf4dnn_n', symObjAddr: 0x32D0, symBinAddr: 0x100004510, symSize: 0x2F0 } - - { offset: 0x799D9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC9startCore10configPath04coreG012consoleLevel5replyySS_S2SySb_SSSgtctF59$s10ObjectiveC8ObjCBoolVSo8NSStringCSgIeyByy_SbSSSgIegyg_TR0M1C0oP0VSo0R0CSgIeyByy_Tf1nnncn_nTf4ndndg_n', symObjAddr: 0x35C0, symBinAddr: 0x100004800, symSize: 0x1B0 } - - { offset: 0x79BBE, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13getCoreStatus5replyyys5Int32Vc_tF04$ss5H16VIeyBy_ABIegy_TRAGIeyBy_Tf1cn_nTf4dg_n', symObjAddr: 0x3770, symBinAddr: 0x1000049B0, symSize: 0x168 } - - { offset: 0x79C9D, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC04quitB05replyyySbc_tF39$s10ObjectiveC8ObjCBoolVIeyBy_SbIegy_TR0G1C0iJ0VIeyBy_Tf1cn_nTf4dg_n', symObjAddr: 0x38D8, symBinAddr: 0x100004B18, symSize: 0x2AC } - - { offset: 0x79D2D, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC14getRunningInfo5replyyySSSgc_tF33$sSo8NSStringCSgIeyBy_SSSgIegg_TRSo0J0CSgIeyBy_Tf1cn_nTf4dg_n', symObjAddr: 0x3C0C, symBinAddr: 0x100004E4C, symSize: 0x184 } - - { offset: 0x79EFB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x10000528C, symSize: 0x28 } - - { offset: 0x79F1F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC6sharedACvpZ', symObjAddr: 0x38C0, symBinAddr: 0x1011B2548, symSize: 0x0 } - - { offset: 0x79FF3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x10000528C, symSize: 0x28 } - - { offset: 0x7A0D7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreCMa', symObjAddr: 0x13C, symBinAddr: 0x1000053C8, symSize: 0x20 } - - { offset: 0x7A14E, size: 0x8, addend: 0x0, symName: '_$sSS_yptWOh', symObjAddr: 0x508, symBinAddr: 0x100005744, symSize: 0x48 } - - { offset: 0x7A162, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC12startNetwork6configySS_tKFs5Int32VSPys4Int8VGXEfU_TA', symObjAddr: 0x550, symBinAddr: 0x10000578C, symSize: 0x30 } - - { offset: 0x7A1F9, size: 0x8, addend: 0x0, symName: '_$sSS11withCStringyxxSPys4Int8VGKXEKlFs5Int32V_Tg5063$s14SwiftierHelper12EasyTierCoreC12startNetwork6configySS_tKFs5d6VSPys4C7VGXEfU_ADSgTf1cn_n', symObjAddr: 0x94, symBinAddr: 0x100005320, symSize: 0x98 } - - { offset: 0x7A3A4, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5Int32VSPys4Int8VGXEfU_', symObjAddr: 0x28, symBinAddr: 0x1000052B4, symSize: 0x34 } - - { offset: 0x7A3E9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5Int32VSPys4Int8VGXEfU_AhKXEfU_', symObjAddr: 0x5C, symBinAddr: 0x1000052E8, symSize: 0x38 } - - { offset: 0x7A45A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreCfD', symObjAddr: 0x12C, symBinAddr: 0x1000053B8, symSize: 0x10 } - - { offset: 0x7A51C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC12startNetwork6configySS_tKFTf4nd_n', symObjAddr: 0x15C, symBinAddr: 0x1000053E8, symSize: 0x2B4 } - - { offset: 0x7A719, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC14getRunningInfoSSSgyFTf4d_n', symObjAddr: 0x410, symBinAddr: 0x10000569C, symSize: 0xA8 } - - { offset: 0x7A856, size: 0x8, addend: 0x0, symName: '_$sSlsE9dropFirsty11SubSequenceQzSiFSay14SwiftierHelper14ProcessedEventVG_Tg5', symObjAddr: 0x0, symBinAddr: 0x1000057BC, symSize: 0x6C } - - { offset: 0x7A87A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC6sharedACvpZ', symObjAddr: 0xFED0, symBinAddr: 0x1011B2550, symSize: 0x0 } - - { offset: 0x7AA75, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC6shared_WZ', symObjAddr: 0x6C, symBinAddr: 0x100005828, symSize: 0xD0 } - - { offset: 0x7AB48, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorCMa', symObjAddr: 0x768, symBinAddr: 0x100005F24, symSize: 0x20 } - - { offset: 0x7AB5C, size: 0x8, addend: 0x0, symName: '_$s10Foundation6LocaleVSgWOh', symObjAddr: 0x8FC, symBinAddr: 0x100006028, symSize: 0x48 } - - { offset: 0x7ABC8, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14SwiftierHelper14ProcessedEventV_Tg5', symObjAddr: 0x998, symBinAddr: 0x100006070, symSize: 0x17C } - - { offset: 0x7ACED, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSS_Tg5', symObjAddr: 0xB14, symBinAddr: 0x1000061EC, symSize: 0x64 } - - { offset: 0x7AD30, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSS_Tg5', symObjAddr: 0xB78, symBinAddr: 0x100006250, symSize: 0xB4 } - - { offset: 0x7AD9D, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV19_getElementSlowPathyyXlSiFSo20NSTextCheckingResultC_Tg5', symObjAddr: 0xC2C, symBinAddr: 0x100006304, symSize: 0x1B4 } - - { offset: 0x7AE1E, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSS_Tg5', symObjAddr: 0xDE0, symBinAddr: 0x1000064B8, symSize: 0x1C } - - { offset: 0x7AE8E, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSS_Tg5', symObjAddr: 0xDFC, symBinAddr: 0x1000064D4, symSize: 0x108 } - - { offset: 0x7AFC7, size: 0x8, addend: 0x0, symName: '_$ss32_copyCollectionToContiguousArrayys0dE0Vy7ElementQzGxSlRzlFs0E5SliceVy14SwiftierHelper14ProcessedEventVG_Tg5', symObjAddr: 0xF04, symBinAddr: 0x1000065DC, symSize: 0x128 } - - { offset: 0x7B124, size: 0x8, addend: 0x0, symName: '_$sSD4KeysVyxSD5IndexVyxq__GcigSS_ypTg5Tf4nn_g', symObjAddr: 0x102C, symBinAddr: 0x100006704, symSize: 0x54 } - - { offset: 0x7B362, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy14SwiftierHelper14ProcessedEventVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x16A4, symBinAddr: 0x100006D7C, symSize: 0x10C } - - { offset: 0x7B4C1, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF14SwiftierHelper14ProcessedEventV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x17B0, symBinAddr: 0x100006E88, symSize: 0xBC } - - { offset: 0x7B700, size: 0x8, addend: 0x0, symName: '_$sypWOc', symObjAddr: 0x2054, symBinAddr: 0x10000772C, symSize: 0x3C } - - { offset: 0x7B714, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_0, symObjAddr: 0x20A0, symBinAddr: 0x100007768, symSize: 0x24 } - - { offset: 0x7B728, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOb', symObjAddr: 0x20C4, symBinAddr: 0x10000778C, symSize: 0x50 } - - { offset: 0x7B73C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVWOc', symObjAddr: 0x2114, symBinAddr: 0x1000077DC, symSize: 0x44 } - - { offset: 0x7B750, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVWOb', symObjAddr: 0x2158, symBinAddr: 0x100007820, symSize: 0x44 } - - { offset: 0x7B764, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVWOh', symObjAddr: 0x219C, symBinAddr: 0x100007864, symSize: 0x3C } - - { offset: 0x7B778, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_0, symObjAddr: 0x21D8, symBinAddr: 0x1000078A0, symSize: 0x20 } - - { offset: 0x7B78C, size: 0x8, addend: 0x0, symName: '_$sSo20NSTextCheckingResultCMa', symObjAddr: 0x21F8, symBinAddr: 0x1000078C0, symSize: 0x44 } - - { offset: 0x7B7A0, size: 0x8, addend: 0x0, symName: '_$sSaySSGSayxGSKsWl', symObjAddr: 0x223C, symBinAddr: 0x100007904, symSize: 0x50 } - - { offset: 0x7B7B4, size: 0x8, addend: 0x0, symName: '_$sSay14SwiftierHelper14ProcessedEventVGSayxGSEsSERzlWl', symObjAddr: 0x22E0, symBinAddr: 0x100007954, symSize: 0x70 } - - { offset: 0x7B7C8, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVACSEAAWl', symObjAddr: 0x2350, symBinAddr: 0x1000079C4, symSize: 0x44 } - - { offset: 0x7B8CA, size: 0x8, addend: 0x0, symName: '_$sSlsE9dropFirsty11SubSequenceQzSiFSay14SwiftierHelper14ProcessedEventVG_Tg5', symObjAddr: 0x0, symBinAddr: 0x1000057BC, symSize: 0x6C } - - { offset: 0x7BD3A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC19getSerializedEvents10sinceIndex10Foundation4DataV_SitSi_tF', symObjAddr: 0x13C, symBinAddr: 0x1000058F8, symSize: 0x244 } - - { offset: 0x7BF59, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC14processRawLineyySSF', symObjAddr: 0x380, symBinAddr: 0x100005B3C, symSize: 0x3B4 } - - { offset: 0x7C069, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorCfD', symObjAddr: 0x734, symBinAddr: 0x100005EF0, symSize: 0x34 } - - { offset: 0x7C0A2, size: 0x8, addend: 0x0, symName: '_$sSo19NSRegularExpressionC7pattern7optionsABSS_So0aB7OptionsVtKcfcTO', symObjAddr: 0x7D8, symBinAddr: 0x100005F44, symSize: 0xE4 } - - { offset: 0x7C116, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC27collapsePrettyPrintedArrays33_27AEB632ED150D7960F32A9DEAC821C0LLyS2SFTf4nd_n', symObjAddr: 0x1080, symBinAddr: 0x100006758, symSize: 0x624 } - - { offset: 0x7C7D7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC16parseAndAddEvent33_27AEB632ED150D7960F32A9DEAC821C0LL4json7rawLineySDySSypG_SStFTf4ndn_n', symObjAddr: 0x186C, symBinAddr: 0x100006F44, symSize: 0x7E8 } - - { offset: 0x7CF33, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVMa', symObjAddr: 0xC8, symBinAddr: 0x100007AD0, symSize: 0x38 } - - { offset: 0x7D1CB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs0E3KeyAAWl', symObjAddr: 0x54C, symBinAddr: 0x100007E90, symSize: 0x40 } - - { offset: 0x7D1DF, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOc', symObjAddr: 0x1414, symBinAddr: 0x100008D08, symSize: 0x50 } - - { offset: 0x7D1F3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs0E3KeyAAWl', symObjAddr: 0x1464, symBinAddr: 0x100008D58, symSize: 0x40 } - - { offset: 0x7D207, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVACSEAAWl', symObjAddr: 0x14F8, symBinAddr: 0x100008D98, symSize: 0x40 } - - { offset: 0x7D21B, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOh', symObjAddr: 0x1558, symBinAddr: 0x100008DD8, symSize: 0x48 } - - { offset: 0x7D22F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVACSeAAWl', symObjAddr: 0x1650, symBinAddr: 0x100008ED0, symSize: 0x40 } - - { offset: 0x7D243, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwCP', symObjAddr: 0x1710, symBinAddr: 0x100008F10, symSize: 0x2C } - - { offset: 0x7D257, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwxx', symObjAddr: 0x173C, symBinAddr: 0x100008F3C, symSize: 0x8 } - - { offset: 0x7D26B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwcp', symObjAddr: 0x1744, symBinAddr: 0x100008F44, symSize: 0x3C } - - { offset: 0x7D27F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwca', symObjAddr: 0x1780, symBinAddr: 0x100008F80, symSize: 0x64 } - - { offset: 0x7D293, size: 0x8, addend: 0x0, symName: ___swift_memcpy33_8, symObjAddr: 0x17E4, symBinAddr: 0x100008FE4, symSize: 0x14 } - - { offset: 0x7D2A7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwta', symObjAddr: 0x17F8, symBinAddr: 0x100008FF8, symSize: 0x44 } - - { offset: 0x7D2BB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwet', symObjAddr: 0x183C, symBinAddr: 0x10000903C, symSize: 0x48 } - - { offset: 0x7D2CF, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwst', symObjAddr: 0x1884, symBinAddr: 0x100009084, symSize: 0x44 } - - { offset: 0x7D2E3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVMa', symObjAddr: 0x18C8, symBinAddr: 0x1000090C8, symSize: 0x10 } - - { offset: 0x7D2F7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwCP', symObjAddr: 0x18D8, symBinAddr: 0x1000090D8, symSize: 0x16C } - - { offset: 0x7D30B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwxx', symObjAddr: 0x1A44, symBinAddr: 0x100009244, symSize: 0xC0 } - - { offset: 0x7D31F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwcp', symObjAddr: 0x1B04, symBinAddr: 0x100009304, symSize: 0x140 } - - { offset: 0x7D333, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwca', symObjAddr: 0x1C44, symBinAddr: 0x100009444, symSize: 0x1C8 } - - { offset: 0x7D347, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwtk', symObjAddr: 0x1E0C, symBinAddr: 0x10000960C, symSize: 0x104 } - - { offset: 0x7D35B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwta', symObjAddr: 0x1F10, symBinAddr: 0x100009710, symSize: 0x190 } - - { offset: 0x7D36F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwet', symObjAddr: 0x20A0, symBinAddr: 0x1000098A0, symSize: 0xC } - - { offset: 0x7D383, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwst', symObjAddr: 0x2164, symBinAddr: 0x100009964, symSize: 0xC } - - { offset: 0x7D397, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVMr', symObjAddr: 0x2224, symBinAddr: 0x100009A24, symSize: 0x9C } - - { offset: 0x7D3AB, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x2314, symBinAddr: 0x100009AC0, symSize: 0xC } - - { offset: 0x7D3BF, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x2320, symBinAddr: 0x100009ACC, symSize: 0x4 } - - { offset: 0x7D3D3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwet', symObjAddr: 0x2324, symBinAddr: 0x100009AD0, symSize: 0x90 } - - { offset: 0x7D3E7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwst', symObjAddr: 0x23B4, symBinAddr: 0x100009B60, symSize: 0xB0 } - - { offset: 0x7D3FB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwup', symObjAddr: 0x2464, symBinAddr: 0x100009C10, symSize: 0x4 } - - { offset: 0x7D40F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOMa', symObjAddr: 0x2468, symBinAddr: 0x100009C14, symSize: 0x10 } - - { offset: 0x7D423, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwet', symObjAddr: 0x2478, symBinAddr: 0x100009C24, symSize: 0x90 } - - { offset: 0x7D437, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwst', symObjAddr: 0x2508, symBinAddr: 0x100009CB4, symSize: 0xB0 } - - { offset: 0x7D44B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOMa', symObjAddr: 0x25CC, symBinAddr: 0x100009D74, symSize: 0x10 } - - { offset: 0x7D45F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOSHAASQWb', symObjAddr: 0x25DC, symBinAddr: 0x100009D84, symSize: 0x4 } - - { offset: 0x7D473, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFSQAAWl', symObjAddr: 0x25E0, symBinAddr: 0x100009D88, symSize: 0x40 } - - { offset: 0x7D487, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOSHAASQWb', symObjAddr: 0x2620, symBinAddr: 0x100009DC8, symSize: 0x4 } - - { offset: 0x7D49B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFSQAAWl', symObjAddr: 0x2624, symBinAddr: 0x100009DCC, symSize: 0x40 } - - { offset: 0x7D4AF, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x2664, symBinAddr: 0x100009E0C, symSize: 0x4 } - - { offset: 0x7D4C3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x2668, symBinAddr: 0x100009E10, symSize: 0x40 } - - { offset: 0x7D4D7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x26A8, symBinAddr: 0x100009E50, symSize: 0x4 } - - { offset: 0x7D4EB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x26AC, symBinAddr: 0x100009E54, symSize: 0x40 } - - { offset: 0x7D4FF, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x26EC, symBinAddr: 0x100009E94, symSize: 0x4 } - - { offset: 0x7D513, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x26F0, symBinAddr: 0x100009E98, symSize: 0x40 } - - { offset: 0x7D527, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x2730, symBinAddr: 0x100009ED8, symSize: 0x4 } - - { offset: 0x7D53B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x2734, symBinAddr: 0x100009EDC, symSize: 0x40 } - - { offset: 0x7D5C1, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x2DC, symBinAddr: 0x100007C44, symSize: 0x28 } - - { offset: 0x7D5DD, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x304, symBinAddr: 0x100007C6C, symSize: 0x28 } - - { offset: 0x7D65B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x948, symBinAddr: 0x10000823C, symSize: 0x28 } - - { offset: 0x7D677, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x970, symBinAddr: 0x100008264, symSize: 0x28 } - - { offset: 0x7D69B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV2id9timestamp4time4type7details10highlightsAC10Foundation4UUIDV_SSAJ4DateVSgS2SSayAA14HighlightRangeVGtcfC', symObjAddr: 0x0, symBinAddr: 0x100007A08, symSize: 0xC8 } - - { offset: 0x7D71B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV5start6length5color4boldACSi_SiSSSbtcfC', symObjAddr: 0x1A0, symBinAddr: 0x100007B08, symSize: 0x10 } - - { offset: 0x7D77B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV5startSivg', symObjAddr: 0x1B0, symBinAddr: 0x100007B18, symSize: 0x8 } - - { offset: 0x7D78F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV6lengthSivg', symObjAddr: 0x1B8, symBinAddr: 0x100007B20, symSize: 0x8 } - - { offset: 0x7D7A3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV5colorSSvg', symObjAddr: 0x1C0, symBinAddr: 0x100007B28, symSize: 0x2C } - - { offset: 0x7D7B7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV4boldSbvg', symObjAddr: 0x1EC, symBinAddr: 0x100007B54, symSize: 0x8 } - - { offset: 0x7D7F7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0x238, symBinAddr: 0x100007BA0, symSize: 0x68 } - - { offset: 0x7D827, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x2A0, symBinAddr: 0x100007C08, symSize: 0x24 } - - { offset: 0x7D850, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP8intValueSiSgvgTW', symObjAddr: 0x2C4, symBinAddr: 0x100007C2C, symSize: 0xC } - - { offset: 0x7D864, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP8intValuexSgSi_tcfCTW', symObjAddr: 0x2D0, symBinAddr: 0x100007C38, symSize: 0xC } - - { offset: 0x7D878, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV23__derived_struct_equalsySbAC_ACtFZ', symObjAddr: 0x32C, symBinAddr: 0x100007C94, symSize: 0x90 } - - { offset: 0x7D8D1, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV6encode2toys7Encoder_p_tKF', symObjAddr: 0x3BC, symBinAddr: 0x100007D24, symSize: 0x16C } - - { offset: 0x7D902, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV4fromACs7Decoder_p_tKcfC', symObjAddr: 0x58C, symBinAddr: 0x100007ED0, symSize: 0x44 } - - { offset: 0x7D924, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x614, symBinAddr: 0x100007F14, symSize: 0x14 } - - { offset: 0x7D968, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x628, symBinAddr: 0x100007F28, symSize: 0x78 } - - { offset: 0x7D9B3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV2id10Foundation4UUIDVvg', symObjAddr: 0x6A0, symBinAddr: 0x100007FA0, symSize: 0x38 } - - { offset: 0x7D9C7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV9timestampSSvg', symObjAddr: 0x6D8, symBinAddr: 0x100007FD8, symSize: 0x3C } - - { offset: 0x7D9DB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV4time10Foundation4DateVSgvg', symObjAddr: 0x714, symBinAddr: 0x100008014, symSize: 0x30 } - - { offset: 0x7D9EF, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV4typeSSvg', symObjAddr: 0x744, symBinAddr: 0x100008044, symSize: 0x3C } - - { offset: 0x7DA03, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV7detailsSSvg', symObjAddr: 0x780, symBinAddr: 0x100008080, symSize: 0x3C } - - { offset: 0x7DA17, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10highlightsSayAA14HighlightRangeVGvg', symObjAddr: 0x7BC, symBinAddr: 0x1000080BC, symSize: 0x20 } - - { offset: 0x7DA42, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0x860, symBinAddr: 0x100008160, symSize: 0xAC } - - { offset: 0x7DA80, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x90C, symBinAddr: 0x10000820C, symSize: 0x24 } - - { offset: 0x7DAA9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP8intValuexSgSi_tcfCTW', symObjAddr: 0x93C, symBinAddr: 0x100008230, symSize: 0xC } - - { offset: 0x7DABD, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV6encode2toys7Encoder_p_tKF', symObjAddr: 0x998, symBinAddr: 0x10000828C, symSize: 0x288 } - - { offset: 0x7DAEE, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV4fromACs7Decoder_p_tKcfC', symObjAddr: 0xC20, symBinAddr: 0x100008514, symSize: 0x498 } - - { offset: 0x7DB18, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x10B8, symBinAddr: 0x1000089AC, symSize: 0x14 } - - { offset: 0x7DB2C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x10CC, symBinAddr: 0x1000089C0, symSize: 0x14 } - - { offset: 0x7DB40, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x10E0, symBinAddr: 0x1000089D4, symSize: 0x154 } - - { offset: 0x7DBF7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV4fromACs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0x1234, symBinAddr: 0x100008B28, symSize: 0x1E0 } - - { offset: 0x7DC1A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x2774, symBinAddr: 0x100009F1C, symSize: 0x1FC } - - { offset: 0x7DD98, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_frombytes_vartime, symObjAddr: 0x0, symBinAddr: 0x100B51590, symSize: 0x26E4 } - - { offset: 0x7DDB2, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__k25519Precomp, symObjAddr: 0xA018, symBinAddr: 0x100D84B38, symSize: 0x0 } - - { offset: 0x7DE07, size: 0x8, addend: 0x0, symName: _d, symObjAddr: 0x10018, symBinAddr: 0x100D8AB38, symSize: 0x0 } - - { offset: 0x7DE71, size: 0x8, addend: 0x0, symName: _sqrtm1, symObjAddr: 0x10040, symBinAddr: 0x100D8AB60, symSize: 0x0 } - - { offset: 0x7DE87, size: 0x8, addend: 0x0, symName: _d2, symObjAddr: 0x10448, symBinAddr: 0x100D8AF68, symSize: 0x0 } - - { offset: 0x7DE9E, size: 0x8, addend: 0x0, symName: _Bi, symObjAddr: 0x10088, symBinAddr: 0x100D8ABA8, symSize: 0x0 } - - { offset: 0x7EBB0, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_frombytes_vartime, symObjAddr: 0x0, symBinAddr: 0x100B51590, symSize: 0x26E4 } - - { offset: 0x8293B, size: 0x8, addend: 0x0, symName: _fe_mul_impl, symObjAddr: 0x9BA4, symBinAddr: 0x100B5B134, symSize: 0x210 } - - { offset: 0x82B9C, size: 0x8, addend: 0x0, symName: _fe_tobytes, symObjAddr: 0x4E44, symBinAddr: 0x100B563D4, symSize: 0x1B8 } - - { offset: 0x8315D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_scalarmult_base, symObjAddr: 0x26E4, symBinAddr: 0x100B53C74, symSize: 0x5A8 } - - { offset: 0x83CA5, size: 0x8, addend: 0x0, symName: _table_select, symObjAddr: 0x2C8C, symBinAddr: 0x100B5421C, symSize: 0x674 } - - { offset: 0x84051, size: 0x8, addend: 0x0, symName: _ge_madd, symObjAddr: 0x3300, symBinAddr: 0x100B54890, symSize: 0x208 } - - { offset: 0x845F7, size: 0x8, addend: 0x0, symName: _ge_p2_dbl, symObjAddr: 0x3508, symBinAddr: 0x100B54A98, symSize: 0x7A8 } - - { offset: 0x853FE, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_sc_reduce, symObjAddr: 0x3CB0, symBinAddr: 0x100B55240, symSize: 0x61C } - - { offset: 0x85D91, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_scalar_mult_generic_masked, symObjAddr: 0x42CC, symBinAddr: 0x100B5585C, symSize: 0xB78 } - - { offset: 0x872C2, size: 0x8, addend: 0x0, symName: _fe_loose_invert, symObjAddr: 0x5100, symBinAddr: 0x100B56690, symSize: 0x23CC } - - { offset: 0x8A827, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_public_from_private_generic_masked, symObjAddr: 0x4FFC, symBinAddr: 0x100B5658C, symSize: 0x104 } - - { offset: 0x8AA8F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_invert, symObjAddr: 0x74CC, symBinAddr: 0x100B58A5C, symSize: 0x30 } - - { offset: 0x8AB80, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_isnegative, symObjAddr: 0x74FC, symBinAddr: 0x100B58A8C, symSize: 0x58 } - - { offset: 0x8ABF5, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_mul_ttt, symObjAddr: 0x7554, symBinAddr: 0x100B58AE4, symSize: 0x4 } - - { offset: 0x8AC3D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_mul_ttt, symObjAddr: 0x7554, symBinAddr: 0x100B58AE4, symSize: 0x4 } - - { offset: 0x8AC6C, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_mul_ttt, symObjAddr: 0x7554, symBinAddr: 0x100B58AE4, symSize: 0x4 } - - { offset: 0x8AC90, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_neg, symObjAddr: 0x7558, symBinAddr: 0x100B58AE8, symSize: 0x8C } - - { offset: 0x8ADE3, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_tobytes, symObjAddr: 0x75E4, symBinAddr: 0x100B58B74, symSize: 0x4 } - - { offset: 0x8AE1C, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_tobytes, symObjAddr: 0x75E4, symBinAddr: 0x100B58B74, symSize: 0x4 } - - { offset: 0x8B0BA, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_double_scalarmult_vartime, symObjAddr: 0x75E8, symBinAddr: 0x100B58B78, symSize: 0x19C0 } - - { offset: 0x8DC0D, size: 0x8, addend: 0x0, symName: _x25519_ge_add, symObjAddr: 0x9DB4, symBinAddr: 0x100B5B344, symSize: 0x218 } - - { offset: 0x8E1FF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_sc_mask, symObjAddr: 0x8FA8, symBinAddr: 0x100B5A538, symSize: 0x20 } - - { offset: 0x8E69C, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_sc_muladd, symObjAddr: 0x8FC8, symBinAddr: 0x100B5A558, symSize: 0xBDC } - - { offset: 0x8F6A1, size: 0x8, addend: 0x0, symName: _aes_nohw_sub_bytes, symObjAddr: 0xEC0, symBinAddr: 0x100B5BEFC, symSize: 0x22C } - - { offset: 0x90E59, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_nohw_encrypt, symObjAddr: 0x520, symBinAddr: 0x100B5B55C, symSize: 0x70 } - - { offset: 0x90F48, size: 0x8, addend: 0x0, symName: _aes_nohw_expand_round_keys, symObjAddr: 0x590, symBinAddr: 0x100B5B5CC, symSize: 0xDC } - - { offset: 0x911B3, size: 0x8, addend: 0x0, symName: _aes_nohw_to_batch, symObjAddr: 0x66C, symBinAddr: 0x100B5B6A8, symSize: 0x268 } - - { offset: 0x911FB, size: 0x8, addend: 0x0, symName: _aes_nohw_to_batch, symObjAddr: 0x66C, symBinAddr: 0x100B5B6A8, symSize: 0x268 } - - { offset: 0x91625, size: 0x8, addend: 0x0, symName: _aes_nohw_encrypt_batch, symObjAddr: 0x8D4, symBinAddr: 0x100B5B910, symSize: 0x2EC } - - { offset: 0x91B4F, size: 0x8, addend: 0x0, symName: _aes_nohw_from_batch, symObjAddr: 0xBC0, symBinAddr: 0x100B5BBFC, symSize: 0x154 } - - { offset: 0x921CD, size: 0x8, addend: 0x0, symName: _aes_nohw_shift_rows, symObjAddr: 0x10EC, symBinAddr: 0x100B5C128, symSize: 0xF4 } - - { offset: 0x921F3, size: 0x8, addend: 0x0, symName: _aes_nohw_shift_rows, symObjAddr: 0x10EC, symBinAddr: 0x100B5C128, symSize: 0xF4 } - - { offset: 0x92212, size: 0x8, addend: 0x0, symName: _aes_nohw_shift_rows, symObjAddr: 0x10EC, symBinAddr: 0x100B5C128, symSize: 0xF4 } - - { offset: 0x92491, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_nohw_ctr32_encrypt_blocks, symObjAddr: 0xD14, symBinAddr: 0x100B5BD50, symSize: 0x1AC } - - { offset: 0x928BD, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_from_montgomery_in_place, symObjAddr: 0x0, symBinAddr: 0x100B5C21C, symSize: 0x1D8 } - - { offset: 0x92A6F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_from_montgomery_in_place, symObjAddr: 0x0, symBinAddr: 0x100B5C21C, symSize: 0x1D8 } - - { offset: 0x92D0C, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_neg_inv_mod_r_u64, symObjAddr: 0x0, symBinAddr: 0x100B5C3F4, symSize: 0x3C } - - { offset: 0x92D1A, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_neg_inv_mod_r_u64, symObjAddr: 0x0, symBinAddr: 0x100B5C3F4, symSize: 0x3C } - - { offset: 0x92E2E, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__little_endian_bytes_from_scalar, symObjAddr: 0x0, symBinAddr: 0x100B5C430, symSize: 0x90 } - - { offset: 0x92E3C, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__little_endian_bytes_from_scalar, symObjAddr: 0x0, symBinAddr: 0x100B5C430, symSize: 0x90 } - - { offset: 0x92FAD, size: 0x8, addend: 0x0, symName: _Q_N0, symObjAddr: 0x1070, symBinAddr: 0x100D8B010, symSize: 0x0 } - - { offset: 0x92FE0, size: 0x8, addend: 0x0, symName: _Q, symObjAddr: 0x1000, symBinAddr: 0x100D8AFA0, symSize: 0x0 } - - { offset: 0x93002, size: 0x8, addend: 0x0, symName: _N, symObjAddr: 0x1030, symBinAddr: 0x100D8AFD0, symSize: 0x0 } - - { offset: 0x93018, size: 0x8, addend: 0x0, symName: _N_N0, symObjAddr: 0x1060, symBinAddr: 0x100D8B000, symSize: 0x0 } - - { offset: 0x9333B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_elem_mul_mont, symObjAddr: 0x100, symBinAddr: 0x100B5C4C0, symSize: 0x18 } - - { offset: 0x9337F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_elem_mul_mont, symObjAddr: 0x100, symBinAddr: 0x100B5C4C0, symSize: 0x18 } - - { offset: 0x933AC, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_elem_mul_mont, symObjAddr: 0x100, symBinAddr: 0x100B5C4C0, symSize: 0x18 } - - { offset: 0x93557, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_scalar_mul_mont, symObjAddr: 0x1F8, symBinAddr: 0x100B5C4D8, symSize: 0x18 } - - { offset: 0x9359B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_scalar_mul_mont, symObjAddr: 0x1F8, symBinAddr: 0x100B5C4D8, symSize: 0x18 } - - { offset: 0x9364B, size: 0x8, addend: 0x0, symName: _nistz384_point_double, symObjAddr: 0x290, symBinAddr: 0x100B5C4F0, symSize: 0x300 } - - { offset: 0x942E8, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_point_add, symObjAddr: 0x590, symBinAddr: 0x100B5C7F0, symSize: 0xAC } - - { offset: 0x945DE, size: 0x8, addend: 0x0, symName: _nistz384_point_add, symObjAddr: 0x63C, symBinAddr: 0x100B5C89C, symSize: 0x4D0 } - - { offset: 0x95B0D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_point_mul, symObjAddr: 0xB0C, symBinAddr: 0x100B5CD6C, symSize: 0x28C } - - { offset: 0x9619A, size: 0x8, addend: 0x0, symName: _p384_point_select_w5, symObjAddr: 0xD98, symBinAddr: 0x100B5CFF8, symSize: 0xF4 } - - { offset: 0x963A3, size: 0x8, addend: 0x0, symName: _add_precomputed_w5, symObjAddr: 0xE8C, symBinAddr: 0x100B5D0EC, symSize: 0x164 } - - { offset: 0x966C3, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMB_is_zero, symObjAddr: 0x0, symBinAddr: 0x100B5D250, symSize: 0x10 } - - { offset: 0x96785, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMB_is_zero, symObjAddr: 0x0, symBinAddr: 0x100B5D250, symSize: 0x10 } - - { offset: 0x967A7, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMB_is_zero, symObjAddr: 0x0, symBinAddr: 0x100B5D250, symSize: 0x10 } - - { offset: 0x967FA, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_are_zero, symObjAddr: 0x10, symBinAddr: 0x100B5D260, symSize: 0xB0 } - - { offset: 0x968EE, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_equal, symObjAddr: 0xC0, symBinAddr: 0x100B5D310, symSize: 0x3C } - - { offset: 0x96948, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_equal, symObjAddr: 0xC0, symBinAddr: 0x100B5D310, symSize: 0x3C } - - { offset: 0x96A79, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_less_than, symObjAddr: 0xFC, symBinAddr: 0x100B5D34C, symSize: 0x54 } - - { offset: 0x96B85, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_reduce_once, symObjAddr: 0x150, symBinAddr: 0x100B5D3A0, symSize: 0xA8 } - - { offset: 0x96BE9, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_reduce_once, symObjAddr: 0x150, symBinAddr: 0x100B5D3A0, symSize: 0xA8 } - - { offset: 0x96E82, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_add_mod, symObjAddr: 0x1F8, symBinAddr: 0x100B5D448, symSize: 0x11C } - - { offset: 0x971A5, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_sub_mod, symObjAddr: 0x314, symBinAddr: 0x100B5D564, symSize: 0xC4 } - - { offset: 0x97225, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_sub_mod, symObjAddr: 0x314, symBinAddr: 0x100B5D564, symSize: 0xC4 } - - { offset: 0x97392, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_shl_mod, symObjAddr: 0x3D8, symBinAddr: 0x100B5D628, symSize: 0x180 } - - { offset: 0x97656, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_select_512_32, symObjAddr: 0x558, symBinAddr: 0x100B5D7A8, symSize: 0x1E4 } - - { offset: 0x9779F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_window5_split_window, symObjAddr: 0x73C, symBinAddr: 0x100B5D98C, symSize: 0x18 } - - { offset: 0x97806, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_window5_unsplit_window, symObjAddr: 0x754, symBinAddr: 0x100B5D9A4, symSize: 0xC } - - { offset: 0x9783F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMB_shr, symObjAddr: 0x760, symBinAddr: 0x100B5D9B0, symSize: 0x8 } - - { offset: 0x978C3, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__limbs_mul_add_limb, symObjAddr: 0x768, symBinAddr: 0x100B5D9B8, symSize: 0x3C } - - { offset: 0x97A71, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__CRYPTO_memcmp, symObjAddr: 0x0, symBinAddr: 0x100B5D9F4, symSize: 0x140 } - - { offset: 0x97A7F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__CRYPTO_memcmp, symObjAddr: 0x0, symBinAddr: 0x100B5D9F4, symSize: 0x140 } - - { offset: 0x97B7E, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_mul, symObjAddr: 0x0, symBinAddr: 0x100B5DB34, symSize: 0x34C } - - { offset: 0x97BD3, size: 0x8, addend: 0x0, symName: _ecp_nistz256_precomputed, symObjAddr: 0x1000, symBinAddr: 0x100D8C000, symSize: 0x0 } - - { offset: 0x97C5D, size: 0x8, addend: 0x0, symName: _ONE_MONT, symObjAddr: 0x26000, symBinAddr: 0x100DB1000, symSize: 0x0 } - - { offset: 0x97ECC, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_mul, symObjAddr: 0x0, symBinAddr: 0x100B5DB34, symSize: 0x34C } - - { offset: 0x98804, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_mul_base, symObjAddr: 0x34C, symBinAddr: 0x100B5DE80, symSize: 0x1F4 } - - { offset: 0x98CF6, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_mul_base_vartime, symObjAddr: 0x540, symBinAddr: 0x100B5E074, symSize: 0x1B8 } - - { offset: 0x990F7, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ChaCha20_ctr32_nohw, symObjAddr: 0x0, symBinAddr: 0x100B5E240, symSize: 0x380 } - - { offset: 0x9910D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ChaCha20_ctr32_neon, symObjAddr: 0x380, symBinAddr: 0x100B5E5C0, symSize: 0x6C0 } - - { offset: 0x99123, size: 0x8, addend: 0x0, symName: ChaCha20_512_neon, symObjAddr: 0xA40, symBinAddr: 0x100B5EC80, symSize: 0x1138 } - - { offset: 0x99159, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__chacha20_poly1305_seal, symObjAddr: 0x140, symBinAddr: 0x100B5FF00, symSize: 0x1180 } - - { offset: 0x9916F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__chacha20_poly1305_open, symObjAddr: 0x12C0, symBinAddr: 0x100B61080, symSize: 0x1410 } - - { offset: 0x991A5, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_hw_set_encrypt_key, symObjAddr: 0x0, symBinAddr: 0x100B624A0, symSize: 0x1A0 } - - { offset: 0x991BB, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_hw_ctr32_encrypt_blocks, symObjAddr: 0x1A0, symBinAddr: 0x100B62640, symSize: 0x288 } - - { offset: 0x991F1, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_gcm_enc_kernel, symObjAddr: 0x0, symBinAddr: 0x100B628D0, symSize: 0xB90 } - - { offset: 0x99207, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_gcm_dec_kernel, symObjAddr: 0xB90, symBinAddr: 0x100B63460, symSize: 0xB98 } - - { offset: 0x9923D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_init_neon, symObjAddr: 0x0, symBinAddr: 0x100B64000, symSize: 0x50 } - - { offset: 0x99253, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_gmult_neon, symObjAddr: 0x50, symBinAddr: 0x100B64050, symSize: 0x30 } - - { offset: 0x99269, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_ghash_neon, symObjAddr: 0x80, symBinAddr: 0x100B64080, symSize: 0x284 } - - { offset: 0x9929F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_init_clmul, symObjAddr: 0x0, symBinAddr: 0x100B64310, symSize: 0x130 } - - { offset: 0x992B5, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_gmult_clmul, symObjAddr: 0x130, symBinAddr: 0x100B64440, symSize: 0x9C } - - { offset: 0x992EB, size: 0x8, addend: 0x0, symName: _vpaes_encrypt_preheat, symObjAddr: 0x0, symBinAddr: 0x100B644E0, symSize: 0x20 } - - { offset: 0x99301, size: 0x8, addend: 0x0, symName: _vpaes_encrypt_core, symObjAddr: 0x20, symBinAddr: 0x100B64500, symSize: 0xD0 } - - { offset: 0x99317, size: 0x8, addend: 0x0, symName: _vpaes_encrypt_2x, symObjAddr: 0xF0, symBinAddr: 0x100B645D0, symSize: 0x170 } - - { offset: 0x9932D, size: 0x8, addend: 0x0, symName: _vpaes_key_preheat, symObjAddr: 0x260, symBinAddr: 0x100B64740, symSize: 0x50 } - - { offset: 0x99343, size: 0x8, addend: 0x0, symName: _vpaes_schedule_core, symObjAddr: 0x2B0, symBinAddr: 0x100B64790, symSize: 0x140 } - - { offset: 0x99359, size: 0x8, addend: 0x0, symName: _vpaes_schedule_192_smear, symObjAddr: 0x3F0, symBinAddr: 0x100B648D0, symSize: 0x30 } - - { offset: 0x9936F, size: 0x8, addend: 0x0, symName: _vpaes_schedule_round, symObjAddr: 0x420, symBinAddr: 0x100B64900, symSize: 0x18 } - - { offset: 0x99385, size: 0x8, addend: 0x0, symName: _vpaes_schedule_low_round, symObjAddr: 0x438, symBinAddr: 0x100B64918, symSize: 0x68 } - - { offset: 0x9939B, size: 0x8, addend: 0x0, symName: _vpaes_schedule_transform, symObjAddr: 0x4A0, symBinAddr: 0x100B64980, symSize: 0x20 } - - { offset: 0x993B1, size: 0x8, addend: 0x0, symName: _vpaes_schedule_mangle, symObjAddr: 0x4C0, symBinAddr: 0x100B649A0, symSize: 0x40 } - - { offset: 0x993C7, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__vpaes_set_encrypt_key, symObjAddr: 0x500, symBinAddr: 0x100B649E0, symSize: 0x40 } - - { offset: 0x993DD, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__vpaes_ctr32_encrypt_blocks, symObjAddr: 0x540, symBinAddr: 0x100B64A20, symSize: 0xC0 } - - { offset: 0x99413, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_mul_mont_nohw, symObjAddr: 0x0, symBinAddr: 0x100B64AE0, symSize: 0x240 } - - { offset: 0x99429, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_sqr8x_mont, symObjAddr: 0x240, symBinAddr: 0x100B64D20, symSize: 0x9E0 } - - { offset: 0x9943F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_mul4x_mont, symObjAddr: 0xC20, symBinAddr: 0x100B65700, symSize: 0x650 } - - { offset: 0x99475, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_mul_mont, symObjAddr: 0x0, symBinAddr: 0x100B65D60, symSize: 0x40 } - - { offset: 0x9948B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_sqr_mont, symObjAddr: 0x40, symBinAddr: 0x100B65DA0, symSize: 0x40 } - - { offset: 0x994A1, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_neg, symObjAddr: 0x80, symBinAddr: 0x100B65DE0, symSize: 0x40 } - - { offset: 0x994B7, size: 0x8, addend: 0x0, symName: __ecp_nistz256_mul_mont, symObjAddr: 0xC0, symBinAddr: 0x100B65E20, symSize: 0x1E0 } - - { offset: 0x994CD, size: 0x8, addend: 0x0, symName: __ecp_nistz256_sqr_mont, symObjAddr: 0x2A0, symBinAddr: 0x100B66000, symSize: 0x170 } - - { offset: 0x994E3, size: 0x8, addend: 0x0, symName: __ecp_nistz256_add_to, symObjAddr: 0x410, symBinAddr: 0x100B66170, symSize: 0x50 } - - { offset: 0x994F9, size: 0x8, addend: 0x0, symName: __ecp_nistz256_sub_from, symObjAddr: 0x460, symBinAddr: 0x100B661C0, symSize: 0x50 } - - { offset: 0x9950F, size: 0x8, addend: 0x0, symName: __ecp_nistz256_sub_morf, symObjAddr: 0x4B0, symBinAddr: 0x100B66210, symSize: 0x50 } - - { offset: 0x99525, size: 0x8, addend: 0x0, symName: __ecp_nistz256_div_by_2, symObjAddr: 0x500, symBinAddr: 0x100B66260, symSize: 0x60 } - - { offset: 0x9953B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_double, symObjAddr: 0x560, symBinAddr: 0x100B662C0, symSize: 0x1E0 } - - { offset: 0x99551, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_add, symObjAddr: 0x740, symBinAddr: 0x100B664A0, symSize: 0x360 } - - { offset: 0x99567, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_add_affine, symObjAddr: 0xAA0, symBinAddr: 0x100B66800, symSize: 0x2D0 } - - { offset: 0x9957D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_scalar_mul_mont, symObjAddr: 0xD70, symBinAddr: 0x100B66AD0, symSize: 0x2B0 } - - { offset: 0x99593, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_scalar_sqr_rep_mont, symObjAddr: 0x1020, symBinAddr: 0x100B66D80, symSize: 0x250 } - - { offset: 0x995A9, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_select_w5, symObjAddr: 0x1270, symBinAddr: 0x100B66FD0, symSize: 0x60 } - - { offset: 0x995BF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_select_w7, symObjAddr: 0x12D0, symBinAddr: 0x100B67030, symSize: 0x44 } - - { offset: 0x995F5, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha512_block_data_order_nohw, symObjAddr: 0x0, symBinAddr: 0x100B67080, symSize: 0xE40 } - - { offset: 0x9960B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha512_block_data_order_hw, symObjAddr: 0xE40, symBinAddr: 0x100B67EC0, symSize: 0x7E0 } - - { offset: 0x99641, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha256_block_data_order_nohw, symObjAddr: 0x0, symBinAddr: 0x100B686C0, symSize: 0xE40 } - - { offset: 0x99657, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha256_block_data_order_hw, symObjAddr: 0xE40, symBinAddr: 0x100B69500, symSize: 0x1F0 } - - { offset: 0x9967F, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc10rust_panic, symObjAddr: 0x0, symBinAddr: 0x100C6E0FC, symSize: 0x60 } - - { offset: 0x99A52, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h159bb67c03d8d810E', symObjAddr: 0x23024, symBinAddr: 0x100BF3110, symSize: 0x1C } - - { offset: 0x99A9A, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h5115a611bfea14deE', symObjAddr: 0x2318C, symBinAddr: 0x100BF312C, symSize: 0x1C } - - { offset: 0x99AE2, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h5704a9261e8bb9f0E', symObjAddr: 0x233B8, symBinAddr: 0x100BF3148, symSize: 0x10 } - - { offset: 0x99B04, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17ha5a7143997b64d3bE', symObjAddr: 0x23758, symBinAddr: 0x100BF3158, symSize: 0x10 } - - { offset: 0x99B44, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hc9a6c7a3db2ef6baE', symObjAddr: 0x2388C, symBinAddr: 0x100BF3168, symSize: 0x9C } - - { offset: 0x99BD8, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hcb54d9788fe3af15E', symObjAddr: 0x23928, symBinAddr: 0x100BF3204, symSize: 0x74 } - - { offset: 0x99CFB, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hcfe5ebb9d8cf4006E', symObjAddr: 0x2399C, symBinAddr: 0x100BF3278, symSize: 0x14 } - - { offset: 0x99D3B, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hd04aed4159b48f62E', symObjAddr: 0x239B0, symBinAddr: 0x100BF328C, symSize: 0x74 } - - { offset: 0x99E26, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17h66e08d8385e6ba8dE', symObjAddr: 0x23E8C, symBinAddr: 0x100BF3540, symSize: 0x18 } - - { offset: 0x99E3E, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17h66e08d8385e6ba8dE', symObjAddr: 0x23E8C, symBinAddr: 0x100BF3540, symSize: 0x18 } - - { offset: 0x99E57, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i64$GT$3fmt17hac0564d3ba4da5d7E', symObjAddr: 0x23EA4, symBinAddr: 0x100BF3558, symSize: 0x18 } - - { offset: 0x99E75, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i64$GT$3fmt17hac0564d3ba4da5d7E', symObjAddr: 0x23EA4, symBinAddr: 0x100BF3558, symSize: 0x18 } - - { offset: 0x99E8E, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17h9ee511eeaaac07a5E', symObjAddr: 0x23EEC, symBinAddr: 0x100BF3570, symSize: 0x18 } - - { offset: 0x99EA6, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17h9ee511eeaaac07a5E', symObjAddr: 0x23EEC, symBinAddr: 0x100BF3570, symSize: 0x18 } - - { offset: 0x99EE2, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hc69e33a6d0434465E', symObjAddr: 0x23AFC, symBinAddr: 0x100BF3300, symSize: 0x10 } - - { offset: 0x99EFD, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17he80677b94dd5cd84E', symObjAddr: 0x23B0C, symBinAddr: 0x100BF3310, symSize: 0x74 } - - { offset: 0x99FB0, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h3e4cfa4e6ea076b6E, symObjAddr: 0x2406C, symBinAddr: 0x100BF3588, symSize: 0x110 } - - { offset: 0x9A17A, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h58e3cd8430ff3274E, symObjAddr: 0x2417C, symBinAddr: 0x100BF3698, symSize: 0x168 } - - { offset: 0x9A2DA, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h5a1f13262a7f5dc1E, symObjAddr: 0x242E4, symBinAddr: 0x100BF3800, symSize: 0x138 } - - { offset: 0x9A460, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h7e174ab02c325fa5E, symObjAddr: 0x2441C, symBinAddr: 0x100BF3938, symSize: 0x128 } - - { offset: 0x9A4E0, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17hb96f8ea2d599c059E, symObjAddr: 0x24544, symBinAddr: 0x100BF3A60, symSize: 0x128 } - - { offset: 0x9A5BC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h4c7a7fecdc075205E, symObjAddr: 0x2466C, symBinAddr: 0x100BF3B88, symSize: 0x10 } - - { offset: 0x9A5EC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h766f2611bea374ddE, symObjAddr: 0x2467C, symBinAddr: 0x100BF3B98, symSize: 0x10 } - - { offset: 0x9A61C, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17habfefd88b3f43ea8E, symObjAddr: 0x2468C, symBinAddr: 0x100BF3BA8, symSize: 0x10 } - - { offset: 0x9A64C, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17hdc3a20f02be083feE, symObjAddr: 0x2469C, symBinAddr: 0x100BF3BB8, symSize: 0x10 } - - { offset: 0x9A67C, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17hded842b254e050efE, symObjAddr: 0x246AC, symBinAddr: 0x100BF3BC8, symSize: 0x10 } - - { offset: 0x9A6AC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17hea786f9a8f52e858E, symObjAddr: 0x246BC, symBinAddr: 0x100BF3BD8, symSize: 0x10 } - - { offset: 0x9A70D, size: 0x8, addend: 0x0, symName: '__ZN50_$LT$$BP$mut$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h77eab716ec6f8523E', symObjAddr: 0x321FC, symBinAddr: 0x100BFDC5C, symSize: 0x8 } - - { offset: 0x9A72C, size: 0x8, addend: 0x0, symName: '__ZN50_$LT$$BP$mut$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h77eab716ec6f8523E', symObjAddr: 0x321FC, symBinAddr: 0x100BFDC5C, symSize: 0x8 } - - { offset: 0x9A75D, size: 0x8, addend: 0x0, symName: '__ZN52_$LT$$RF$mut$u20$T$u20$as$u20$core..fmt..Display$GT$3fmt17he0ef91e1b1e85f4fE', symObjAddr: 0x32824, symBinAddr: 0x100BFDF00, symSize: 0x10 } - - { offset: 0x9D009, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr107drop_in_place$LT$core..pin..Pin$LT$alloc..boxed..Box$LT$std..sys..pal..unix..sync..mutex..Mutex$GT$$GT$$GT$17hb95559412fbb8a0aE', symObjAddr: 0x24CA4, symBinAddr: 0x100BF3FB8, symSize: 0x2C } - - { offset: 0x9D0A6, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr109drop_in_place$LT$alloc..sync..Arc$LT$std..sync..poison..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$17h9714785627237e3aE', symObjAddr: 0x24CD0, symBinAddr: 0x100BF3FE4, symSize: 0x20 } - - { offset: 0x9D0BE, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr109drop_in_place$LT$alloc..sync..Arc$LT$std..sync..poison..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$17h9714785627237e3aE', symObjAddr: 0x24CD0, symBinAddr: 0x100BF3FE4, symSize: 0x20 } - - { offset: 0x9D0D4, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr109drop_in_place$LT$alloc..sync..Arc$LT$std..sync..poison..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$17h9714785627237e3aE', symObjAddr: 0x24CD0, symBinAddr: 0x100BF3FE4, symSize: 0x20 } - - { offset: 0x9D0EA, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr109drop_in_place$LT$alloc..sync..Arc$LT$std..sync..poison..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$17h9714785627237e3aE', symObjAddr: 0x24CD0, symBinAddr: 0x100BF3FE4, symSize: 0x20 } - - { offset: 0x9D141, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr118drop_in_place$LT$$LT$std..backtrace..Backtrace$u20$as$u20$core..fmt..Display$GT$..fmt..$u7b$$u7b$closure$u7d$$u7d$$GT$17hf3675cfa787535fdE', symObjAddr: 0x24D40, symBinAddr: 0x100BF4004, symSize: 0x2C } - - { offset: 0x9D159, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr118drop_in_place$LT$$LT$std..backtrace..Backtrace$u20$as$u20$core..fmt..Display$GT$..fmt..$u7b$$u7b$closure$u7d$$u7d$$GT$17hf3675cfa787535fdE', symObjAddr: 0x24D40, symBinAddr: 0x100BF4004, symSize: 0x2C } - - { offset: 0x9D229, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr119drop_in_place$LT$std..io..default_write_fmt..Adapter$LT$std..io..cursor..Cursor$LT$$RF$mut$u20$$u5b$u8$u5d$$GT$$GT$$GT$17h550255798e69e158E', symObjAddr: 0x24D6C, symBinAddr: 0x100BF4030, symSize: 0x10 } - - { offset: 0x9D241, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr119drop_in_place$LT$std..io..default_write_fmt..Adapter$LT$std..io..cursor..Cursor$LT$$RF$mut$u20$$u5b$u8$u5d$$GT$$GT$$GT$17h550255798e69e158E', symObjAddr: 0x24D6C, symBinAddr: 0x100BF4030, symSize: 0x10 } - - { offset: 0x9D254, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr123drop_in_place$LT$addr2line..Context$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17hee4e42920bcb49e7E', symObjAddr: 0x24D7C, symBinAddr: 0x100BF4040, symSize: 0x70 } - - { offset: 0x9D306, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr124drop_in_place$LT$alloc..collections..btree..map..IntoIter$LT$std..ffi..os_str..OsString$C$std..ffi..os_str..OsString$GT$$GT$17hadbbc4b997ea18b5E', symObjAddr: 0x24DEC, symBinAddr: 0x100BF40B0, symSize: 0x90 } - - { offset: 0x9D4FD, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr128drop_in_place$LT$core..result..Result$LT$$RF$std..thread..Thread$C$$LP$$RF$std..thread..Thread$C$std..thread..Thread$RP$$GT$$GT$17h98ea8dc12788b488E', symObjAddr: 0x24E7C, symBinAddr: 0x100BF4140, symSize: 0x28 } - - { offset: 0x9D65D, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr129drop_in_place$LT$addr2line..unit..ResUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h5aa466108befd2c1E', symObjAddr: 0x24EA4, symBinAddr: 0x100BF4168, symSize: 0xE4 } - - { offset: 0x9D899, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr129drop_in_place$LT$addr2line..unit..SupUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h55ae3d54d037dc81E', symObjAddr: 0x24F88, symBinAddr: 0x100BF424C, symSize: 0x54 } - - { offset: 0x9D960, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr130drop_in_place$LT$addr2line..unit..ResUnits$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h55f8f9ba44d8c38bE', symObjAddr: 0x24FDC, symBinAddr: 0x100BF42A0, symSize: 0xD0 } - - { offset: 0x9DB1A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr130drop_in_place$LT$addr2line..unit..SupUnits$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h973235ee333ef742E', symObjAddr: 0x250AC, symBinAddr: 0x100BF4370, symSize: 0xE4 } - - { offset: 0x9DCDF, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr130drop_in_place$LT$gimli..read..dwarf..Dwarf$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h0342299b7049cad9E', symObjAddr: 0x25190, symBinAddr: 0x100BF4454, symSize: 0x58 } - - { offset: 0x9DD7B, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr131drop_in_place$LT$$u5b$core..option..Option$LT$core..option..Option$LT$std..backtrace_rs..symbolize..gimli..Mapping$GT$$GT$$u5d$$GT$17hf7aa60c51aa1ea2fE', symObjAddr: 0x251E8, symBinAddr: 0x100BF44AC, symSize: 0xCC } - - { offset: 0x9DE2D, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr131drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$GT$$GT$17h1a73098a4296dc4dE', symObjAddr: 0x252B4, symBinAddr: 0x100BF4578, symSize: 0x78 } - - { offset: 0x9DF22, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr137drop_in_place$LT$gimli..read..dwarf..Unit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$C$usize$GT$$GT$17hc244f633d43e2121E', symObjAddr: 0x2532C, symBinAddr: 0x100BF45F0, symSize: 0x54 } - - { offset: 0x9E026, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr138drop_in_place$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h061de9632ae5e5a2E', symObjAddr: 0x25380, symBinAddr: 0x100BF4644, symSize: 0x64 } - - { offset: 0x9E03E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr138drop_in_place$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h061de9632ae5e5a2E', symObjAddr: 0x25380, symBinAddr: 0x100BF4644, symSize: 0x64 } - - { offset: 0x9E054, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr138drop_in_place$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h061de9632ae5e5a2E', symObjAddr: 0x25380, symBinAddr: 0x100BF4644, symSize: 0x64 } - - { offset: 0x9E06A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr138drop_in_place$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h061de9632ae5e5a2E', symObjAddr: 0x25380, symBinAddr: 0x100BF4644, symSize: 0x64 } - - { offset: 0x9E1AC, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr144drop_in_place$LT$alloc..vec..Vec$LT$core..option..Option$LT$core..option..Option$LT$std..backtrace_rs..symbolize..gimli..Mapping$GT$$GT$$GT$$GT$17h1681c67e5f1d50e7E', symObjAddr: 0x253E4, symBinAddr: 0x100BF46A8, symSize: 0x78 } - - { offset: 0x9E315, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr152drop_in_place$LT$alloc..vec..Vec$LT$addr2line..unit..ResUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$17h3ab0d200c84df90aE', symObjAddr: 0x25518, symBinAddr: 0x100BF4720, symSize: 0xC4 } - - { offset: 0x9E493, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr152drop_in_place$LT$alloc..vec..Vec$LT$addr2line..unit..SupUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$17h734aadf28bfe7a31E', symObjAddr: 0x255DC, symBinAddr: 0x100BF47E4, symSize: 0xF4 } - - { offset: 0x9E6C4, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr156drop_in_place$LT$alloc..boxed..Box$LT$$u5b$core..option..Option$LT$core..option..Option$LT$std..backtrace_rs..symbolize..gimli..Mapping$GT$$GT$$u5d$$GT$$GT$17h52982cf77b817154E', symObjAddr: 0x256D0, symBinAddr: 0x100BF48D8, symSize: 0xF8 } - - { offset: 0x9E7FA, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr159drop_in_place$LT$alloc..sync..ArcInner$LT$gimli..read..dwarf..Dwarf$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$17h34081d17afc8e0afE', symObjAddr: 0x25858, symBinAddr: 0x100BF49D0, symSize: 0x5C } - - { offset: 0x9E8C6, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr161drop_in_place$LT$alloc..vec..Vec$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$17h98e9d3d39c1de69eE', symObjAddr: 0x258B4, symBinAddr: 0x100BF4A2C, symSize: 0xAC } - - { offset: 0x9EB1E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr164drop_in_place$LT$$u5b$alloc..boxed..Box$LT$dyn$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$u2b$core..marker..Send$GT$$u5d$$GT$17h6d2a45c000e52f5fE', symObjAddr: 0x25960, symBinAddr: 0x100BF4AD8, symSize: 0xAC } - - { offset: 0x9EC37, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr172drop_in_place$LT$core..result..Result$LT$addr2line..Context$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$GT$17h4122687858a82bf8E', symObjAddr: 0x25A0C, symBinAddr: 0x100BF4B84, symSize: 0x80 } - - { offset: 0x9ECD2, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr173drop_in_place$LT$alloc..boxed..Box$LT$$u5b$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$u5d$$GT$$GT$17h8c3e75fb2101b7efE', symObjAddr: 0x25A8C, symBinAddr: 0x100BF4C04, symSize: 0x9C } - - { offset: 0x9ECEA, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr173drop_in_place$LT$alloc..boxed..Box$LT$$u5b$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$u5d$$GT$$GT$17h8c3e75fb2101b7efE', symObjAddr: 0x25A8C, symBinAddr: 0x100BF4C04, symSize: 0x9C } - - { offset: 0x9EED6, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr177drop_in_place$LT$alloc..vec..Vec$LT$alloc..boxed..Box$LT$dyn$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$u2b$core..marker..Send$GT$$GT$$GT$17h3b607045da0f8a8dE', symObjAddr: 0x25B28, symBinAddr: 0x100BF4CA0, symSize: 0x70 } - - { offset: 0x9F046, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr181drop_in_place$LT$core..option..Option$LT$gimli..read..line..IncompleteLineProgram$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$C$usize$GT$$GT$$GT$17h0d53cb7f62aa367fE', symObjAddr: 0x25B98, symBinAddr: 0x100BF4D10, symSize: 0x98 } - - { offset: 0x9F2C1, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr181drop_in_place$LT$core..result..Result$LT$addr2line..frame..FrameIter$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$GT$17h5102dc1195e10bcfE', symObjAddr: 0x25C30, symBinAddr: 0x100BF4DA8, symSize: 0x34 } - - { offset: 0x9F40E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr184drop_in_place$LT$core..result..Result$LT$addr2line..function..Functions$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$GT$17h653c09d7bc80a423E', symObjAddr: 0x25C64, symBinAddr: 0x100BF4DDC, symSize: 0xD8 } - - { offset: 0x9F6BE, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr193drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$alloc..boxed..Box$LT$dyn$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$u2b$core..marker..Send$GT$$GT$$GT$17h2082ac392d631e38E', symObjAddr: 0x25D3C, symBinAddr: 0x100BF4EB4, symSize: 0x74 } - - { offset: 0x9F8D8, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr194drop_in_place$LT$core..result..Result$LT$std..sync..poison..mutex..MutexGuard$LT$$LP$$RP$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..poison..mutex..MutexGuard$LT$$LP$$RP$$GT$$GT$$GT$$GT$17ha24203350456a98cE', symObjAddr: 0x25DB0, symBinAddr: 0x100BF4F28, symSize: 0x4C } - - { offset: 0x9F916, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr231drop_in_place$LT$core..result..Result$LT$core..option..Option$LT$alloc..boxed..Box$LT$addr2line..unit..DwoUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$$C$gimli..read..Error$GT$$GT$17h20c7e405b2a60cd7E', symObjAddr: 0x25DFC, symBinAddr: 0x100BF4F74, symSize: 0xD4 } - - { offset: 0x9FB08, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr238drop_in_place$LT$alloc..boxed..convert..$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Sync$u2b$core..marker..Send$GT$$GT$..from..StringError$GT$17h23a737ad33f471c3E', symObjAddr: 0x25ED0, symBinAddr: 0x100BF5048, symSize: 0x18 } - - { offset: 0x9FB20, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr238drop_in_place$LT$alloc..boxed..convert..$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Sync$u2b$core..marker..Send$GT$$GT$..from..StringError$GT$17h23a737ad33f471c3E', symObjAddr: 0x25ED0, symBinAddr: 0x100BF5048, symSize: 0x18 } - - { offset: 0x9FB36, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr238drop_in_place$LT$alloc..boxed..convert..$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Sync$u2b$core..marker..Send$GT$$GT$..from..StringError$GT$17h23a737ad33f471c3E', symObjAddr: 0x25ED0, symBinAddr: 0x100BF5048, symSize: 0x18 } - - { offset: 0x9FBBB, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr275drop_in_place$LT$gimli..read..line..LineRows$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$C$gimli..read..line..IncompleteLineProgram$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$C$usize$GT$$C$usize$GT$$GT$17h25d8ff9865513472E', symObjAddr: 0x25EE8, symBinAddr: 0x100BF5060, symSize: 0x8C } - - { offset: 0x9FE52, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr280drop_in_place$LT$$LT$alloc..collections..btree..map..IntoIter$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$u64$C$core..result..Result$LT$alloc..sync..Arc$LT$gimli..read..abbrev..Abbreviations$GT$$C$gimli..read..Error$GT$$C$alloc..alloc..Global$GT$$GT$17h4e961e041cd02114E', symObjAddr: 0x25F74, symBinAddr: 0x100BF50EC, symSize: 0x84 } - - { offset: 0x9FFD1, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr284drop_in_place$LT$core..result..Result$LT$$RF$core..result..Result$LT$addr2line..line..Lines$C$gimli..read..Error$GT$$C$$LP$$RF$core..result..Result$LT$addr2line..line..Lines$C$gimli..read..Error$GT$$C$core..result..Result$LT$addr2line..line..Lines$C$gimli..read..Error$GT$$RP$$GT$$GT$17h487927309c2ce3cdE', symObjAddr: 0x25FF8, symBinAddr: 0x100BF5170, symSize: 0x10 } - - { offset: 0xA0003, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr37drop_in_place$LT$std..env..VarsOs$GT$17h60f128c2cdeb4a90E', symObjAddr: 0x26008, symBinAddr: 0x100BF5180, symSize: 0xAC } - - { offset: 0xA02FE, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hb0496b0a5f09ffd9E', symObjAddr: 0x261BC, symBinAddr: 0x100BF522C, symSize: 0x18 } - - { offset: 0xA0316, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hb0496b0a5f09ffd9E', symObjAddr: 0x261BC, symBinAddr: 0x100BF522C, symSize: 0x18 } - - { offset: 0xA039A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h73479c60de8ed779E', symObjAddr: 0x261D4, symBinAddr: 0x100BF5244, symSize: 0xAC } - - { offset: 0xA0595, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr44drop_in_place$LT$object..read..ObjectMap$GT$17h6c9c34593e892c47E', symObjAddr: 0x26280, symBinAddr: 0x100BF52F0, symSize: 0x58 } - - { offset: 0xA06E3, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr44drop_in_place$LT$std..backtrace..Capture$GT$17h1de9c8916a47658dE', symObjAddr: 0x262D8, symBinAddr: 0x100BF5348, symSize: 0x6C } - - { offset: 0xA07E2, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr45drop_in_place$LT$std..process..StdioPipes$GT$17h2c1b0bf5e989d6a9E', symObjAddr: 0x26344, symBinAddr: 0x100BF53B4, symSize: 0x54 } - - { offset: 0xA094D, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h77a3b8574fa51b48E', symObjAddr: 0x26398, symBinAddr: 0x100BF5408, symSize: 0x18 } - - { offset: 0xA09D2, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr46drop_in_place$LT$std..io..stdio..StdinLock$GT$17h3c9a49e18d96b47cE', symObjAddr: 0x263B0, symBinAddr: 0x100BF5420, symSize: 0x54 } - - { offset: 0xA09EA, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr46drop_in_place$LT$std..io..stdio..StdinLock$GT$17h3c9a49e18d96b47cE', symObjAddr: 0x263B0, symBinAddr: 0x100BF5420, symSize: 0x54 } - - { offset: 0xA0A00, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr46drop_in_place$LT$std..io..stdio..StdinLock$GT$17h3c9a49e18d96b47cE', symObjAddr: 0x263B0, symBinAddr: 0x100BF5420, symSize: 0x54 } - - { offset: 0xA0AEF, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17h5abf6902f8171598E', symObjAddr: 0x264E8, symBinAddr: 0x100BF5474, symSize: 0x18 } - - { offset: 0xA0B07, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17h5abf6902f8171598E', symObjAddr: 0x264E8, symBinAddr: 0x100BF5474, symSize: 0x18 } - - { offset: 0xA0BFB, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr51drop_in_place$LT$std..backtrace..BacktraceFrame$GT$17h0238ea15c5e61916E', symObjAddr: 0x265A0, symBinAddr: 0x100BF548C, symSize: 0xD0 } - - { offset: 0xA0ED5, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr52drop_in_place$LT$std..backtrace..BacktraceSymbol$GT$17h06493917fb6c3046E', symObjAddr: 0x26670, symBinAddr: 0x100BF555C, symSize: 0x88 } - - { offset: 0xA10CB, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr54drop_in_place$LT$std..thread..spawnhook..SpawnHook$GT$17h42d1cc557ca893daE', symObjAddr: 0x266F8, symBinAddr: 0x100BF55E4, symSize: 0xC8 } - - { offset: 0xA137E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr55drop_in_place$LT$gimli..read..abbrev..Abbreviations$GT$17h98ecda98f82a2a40E', symObjAddr: 0x26824, symBinAddr: 0x100BF56AC, symSize: 0x118 } - - { offset: 0xA170A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr55drop_in_place$LT$std..sys..thread..unix..ThreadData$GT$17hfdff0338e51a61f1E', symObjAddr: 0x26940, symBinAddr: 0x100BF57C4, symSize: 0x8C } - - { offset: 0xA1880, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr55drop_in_place$LT$std..thread..spawnhook..SpawnHooks$GT$17h464fd74a345297faE', symObjAddr: 0x269CC, symBinAddr: 0x100BF5850, symSize: 0x80 } - - { offset: 0xA19B1, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr560drop_in_place$LT$core..result..Result$LT$$RF$core..result..Result$LT$addr2line..function..Functions$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$C$$LP$$RF$core..result..Result$LT$addr2line..function..Functions$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$C$core..result..Result$LT$addr2line..function..Functions$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$RP$$GT$$GT$17h7a418c956a7a17b1E', symObjAddr: 0x26A4C, symBinAddr: 0x100BF58D0, symSize: 0x10 } - - { offset: 0xA1A0D, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr60drop_in_place$LT$gimli..read..abbrev..AbbreviationsCache$GT$17hb32d602d4bc29378E', symObjAddr: 0x26A5C, symBinAddr: 0x100BF58E0, symSize: 0xCC } - - { offset: 0xA1BCB, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr61drop_in_place$LT$std..panicking..resume_unwind..RewrapBox$GT$17h70392a49dbb290a2E', symObjAddr: 0x26B28, symBinAddr: 0x100BF59AC, symSize: 0x6C } - - { offset: 0xA1CCF, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr64drop_in_place$LT$std..sys..pal..unix..sync..mutex..AttrGuard$GT$17h1233100e2cc7bd3dE', symObjAddr: 0x26B94, symBinAddr: 0x100BF5A18, symSize: 0x48 } - - { offset: 0xA1CF2, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr64drop_in_place$LT$std..sys..process..unix..common..ChildPipes$GT$17hc1e6ae810380ac4dE', symObjAddr: 0x26BDC, symBinAddr: 0x100BF5A60, symSize: 0x78 } - - { offset: 0xA1E2A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr65drop_in_place$LT$std..backtrace_rs..symbolize..gimli..Context$GT$17h791a131a78d8e72cE', symObjAddr: 0x26CD4, symBinAddr: 0x100BF5AD8, symSize: 0xE8 } - - { offset: 0xA20E0, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr66drop_in_place$LT$std..backtrace_rs..backtrace..libunwind..Bomb$GT$17hd97e1cd1f11c7f39E', symObjAddr: 0x26DBC, symBinAddr: 0x100BF5BC0, symSize: 0x40 } - - { offset: 0xA212E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr701drop_in_place$LT$core..result..Result$LT$$RF$core..result..Result$LT$core..option..Option$LT$alloc..boxed..Box$LT$addr2line..unit..DwoUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$$C$gimli..read..Error$GT$$C$$LP$$RF$core..result..Result$LT$core..option..Option$LT$alloc..boxed..Box$LT$addr2line..unit..DwoUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$$C$gimli..read..Error$GT$$C$core..result..Result$LT$core..option..Option$LT$alloc..boxed..Box$LT$addr2line..unit..DwoUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$$C$gimli..read..Error$GT$$RP$$GT$$GT$17hfc417b00698bc1aaE', symObjAddr: 0x26DFC, symBinAddr: 0x100BF5C00, symSize: 0x14 } - - { offset: 0xA21D0, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr70drop_in_place$LT$std..backtrace_rs..symbolize..gimli..stash..Stash$GT$17h44410ea3957dd95aE', symObjAddr: 0x26E10, symBinAddr: 0x100BF5C14, symSize: 0xB8 } - - { offset: 0xA2494, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr71drop_in_place$LT$std..backtrace_rs..symbolize..gimli..macho..Object$GT$17ha988ae186be52b4cE', symObjAddr: 0x26EC8, symBinAddr: 0x100BF5CCC, symSize: 0xD8 } - - { offset: 0xA277F, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr71drop_in_place$LT$std..panicking..panic_handler..FormatStringPayload$GT$17h90691e44625647c5E', symObjAddr: 0x26FA0, symBinAddr: 0x100BF5DA4, symSize: 0x1C } - - { offset: 0xA2843, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$object..read..ObjectMap$GT$$GT$17he988e01f7abffa0cE', symObjAddr: 0x26FBC, symBinAddr: 0x100BF5DC0, symSize: 0x64 } - - { offset: 0xA29D2, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr73drop_in_place$LT$alloc..vec..Vec$LT$addr2line..line..LineSequence$GT$$GT$17h407d113380f95831E', symObjAddr: 0x27020, symBinAddr: 0x100BF5E24, symSize: 0x84 } - - { offset: 0xA2B3A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr77drop_in_place$LT$alloc..boxed..Box$LT$$u5b$alloc..string..String$u5d$$GT$$GT$17h9b0aacd1ac7afd4dE', symObjAddr: 0x270DC, symBinAddr: 0x100BF5EA8, symSize: 0x70 } - - { offset: 0xA2B52, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr77drop_in_place$LT$alloc..boxed..Box$LT$$u5b$alloc..string..String$u5d$$GT$$GT$17h9b0aacd1ac7afd4dE', symObjAddr: 0x270DC, symBinAddr: 0x100BF5EA8, symSize: 0x70 } - - { offset: 0xA2C5C, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17h2e214453a6a3f9aaE', symObjAddr: 0x2714C, symBinAddr: 0x100BF5F18, symSize: 0x10 } - - { offset: 0xA2C7E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr80drop_in_place$LT$alloc..boxed..Box$LT$std..sys..thread..unix..ThreadData$GT$$GT$17h1d6bb0358c88eeeeE', symObjAddr: 0x271B4, symBinAddr: 0x100BF5F28, symSize: 0xA8 } - - { offset: 0xA2E92, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$17hf46311b34b731f52E', symObjAddr: 0x2725C, symBinAddr: 0x100BF5FD0, symSize: 0x10 } - - { offset: 0xA2EC2, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr81drop_in_place$LT$std..sys..process..unix..common..cstring_array..CStringArray$GT$17h6fdefea2f0091a38E', symObjAddr: 0x2726C, symBinAddr: 0x100BF5FE0, symSize: 0xD4 } - - { offset: 0xA3247, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr82drop_in_place$LT$alloc..sync..ArcInner$LT$std..sys..fs..unix..InnerReadDir$GT$$GT$17h1a853229a525c693E', symObjAddr: 0x27340, symBinAddr: 0x100BF60B4, symSize: 0x60 } - - { offset: 0xA3400, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr90drop_in_place$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$..flush_buf..BufGuard$GT$17h5ce07a75fda7f1a8E', symObjAddr: 0x27428, symBinAddr: 0x100BF6114, symSize: 0x5C } - - { offset: 0xA356E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr91drop_in_place$LT$core..result..Result$LT$alloc..string..String$C$std..env..VarError$GT$$GT$17ha48b2a0227bec73bE', symObjAddr: 0x27484, symBinAddr: 0x100BF6170, symSize: 0x24 } - - { offset: 0xA364C, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr92drop_in_place$LT$core..result..Result$LT$addr2line..line..Lines$C$gimli..read..Error$GT$$GT$17h1e7b92e08fc43379E', symObjAddr: 0x274D4, symBinAddr: 0x100BF6194, symSize: 0xE4 } - - { offset: 0xA38AF, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$std..backtrace_rs..symbolize..gimli..Mapping$GT$$GT$17h2b86cadf09f4867eE', symObjAddr: 0x275B8, symBinAddr: 0x100BF6278, symSize: 0x6C } - - { offset: 0xA5ACD, size: 0x8, addend: 0x0, symName: __ZN4core5panic12PanicPayload6as_str17h2b3ad49dcb36b49dE, symObjAddr: 0x2A658, symBinAddr: 0x100BF6410, symSize: 0x8 } - - { offset: 0xA65C1, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$core..num..error..TryFromIntError$u20$as$u20$core..fmt..Debug$GT$3fmt17h91a8e96ff913e674E', symObjAddr: 0x4757C, symBinAddr: 0x100C0A794, symSize: 0x40 } - - { offset: 0xA8343, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable7ipnsort17h838dd2a4decbb786E, symObjAddr: 0x312F8, symBinAddr: 0x100BFCDF8, symSize: 0xEC } - - { offset: 0xA8492, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable7ipnsort17h9ca5524913a6ea90E, symObjAddr: 0x313E4, symBinAddr: 0x100BFCEE4, symSize: 0x1A8 } - - { offset: 0xA878B, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable8heapsort8heapsort17h719038df2fc58014E, symObjAddr: 0x3158C, symBinAddr: 0x100BFD08C, symSize: 0x160 } - - { offset: 0xA8AB2, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable8heapsort8heapsort17hc2e3d90ec6ca46e7E, symObjAddr: 0x316EC, symBinAddr: 0x100BFD1EC, symSize: 0x100 } - - { offset: 0xA8D53, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable9quicksort9quicksort17h012696ba880dc9c8E, symObjAddr: 0x317EC, symBinAddr: 0x100BFD2EC, symSize: 0x3F8 } - - { offset: 0xA9612, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable9quicksort9quicksort17ha0a0ed5ca16025cbE, symObjAddr: 0x31BE4, symBinAddr: 0x100BFD6E4, symSize: 0x578 } - - { offset: 0xAA23D, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h6bab938c22370232E, symObjAddr: 0x2BEE0, symBinAddr: 0x100BF79E0, symSize: 0x138 } - - { offset: 0xAA48E, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h6c001e8fa5803ae7E, symObjAddr: 0x2C018, symBinAddr: 0x100BF7B18, symSize: 0x138 } - - { offset: 0xAA767, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h7bd29a9497ae7c2aE, symObjAddr: 0x2C150, symBinAddr: 0x100BF7C50, symSize: 0x150 } - - { offset: 0xAAABA, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h8d5dc4543f39765cE, symObjAddr: 0x2C2A0, symBinAddr: 0x100BF7DA0, symSize: 0x138 } - - { offset: 0xAAD93, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h98f2f5060666f465E, symObjAddr: 0x2C3D8, symBinAddr: 0x100BF7ED8, symSize: 0x150 } - - { offset: 0xAB0E6, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17hba9ab5a6d38f75adE, symObjAddr: 0x2C528, symBinAddr: 0x100BF8028, symSize: 0x138 } - - { offset: 0xAB5D5, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17h0e93e2e8b1a76615E, symObjAddr: 0x2C660, symBinAddr: 0x100BF8160, symSize: 0x53C } - - { offset: 0xABCA3, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17h2ef1309fcb5281fcE, symObjAddr: 0x2CB9C, symBinAddr: 0x100BF869C, symSize: 0x538 } - - { offset: 0xAC345, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17h9cb3281d6a9d633eE, symObjAddr: 0x2D0D4, symBinAddr: 0x100BF8BD4, symSize: 0x4D8 } - - { offset: 0xAC965, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17hd03e797e9ec16b6bE, symObjAddr: 0x2D5AC, symBinAddr: 0x100BF90AC, symSize: 0x5EC } - - { offset: 0xAD05C, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17he5394be4f484d870E, symObjAddr: 0x2DB98, symBinAddr: 0x100BF9698, symSize: 0x500 } - - { offset: 0xAD714, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17hf5ad59fef86e1542E, symObjAddr: 0x2E098, symBinAddr: 0x100BF9B98, symSize: 0x500 } - - { offset: 0xADFFB, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h0b8166fec7e9d8a2E, symObjAddr: 0x2E598, symBinAddr: 0x100BFA098, symSize: 0x6D8 } - - { offset: 0xAEB62, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h0f43bfa7ffb19a1eE, symObjAddr: 0x2EC70, symBinAddr: 0x100BFA770, symSize: 0x744 } - - { offset: 0xAF323, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h3c12ba55de8895bdE, symObjAddr: 0x2F3B4, symBinAddr: 0x100BFAEB4, symSize: 0x6E0 } - - { offset: 0xAFE8A, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h44a7e2ae828a7572E, symObjAddr: 0x2FA94, symBinAddr: 0x100BFB594, symSize: 0x820 } - - { offset: 0xB0EE8, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h7a3efe9886d7cd61E, symObjAddr: 0x302B4, symBinAddr: 0x100BFBDB4, symSize: 0x810 } - - { offset: 0xB1B58, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h7daccb8d700a96efE, symObjAddr: 0x30AC4, symBinAddr: 0x100BFC5C4, symSize: 0x834 } - - { offset: 0xB28A0, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort12sort4_stable17h08a617f57ccc0608E, symObjAddr: 0x2AD84, symBinAddr: 0x100BF6B3C, symSize: 0x180 } - - { offset: 0xB2CB7, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort12sort4_stable17hce1fd6ae8c5d7075E, symObjAddr: 0x2AF04, symBinAddr: 0x100BF6CBC, symSize: 0x194 } - - { offset: 0xB2EF0, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort18small_sort_general17h3217694ff68f0b35E, symObjAddr: 0x2B350, symBinAddr: 0x100BF6E50, symSize: 0x408 } - - { offset: 0xB348B, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort18small_sort_general17h8d24adf729ceb9a7E, symObjAddr: 0x2B758, symBinAddr: 0x100BF7258, symSize: 0x4A0 } - - { offset: 0xB3BB6, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort25insertion_sort_shift_left17h4a3a02c1b4123d96E, symObjAddr: 0x2BBF8, symBinAddr: 0x100BF76F8, symSize: 0xA8 } - - { offset: 0xB3C87, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort25insertion_sort_shift_left17hb2454d6260f7b446E, symObjAddr: 0x2BCA0, symBinAddr: 0x100BF77A0, symSize: 0xF4 } - - { offset: 0xB3E60, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort25insertion_sort_shift_left17hebebc228eaf4fe0aE, symObjAddr: 0x2BD94, symBinAddr: 0x100BF7894, symSize: 0xB8 } - - { offset: 0xB3F99, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort25insertion_sort_shift_left17hf0a5cd08aa7de6b9E, symObjAddr: 0x2BE4C, symBinAddr: 0x100BF794C, symSize: 0x94 } - - { offset: 0xB426E, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17h5167a9bddeee7a74E, symObjAddr: 0x2A660, symBinAddr: 0x100BF6418, symSize: 0x134 } - - { offset: 0xB44B8, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17h6123f0cee48431f8E, symObjAddr: 0x2A794, symBinAddr: 0x100BF654C, symSize: 0x11C } - - { offset: 0xB45C9, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17ha69b7aa4a103dd07E, symObjAddr: 0x2A8B0, symBinAddr: 0x100BF6668, symSize: 0xD0 } - - { offset: 0xB46D8, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17hb1b4a3817967cb42E, symObjAddr: 0x2A980, symBinAddr: 0x100BF6738, symSize: 0xCC } - - { offset: 0xB4813, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17hbab6fb4165f16a6bE, symObjAddr: 0x2AA4C, symBinAddr: 0x100BF6804, symSize: 0xCC } - - { offset: 0xB4920, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17hbe20f6ebe0d83485E, symObjAddr: 0x2AB18, symBinAddr: 0x100BF68D0, symSize: 0xD0 } - - { offset: 0xB4A2D, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17hcf0cea10de99b8c6E, symObjAddr: 0x2ABE8, symBinAddr: 0x100BF69A0, symSize: 0xD0 } - - { offset: 0xB4B3A, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17hdbe0b4231031483eE, symObjAddr: 0x2ACB8, symBinAddr: 0x100BF6A70, symSize: 0xCC } - - { offset: 0xB6794, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h0852865c02677382E', symObjAddr: 0x24968, symBinAddr: 0x100BF3D78, symSize: 0xB0 } - - { offset: 0xB68F5, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h18edf6bc1d167b15E', symObjAddr: 0x24A18, symBinAddr: 0x100BF3E28, symSize: 0x18 } - - { offset: 0xB6932, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h1ea8e4debb534862E', symObjAddr: 0x24A30, symBinAddr: 0x100BF3E40, symSize: 0x70 } - - { offset: 0xB6AAF, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h78d2f33513354a78E', symObjAddr: 0x24AD0, symBinAddr: 0x100BF3EB0, symSize: 0x98 } - - { offset: 0xB6C03, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h9751427764b9a248E', symObjAddr: 0x24B68, symBinAddr: 0x100BF3F48, symSize: 0x28 } - - { offset: 0xB6C40, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hb1fda356ca7513cfE', symObjAddr: 0x24B90, symBinAddr: 0x100BF3F70, symSize: 0x28 } - - { offset: 0xB6C7D, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hda3925ea8232711bE', symObjAddr: 0x24C24, symBinAddr: 0x100BF3F98, symSize: 0xC } - - { offset: 0xB6CD0, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hdd68daf0f98dd64eE', symObjAddr: 0x24C30, symBinAddr: 0x100BF3FA4, symSize: 0x4 } - - { offset: 0xB6CEE, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hdd68daf0f98dd64eE', symObjAddr: 0x24C30, symBinAddr: 0x100BF3FA4, symSize: 0x4 } - - { offset: 0xB6D0D, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hf14fd7b5bd331983E', symObjAddr: 0x24C34, symBinAddr: 0x100BF3FA8, symSize: 0x4 } - - { offset: 0xB6D2B, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hf14fd7b5bd331983E', symObjAddr: 0x24C34, symBinAddr: 0x100BF3FA8, symSize: 0x4 } - - { offset: 0xB6D4A, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hfbc3cc1433d0fb25E', symObjAddr: 0x24C98, symBinAddr: 0x100BF3FAC, symSize: 0xC } - - { offset: 0xB6EB9, size: 0x8, addend: 0x0, symName: __ZN4core3ops8function2Fn4call17h7dd384b9fff5469cE, symObjAddr: 0x2472C, symBinAddr: 0x100BF3BE8, symSize: 0x38 } - - { offset: 0xB6F55, size: 0x8, addend: 0x0, symName: __ZN4core3ops8function2Fn4call17h8b3940ecb938067aE, symObjAddr: 0x24764, symBinAddr: 0x100BF3C20, symSize: 0xAC } - - { offset: 0xB705B, size: 0x8, addend: 0x0, symName: __ZN4core3ops8function2Fn4call17hec4064a2889eff72E, symObjAddr: 0x248B4, symBinAddr: 0x100BF3CCC, symSize: 0xAC } - - { offset: 0xB817B, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17h4476dc8bfa4379ddE', symObjAddr: 0xC0C, symBinAddr: 0x100BDFAA8, symSize: 0x14 } - - { offset: 0xB8199, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17h4476dc8bfa4379ddE', symObjAddr: 0xC0C, symBinAddr: 0x100BDFAA8, symSize: 0x14 } - - { offset: 0xB81AB, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17ha3d980d881e660a3E', symObjAddr: 0xC20, symBinAddr: 0x100BDFABC, symSize: 0x14 } - - { offset: 0xB81C9, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17ha3d980d881e660a3E', symObjAddr: 0xC20, symBinAddr: 0x100BDFABC, symSize: 0x14 } - - { offset: 0xB81DB, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17he212554cd1bd9026E', symObjAddr: 0xC34, symBinAddr: 0x100BDFAD0, symSize: 0x14 } - - { offset: 0xB81F9, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17he212554cd1bd9026E', symObjAddr: 0xC34, symBinAddr: 0x100BDFAD0, symSize: 0x14 } - - { offset: 0xB92F4, size: 0x8, addend: 0x0, symName: '__ZN4core5array69_$LT$impl$u20$core..fmt..Debug$u20$for$u20$$u5b$T$u3b$$u20$N$u5d$$GT$3fmt17heccf47e3c70b165dE', symObjAddr: 0x2A4FC, symBinAddr: 0x100BF62E4, symSize: 0xFC } - - { offset: 0xB9689, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h0dbd68963bb266bdE', symObjAddr: 0x2771C, symBinAddr: 0x100C6F30C, symSize: 0x60 } - - { offset: 0xB96A8, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h0dbd68963bb266bdE', symObjAddr: 0x2771C, symBinAddr: 0x100C6F30C, symSize: 0x60 } - - { offset: 0xB96BE, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h0dbd68963bb266bdE', symObjAddr: 0x2771C, symBinAddr: 0x100C6F30C, symSize: 0x60 } - - { offset: 0xB96D3, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h0dbd68963bb266bdE', symObjAddr: 0x2771C, symBinAddr: 0x100C6F30C, symSize: 0x60 } - - { offset: 0xB972C, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h50cab64304c91344E', symObjAddr: 0x2777C, symBinAddr: 0x100C6F36C, symSize: 0xC04 } - - { offset: 0xBB0F7, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h5ae72910d44ba69bE', symObjAddr: 0x28380, symBinAddr: 0x100C6FF70, symSize: 0x110 } - - { offset: 0xBB3FE, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h740b85307009de2bE', symObjAddr: 0x28490, symBinAddr: 0x100C70080, symSize: 0x19BC } - - { offset: 0xBE9B3, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h7b14d09919c6bf02E', symObjAddr: 0x29E4C, symBinAddr: 0x100C71A3C, symSize: 0x80 } - - { offset: 0xBEA6C, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17hd13fdb4e890aeceeE', symObjAddr: 0x29ECC, symBinAddr: 0x100C71ABC, symSize: 0x630 } - - { offset: 0xBFC76, size: 0x8, addend: 0x0, symName: '__ZN55_$LT$$RF$str$u20$as$u20$core..str..pattern..Pattern$GT$15is_contained_in17h487213ac5991e88dE', symObjAddr: 0x32E10, symBinAddr: 0x100BFDFC0, symSize: 0x3C0 } - - { offset: 0xC03E5, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error11description17h81eb33be0f21121fE, symObjAddr: 0x2A608, symBinAddr: 0x100BF63E0, symSize: 0x10 } - - { offset: 0xC0400, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error5cause17hee65f666ccfc03bdE, symObjAddr: 0x2A620, symBinAddr: 0x100BF63F0, symSize: 0x8 } - - { offset: 0xC041B, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error7provide17ha159718348df80d8E, symObjAddr: 0x2A62C, symBinAddr: 0x100BF63F8, symSize: 0x4 } - - { offset: 0xC0436, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error7type_id17h08fbb3ea70f2a4aaE, symObjAddr: 0x2A630, symBinAddr: 0x100BF63FC, symSize: 0x14 } - - { offset: 0xC0455, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error7type_id17h08fbb3ea70f2a4aaE, symObjAddr: 0x2A630, symBinAddr: 0x100BF63FC, symSize: 0x14 } - - { offset: 0xC0470, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17ha8c2be729fb4607eE, symObjAddr: 0x32180, symBinAddr: 0x100C720EC, symSize: 0x24 } - - { offset: 0xC048C, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17haf33e63926cb2ec1E, symObjAddr: 0x321A4, symBinAddr: 0x100C72110, symSize: 0x24 } - - { offset: 0xC04A8, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17hfa28ede05e84e919E, symObjAddr: 0x321C8, symBinAddr: 0x100C72134, symSize: 0x34 } - - { offset: 0xC04D2, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc10rust_panic, symObjAddr: 0x0, symBinAddr: 0x100C6E0FC, symSize: 0x60 } - - { offset: 0xC0504, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc17___rust_drop_panic, symObjAddr: 0x18C, symBinAddr: 0x100BDF6E8, symSize: 0xBC } - - { offset: 0xC0712, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc17rust_begin_unwind, symObjAddr: 0x248, symBinAddr: 0x100BDF7A4, symSize: 0x20 } - - { offset: 0xC0744, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc24___rust_foreign_exception, symObjAddr: 0x2F8, symBinAddr: 0x100BDF854, symSize: 0xBC } - - { offset: 0xC09D5, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11panic_count17is_zero_slow_path17h0e49bc980a448302E, symObjAddr: 0x21FDC, symBinAddr: 0x100C6F1E8, symSize: 0x2C } - - { offset: 0xC0A8B, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11panic_count8increase17h4753f997ed38a1a6E, symObjAddr: 0x2206C, symBinAddr: 0x100BF25A8, symSize: 0x64 } - - { offset: 0xC0AA3, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11panic_count8increase17h4753f997ed38a1a6E, symObjAddr: 0x2206C, symBinAddr: 0x100BF25A8, symSize: 0x64 } - - { offset: 0xC0AB9, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11panic_count8increase17h4753f997ed38a1a6E, symObjAddr: 0x2206C, symBinAddr: 0x100BF25A8, symSize: 0x64 } - - { offset: 0xC0BE1, size: 0x8, addend: 0x0, symName: __ZN3std9panicking12catch_unwind7cleanup17h358719a1eae3fd11E, symObjAddr: 0x220F4, symBinAddr: 0x100C6F214, symSize: 0x40 } - - { offset: 0xC0CE8, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11begin_panic17hf5535a85bc407197E, symObjAddr: 0x21F90, symBinAddr: 0x100C6F1CC, symSize: 0x1C } - - { offset: 0xC0D09, size: 0x8, addend: 0x0, symName: '__ZN3std9panicking11begin_panic28_$u7b$$u7b$closure$u7d$$u7d$17hcbcab1aa309d51dfE', symObjAddr: 0x21FAC, symBinAddr: 0x100BF2578, symSize: 0x30 } - - { offset: 0xC0D2A, size: 0x8, addend: 0x0, symName: '__ZN84_$LT$std..panicking..begin_panic..Payload$LT$A$GT$$u20$as$u20$core..fmt..Display$GT$3fmt17h318a3fb792b1757bE', symObjAddr: 0x4B3F4, symBinAddr: 0x100C0B814, symSize: 0x24 } - - { offset: 0xC0D63, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..panicking..begin_panic..Payload$LT$A$GT$$u20$as$u20$core..panic..PanicPayload$GT$3get17hdae4a4204589bf73E', symObjAddr: 0x4BAA4, symBinAddr: 0x100C0B9F4, symSize: 0x20 } - - { offset: 0xC0D7E, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..panicking..begin_panic..Payload$LT$A$GT$$u20$as$u20$core..panic..PanicPayload$GT$8take_box17h673be6dd0391e22bE', symObjAddr: 0x4BAC4, symBinAddr: 0x100C0BA14, symSize: 0x54 } - - { offset: 0xC0E29, size: 0x8, addend: 0x0, symName: __ZN3std9panicking12default_hook17h8781bd6c5c54e4ccE, symObjAddr: 0x22134, symBinAddr: 0x100BF260C, symSize: 0x13C } - - { offset: 0xC0FC9, size: 0x8, addend: 0x0, symName: '__ZN3std9panicking12default_hook28_$u7b$$u7b$closure$u7d$$u7d$17hf5d7ef6cefa10586E', symObjAddr: 0x22270, symBinAddr: 0x100BF2748, symSize: 0x19C } - - { offset: 0xC11B5, size: 0x8, addend: 0x0, symName: '__ZN3std9panicking12default_hook28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h228f93a334e4467fE', symObjAddr: 0x2240C, symBinAddr: 0x100BF28E4, symSize: 0x314 } - - { offset: 0xC1814, size: 0x8, addend: 0x0, symName: '__ZN3std9panicking13panic_handler28_$u7b$$u7b$closure$u7d$$u7d$17h8561e58c9391724aE', symObjAddr: 0x22720, symBinAddr: 0x100BF2BF8, symSize: 0xC0 } - - { offset: 0xC1980, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$std..panicking..panic_handler..StaticStrPayload$u20$as$u20$core..fmt..Display$GT$3fmt17hb7fb6684d4df6d45E', symObjAddr: 0x4B620, symBinAddr: 0x100C0B838, symSize: 0x10 } - - { offset: 0xC19A2, size: 0x8, addend: 0x0, symName: '__ZN89_$LT$std..panicking..panic_handler..FormatStringPayload$u20$as$u20$core..fmt..Display$GT$3fmt17hb86c89f46dcad114E', symObjAddr: 0x4B9D4, symBinAddr: 0x100C0B930, symSize: 0x5C } - - { offset: 0xC1AA8, size: 0x8, addend: 0x0, symName: '__ZN93_$LT$std..panicking..panic_handler..StaticStrPayload$u20$as$u20$core..panic..PanicPayload$GT$3get17h83e5208296b54496E', symObjAddr: 0x4C030, symBinAddr: 0x100C0BACC, symSize: 0xC } - - { offset: 0xC1AC3, size: 0x8, addend: 0x0, symName: '__ZN93_$LT$std..panicking..panic_handler..StaticStrPayload$u20$as$u20$core..panic..PanicPayload$GT$6as_str17h2db90258d19f6e52E', symObjAddr: 0x4C03C, symBinAddr: 0x100C0BAD8, symSize: 0xC } - - { offset: 0xC1ADE, size: 0x8, addend: 0x0, symName: '__ZN93_$LT$std..panicking..panic_handler..StaticStrPayload$u20$as$u20$core..panic..PanicPayload$GT$8take_box17h1485494e9d7ff18aE', symObjAddr: 0x4C048, symBinAddr: 0x100C0BAE4, symSize: 0x48 } - - { offset: 0xC1B92, size: 0x8, addend: 0x0, symName: '__ZN96_$LT$std..panicking..panic_handler..FormatStringPayload$u20$as$u20$core..panic..PanicPayload$GT$3get17h96f0332b2c82aadbE', symObjAddr: 0x4C694, symBinAddr: 0x100C0BE70, symSize: 0xB0 } - - { offset: 0xC1CD2, size: 0x8, addend: 0x0, symName: '__ZN96_$LT$std..panicking..panic_handler..FormatStringPayload$u20$as$u20$core..panic..PanicPayload$GT$8take_box17h65a88e9a74ff16deE', symObjAddr: 0x4C744, symBinAddr: 0x100C0BF20, symSize: 0x118 } - - { offset: 0xC1F6D, size: 0x8, addend: 0x0, symName: __ZN3std9panicking13resume_unwind17h45068855baee7132E, symObjAddr: 0x227E0, symBinAddr: 0x100C6F254, symSize: 0xB8 } - - { offset: 0xC219E, size: 0x8, addend: 0x0, symName: __ZN3std9panicking14payload_as_str17h4d3eb9108e6d331cE, symObjAddr: 0x22898, symBinAddr: 0x100BF2CB8, symSize: 0xC8 } - - { offset: 0xC22F1, size: 0x8, addend: 0x0, symName: __ZN3std9panicking15panic_with_hook17h93c775fc227522ddE, symObjAddr: 0x22960, symBinAddr: 0x100BF2D80, symSize: 0x390 } - - { offset: 0xC2B62, size: 0x8, addend: 0x0, symName: '__ZN79_$LT$std..panicking..resume_unwind..RewrapBox$u20$as$u20$core..fmt..Display$GT$3fmt17h7489b74430013398E', symObjAddr: 0x49F74, symBinAddr: 0x100C0AC84, symSize: 0x14 } - - { offset: 0xC2B84, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$std..panicking..resume_unwind..RewrapBox$u20$as$u20$core..panic..PanicPayload$GT$3get17h4cdc834d3068e82aE', symObjAddr: 0x4B630, symBinAddr: 0x100C0B848, symSize: 0xC } - - { offset: 0xC2B9F, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$std..panicking..resume_unwind..RewrapBox$u20$as$u20$core..panic..PanicPayload$GT$8take_box17hd214d9e6e38490beE', symObjAddr: 0x4B63C, symBinAddr: 0x100C0B854, symSize: 0x1C } - - { offset: 0xC2BBE, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$std..panicking..resume_unwind..RewrapBox$u20$as$u20$core..panic..PanicPayload$GT$8take_box17hd214d9e6e38490beE', symObjAddr: 0x4B63C, symBinAddr: 0x100C0B854, symSize: 0x1C } - - { offset: 0xC2C8A, size: 0x8, addend: 0x0, symName: '__ZN102_$LT$std..sys..process..unix..common..cstring_array..CStringArray$u20$as$u20$core..ops..drop..Drop$GT$4drop17h06df4f02e6fe90a9E', symObjAddr: 0x3CC, symBinAddr: 0x100BDF910, symSize: 0x70 } - - { offset: 0xC2EF7, size: 0x8, addend: 0x0, symName: '__ZN3std3sys7process4unix4unix58_$LT$impl$u20$std..sys..process..unix..common..Command$GT$5spawn17h237fe095142cc34bE', symObjAddr: 0x18FF8, symBinAddr: 0x100BED5B0, symSize: 0x95C } - - { offset: 0xC4091, size: 0x8, addend: 0x0, symName: '__ZN3std3sys7process4unix4unix58_$LT$impl$u20$std..sys..process..unix..common..Command$GT$7do_exec17h6feeeb7d9b34c595E', symObjAddr: 0x19954, symBinAddr: 0x100BEDF0C, symSize: 0x340 } - - { offset: 0xC48F8, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command11capture_env17h2f7baac55a4a4f05E, symObjAddr: 0x19E6C, symBinAddr: 0x100BEE424, symSize: 0xB2C } - - { offset: 0xC6B74, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command3arg17h7fee8d488ea7ade5E, symObjAddr: 0x1A998, symBinAddr: 0x100BEEF50, symSize: 0xE8 } - - { offset: 0xC6EA1, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command3new17h7d9010e7a2d465d6E, symObjAddr: 0x1AB54, symBinAddr: 0x100BEF038, symSize: 0x290 } - - { offset: 0xC7425, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command6stderr17hd8687e59201ffd08E, symObjAddr: 0x1AF20, symBinAddr: 0x100BEF2C8, symSize: 0x44 } - - { offset: 0xC74B3, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command6stdout17h51f556897e5c8e64E, symObjAddr: 0x1AF64, symBinAddr: 0x100BEF30C, symSize: 0x44 } - - { offset: 0xC7541, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command8setup_io17hb6644c8ea4611925E, symObjAddr: 0x1B018, symBinAddr: 0x100BEF350, symSize: 0x2F8 } - - { offset: 0xC79CA, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common5Stdio14to_child_stdio17h0c95bbc5e493516fE, symObjAddr: 0x19D30, symBinAddr: 0x100BEE2E8, symSize: 0x13C } - - { offset: 0xC7BBF, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix4unix7Process4wait17h2d656728411d54a9E, symObjAddr: 0x19C94, symBinAddr: 0x100BEE24C, symSize: 0x9C } - - { offset: 0xC7D32, size: 0x8, addend: 0x0, symName: '__ZN103_$LT$std..sys..thread_local..abort_on_dtor_unwind..DtorUnwindGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17hab0e3e160f00c982E', symObjAddr: 0x4A4, symBinAddr: 0x100C6E174, symSize: 0x44 } - - { offset: 0xC7DCC, size: 0x8, addend: 0x0, symName: __ZN3std3sys12thread_local6native5eager7destroy17h2ad9203668e0e8b1E, symObjAddr: 0xF464, symBinAddr: 0x100BE9DFC, symSize: 0x2C } - - { offset: 0xC7F0A, size: 0x8, addend: 0x0, symName: __ZN3std3sys12thread_local6native5eager7destroy17h8980ea3fc400ba8eE, symObjAddr: 0xF490, symBinAddr: 0x100BE9E28, symSize: 0x84 } - - { offset: 0xC8163, size: 0x8, addend: 0x0, symName: __ZN3std3sys12thread_local5guard5apple6enable9run_dtors17hb4dbe3d2f58627d3E, symObjAddr: 0xF36C, symBinAddr: 0x100BE9D04, symSize: 0xF8 } - - { offset: 0xC8672, size: 0x8, addend: 0x0, symName: __ZN3std3sys12thread_local11destructors4list8register17he63ca9d3591c1a51E, symObjAddr: 0xF25C, symBinAddr: 0x100BE9BF4, symSize: 0x110 } - - { offset: 0xC8A51, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket4unix6Socket10take_error17hcb5e291ed7cfe611E, symObjAddr: 0x14714, symBinAddr: 0x100BEADF8, symSize: 0x70 } - - { offset: 0xC8B21, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket4unix6Socket20recv_from_with_flags17h9b1ea7acb6cfcff1E, symObjAddr: 0x14784, symBinAddr: 0x100BEAE68, symSize: 0x130 } - - { offset: 0xC8C4E, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket4unix6Socket3new17h9e59989b48c72ee9E, symObjAddr: 0x148B4, symBinAddr: 0x100BEAF98, symSize: 0xF8 } - - { offset: 0xC8F9D, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket11TcpListener11socket_addr17hafd339c7750d5262E, symObjAddr: 0x14304, symBinAddr: 0x100BEAB34, symSize: 0x148 } - - { offset: 0xC9159, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9TcpStream9peer_addr17h8483ff121de8c094E, symObjAddr: 0x14C14, symBinAddr: 0x100BEB1C8, symSize: 0x148 } - - { offset: 0xC938F, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9UdpSocket7send_to17h576715d0ecee35f8E, symObjAddr: 0x14F38, symBinAddr: 0x100BEB4EC, symSize: 0xB8 } - - { offset: 0xC93AE, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9UdpSocket7send_to17h576715d0ecee35f8E, symObjAddr: 0x14F38, symBinAddr: 0x100BEB4EC, symSize: 0xB8 } - - { offset: 0xC955F, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9UdpSocket4bind5inner17hfaae470631733d37E, symObjAddr: 0x14D5C, symBinAddr: 0x100BEB310, symSize: 0x120 } - - { offset: 0xC976A, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9UdpSocket7connect5inner17hdb87692b5d6c56b3E, symObjAddr: 0x14E7C, symBinAddr: 0x100BEB430, symSize: 0xBC } - - { offset: 0xC9903, size: 0x8, addend: 0x0, symName: '__ZN3std3sys3net10connection6socket11lookup_host28_$u7b$$u7b$closure$u7d$$u7d$17hfcbcbc82abade945E', symObjAddr: 0x14598, symBinAddr: 0x100BEAC7C, symSize: 0x17C } - - { offset: 0xC9DA9, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9TcpStream7connect5inner17h7768b2c892f15564E, symObjAddr: 0x14ADC, symBinAddr: 0x100BEB090, symSize: 0x138 } - - { offset: 0xC9FB6, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..sys..net..connection..socket..TcpStream$u20$as$u20$core..fmt..Debug$GT$3fmt17h795bf8e0d2d6c3a7E', symObjAddr: 0x4A9B8, symBinAddr: 0x100C0B2EC, symSize: 0x1DC } - - { offset: 0xCA4B3, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..sys..net..connection..socket..UdpSocket$u20$as$u20$core..fmt..Debug$GT$3fmt17h8ea985a650083c8eE', symObjAddr: 0x4AB94, symBinAddr: 0x100C0B4C8, symSize: 0x134 } - - { offset: 0xCA73B, size: 0x8, addend: 0x0, symName: '__ZN83_$LT$std..sys..net..connection..socket..TcpListener$u20$as$u20$core..fmt..Debug$GT$3fmt17h6db701862e99a908E', symObjAddr: 0x4B224, symBinAddr: 0x100C0B6E0, symSize: 0x134 } - - { offset: 0xCA9F9, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix14stack_overflow11thread_info16set_current_info17h84426806861e3cbbE, symObjAddr: 0x14FFC, symBinAddr: 0x100BEB5A4, symSize: 0x978 } - - { offset: 0xCBDE3, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix14stack_overflow3imp12drop_handler17h263587d8f9e45005E, symObjAddr: 0x15974, symBinAddr: 0x100BEBF1C, symSize: 0x3A4 } - - { offset: 0xCC688, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix14stack_overflow3imp12make_handler17h695565399b30e775E, symObjAddr: 0x15D18, symBinAddr: 0x100BEC2C0, symSize: 0x234 } - - { offset: 0xCCB60, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4time8Timespec12sub_timespec17h9e61d60fef934ad5E, symObjAddr: 0x16B0C, symBinAddr: 0x100BECB90, symSize: 0xDC } - - { offset: 0xCCC23, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4time8Timespec3now17h10d6d2ed67c46185E, symObjAddr: 0x16BE8, symBinAddr: 0x100BECC6C, symSize: 0x114 } - - { offset: 0xCCDE1, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex4init17h3fb67842e75c6d9eE, symObjAddr: 0x16880, symBinAddr: 0x100BEC9E8, symSize: 0x16C } - - { offset: 0xCCE7E, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex4lock17h8e7ea75631e6ac34E, symObjAddr: 0x169EC, symBinAddr: 0x100BECB54, symSize: 0x1C } - - { offset: 0xCCE92, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex6unlock17he881fdde44d7073cE, symObjAddr: 0x16AEC, symBinAddr: 0x100BECB70, symSize: 0x4 } - - { offset: 0xCCEA6, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex8try_lock17hcfa898e9858a168bE, symObjAddr: 0x16AF0, symBinAddr: 0x100BECB74, symSize: 0x1C } - - { offset: 0xCCEF5, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex4lock4fail17hfd38f3b0af37e16dE, symObjAddr: 0x16A08, symBinAddr: 0x100C6E2E8, symSize: 0xE4 } - - { offset: 0xCD163, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..sys..pal..unix..sync..mutex..Mutex$u20$as$u20$core..ops..drop..Drop$GT$4drop17h79d5af723eafa1ceE', symObjAddr: 0x4ACC8, symBinAddr: 0x100C0B5FC, symSize: 0x4 } - - { offset: 0xCD1C5, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix14abort_internal17he83a14397ef717aeE, symObjAddr: 0x14FF0, symBinAddr: 0x100C6E2DC, symSize: 0xC } - - { offset: 0xCD1E0, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix17decode_error_kind17hc6de140270794847E, symObjAddr: 0x161F4, symBinAddr: 0x100BEC4F4, symSize: 0x150 } - - { offset: 0xCD235, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4pipe5read217h9c042ada965d066dE, symObjAddr: 0x164DC, symBinAddr: 0x100BEC644, symSize: 0x22C } - - { offset: 0xCD661, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4pipe8AnonPipe5write17hb6b000157e4c46ebE, symObjAddr: 0x16708, symBinAddr: 0x100BEC870, symSize: 0x50 } - - { offset: 0xCD761, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4pipe9anon_pipe17ha11fba7cc33c9c6cE, symObjAddr: 0x16758, symBinAddr: 0x100BEC8C0, symSize: 0x128 } - - { offset: 0xCDBD0, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17h0875c4604f819d2fE, symObjAddr: 0x16CFC, symBinAddr: 0x100C6E3CC, symSize: 0xA4 } - - { offset: 0xCDD38, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17h36c1fc5d22f459d5E, symObjAddr: 0x16E70, symBinAddr: 0x100C6E470, symSize: 0xC0 } - - { offset: 0xCDF15, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17h5b28b928bb634e4cE, symObjAddr: 0x16F30, symBinAddr: 0x100C6E530, symSize: 0xB4 } - - { offset: 0xCE0F2, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17h7c3cf9376cd4ceb5E, symObjAddr: 0x16FE4, symBinAddr: 0x100C6E5E4, symSize: 0xC0 } - - { offset: 0xCE2E4, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17hab3ab4f29d9f2122E, symObjAddr: 0x170A4, symBinAddr: 0x100C6E6A4, symSize: 0xBC } - - { offset: 0xCE4D6, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17hce4c8e9e75279b9eE, symObjAddr: 0x17160, symBinAddr: 0x100C6E760, symSize: 0xBC } - - { offset: 0xCE753, size: 0x8, addend: 0x0, symName: __ZN3std3sys3env4unix13env_read_lock17h15cf34fdeb2c90e5E, symObjAddr: 0x13AEC, symBinAddr: 0x100BEA7C4, symSize: 0x230 } - - { offset: 0xCEE98, size: 0x8, addend: 0x0, symName: '__ZN3std3sys3env4unix6getenv28_$u7b$$u7b$closure$u7d$$u7d$17h2e848176431e684aE', symObjAddr: 0x13D1C, symBinAddr: 0x100BEA9F4, symSize: 0x140 } - - { offset: 0xCF213, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs4unix4File4read17h7ced388d40243904E, symObjAddr: 0x1217C, symBinAddr: 0x100BEA2C4, symSize: 0x54 } - - { offset: 0xCF31D, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs4unix4File6open_c17hb0ac4eb926211e09E, symObjAddr: 0x121D0, symBinAddr: 0x100BEA318, symSize: 0x1A0 } - - { offset: 0xCF492, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs4unix8DirEntry8metadata17he51cd41846068600E, symObjAddr: 0x12900, symBinAddr: 0x100BEA4B8, symSize: 0x178 } - - { offset: 0xCFA8E, size: 0x8, addend: 0x0, symName: '__ZN3std3sys2fs4unix10DirBuilder5mkdir28_$u7b$$u7b$closure$u7d$$u7d$17hbf538ebad5acb1fdE', symObjAddr: 0x11CE4, symBinAddr: 0x100BEA280, symSize: 0x44 } - - { offset: 0xCFBB6, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$std..sys..fs..unix..Dir$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcb7a996d2264cba6E', symObjAddr: 0x45FC8, symBinAddr: 0x100C09D10, symSize: 0xC8 } - - { offset: 0xCFC9E, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs11remove_file17h7e1e3b5edf9300cfE, symObjAddr: 0x10F80, symBinAddr: 0x100BEA098, symSize: 0xC0 } - - { offset: 0xCFDC9, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs16symlink_metadata17h0bd01883de3202beE, symObjAddr: 0x11338, symBinAddr: 0x100BEA158, symSize: 0x128 } - - { offset: 0xCFF4E, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs8read_dir17h2438d3100ab30d0aE, symObjAddr: 0x13378, symBinAddr: 0x100BEA630, symSize: 0x194 } - - { offset: 0xD03F3, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fd4unix8FileDesc11read_to_end17hbe57068ced001ef0E, symObjAddr: 0x10764, symBinAddr: 0x100BE9EAC, symSize: 0x1EC } - - { offset: 0xD08B4, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..sys..stdio..unix..Stderr$u20$as$u20$std..io..Write$GT$14write_vectored17hc26c9570776fba98E', symObjAddr: 0x45D2C, symBinAddr: 0x100C09C58, symSize: 0x54 } - - { offset: 0xD0993, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..sys..stdio..unix..Stderr$u20$as$u20$std..io..Write$GT$17is_write_vectored17hed13078469538b7dE', symObjAddr: 0x45D80, symBinAddr: 0x100C09CAC, symSize: 0x8 } - - { offset: 0xD09AD, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..sys..stdio..unix..Stderr$u20$as$u20$std..io..Write$GT$5flush17h95d09f74336d566aE', symObjAddr: 0x45D88, symBinAddr: 0x100C09CB4, symSize: 0x8 } - - { offset: 0xD09C7, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..sys..stdio..unix..Stderr$u20$as$u20$std..io..Write$GT$5write17h5f9903b30d7b8655E', symObjAddr: 0x45D90, symBinAddr: 0x100C09CBC, symSize: 0x54 } - - { offset: 0xD0B39, size: 0x8, addend: 0x0, symName: '__ZN3std3sys4sync8once_box16OnceBox$LT$T$GT$10initialize17h1da039d2bc801872E', symObjAddr: 0x182A0, symBinAddr: 0x100C6ECA4, symSize: 0xE4 } - - { offset: 0xD0E03, size: 0x8, addend: 0x0, symName: '__ZN79_$LT$std..sys..sync..mutex..pthread..Mutex$u20$as$u20$core..ops..drop..Drop$GT$4drop17hfd3991f31f1300d8E', symObjAddr: 0x49FF0, symBinAddr: 0x100C0AC98, symSize: 0x58 } - - { offset: 0xD0F44, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync4once5queue4Once4call17hc6c0ce36cc04c0d4E, symObjAddr: 0x17680, symBinAddr: 0x100C6E81C, symSize: 0x218 } - - { offset: 0xD1248, size: 0x8, addend: 0x0, symName: '__ZN82_$LT$std..sys..sync..once..queue..WaiterQueue$u20$as$u20$core..ops..drop..Drop$GT$4drop17h14d8bb8a23cfd1d3E', symObjAddr: 0x4B130, symBinAddr: 0x100C0B600, symSize: 0xE0 } - - { offset: 0xD1456, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync4once5queue4wait17hf8e25f6f82fb4d73E, symObjAddr: 0x17A78, symBinAddr: 0x100BECDA0, symSize: 0x184 } - - { offset: 0xD1A2E, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock12unlock_queue17hef9c5f93c7985851E, symObjAddr: 0x17C10, symBinAddr: 0x100BECF38, symSize: 0x1CC } - - { offset: 0xD20DD, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock14lock_contended17hd83147a2a2d578b5E, symObjAddr: 0x17EE8, symBinAddr: 0x100C6EA34, symSize: 0x1F0 } - - { offset: 0xD26B0, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock16unlock_contended17haa5e3ce6a448d2fcE, symObjAddr: 0x180D8, symBinAddr: 0x100C6EC24, symSize: 0x40 } - - { offset: 0xD277F, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock21read_unlock_contended17h9e1b2273a360b3e9E, symObjAddr: 0x18118, symBinAddr: 0x100C6EC64, symSize: 0x40 } - - { offset: 0xD279E, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock21read_unlock_contended17h9e1b2273a360b3e9E, symObjAddr: 0x18118, symBinAddr: 0x100C6EC64, symSize: 0x40 } - - { offset: 0xD27B4, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock21read_unlock_contended17h9e1b2273a360b3e9E, symObjAddr: 0x18118, symBinAddr: 0x100C6EC64, symSize: 0x40 } - - { offset: 0xD29B6, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue10write_lock17hcb873c9237d374bcE, symObjAddr: 0x17BFC, symBinAddr: 0x100BECF24, symSize: 0x14 } - - { offset: 0xD2A00, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue9read_lock17h60b05aa7e4c529e0E, symObjAddr: 0x18158, symBinAddr: 0x100BED104, symSize: 0x20 } - - { offset: 0xD2A27, size: 0x8, addend: 0x0, symName: '__ZN83_$LT$std..sys..sync..rwlock..queue..PanicGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha09e551c66825125E', symObjAddr: 0x4B3B0, symBinAddr: 0x100C7268C, symSize: 0x44 } - - { offset: 0xD2A7A, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync14thread_parking6darwin6Parker6unpark17hc430bfee6c337945E, symObjAddr: 0x17660, symBinAddr: 0x100BECD80, symSize: 0x20 } - - { offset: 0xD2A92, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync14thread_parking6darwin6Parker6unpark17hc430bfee6c337945E, symObjAddr: 0x17660, symBinAddr: 0x100BECD80, symSize: 0x20 } - - { offset: 0xD2AA7, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync14thread_parking6darwin6Parker6unpark17hc430bfee6c337945E, symObjAddr: 0x17660, symBinAddr: 0x100BECD80, symSize: 0x20 } - - { offset: 0xD2B44, size: 0x8, addend: 0x0, symName: __ZN3std3sys6thread4unix6Thread3new12thread_start17h98270432b6aefc44E, symObjAddr: 0x18694, symBinAddr: 0x100BED194, symSize: 0xB8 } - - { offset: 0xD2D05, size: 0x8, addend: 0x0, symName: __ZN3std3sys6thread4unix6Thread3new17ha4dc051ea8066dadE, symObjAddr: 0x1874C, symBinAddr: 0x100BED24C, symSize: 0x274 } - - { offset: 0xD2FE2, size: 0x8, addend: 0x0, symName: __ZN3std3sys6thread4unix6Thread4join17h82f8748e58b69807E, symObjAddr: 0x189C0, symBinAddr: 0x100BED4C0, symSize: 0x90 } - - { offset: 0xD3038, size: 0x8, addend: 0x0, symName: __ZN3std3sys6thread4unix8set_name17h805034f35b41927bE, symObjAddr: 0x18A50, symBinAddr: 0x100BED550, symSize: 0x60 } - - { offset: 0xD3198, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$std..sys..thread..unix..Thread$u20$as$u20$core..ops..drop..Drop$GT$4drop17h705579a93016ef73E', symObjAddr: 0x47B08, symBinAddr: 0x100C0A7E8, symSize: 0x8 } - - { offset: 0xD31C7, size: 0x8, addend: 0x0, symName: '__ZN3std3sys11personality3gcc14find_eh_action28_$u7b$$u7b$closure$u7d$$u7d$17h34cc09c8637bc414E', symObjAddr: 0xF0FC, symBinAddr: 0x100BE9A94, symSize: 0xC } - - { offset: 0xD31DB, size: 0x8, addend: 0x0, symName: '__ZN3std3sys11personality3gcc14find_eh_action28_$u7b$$u7b$closure$u7d$$u7d$17h52ef941b5da817b9E', symObjAddr: 0xF108, symBinAddr: 0x100BE9AA0, symSize: 0xC } - - { offset: 0xD3227, size: 0x8, addend: 0x0, symName: _rust_eh_personality, symObjAddr: 0x4F3E4, symBinAddr: 0x100C0E95C, symSize: 0x378 } - - { offset: 0xD356B, size: 0x8, addend: 0x0, symName: __ZN3std3sys11personality5dwarf2eh19read_encoded_offset17hecb2797128d099b6E, symObjAddr: 0xF114, symBinAddr: 0x100BE9AAC, symSize: 0x148 } - - { offset: 0xD36DD, size: 0x8, addend: 0x0, symName: __ZN3std3sys6random19hashmap_random_keys17hcbba1d7764c9b72eE, symObjAddr: 0x18624, symBinAddr: 0x100BED124, symSize: 0x70 } - - { offset: 0xD3755, size: 0x8, addend: 0x0, symName: '__ZN3std3sys9backtrace10_print_fmt28_$u7b$$u7b$closure$u7d$$u7d$17h35022260730485a3E', symObjAddr: 0x1B448, symBinAddr: 0x100BEF648, symSize: 0x24 } - - { offset: 0xD377F, size: 0x8, addend: 0x0, symName: '__ZN3std3sys9backtrace10_print_fmt28_$u7b$$u7b$closure$u7d$$u7d$17h740f996d5eb9c70dE', symObjAddr: 0x1B46C, symBinAddr: 0x100BEF66C, symSize: 0x134 } - - { offset: 0xD38A0, size: 0x8, addend: 0x0, symName: '__ZN3std3sys9backtrace10_print_fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc9a460fdd5f3b0faE', symObjAddr: 0x1B5A0, symBinAddr: 0x100BEF7A0, symSize: 0x25C } - - { offset: 0xD3AED, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace13BacktraceLock5print17h765d16e49e83c7b3E, symObjAddr: 0x1B7FC, symBinAddr: 0x100BEF9FC, symSize: 0x54 } - - { offset: 0xD3B1F, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace15output_filename17hde44ee24b1416b05E, symObjAddr: 0x1B850, symBinAddr: 0x100BEFA50, symSize: 0xF4 } - - { offset: 0xD3C91, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace26__rust_end_short_backtrace17h55629ed76aaa9d26E, symObjAddr: 0x1B944, symBinAddr: 0x100BEFB44, symSize: 0xC } - - { offset: 0xD3CAB, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace26__rust_end_short_backtrace17hb36e422b0fd5ee95E, symObjAddr: 0x1B950, symBinAddr: 0x100BEFB50, symSize: 0xC } - - { offset: 0xD3CC5, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace4lock17hbd44f6947d8c1202E, symObjAddr: 0x1B95C, symBinAddr: 0x100BEFB5C, symSize: 0x70 } - - { offset: 0xD3E46, size: 0x8, addend: 0x0, symName: '__ZN98_$LT$std..sys..backtrace..BacktraceLock..print..DisplayBacktrace$u20$as$u20$core..fmt..Display$GT$3fmt17h2808c764b780ef77E', symObjAddr: 0x4CA28, symBinAddr: 0x100C0C0AC, symSize: 0x210 } - - { offset: 0xD4376, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc11___rdl_alloc, symObjAddr: 0x60, symBinAddr: 0x100BDF5C8, symSize: 0x6C } - - { offset: 0xD43F9, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc13___rdl_dealloc, symObjAddr: 0xD8, symBinAddr: 0x100BDF634, symSize: 0x4 } - - { offset: 0xD4418, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc13___rdl_dealloc, symObjAddr: 0xD8, symBinAddr: 0x100BDF634, symSize: 0x4 } - - { offset: 0xD442B, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc13___rdl_realloc, symObjAddr: 0xDC, symBinAddr: 0x100BDF638, symSize: 0xB0 } - - { offset: 0xD4509, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc18___rdl_alloc_zeroed, symObjAddr: 0x268, symBinAddr: 0x100BDF7C4, symSize: 0x90 } - - { offset: 0xD45B6, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc26___rust_alloc_error_handler, symObjAddr: 0x3B4, symBinAddr: 0x100C6E15C, symSize: 0x18 } - - { offset: 0xD45D2, size: 0x8, addend: 0x0, symName: __ZN3std5alloc24default_alloc_error_hook17h2b4d51b2dd4dcaf1E, symObjAddr: 0x1F840, symBinAddr: 0x100BF0C70, symSize: 0x140 } - - { offset: 0xD4825, size: 0x8, addend: 0x0, symName: __ZN3std5alloc8rust_oom17hf0243909770106f8E, symObjAddr: 0x1F980, symBinAddr: 0x100C6EF68, symSize: 0x2C } - - { offset: 0xD49D6, size: 0x8, addend: 0x0, symName: __ZN3std2io5error14repr_bitpacked11decode_repr17hc96b606458a83b32E, symObjAddr: 0x975C, symBinAddr: 0x100BE73E4, symSize: 0x60 } - - { offset: 0xD4A6E, size: 0x8, addend: 0x0, symName: __ZN3std2io5error5Error3new17hf8df74465e562d23E, symObjAddr: 0x9880, symBinAddr: 0x100BE7444, symSize: 0x120 } - - { offset: 0xD4E53, size: 0x8, addend: 0x0, symName: __ZN3std2io5error5Error4_new17h8a795f64155a4157E, symObjAddr: 0x99A0, symBinAddr: 0x100BE7564, symSize: 0x7C } - - { offset: 0xD4FD4, size: 0x8, addend: 0x0, symName: '__ZN3std2io5error83_$LT$impl$u20$core..fmt..Debug$u20$for$u20$std..io..error..repr_bitpacked..Repr$GT$3fmt17he34953692231bc05E', symObjAddr: 0x9A1C, symBinAddr: 0x100BE75E0, symSize: 0x294 } - - { offset: 0xD524A, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$std..io..error..Error$u20$as$u20$core..fmt..Debug$GT$3fmt17h3cb1a241d7d607a2E', symObjAddr: 0x34404, symBinAddr: 0x100BFE5E4, symSize: 0x4 } - - { offset: 0xD5265, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$5cause17hc81d9bf05c7d4f18E', symObjAddr: 0x41D90, symBinAddr: 0x100C08A3C, symSize: 0x38 } - - { offset: 0xD5284, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$5cause17hc81d9bf05c7d4f18E', symObjAddr: 0x41D90, symBinAddr: 0x100C08A3C, symSize: 0x38 } - - { offset: 0xD52AD, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$6source17hd750fefe2f1ad6c0E', symObjAddr: 0x41DC8, symBinAddr: 0x100C08A74, symSize: 0x38 } - - { offset: 0xD52CC, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$6source17hd750fefe2f1ad6c0E', symObjAddr: 0x41DC8, symBinAddr: 0x100C08A74, symSize: 0x38 } - - { offset: 0xD52FC, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..fmt..Display$GT$3fmt17hf9e57e9711138685E', symObjAddr: 0x41E00, symBinAddr: 0x100C08AAC, symSize: 0x208 } - - { offset: 0xD557A, size: 0x8, addend: 0x0, symName: '__ZN62_$LT$std..io..error..ErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc274c5835978fd90E', symObjAddr: 0x44AEC, symBinAddr: 0x100C09690, symSize: 0x28 } - - { offset: 0xD5607, size: 0x8, addend: 0x0, symName: '__ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17hf5086244887fb433E', symObjAddr: 0xAC00, symBinAddr: 0x100C6E1B8, symSize: 0x124 } - - { offset: 0xD584A, size: 0x8, addend: 0x0, symName: '__ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17h1daa875c40956790E', symObjAddr: 0xAD24, symBinAddr: 0x100BE81F8, symSize: 0x1E0 } - - { offset: 0xD5DEF, size: 0x8, addend: 0x0, symName: '__ZN56_$LT$std..io..Guard$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf9ce2ab6cd2249f1E', symObjAddr: 0x339C0, symBinAddr: 0x100BFE428, symSize: 0xC } - - { offset: 0xD5E21, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write18write_all_vectored17hb3a059cd43489c0bE, symObjAddr: 0x9184, symBinAddr: 0x100BE6E0C, symSize: 0x1B4 } - - { offset: 0xD606C, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write9write_all17h2d8764ee298032edE, symObjAddr: 0x9338, symBinAddr: 0x100BE6FC0, symSize: 0xAC } - - { offset: 0xD613A, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write9write_fmt17h13539701a7d3290cE, symObjAddr: 0x93E4, symBinAddr: 0x100BE706C, symSize: 0x128 } - - { offset: 0xD639F, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write9write_fmt17haa5a1b8b37884759E, symObjAddr: 0x950C, symBinAddr: 0x100BE7194, symSize: 0x128 } - - { offset: 0xD6604, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write9write_fmt17hc5b2a4d160c11c86E, symObjAddr: 0x9634, symBinAddr: 0x100BE72BC, symSize: 0x128 } - - { offset: 0xD68E6, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio22try_set_output_capture17hcc620f798a57f54dE, symObjAddr: 0xA1A4, symBinAddr: 0x100BE7C64, symSize: 0xEC } - - { offset: 0xD6BBC, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio31print_to_buffer_if_capture_used17hfbefa38127d5a0ffE, symObjAddr: 0xA364, symBinAddr: 0x100BE7D50, symSize: 0x21C } - - { offset: 0xD72F3, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio6Stderr4lock17h434a31c17f1db40eE, symObjAddr: 0xA7E4, symBinAddr: 0x100BE7F6C, symSize: 0xE4 } - - { offset: 0xD75E4, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio6_print17h51e79c31889ace57E, symObjAddr: 0xA8C8, symBinAddr: 0x100BE8050, symSize: 0xE0 } - - { offset: 0xD76F6, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio7_eprint17hc94c7b2e935d9346E, symObjAddr: 0xA9E0, symBinAddr: 0x100BE8130, symSize: 0xC8 } - - { offset: 0xD779C, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$$RF$std..io..stdio..Stderr$u20$as$u20$std..io..Write$GT$9write_fmt17h2369a12eefd0cd38E', symObjAddr: 0x42F04, symBinAddr: 0x100C08EA0, symSize: 0x190 } - - { offset: 0xD7BC3, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..io..stdio..StderrLock$u20$as$u20$std..io..Write$GT$9write_all17hf48ad6c7b7298274E', symObjAddr: 0x43818, symBinAddr: 0x100C091C0, symSize: 0x104 } - - { offset: 0xD7E77, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$$RF$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$9write_fmt17hb363d279aa3f51beE', symObjAddr: 0x43414, symBinAddr: 0x100C09030, symSize: 0x190 } - - { offset: 0xD82BF, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..io..stdio..StdoutLock$u20$as$u20$std..io..Write$GT$9write_all17h30cd75dfd30ef8ceE', symObjAddr: 0x43ED0, symBinAddr: 0x100C092C4, symSize: 0x248 } - - { offset: 0xD8A39, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$14write_vectored17hd8cb46654ae804cbE', symObjAddr: 0x9CB0, symBinAddr: 0x100BE7874, symSize: 0x174 } - - { offset: 0xD8CA6, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$17is_write_vectored17hea35dc8ad954a4beE', symObjAddr: 0x9E24, symBinAddr: 0x100BE79E8, symSize: 0x8 } - - { offset: 0xD8CCF, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17h5386aea50fe8f81bE', symObjAddr: 0x9E2C, symBinAddr: 0x100BE79F0, symSize: 0x168 } - - { offset: 0xD8CFC, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17h5386aea50fe8f81bE', symObjAddr: 0x9E2C, symBinAddr: 0x100BE79F0, symSize: 0x168 } - - { offset: 0xD8D12, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17h5386aea50fe8f81bE', symObjAddr: 0x9E2C, symBinAddr: 0x100BE79F0, symSize: 0x168 } - - { offset: 0xD8D28, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17h5386aea50fe8f81bE', symObjAddr: 0x9E2C, symBinAddr: 0x100BE79F0, symSize: 0x168 } - - { offset: 0xD8D3D, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17h5386aea50fe8f81bE', symObjAddr: 0x9E2C, symBinAddr: 0x100BE79F0, symSize: 0x168 } - - { offset: 0xD8F72, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$5flush17hc3fa68f5d1deeab9E', symObjAddr: 0x9F94, symBinAddr: 0x100BE7B58, symSize: 0x8 } - - { offset: 0xD8F8D, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$5write17he199850ebc1dc8b7E', symObjAddr: 0x9F9C, symBinAddr: 0x100BE7B60, symSize: 0x84 } - - { offset: 0xD90E2, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$9write_all17h90b9e8c1dfa81e96E', symObjAddr: 0xA020, symBinAddr: 0x100BE7BE4, symSize: 0x80 } - - { offset: 0xD925B, size: 0x8, addend: 0x0, symName: __ZN3std2io19default_read_to_end16small_probe_read17h46e6d98b653b039dE, symObjAddr: 0x877C, symBinAddr: 0x100BE6784, symSize: 0xEC } - - { offset: 0xD947F, size: 0x8, addend: 0x0, symName: __ZN3std2io19default_read_to_end16small_probe_read17hc99f2ad3b7812869E, symObjAddr: 0x8954, symBinAddr: 0x100BE6870, symSize: 0xEC } - - { offset: 0xD96DE, size: 0x8, addend: 0x0, symName: __ZN3std2io19default_read_to_end17hc985a6e5608ea08cE, symObjAddr: 0x8C6C, symBinAddr: 0x100BE695C, symSize: 0x250 } - - { offset: 0xD9BA4, size: 0x8, addend: 0x0, symName: __ZN3std2io19default_read_to_end17hf4efc2dbd1516746E, symObjAddr: 0x8EBC, symBinAddr: 0x100BE6BAC, symSize: 0x260 } - - { offset: 0xDA199, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h307741c9b6d71990E', symObjAddr: 0x4A648, symBinAddr: 0x100C0B054, symSize: 0xD8 } - - { offset: 0xDA28C, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h427fc96ba1017a47E', symObjAddr: 0x4A720, symBinAddr: 0x100C0B12C, symSize: 0x50 } - - { offset: 0xDA2B7, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h6181350c8e58758cE', symObjAddr: 0x4A770, symBinAddr: 0x100C0B17C, symSize: 0x50 } - - { offset: 0xDA2E2, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17ha6caeba6f4ac94f0E', symObjAddr: 0x4A898, symBinAddr: 0x100C0B1CC, symSize: 0x80 } - - { offset: 0xDA43F, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17hf55a3440d6800e4aE', symObjAddr: 0x4A918, symBinAddr: 0x100C0B24C, symSize: 0xA0 } - - { offset: 0xDA68D, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path11is_absolute17hfbb68a37cf4f6740E, symObjAddr: 0x1C800, symBinAddr: 0x100BF01B4, symSize: 0x20 } - - { offset: 0xDA6A5, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path11is_absolute17hfbb68a37cf4f6740E, symObjAddr: 0x1C800, symBinAddr: 0x100BF01B4, symSize: 0x20 } - - { offset: 0xDA6BB, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path11is_absolute17hfbb68a37cf4f6740E, symObjAddr: 0x1C800, symBinAddr: 0x100BF01B4, symSize: 0x20 } - - { offset: 0xDA6D0, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path11is_absolute17hfbb68a37cf4f6740E, symObjAddr: 0x1C800, symBinAddr: 0x100BF01B4, symSize: 0x20 } - - { offset: 0xDA6E6, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path11is_absolute17hfbb68a37cf4f6740E, symObjAddr: 0x1C800, symBinAddr: 0x100BF01B4, symSize: 0x20 } - - { offset: 0xDA712, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path13_strip_prefix17h070e5d4c6cb85d0eE, symObjAddr: 0x1C9B8, symBinAddr: 0x100BF01D4, symSize: 0x21C } - - { offset: 0xDA82D, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path5_join17h796419c6e162ac89E, symObjAddr: 0x1D2A0, symBinAddr: 0x100BF03F0, symSize: 0x19C } - - { offset: 0xDAD7C, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path6is_dir17hdffb7e0cd3e75cb8E, symObjAddr: 0x1D43C, symBinAddr: 0x100BF058C, symSize: 0x1C8 } - - { offset: 0xDB2D6, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components15len_before_body17h0c587bc4e5aad407E, symObjAddr: 0x1B9CC, symBinAddr: 0x100BEFBCC, symSize: 0x18C } - - { offset: 0xDB2EE, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components15len_before_body17h0c587bc4e5aad407E, symObjAddr: 0x1B9CC, symBinAddr: 0x100BEFBCC, symSize: 0x18C } - - { offset: 0xDB304, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components15len_before_body17h0c587bc4e5aad407E, symObjAddr: 0x1B9CC, symBinAddr: 0x100BEFBCC, symSize: 0x18C } - - { offset: 0xDB495, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components25parse_next_component_back17h3370b705fe3f614dE, symObjAddr: 0x1BB58, symBinAddr: 0x100BEFD58, symSize: 0x12C } - - { offset: 0xDB5BC, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components7as_path17hbf474adab0e008a2E, symObjAddr: 0x1BC84, symBinAddr: 0x100BEFE84, symSize: 0x330 } - - { offset: 0xDB92C, size: 0x8, addend: 0x0, symName: '__ZN55_$LT$std..path..PathBuf$u20$as$u20$core..fmt..Debug$GT$3fmt17h33af34a4b980948aE', symObjAddr: 0x33918, symBinAddr: 0x100BFE380, symSize: 0x28 } - - { offset: 0xDBACD, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..path..Component$u20$as$u20$core..cmp..PartialEq$GT$2eq17h5c9285254e32c8d6E', symObjAddr: 0x44120, symBinAddr: 0x100C09514, symSize: 0x134 } - - { offset: 0xDBC37, size: 0x8, addend: 0x0, symName: '__ZN80_$LT$std..path..Components$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1f184f15015d2f15E', symObjAddr: 0x4A048, symBinAddr: 0x100C0ACF0, symSize: 0x364 } - - { offset: 0xDBEEF, size: 0x8, addend: 0x0, symName: '__ZN95_$LT$std..path..Components$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h70dafec54cd4461cE', symObjAddr: 0x4C314, symBinAddr: 0x100C0BB2C, symSize: 0x344 } - - { offset: 0xDC0EE, size: 0x8, addend: 0x0, symName: __ZN3std2os2fd5owned7OwnedFd9try_clone17hb68f5ac71b436e02E, symObjAddr: 0xAFA4, symBinAddr: 0x100BE83D8, symSize: 0x68 } - - { offset: 0xDC27D, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$std..io..pipe..PipeReader$u20$as$u20$std..os..fd..owned..AsFd$GT$5as_fd17hd98daf84b547127aE', symObjAddr: 0x475BC, symBinAddr: 0x100C0A7D4, symSize: 0x8 } - - { offset: 0xDC29C, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$std..io..pipe..PipeReader$u20$as$u20$std..os..fd..owned..AsFd$GT$5as_fd17hd98daf84b547127aE', symObjAddr: 0x475BC, symBinAddr: 0x100C0A7D4, symSize: 0x8 } - - { offset: 0xDC2B2, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$std..io..pipe..PipeReader$u20$as$u20$std..os..fd..owned..AsFd$GT$5as_fd17hd98daf84b547127aE', symObjAddr: 0x475BC, symBinAddr: 0x100C0A7D4, symSize: 0x8 } - - { offset: 0xDC2C8, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$std..io..pipe..PipeReader$u20$as$u20$std..os..fd..owned..AsFd$GT$5as_fd17hd98daf84b547127aE', symObjAddr: 0x475BC, symBinAddr: 0x100C0A7D4, symSize: 0x8 } - - { offset: 0xDC305, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net4addr10SocketAddr11as_pathname17hb73b2995a343788aE, symObjAddr: 0xB050, symBinAddr: 0x100BE8440, symSize: 0x48 } - - { offset: 0xDC399, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net4addr11sockaddr_un17h6767c23dcf33dd3fE, symObjAddr: 0xB098, symBinAddr: 0x100BE8488, symSize: 0x134 } - - { offset: 0xDC4B0, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream10local_addr17h7ff250dd31e1ca77E, symObjAddr: 0xB1CC, symBinAddr: 0x100BE85BC, symSize: 0xE4 } - - { offset: 0xDC5BF, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream10take_error17h80346cd8f1e4ae65E, symObjAddr: 0xB2B0, symBinAddr: 0x100BE86A0, symSize: 0x74 } - - { offset: 0xDC6AD, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream16set_read_timeout17hf1ecb466bb1619c1E, symObjAddr: 0xB5EC, symBinAddr: 0x100BE8714, symSize: 0xC0 } - - { offset: 0xDC775, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream17set_write_timeout17h048b19cc7b946662E, symObjAddr: 0xB6AC, symBinAddr: 0x100BE87D4, symSize: 0xC0 } - - { offset: 0xDC83D, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream8shutdown17h085d8839172dc492E, symObjAddr: 0xB80C, symBinAddr: 0x100BE8894, symSize: 0x3C } - - { offset: 0xDC8E1, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream9peer_addr17h510b3ab406ff769bE, symObjAddr: 0xB848, symBinAddr: 0x100BE88D0, symSize: 0xE4 } - - { offset: 0xDCA18, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net8datagram12UnixDatagram4recv17h231af8523fcb40fbE, symObjAddr: 0xBAE8, symBinAddr: 0x100BE89B4, symSize: 0x44 } - - { offset: 0xDCAE4, size: 0x8, addend: 0x0, symName: __ZN3std7process5Child4kill17hc847b578b154957aE, symObjAddr: 0x21060, symBinAddr: 0x100BF1A6C, symSize: 0x4C } - - { offset: 0xDCB8F, size: 0x8, addend: 0x0, symName: __ZN3std7process5Child8try_wait17h1d6308e2c487b9c5E, symObjAddr: 0x21164, symBinAddr: 0x100BF1AB8, symSize: 0xB0 } - - { offset: 0xDCC59, size: 0x8, addend: 0x0, symName: __ZN3std7process5abort17h2f4325b8d66c2416E, symObjAddr: 0x21214, symBinAddr: 0x100C6F1C0, symSize: 0xC } - - { offset: 0xDCC7A, size: 0x8, addend: 0x0, symName: __ZN3std7process7Command5spawn17hea0f0acdf447453cE, symObjAddr: 0x212BC, symBinAddr: 0x100BF1B68, symSize: 0x78 } - - { offset: 0xDCCAC, size: 0x8, addend: 0x0, symName: __ZN3std7process7Command6output17h427178a0d04fd666E, symObjAddr: 0x21334, symBinAddr: 0x100BF1BE0, symSize: 0x2EC } - - { offset: 0xDD27C, size: 0x8, addend: 0x0, symName: '__ZN118_$LT$std..thread..thread_name_string..ThreadNameString$u20$as$u20$core..convert..From$LT$alloc..string..String$GT$$GT$4from17h508dfaf2a0ec8e0eE', symObjAddr: 0xAA0, symBinAddr: 0x100BDF980, symSize: 0x128 } - - { offset: 0xDD573, size: 0x8, addend: 0x0, symName: __ZN3std6thread5local18panic_access_error17h8e5b1583a281a7a9E, symObjAddr: 0x1FE30, symBinAddr: 0x100C6EFA0, symSize: 0x44 } - - { offset: 0xDD5C8, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$std..thread..local..AccessError$u20$as$u20$core..fmt..Debug$GT$3fmt17hcc430accc785db4cE', symObjAddr: 0x46AC8, symBinAddr: 0x100C09DE8, symSize: 0x38 } - - { offset: 0xDD6E6, size: 0x8, addend: 0x0, symName: __ZN3std6thread7current11set_current17h304aba8c366fbe47E, symObjAddr: 0x2030C, symBinAddr: 0x100BF1434, symSize: 0xA4 } - - { offset: 0xDD8A4, size: 0x8, addend: 0x0, symName: __ZN3std6thread7current12init_current17hd2bd631e2d2f39c7E, symObjAddr: 0x203B0, symBinAddr: 0x100C6F024, symSize: 0x164 } - - { offset: 0xDDBE9, size: 0x8, addend: 0x0, symName: __ZN3std6thread7current7current17he1f800f3a0ae599bE, symObjAddr: 0x20658, symBinAddr: 0x100BF14D8, symSize: 0x48 } - - { offset: 0xDDD22, size: 0x8, addend: 0x0, symName: __ZN3std6thread8ThreadId3new17h5ee0c2895c53c427E, symObjAddr: 0x206A0, symBinAddr: 0x100BF1520, symSize: 0x44 } - - { offset: 0xDDE20, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread12park_timeout17h76e4126481fb49ecE, symObjAddr: 0x1FF28, symBinAddr: 0x100BF1098, symSize: 0x90 } - - { offset: 0xDDF56, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread3new17h2a23c99fc4ff5bccE, symObjAddr: 0x1FFB8, symBinAddr: 0x100BF1128, symSize: 0x158 } - - { offset: 0xDE250, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4name17h3e0d9a964b1e79b1E, symObjAddr: 0x20110, symBinAddr: 0x100BF1280, symSize: 0x48 } - - { offset: 0xDE268, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4name17h3e0d9a964b1e79b1E, symObjAddr: 0x20110, symBinAddr: 0x100BF1280, symSize: 0x48 } - - { offset: 0xDE27E, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4name17h3e0d9a964b1e79b1E, symObjAddr: 0x20110, symBinAddr: 0x100BF1280, symSize: 0x48 } - - { offset: 0xDE294, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4name17h3e0d9a964b1e79b1E, symObjAddr: 0x20110, symBinAddr: 0x100BF1280, symSize: 0x48 } - - { offset: 0xDE2AA, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4name17h3e0d9a964b1e79b1E, symObjAddr: 0x20110, symBinAddr: 0x100BF1280, symSize: 0x48 } - - { offset: 0xDE2C0, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4name17h3e0d9a964b1e79b1E, symObjAddr: 0x20110, symBinAddr: 0x100BF1280, symSize: 0x48 } - - { offset: 0xDE35E, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4park17h1c9f2bf188115eb7E, symObjAddr: 0x20158, symBinAddr: 0x100BF12C8, symSize: 0x48 } - - { offset: 0xDE453, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread5cname17h810fe7fb3e1633b1E, symObjAddr: 0x201A0, symBinAddr: 0x100BF1310, symSize: 0x44 } - - { offset: 0xDE472, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread5cname17h810fe7fb3e1633b1E, symObjAddr: 0x201A0, symBinAddr: 0x100BF1310, symSize: 0x44 } - - { offset: 0xDE488, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread5cname17h810fe7fb3e1633b1E, symObjAddr: 0x201A0, symBinAddr: 0x100BF1310, symSize: 0x44 } - - { offset: 0xDE49E, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread5cname17h810fe7fb3e1633b1E, symObjAddr: 0x201A0, symBinAddr: 0x100BF1310, symSize: 0x44 } - - { offset: 0xDE4B4, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread5cname17h810fe7fb3e1633b1E, symObjAddr: 0x201A0, symBinAddr: 0x100BF1310, symSize: 0x44 } - - { offset: 0xDE4CA, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread5cname17h810fe7fb3e1633b1E, symObjAddr: 0x201A0, symBinAddr: 0x100BF1310, symSize: 0x44 } - - { offset: 0xDE62A, size: 0x8, addend: 0x0, symName: __ZN3std6thread21available_parallelism17h5fb07f321e5feb3aE, symObjAddr: 0x1FD18, symBinAddr: 0x100BF0ECC, symSize: 0x50 } - - { offset: 0xDE6B6, size: 0x8, addend: 0x0, symName: __ZN3std6thread4park17h58a22be9b37808a4E, symObjAddr: 0x1FD68, symBinAddr: 0x100BF0F1C, symSize: 0xC8 } - - { offset: 0xDE916, size: 0x8, addend: 0x0, symName: __ZN3std6thread5sleep17hbbb1506f4c7bd0e7E, symObjAddr: 0x1FE74, symBinAddr: 0x100BF0FE4, symSize: 0xB4 } - - { offset: 0xDE989, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData29decrement_num_running_threads17hb2861865ef00c880E, symObjAddr: 0x201EC, symBinAddr: 0x100BF1354, symSize: 0x44 } - - { offset: 0xDEACC, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData29increment_num_running_threads17h4a781a736a15c7b0E, symObjAddr: 0x20230, symBinAddr: 0x100BF1398, symSize: 0x20 } - - { offset: 0xDEAEA, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData29increment_num_running_threads17h4a781a736a15c7b0E, symObjAddr: 0x20230, symBinAddr: 0x100BF1398, symSize: 0x20 } - - { offset: 0xDEAFF, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData29increment_num_running_threads17h4a781a736a15c7b0E, symObjAddr: 0x20230, symBinAddr: 0x100BF1398, symSize: 0x20 } - - { offset: 0xDEB29, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData8overflow17h3b823ff29a9c3139E, symObjAddr: 0x20250, symBinAddr: 0x100C6EFE4, symSize: 0x40 } - - { offset: 0xDEB61, size: 0x8, addend: 0x0, symName: __ZN3std6thread7Builder4name17h091ef3ed2186dbbfE, symObjAddr: 0x20290, symBinAddr: 0x100BF13B8, symSize: 0x7C } - - { offset: 0xDEC39, size: 0x8, addend: 0x0, symName: __ZN3std6thread8ThreadId3new9exhausted17h68ab401095d394baE, symObjAddr: 0x206E4, symBinAddr: 0x100C6F188, symSize: 0x38 } - - { offset: 0xDECA2, size: 0x8, addend: 0x0, symName: __ZN3std6thread9spawnhook15ChildSpawnHooks3run17hc73a94f78f475035E, symObjAddr: 0x207F4, symBinAddr: 0x100BF1564, symSize: 0x268 } - - { offset: 0xDF408, size: 0x8, addend: 0x0, symName: __ZN3std6thread9spawnhook15run_spawn_hooks17h49054efdbf16bad4E, symObjAddr: 0x20A5C, symBinAddr: 0x100BF17CC, symSize: 0x29C } - - { offset: 0xDFA64, size: 0x8, addend: 0x0, symName: '__ZN76_$LT$std..thread..spawnhook..SpawnHooks$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf5b4bcea6affec90E', symObjAddr: 0x48980, symBinAddr: 0x100C0A97C, symSize: 0x104 } - - { offset: 0xDFD95, size: 0x8, addend: 0x0, symName: __ZN3std6thread9yield_now17hee9cddc862399ac8E, symObjAddr: 0x20CF8, symBinAddr: 0x100BF1A68, symSize: 0x4 } - - { offset: 0xDFDB4, size: 0x8, addend: 0x0, symName: __ZN3std6thread9yield_now17hee9cddc862399ac8E, symObjAddr: 0x20CF8, symBinAddr: 0x100BF1A68, symSize: 0x4 } - - { offset: 0xDFDF0, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$std..thread..PanicGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17h98aa6800d62ae13dE', symObjAddr: 0x460FC, symBinAddr: 0x100C72648, symSize: 0x44 } - - { offset: 0xDFE50, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs5print17BacktraceFrameFmt21print_raw_with_column17hbc70be85f9e1f228E, symObjAddr: 0xC48, symBinAddr: 0x100BDFAE4, symSize: 0x438 } - - { offset: 0xE00D7, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9backtrace9libunwind5trace8trace_fn17h1923d6bda419f666E, symObjAddr: 0x1080, symBinAddr: 0x100BDFF1C, symSize: 0x48 } - - { offset: 0xE0204, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli4mmap17h56d1d2061b1c0339E, symObjAddr: 0x10C8, symBinAddr: 0x100BDFF64, symSize: 0x1DC } - - { offset: 0xE073E, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho11find_header17hd5a6155137b0335aE, symObjAddr: 0x12A4, symBinAddr: 0x100BE0140, symSize: 0x1D4 } - - { offset: 0xE075C, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho11find_header17hd5a6155137b0335aE, symObjAddr: 0x12A4, symBinAddr: 0x100BE0140, symSize: 0x1D4 } - - { offset: 0xE0771, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho11find_header17hd5a6155137b0335aE, symObjAddr: 0x12A4, symBinAddr: 0x100BE0140, symSize: 0x1D4 } - - { offset: 0xE0786, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho11find_header17hd5a6155137b0335aE, symObjAddr: 0x12A4, symBinAddr: 0x100BE0140, symSize: 0x1D4 } - - { offset: 0xE079B, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho11find_header17hd5a6155137b0335aE, symObjAddr: 0x12A4, symBinAddr: 0x100BE0140, symSize: 0x1D4 } - - { offset: 0xE07B1, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho11find_header17hd5a6155137b0335aE, symObjAddr: 0x12A4, symBinAddr: 0x100BE0140, symSize: 0x1D4 } - - { offset: 0xE07C7, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho11find_header17hd5a6155137b0335aE, symObjAddr: 0x12A4, symBinAddr: 0x100BE0140, symSize: 0x1D4 } - - { offset: 0xE0F0C, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho6Object5parse17hd442739e3afdbe3fE, symObjAddr: 0x1478, symBinAddr: 0x100BE0314, symSize: 0xC9C } - - { offset: 0xE2D08, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho6Object7section17h64eadef34f4b86d5E, symObjAddr: 0x2114, symBinAddr: 0x100BE0FB0, symSize: 0x154 } - - { offset: 0xE3126, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli7Context11find_frames17h0b5dd36bc5ddf6e5E, symObjAddr: 0x2268, symBinAddr: 0x100BE1104, symSize: 0x394 } - - { offset: 0xE350F, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli7Context3new17haaa7132b0402a195E, symObjAddr: 0x25FC, symBinAddr: 0x100BE1498, symSize: 0x1FA8 } - - { offset: 0xE76B6, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli7resolve17h75c802063f9cd4e1E, symObjAddr: 0x45A4, symBinAddr: 0x100BE3440, symSize: 0x25A4 } - - { offset: 0xED0ED, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize6Symbol4name17he5af028317cc6f6eE, symObjAddr: 0x6B80, symBinAddr: 0x100BE59E4, symSize: 0xE4 } - - { offset: 0xED2D6, size: 0x8, addend: 0x0, symName: '__ZN79_$LT$std..backtrace_rs..symbolize..SymbolName$u20$as$u20$core..fmt..Display$GT$3fmt17hf3232031926e14d2E', symObjAddr: 0x49814, symBinAddr: 0x100C0AB80, symSize: 0x104 } - - { offset: 0xED3BD, size: 0x8, addend: 0x0, symName: __ZN3std2fs11OpenOptions5_open17hf9dfb02cfccd407dE, symObjAddr: 0x7198, symBinAddr: 0x100BE5FFC, symSize: 0xEC } - - { offset: 0xED493, size: 0x8, addend: 0x0, symName: __ZN3std2fs4File15set_permissions17hd4a103bd6c8545d2E, symObjAddr: 0x7530, symBinAddr: 0x100BE6358, symSize: 0x54 } - - { offset: 0xED54D, size: 0x8, addend: 0x0, symName: __ZN3std2fs4File9try_clone17ha71701285185834cE, symObjAddr: 0x7944, symBinAddr: 0x100BE63AC, symSize: 0x68 } - - { offset: 0xED662, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry4path17ha5972829583073eeE, symObjAddr: 0x8060, symBinAddr: 0x100BE6610, symSize: 0x18 } - - { offset: 0xED67A, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry4path17ha5972829583073eeE, symObjAddr: 0x8060, symBinAddr: 0x100BE6610, symSize: 0x18 } - - { offset: 0xED690, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry4path17ha5972829583073eeE, symObjAddr: 0x8060, symBinAddr: 0x100BE6610, symSize: 0x18 } - - { offset: 0xED6A6, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry4path17ha5972829583073eeE, symObjAddr: 0x8060, symBinAddr: 0x100BE6610, symSize: 0x18 } - - { offset: 0xED6BC, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry4path17ha5972829583073eeE, symObjAddr: 0x8060, symBinAddr: 0x100BE6610, symSize: 0x18 } - - { offset: 0xED811, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry9file_name17h76025a8e89f5e0a5E, symObjAddr: 0x8118, symBinAddr: 0x100BE6628, symSize: 0x70 } - - { offset: 0xED96F, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry9file_type17h253c3c64df36dd5cE, symObjAddr: 0x8188, symBinAddr: 0x100BE6698, symSize: 0x88 } - - { offset: 0xED9BD, size: 0x8, addend: 0x0, symName: __ZN3std2fs10DirBuilder14create_dir_all17h68f000f5d0fba603E, symObjAddr: 0x6C64, symBinAddr: 0x100BE5AC8, symSize: 0x46C } - - { offset: 0xEE1F6, size: 0x8, addend: 0x0, symName: __ZN3std2fs10DirBuilder7_create17h14f28987dc0a4cf6E, symObjAddr: 0x70D0, symBinAddr: 0x100BE5F34, symSize: 0xC8 } - - { offset: 0xEE323, size: 0x8, addend: 0x0, symName: __ZN3std2fs14read_to_string5inner17hba1ec49165be1912E, symObjAddr: 0x7284, symBinAddr: 0x100BE60E8, symSize: 0x270 } - - { offset: 0xEE970, size: 0x8, addend: 0x0, symName: __ZN3std2fs4read5inner17h9b01ff119d7da6a2E, symObjAddr: 0x79AC, symBinAddr: 0x100BE6414, symSize: 0x1FC } - - { offset: 0xEEEA7, size: 0x8, addend: 0x0, symName: '__ZN52_$LT$$RF$std..fs..File$u20$as$u20$std..io..Write$GT$14write_vectored17hdb049723b5dfc47cE', symObjAddr: 0x32834, symBinAddr: 0x100BFDF10, symSize: 0x58 } - - { offset: 0xEEF9E, size: 0x8, addend: 0x0, symName: '__ZN52_$LT$$RF$std..fs..File$u20$as$u20$std..io..Write$GT$5write17h66230aecf3f7a69bE', symObjAddr: 0x3288C, symBinAddr: 0x100BFDF68, symSize: 0x58 } - - { offset: 0xEF0AA, size: 0x8, addend: 0x0, symName: '__ZN48_$LT$std..fs..File$u20$as$u20$std..io..Write$GT$5write17h40c980cef635504aE', symObjAddr: 0x23E20, symBinAddr: 0x100BF34EC, symSize: 0x54 } - - { offset: 0xEF1F7, size: 0x8, addend: 0x0, symName: '__ZN51_$LT$$RF$std..fs..File$u20$as$u20$std..io..Read$GT$11read_to_end17h6f42b1280329bbbaE', symObjAddr: 0x322F0, symBinAddr: 0x100BFDC64, symSize: 0x138 } - - { offset: 0xEF4E6, size: 0x8, addend: 0x0, symName: '__ZN51_$LT$$RF$std..fs..File$u20$as$u20$std..io..Read$GT$14read_to_string17h0fe38c3a1308df49E', symObjAddr: 0x32428, symBinAddr: 0x100BFDD9C, symSize: 0x164 } - - { offset: 0xEF8BB, size: 0x8, addend: 0x0, symName: __ZN3std2fs8Metadata8modified17h9de56c222b3101fdE, symObjAddr: 0x82D8, symBinAddr: 0x100BE6720, symSize: 0x64 } - - { offset: 0xEF95D, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$11read_to_end17ha7b2b390cc78bf6bE', symObjAddr: 0x23B94, symBinAddr: 0x100BF3384, symSize: 0x24 } - - { offset: 0xEF971, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$13read_vectored17h34abd5212809428dE', symObjAddr: 0x23BB8, symBinAddr: 0x100BF33A8, symSize: 0x54 } - - { offset: 0xEFAA9, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$14read_to_string17hd3d8ac4ac033a2a4E', symObjAddr: 0x23C0C, symBinAddr: 0x100BF33FC, symSize: 0x24 } - - { offset: 0xEFABD, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$4read17h2e5e58e3e0fca49eE', symObjAddr: 0x23C30, symBinAddr: 0x100BF3420, symSize: 0x54 } - - { offset: 0xEFBF5, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$8read_buf17h80f09fe02509aaaeE', symObjAddr: 0x23C84, symBinAddr: 0x100BF3474, symSize: 0x78 } - - { offset: 0xEFE47, size: 0x8, addend: 0x0, symName: '__ZN75_$LT$std..fs..ReadDir$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0adea9aba7bfe783E', symObjAddr: 0x48174, symBinAddr: 0x100C0A7F0, symSize: 0x18C } - - { offset: 0xF0344, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..ffi..os_str..Display$u20$as$u20$core..fmt..Display$GT$3fmt17hd588eae5435de492E', symObjAddr: 0x45A00, symBinAddr: 0x100C09BAC, symSize: 0xAC } - - { offset: 0xF03D0, size: 0x8, addend: 0x0, symName: '__ZN3std4sync6poison5mutex14Mutex$LT$T$GT$4lock17h1f09923be7dd830dE', symObjAddr: 0x1EDC8, symBinAddr: 0x100BF0958, symSize: 0x78 } - - { offset: 0xF06C8, size: 0x8, addend: 0x0, symName: '__ZN3std4sync4once4Once15call_once_force28_$u7b$$u7b$closure$u7d$$u7d$17h9d38321cd98d6efbE', symObjAddr: 0x1E8BC, symBinAddr: 0x100BF0754, symSize: 0x194 } - - { offset: 0xF0A38, size: 0x8, addend: 0x0, symName: '__ZN3std4sync4once4Once15call_once_force28_$u7b$$u7b$closure$u7d$$u7d$17hab87cbe584998266E', symObjAddr: 0x1EAB0, symBinAddr: 0x100BF08E8, symSize: 0x70 } - - { offset: 0xF0BD9, size: 0x8, addend: 0x0, symName: '__ZN3std4sync9once_lock17OnceLock$LT$T$GT$10initialize17ha7fce30d4e4b5780E', symObjAddr: 0x1F4CC, symBinAddr: 0x100C6EF08, symSize: 0x60 } - - { offset: 0xF0C06, size: 0x8, addend: 0x0, symName: '__ZN3std4sync9once_lock17OnceLock$LT$T$GT$10initialize17ha7fce30d4e4b5780E', symObjAddr: 0x1F4CC, symBinAddr: 0x100C6EF08, symSize: 0x60 } - - { offset: 0xF0C1B, size: 0x8, addend: 0x0, symName: '__ZN3std4sync9once_lock17OnceLock$LT$T$GT$10initialize17ha7fce30d4e4b5780E', symObjAddr: 0x1F4CC, symBinAddr: 0x100C6EF08, symSize: 0x60 } - - { offset: 0xF0C30, size: 0x8, addend: 0x0, symName: '__ZN3std4sync9once_lock17OnceLock$LT$T$GT$10initialize17ha7fce30d4e4b5780E', symObjAddr: 0x1F4CC, symBinAddr: 0x100C6EF08, symSize: 0x60 } - - { offset: 0xF0D6C, size: 0x8, addend: 0x0, symName: __ZN3std4sync4mpmc7context7Context3new17h286506fcbf35e4c8E, symObjAddr: 0x1E758, symBinAddr: 0x100C6ED88, symSize: 0x148 } - - { offset: 0xF1183, size: 0x8, addend: 0x0, symName: __ZN3std4sync9lazy_lock14panic_poisoned17h9c4c995a75b37abbE, symObjAddr: 0x1F43C, symBinAddr: 0x100C6EED0, symSize: 0x38 } - - { offset: 0xF1202, size: 0x8, addend: 0x0, symName: __ZN3std5panic13resume_unwind17h70d5b04f59a20b48E, symObjAddr: 0x1F9AC, symBinAddr: 0x100C6EF94, symSize: 0xC } - - { offset: 0xF1232, size: 0x8, addend: 0x0, symName: __ZN3std5panic19get_backtrace_style17h3479dd24d1b0bdcbE, symObjAddr: 0x1F9B8, symBinAddr: 0x100BF0DB0, symSize: 0x11C } - - { offset: 0xF1251, size: 0x8, addend: 0x0, symName: __ZN3std5panic19get_backtrace_style17h3479dd24d1b0bdcbE, symObjAddr: 0x1F9B8, symBinAddr: 0x100BF0DB0, symSize: 0x11C } - - { offset: 0xF1267, size: 0x8, addend: 0x0, symName: __ZN3std5panic19get_backtrace_style17h3479dd24d1b0bdcbE, symObjAddr: 0x1F9B8, symBinAddr: 0x100BF0DB0, symSize: 0x11C } - - { offset: 0xF16FF, size: 0x8, addend: 0x0, symName: __ZN3std3env11current_dir17h2ac95328d49795b0E, symObjAddr: 0xC83C, symBinAddr: 0x100BE89F8, symSize: 0x18C } - - { offset: 0xF1AEC, size: 0x8, addend: 0x0, symName: __ZN3std3env4_var17hcda43e04445703cfE, symObjAddr: 0xCA94, symBinAddr: 0x100BE8B84, symSize: 0x98 } - - { offset: 0xF1BF4, size: 0x8, addend: 0x0, symName: __ZN3std3env7_var_os17h2f606c77ff80c31fE, symObjAddr: 0xCB34, symBinAddr: 0x100BE8C1C, symSize: 0x164 } - - { offset: 0xF1E93, size: 0x8, addend: 0x0, symName: __ZN3std3env7vars_os17h493612a5ff62cce5E, symObjAddr: 0xCE7C, symBinAddr: 0x100BE8D80, symSize: 0x3CC } - - { offset: 0xF2850, size: 0x8, addend: 0x0, symName: __ZN3std3net11socket_addr11lookup_host17h9e4c583fce5b4f4aE, symObjAddr: 0xD98C, symBinAddr: 0x100BE914C, symSize: 0x3D8 } - - { offset: 0xF2E14, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$str$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17h7f2a430b1badebccE', symObjAddr: 0x428C0, symBinAddr: 0x100C08D04, symSize: 0x19C } - - { offset: 0xF30EC, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$$LP$$RF$str$C$u16$RP$$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17h640fbebf4ee46045E', symObjAddr: 0x4953C, symBinAddr: 0x100C0AA80, symSize: 0xF4 } - - { offset: 0xF31B4, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc92f4c767b0c726E', symObjAddr: 0x49630, symBinAddr: 0x100C0AB74, symSize: 0xC } - - { offset: 0xF31D3, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc92f4c767b0c726E', symObjAddr: 0x49630, symBinAddr: 0x100C0AB74, symSize: 0xC } - - { offset: 0xF31E9, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc92f4c767b0c726E', symObjAddr: 0x49630, symBinAddr: 0x100C0AB74, symSize: 0xC } - - { offset: 0xF31FF, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc92f4c767b0c726E', symObjAddr: 0x49630, symBinAddr: 0x100C0AB74, symSize: 0xC } - - { offset: 0xF3215, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc92f4c767b0c726E', symObjAddr: 0x49630, symBinAddr: 0x100C0AB74, symSize: 0xC } - - { offset: 0xF322B, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc92f4c767b0c726E', symObjAddr: 0x49630, symBinAddr: 0x100C0AB74, symSize: 0xC } - - { offset: 0xF3241, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc92f4c767b0c726E', symObjAddr: 0x49630, symBinAddr: 0x100C0AB74, symSize: 0xC } - - { offset: 0xF3257, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc92f4c767b0c726E', symObjAddr: 0x49630, symBinAddr: 0x100C0AB74, symSize: 0xC } - - { offset: 0xF327E, size: 0x8, addend: 0x0, symName: __ZN3std3net3tcp11TcpListener10local_addr17h6dc6015e1522849aE, symObjAddr: 0xDD64, symBinAddr: 0x100BE9524, symSize: 0xC } - - { offset: 0xF32A0, size: 0x8, addend: 0x0, symName: __ZN3std3net3tcp9TcpStream11set_nodelay17ha48055be7ee730bfE, symObjAddr: 0xE168, symBinAddr: 0x100BE9530, symSize: 0x54 } - - { offset: 0xF3371, size: 0x8, addend: 0x0, symName: __ZN3std3net3tcp9TcpStream15connect_timeout17hab44dc69f93d9b8dE, symObjAddr: 0xE37C, symBinAddr: 0x100BE9584, symSize: 0x4A0 } - - { offset: 0xF3BC5, size: 0x8, addend: 0x0, symName: __ZN3std3net3tcp9TcpStream9peer_addr17hc65f385db0d39c3dE, symObjAddr: 0xE924, symBinAddr: 0x100BE9A24, symSize: 0xC } - - { offset: 0xF3BE6, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$std..net..tcp..TcpStream$u20$as$u20$std..io..Read$GT$13read_vectored17ha594971d1ca51b78E', symObjAddr: 0x348C8, symBinAddr: 0x100BFE5E8, symSize: 0x54 } - - { offset: 0xF3CF9, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$std..net..tcp..TcpStream$u20$as$u20$std..io..Read$GT$8read_buf17h368abbc1b23d5f00E', symObjAddr: 0x3491C, symBinAddr: 0x100BFE63C, symSize: 0x70 } - - { offset: 0xF3E8E, size: 0x8, addend: 0x0, symName: '__ZN59_$LT$std..net..tcp..TcpStream$u20$as$u20$std..io..Write$GT$14write_vectored17h5983913ba40d5612E', symObjAddr: 0x35CA0, symBinAddr: 0x100BFE72C, symSize: 0x54 } - - { offset: 0xF3FAA, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..net..tcp..TcpStream$u20$as$u20$core..fmt..Debug$GT$3fmt17h8cddaf7c8006e44dE', symObjAddr: 0x44118, symBinAddr: 0x100C0950C, symSize: 0x4 } - - { offset: 0xF3FCC, size: 0x8, addend: 0x0, symName: '__ZN62_$LT$$RF$std..net..tcp..TcpStream$u20$as$u20$std..io..Read$GT$4read17h1ff538db7edd747bE', symObjAddr: 0x4484C, symBinAddr: 0x100C09648, symSize: 0x48 } - - { offset: 0xF40A5, size: 0x8, addend: 0x0, symName: '__ZN63_$LT$$RF$std..net..tcp..TcpStream$u20$as$u20$std..io..Write$GT$5write17h20a632146068eeaaE', symObjAddr: 0x45018, symBinAddr: 0x100C096B8, symSize: 0x50 } - - { offset: 0xF4166, size: 0x8, addend: 0x0, symName: '__ZN63_$LT$std..net..tcp..TcpListener$u20$as$u20$core..fmt..Debug$GT$3fmt17hd3346690639d5f37E', symObjAddr: 0x451B4, symBinAddr: 0x100C09708, symSize: 0x4 } - - { offset: 0xF418F, size: 0x8, addend: 0x0, symName: __ZN3std3net3udp9UdpSocket4send17h930b9702ea650b1fE, symObjAddr: 0xED70, symBinAddr: 0x100BE9A30, symSize: 0x4C } - - { offset: 0xF4249, size: 0x8, addend: 0x0, symName: __ZN3std3net3udp9UdpSocket9recv_from17h180a68300592df8fE, symObjAddr: 0xEF98, symBinAddr: 0x100BE9A7C, symSize: 0x18 } - - { offset: 0xF4297, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..net..udp..UdpSocket$u20$as$u20$core..fmt..Debug$GT$3fmt17h4ac398431b43665eE', symObjAddr: 0x4411C, symBinAddr: 0x100C09510, symSize: 0x4 } - - { offset: 0xF42F9, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant14duration_since17hd8ae76b216db33efE, symObjAddr: 0x1F720, symBinAddr: 0x100BF0B60, symSize: 0x4C } - - { offset: 0xF4368, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant22checked_duration_since17h8e714f6ebebcf524E, symObjAddr: 0x1F76C, symBinAddr: 0x100BF0BAC, symSize: 0x50 } - - { offset: 0xF43AA, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant3now17h08b843682fb1c5c5E, symObjAddr: 0x1F7BC, symBinAddr: 0x100BF0BFC, symSize: 0x8 } - - { offset: 0xF43C2, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant3now17h08b843682fb1c5c5E, symObjAddr: 0x1F7BC, symBinAddr: 0x100BF0BFC, symSize: 0x8 } - - { offset: 0xF43D5, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant7elapsed17he0e842acfbb92ff7E, symObjAddr: 0x1F7C4, symBinAddr: 0x100BF0C04, symSize: 0x6C } - - { offset: 0xF44D0, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$GT$3sub17hfa42327d934c30aaE', symObjAddr: 0x42870, symBinAddr: 0x100C08CB4, symSize: 0x50 } - - { offset: 0xF455D, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime11checked_add17h6d8bcaaa7e879268E, symObjAddr: 0x1F590, symBinAddr: 0x100BF09D0, symSize: 0x70 } - - { offset: 0xF4622, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime11checked_sub17hfaa669f69382c46bE, symObjAddr: 0x1F600, symBinAddr: 0x100BF0A40, symSize: 0x60 } - - { offset: 0xF46E7, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime14duration_since17he33fca0c9b573416E, symObjAddr: 0x1F660, symBinAddr: 0x100BF0AA0, symSize: 0x50 } - - { offset: 0xF4728, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime3now17h05301f37885def99E, symObjAddr: 0x1F6B0, symBinAddr: 0x100BF0AF0, symSize: 0x8 } - - { offset: 0xF4740, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime3now17h05301f37885def99E, symObjAddr: 0x1F6B0, symBinAddr: 0x100BF0AF0, symSize: 0x8 } - - { offset: 0xF476F, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime7elapsed17hd7b8580a91c42480E, symObjAddr: 0x1F6B8, symBinAddr: 0x100BF0AF8, symSize: 0x68 } - - { offset: 0xF481E, size: 0x8, addend: 0x0, symName: '__ZN55_$LT$std..time..Instant$u20$as$u20$core..fmt..Debug$GT$3fmt17h7520f20ddd93c905E', symObjAddr: 0x33940, symBinAddr: 0x100BFE3A8, symSize: 0x80 } - - { offset: 0xF4857, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$std..time..SystemTime$u20$as$u20$core..fmt..Debug$GT$3fmt17hab0c0ff24004f1d0E', symObjAddr: 0x34A6C, symBinAddr: 0x100BFE6AC, symSize: 0x80 } - - { offset: 0xF4890, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17h7327d91fd5193a85E', symObjAddr: 0x4B908, symBinAddr: 0x100C0B870, symSize: 0x64 } - - { offset: 0xF48A8, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17h7327d91fd5193a85E', symObjAddr: 0x4B908, symBinAddr: 0x100C0B870, symSize: 0x64 } - - { offset: 0xF48BE, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17h7327d91fd5193a85E', symObjAddr: 0x4B908, symBinAddr: 0x100C0B870, symSize: 0x64 } - - { offset: 0xF48D4, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17h7327d91fd5193a85E', symObjAddr: 0x4B908, symBinAddr: 0x100C0B870, symSize: 0x64 } - - { offset: 0xF48EA, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17h7327d91fd5193a85E', symObjAddr: 0x4B908, symBinAddr: 0x100C0B870, symSize: 0x64 } - - { offset: 0xF48FF, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17h7327d91fd5193a85E', symObjAddr: 0x4B908, symBinAddr: 0x100C0B870, symSize: 0x64 } - - { offset: 0xF4915, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17h7327d91fd5193a85E', symObjAddr: 0x4B908, symBinAddr: 0x100C0B870, symSize: 0x64 } - - { offset: 0xF49B0, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$LT$core..time..Duration$GT$$GT$3sub17hf6e43b8df29ed818E', symObjAddr: 0x4B96C, symBinAddr: 0x100C0B8D4, symSize: 0x5C } - - { offset: 0xF49F2, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$LT$core..time..Duration$GT$$GT$3sub17hf6e43b8df29ed818E', symObjAddr: 0x4B96C, symBinAddr: 0x100C0B8D4, symSize: 0x5C } - - { offset: 0xF4A07, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$LT$core..time..Duration$GT$$GT$3sub17hf6e43b8df29ed818E', symObjAddr: 0x4B96C, symBinAddr: 0x100C0B8D4, symSize: 0x5C } - - { offset: 0xF4A1D, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$LT$core..time..Duration$GT$$GT$3sub17hf6e43b8df29ed818E', symObjAddr: 0x4B96C, symBinAddr: 0x100C0B8D4, symSize: 0x5C } - - { offset: 0xF4AB8, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hed8fb8b08ad6acdaE', symObjAddr: 0x4BB30, symBinAddr: 0x100C0BA68, symSize: 0x64 } - - { offset: 0xF4AD0, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hed8fb8b08ad6acdaE', symObjAddr: 0x4BB30, symBinAddr: 0x100C0BA68, symSize: 0x64 } - - { offset: 0xF4AE6, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hed8fb8b08ad6acdaE', symObjAddr: 0x4BB30, symBinAddr: 0x100C0BA68, symSize: 0x64 } - - { offset: 0xF4AFC, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hed8fb8b08ad6acdaE', symObjAddr: 0x4BB30, symBinAddr: 0x100C0BA68, symSize: 0x64 } - - { offset: 0xF4B11, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hed8fb8b08ad6acdaE', symObjAddr: 0x4BB30, symBinAddr: 0x100C0BA68, symSize: 0x64 } - - { offset: 0xF4B26, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hed8fb8b08ad6acdaE', symObjAddr: 0x4BB30, symBinAddr: 0x100C0BA68, symSize: 0x64 } - - { offset: 0xF4B3C, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hed8fb8b08ad6acdaE', symObjAddr: 0x4BB30, symBinAddr: 0x100C0BA68, symSize: 0x64 } - - { offset: 0xF4BD7, size: 0x8, addend: 0x0, symName: '__ZN97_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..AddAssign$LT$core..time..Duration$GT$$GT$10add_assign17hc7d65839d8b569bcE', symObjAddr: 0x4C940, symBinAddr: 0x100C0C038, symSize: 0x74 } - - { offset: 0xF4D2A, size: 0x8, addend: 0x0, symName: '__ZN3std9backtrace6helper12lazy_resolve28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hbd5f23ae265981e0E', symObjAddr: 0x21850, symBinAddr: 0x100BF1ECC, symSize: 0x1EC } - - { offset: 0xF523D, size: 0x8, addend: 0x0, symName: __ZN3std9backtrace9Backtrace6create17h356c76f902c74f3cE, symObjAddr: 0x21A4C, symBinAddr: 0x100BF20B8, symSize: 0x16C } - - { offset: 0xF55FF, size: 0x8, addend: 0x0, symName: __ZN3std9backtrace9Backtrace7capture17h254f474da8c09fbaE, symObjAddr: 0x21D80, symBinAddr: 0x100BF2368, symSize: 0x210 } - - { offset: 0xF5B33, size: 0x8, addend: 0x0, symName: '__ZN3std9backtrace9Backtrace6create28_$u7b$$u7b$closure$u7d$$u7d$17h3a288684a172d979E', symObjAddr: 0x21BB8, symBinAddr: 0x100BF2224, symSize: 0x144 } - - { offset: 0xF5D39, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..backtrace..Backtrace$u20$as$u20$core..fmt..Display$GT$3fmt17h50c4002e6c7d517dE', symObjAddr: 0x4548C, symBinAddr: 0x100C09758, symSize: 0x454 } - - { offset: 0xF6879, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf15b5e89aa0cb7c4E', symObjAddr: 0x477CC, symBinAddr: 0x100C0A7DC, symSize: 0xC } - - { offset: 0xF6891, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf15b5e89aa0cb7c4E', symObjAddr: 0x477CC, symBinAddr: 0x100C0A7DC, symSize: 0xC } - - { offset: 0xF68A7, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf15b5e89aa0cb7c4E', symObjAddr: 0x477CC, symBinAddr: 0x100C0A7DC, symSize: 0xC } - - { offset: 0xF6B75, size: 0x8, addend: 0x0, symName: __ZN5alloc5alloc15exchange_malloc17hca9577c5b3236b08E, symObjAddr: 0x3A468, symBinAddr: 0x100C01AD0, symSize: 0x48 } - - { offset: 0xF83DE, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$alloc..ffi..c_str..NulError$u20$as$u20$core..fmt..Debug$GT$3fmt17h60b9d38ef5b353a1E', symObjAddr: 0x45440, symBinAddr: 0x100C0970C, symSize: 0x4C } - - { offset: 0xF89B4, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node208Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h537ab2bf5b59d2c2E', symObjAddr: 0x37950, symBinAddr: 0x100BFF77C, symSize: 0x198 } - - { offset: 0xF8E2A, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node208Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h764b3538a1edca33E', symObjAddr: 0x37AE8, symBinAddr: 0x100BFF914, symSize: 0x140 } - - { offset: 0xF9229, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h3b9d677d72242022E', symObjAddr: 0x37C28, symBinAddr: 0x100BFFA54, symSize: 0x274 } - - { offset: 0xF98BA, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17he05b85f0be602821E', symObjAddr: 0x38114, symBinAddr: 0x100BFFCC8, symSize: 0x1FC } - - { offset: 0xF9F2C, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17h10ad620ba7749474E', symObjAddr: 0x390D0, symBinAddr: 0x100C00C84, symSize: 0x54C } - - { offset: 0xFABFB, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17h14f77890c0ea077dE', symObjAddr: 0x3961C, symBinAddr: 0x100C011D0, symSize: 0x4F4 } - - { offset: 0xFC910, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$15bulk_steal_left17h4507239e997f6a8fE', symObjAddr: 0x38310, symBinAddr: 0x100BFFEC4, symSize: 0x1F0 } - - { offset: 0xFCE7E, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$15bulk_steal_left17h944c857f2ac05c74E', symObjAddr: 0x38500, symBinAddr: 0x100C000B4, symSize: 0x280 } - - { offset: 0xFD423, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$16bulk_steal_right17h17e08d4a89cfb142E', symObjAddr: 0x38780, symBinAddr: 0x100C00334, symSize: 0x2C8 } - - { offset: 0xFDA88, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$16bulk_steal_right17ha34cbc9d97161a20E', symObjAddr: 0x38A48, symBinAddr: 0x100C005FC, symSize: 0x23C } - - { offset: 0xFE120, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$8do_merge17h0d337481eab76de9E', symObjAddr: 0x38C84, symBinAddr: 0x100C00838, symSize: 0x1F4 } - - { offset: 0xFE77B, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$8do_merge17h4ebcdff0ab056c55E', symObjAddr: 0x38E78, symBinAddr: 0x100C00A2C, symSize: 0x258 } - - { offset: 0xFF041, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h1e88ed3191e29e0eE', symObjAddr: 0x35DC0, symBinAddr: 0x100BFE780, symSize: 0x9E4 } - - { offset: 0x100BFC, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree3map25IntoIter$LT$K$C$V$C$A$GT$10dying_next17h620f4f5c81456072E', symObjAddr: 0x3719C, symBinAddr: 0x100BFF164, symSize: 0x208 } - - { offset: 0x100FE6, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree3map25IntoIter$LT$K$C$V$C$A$GT$10dying_next17h76d644959ccd0093E', symObjAddr: 0x373A4, symBinAddr: 0x100BFF36C, symSize: 0x208 } - - { offset: 0x1013D0, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree3map25IntoIter$LT$K$C$V$C$A$GT$10dying_next17hb01a24d5edfe1dbcE', symObjAddr: 0x375AC, symBinAddr: 0x100BFF574, symSize: 0x208 } - - { offset: 0x10293E, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h14e39ddeac70f605E', symObjAddr: 0x3A4B0, symBinAddr: 0x100C72168, symSize: 0x68 } - - { offset: 0x1029C9, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h1f3325eae33b3f48E', symObjAddr: 0x3A518, symBinAddr: 0x100C721D0, symSize: 0x68 } - - { offset: 0x102A54, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h2e5b01c4db10a43dE', symObjAddr: 0x3A580, symBinAddr: 0x100C72238, symSize: 0x68 } - - { offset: 0x102ADF, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h36de9ae9087f572aE', symObjAddr: 0x3A5E8, symBinAddr: 0x100C722A0, symSize: 0x68 } - - { offset: 0x102B6A, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h436a1555292ba7aeE', symObjAddr: 0x3A650, symBinAddr: 0x100C72308, symSize: 0x68 } - - { offset: 0x102BF5, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h57b4b82045926dc6E', symObjAddr: 0x3A6B8, symBinAddr: 0x100C72370, symSize: 0x68 } - - { offset: 0x102C80, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h5cbec80a57cb38d4E', symObjAddr: 0x3A720, symBinAddr: 0x100C723D8, symSize: 0x68 } - - { offset: 0x102D0B, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h62ad64572d34a00aE', symObjAddr: 0x3A788, symBinAddr: 0x100C72440, symSize: 0x68 } - - { offset: 0x102D96, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h77cabc5d159d5db5E', symObjAddr: 0x3A7F0, symBinAddr: 0x100C724A8, symSize: 0x68 } - - { offset: 0x102E21, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h827fde3f2a3fdfb1E', symObjAddr: 0x3A858, symBinAddr: 0x100C72510, symSize: 0x68 } - - { offset: 0x102EAC, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hba97415fed83c48cE', symObjAddr: 0x3A8C0, symBinAddr: 0x100C72578, symSize: 0x68 } - - { offset: 0x102F37, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17he7dbcbebf4205e97E', symObjAddr: 0x3A928, symBinAddr: 0x100C725E0, symSize: 0x68 } - - { offset: 0x10344B, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Debug$GT$3fmt17he442896a209e382eE', symObjAddr: 0x34230, symBinAddr: 0x100BFE434, symSize: 0x10 } - - { offset: 0x10350E, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Write$GT$10write_char17he5512f41f38db629E', symObjAddr: 0x34240, symBinAddr: 0x100BFE444, symSize: 0x120 } - - { offset: 0x1036C4, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Write$GT$9write_str17h07f07e45209a5724E', symObjAddr: 0x34360, symBinAddr: 0x100BFE564, symSize: 0x80 } - - { offset: 0x10382F, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17hf8ec49c9d33485eeE', symObjAddr: 0x419F4, symBinAddr: 0x100C08A2C, symSize: 0x10 } - - { offset: 0x103D77, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h06cd8d00647c23c4E', symObjAddr: 0x3A05C, symBinAddr: 0x100C016C4, symSize: 0xC0 } - - { offset: 0x1040C6, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h089dde6fc281d4c5E', symObjAddr: 0x3A11C, symBinAddr: 0x100C01784, symSize: 0x98 } - - { offset: 0x104278, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h35a69f13ca8bcd4cE', symObjAddr: 0x3A1B4, symBinAddr: 0x100C0181C, symSize: 0x34 } - - { offset: 0x10435F, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h7ba8e7954a3b18e5E', symObjAddr: 0x3A1E8, symBinAddr: 0x100C01850, symSize: 0x78 } - - { offset: 0x104540, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17ha627554df6ed0ee7E', symObjAddr: 0x3A260, symBinAddr: 0x100C018C8, symSize: 0xA0 } - - { offset: 0x10485D, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hbfeeb83e9423b388E', symObjAddr: 0x3A300, symBinAddr: 0x100C01968, symSize: 0xD0 } - - { offset: 0x104A8D, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hcf7e01a44cca2204E', symObjAddr: 0x3A3D0, symBinAddr: 0x100C01A38, symSize: 0x98 } - - { offset: 0x105026, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$u20$core..fmt..Display$GT$3fmt17h3b9aa4db006aefa2E', symObjAddr: 0x46158, symBinAddr: 0x100C09DD8, symSize: 0x10 } - - { offset: 0x10554C, size: 0x8, addend: 0x0, symName: __ZN6object4read7archive13ArchiveMember12parse_aixbig17h975528452b3a6416E, symObjAddr: 0x46E64, symBinAddr: 0x100C0A07C, symSize: 0x140 } - - { offset: 0x10580F, size: 0x8, addend: 0x0, symName: __ZN6object4read7archive13ArchiveMember5parse17hbae04718359e23beE, symObjAddr: 0x46FA4, symBinAddr: 0x100C0A1BC, symSize: 0x308 } - - { offset: 0x105F21, size: 0x8, addend: 0x0, symName: __ZN6object4read7archive23parse_bsd_extended_name17h6480961873be5175E, symObjAddr: 0x472AC, symBinAddr: 0x100C0A4C4, symSize: 0x2D0 } - - { offset: 0x106922, size: 0x8, addend: 0x0, symName: '__ZN6memchr6memchr6memchr28_$u7b$$u7b$closure$u7d$$u7d$17hcce066780c3bbd34E', symObjAddr: 0x46C08, symBinAddr: 0x100C09E20, symSize: 0x25C } - - { offset: 0x107148, size: 0x8, addend: 0x0, symName: '__ZN9addr2line4unit16ResUnit$LT$R$GT$25find_function_or_location28_$u7b$$u7b$closure$u7d$$u7d$17hcfb7aa5406a16f8aE', symObjAddr: 0x4D588, symBinAddr: 0x100C0CC0C, symSize: 0x30C } - - { offset: 0x107501, size: 0x8, addend: 0x0, symName: '__ZN9addr2line4unit16ResUnit$LT$R$GT$25find_function_or_location17hda45c0d024e7bfebE', symObjAddr: 0x4D21C, symBinAddr: 0x100C0C8A0, symSize: 0x36C } - - { offset: 0x107A38, size: 0x8, addend: 0x0, symName: '__ZN9addr2line16Context$LT$R$GT$9find_unit17h2a1571f4eaf8f110E', symObjAddr: 0x4CC38, symBinAddr: 0x100C0C2BC, symSize: 0x15C } - - { offset: 0x107BCD, size: 0x8, addend: 0x0, symName: '__ZN9addr2line6lookup30LoopingLookup$LT$T$C$L$C$F$GT$10new_lookup17h2409e3e489e4aee5E', symObjAddr: 0x4DB54, symBinAddr: 0x100C0D1D8, symSize: 0x430 } - - { offset: 0x108143, size: 0x8, addend: 0x0, symName: __ZN9addr2line4line11render_file17h49c0df62f2185788E, symObjAddr: 0x4CD94, symBinAddr: 0x100C0C418, symSize: 0x488 } - - { offset: 0x108BD7, size: 0x8, addend: 0x0, symName: '__ZN9addr2line8function17Function$LT$R$GT$14parse_children17hd7e51ee0ecdb8ba7E', symObjAddr: 0x4E2F0, symBinAddr: 0x100C0D974, symSize: 0xE28 } - - { offset: 0x10A472, size: 0x8, addend: 0x0, symName: __ZN9addr2line8function10name_entry17h70fbcb4b118df0f0E, symObjAddr: 0x4DF84, symBinAddr: 0x100C0D608, symSize: 0x36C } - - { offset: 0x10A986, size: 0x8, addend: 0x0, symName: __ZN9addr2line8function9name_attr17h6590a8af40cdd48cE, symObjAddr: 0x4F118, symBinAddr: 0x100C0E79C, symSize: 0x1C0 } - - { offset: 0x10AB84, size: 0x8, addend: 0x0, symName: '__ZN9addr2line5frame18FrameIter$LT$R$GT$4next17hb7fb9bb214bdcbffE', symObjAddr: 0x4D894, symBinAddr: 0x100C0CF18, symSize: 0x2C0 } - - { offset: 0x10B44E, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read5dwarf14Dwarf$LT$R$GT$11attr_string17hed11f7616b9a8e5cE', symObjAddr: 0x3FBD8, symBinAddr: 0x100C06C10, symSize: 0x220 } - - { offset: 0x10BB1C, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read5dwarf13Unit$LT$R$GT$3new17h2c150575641d7766E', symObjAddr: 0x3DF5C, symBinAddr: 0x100C04F94, symSize: 0x1C7C } - - { offset: 0x10EFF2, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read7aranges30ArangeHeader$LT$R$C$Offset$GT$5parse17hecbceb510aca047dE', symObjAddr: 0x40A58, symBinAddr: 0x100C07A90, symSize: 0x2A8 } - - { offset: 0x10F9B6, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit18Attribute$LT$R$GT$5value17h515d90e808fac9c1E', symObjAddr: 0x3D010, symBinAddr: 0x100C04048, symSize: 0x654 } - - { offset: 0x10FD39, size: 0x8, addend: 0x0, symName: '__ZN90_$LT$gimli..read..unit..AttributeValue$LT$R$C$Offset$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4076205ee15892ecE', symObjAddr: 0x4BA30, symBinAddr: 0x100C0B98C, symSize: 0x68 } - - { offset: 0x10FD9A, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit32AttributeValue$LT$R$C$Offset$GT$8u8_value17hf05e2ce9bd02abd8E', symObjAddr: 0x3D91C, symBinAddr: 0x100C04954, symSize: 0x94 } - - { offset: 0x10FDD2, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit32AttributeValue$LT$R$C$Offset$GT$9u16_value17h05ce106a921fd92cE', symObjAddr: 0x3D9B0, symBinAddr: 0x100C049E8, symSize: 0x94 } - - { offset: 0x10FE51, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4unit15parse_attribute17h11bfb9a2717af796E, symObjAddr: 0x3BC30, symBinAddr: 0x100C02C68, symSize: 0xF74 } - - { offset: 0x1124B8, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4unit15skip_attributes17h11f3d19d3be70b03E, symObjAddr: 0x3CBA4, symBinAddr: 0x100C03BDC, symSize: 0x46C } - - { offset: 0x112D5A, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit22EntriesCursor$LT$R$GT$10next_entry17hb5a3988eeaa4b077E', symObjAddr: 0x3D664, symBinAddr: 0x100C0469C, symSize: 0x2B8 } - - { offset: 0x113332, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit33DebugInfoUnitHeadersIter$LT$R$GT$4next17h25cb3446a6565611E', symObjAddr: 0x3DA44, symBinAddr: 0x100C04A7C, symSize: 0x518 } - - { offset: 0x114469, size: 0x8, addend: 0x0, symName: __ZN5gimli4read6reader6Reader11read_offset17h65b156bfec649392E, symObjAddr: 0x405A4, symBinAddr: 0x100C075DC, symSize: 0xB4 } - - { offset: 0x114647, size: 0x8, addend: 0x0, symName: __ZN5gimli4read6reader6Reader12read_sleb12817hef251d9d3c22e29dE, symObjAddr: 0x40658, symBinAddr: 0x100C07690, symSize: 0x23C } - - { offset: 0x114710, size: 0x8, addend: 0x0, symName: __ZN5gimli4read6reader6Reader12read_uleb12817hd98b651613f83752E, symObjAddr: 0x40894, symBinAddr: 0x100C078CC, symSize: 0xB8 } - - { offset: 0x1147BE, size: 0x8, addend: 0x0, symName: __ZN5gimli4read6reader6Reader17read_sized_offset17h4c7c53b352947ca4E, symObjAddr: 0x4094C, symBinAddr: 0x100C07984, symSize: 0x10C } - - { offset: 0x114DBF, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read8rnglists20RngListIter$LT$R$GT$4next17h2213fd2658c6bd38E', symObjAddr: 0x40D00, symBinAddr: 0x100C07D38, symSize: 0xCF4 } - - { offset: 0x1173B6, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read5index18UnitIndex$LT$R$GT$5parse17hc38e646df4e70316E', symObjAddr: 0x3FDF8, symBinAddr: 0x100C06E30, symSize: 0x7AC } - - { offset: 0x117A64, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4line27FileEntry$LT$R$C$Offset$GT$5parse17h75e106f13a65b014E', symObjAddr: 0x3BA14, symBinAddr: 0x100C02A4C, symSize: 0x21C } - - { offset: 0x117CE2, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4line13parse_file_v517hc918d04120799614E, symObjAddr: 0x3AAE0, symBinAddr: 0x100C01B18, symSize: 0x28C } - - { offset: 0x117E66, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4line15FileEntryFormat5parse17ha8815ada5fc662fdE, symObjAddr: 0x3AD6C, symBinAddr: 0x100C01DA4, symSize: 0x350 } - - { offset: 0x118601, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4line15parse_attribute17h8232dad5e091871cE, symObjAddr: 0x3B0BC, symBinAddr: 0x100C020F4, symSize: 0x874 } - - { offset: 0x119AA4, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4line18parse_directory_v517hf2031e8cbba02c9cE, symObjAddr: 0x3B930, symBinAddr: 0x100C02968, symSize: 0xE4 } - - { offset: 0x119D3B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_0, symObjAddr: 0x4F75C, symBinAddr: 0x100C0ECD4, symSize: 0x8 } - - { offset: 0x119D53, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_1, symObjAddr: 0x4F764, symBinAddr: 0x100C0ECDC, symSize: 0xC } - - { offset: 0x119D6B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_2, symObjAddr: 0x4F770, symBinAddr: 0x100C0ECE8, symSize: 0xC } - - { offset: 0x119D83, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_3, symObjAddr: 0x4F77C, symBinAddr: 0x100C0ECF4, symSize: 0xC } - - { offset: 0x119D9B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_5, symObjAddr: 0x4F798, symBinAddr: 0x100C0ED00, symSize: 0x10 } - - { offset: 0x119DB3, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_6, symObjAddr: 0x4F7A8, symBinAddr: 0x100C0ED10, symSize: 0xC } - - { offset: 0x119DCB, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_7, symObjAddr: 0x4F7B4, symBinAddr: 0x100C0ED1C, symSize: 0x8 } - - { offset: 0x119DE3, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_8, symObjAddr: 0x4F7BC, symBinAddr: 0x100C0ED24, symSize: 0x24 } - - { offset: 0x119DFB, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_9, symObjAddr: 0x4F7E0, symBinAddr: 0x100C0ED48, symSize: 0x10 } - - { offset: 0x119E13, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_10, symObjAddr: 0x4F7F0, symBinAddr: 0x100C0ED58, symSize: 0x8 } - - { offset: 0x119E2B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_11, symObjAddr: 0x4F7F8, symBinAddr: 0x100C0ED60, symSize: 0x8 } - - { offset: 0x119E43, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_12, symObjAddr: 0x4F800, symBinAddr: 0x100C0ED68, symSize: 0x24 } - - { offset: 0x119E5B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_13, symObjAddr: 0x4F824, symBinAddr: 0x100C0ED8C, symSize: 0x24 } - - { offset: 0x119E73, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_14, symObjAddr: 0x4F848, symBinAddr: 0x100C0EDB0, symSize: 0x8 } - - { offset: 0x119E8B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_15, symObjAddr: 0x4F850, symBinAddr: 0x100C0EDB8, symSize: 0xC } - - { offset: 0x119EA3, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_16, symObjAddr: 0x4F85C, symBinAddr: 0x100C0EDC4, symSize: 0x10 } - - { offset: 0x119EBB, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_17, symObjAddr: 0x4F86C, symBinAddr: 0x100C0EDD4, symSize: 0x10 } - - { offset: 0x119ED3, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_18, symObjAddr: 0x4F87C, symBinAddr: 0x100C0EDE4, symSize: 0x10 } - - { offset: 0x119EEB, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_19, symObjAddr: 0x4F88C, symBinAddr: 0x100C0EDF4, symSize: 0x10 } - - { offset: 0x119F03, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_20, symObjAddr: 0x4F89C, symBinAddr: 0x100C0EE04, symSize: 0x8 } - - { offset: 0x119F1B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_21, symObjAddr: 0x4F8A4, symBinAddr: 0x100C0EE0C, symSize: 0x8 } - - { offset: 0x119F33, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_22, symObjAddr: 0x4F8AC, symBinAddr: 0x100C0EE14, symSize: 0x8 } - - { offset: 0x119F4B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_23, symObjAddr: 0x4F8B4, symBinAddr: 0x100C0EE1C, symSize: 0x10 } - - { offset: 0x119F63, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_24, symObjAddr: 0x4F8C4, symBinAddr: 0x100C0EE2C, symSize: 0x10 } - - { offset: 0x119F7B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_25, symObjAddr: 0x4F8D4, symBinAddr: 0x100C0EE3C, symSize: 0x18 } - - { offset: 0x119F93, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_26, symObjAddr: 0x4F8EC, symBinAddr: 0x100C0EE54, symSize: 0xC } - - { offset: 0x119FAB, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_27, symObjAddr: 0x4F8F8, symBinAddr: 0x100C0EE60, symSize: 0x8 } - - { offset: 0x119FC3, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_28, symObjAddr: 0x4F900, symBinAddr: 0x100C0EE68, symSize: 0x8 } - - { offset: 0x119FDB, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_29, symObjAddr: 0x4F908, symBinAddr: 0x100C0EE70, symSize: 0xC } - - { offset: 0x119FF3, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_30, symObjAddr: 0x4F914, symBinAddr: 0x100C0EE7C, symSize: 0xC } - - { offset: 0x11A00B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_31, symObjAddr: 0x4F920, symBinAddr: 0x100C0EE88, symSize: 0xC } - - { offset: 0x11A023, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_32, symObjAddr: 0x4F92C, symBinAddr: 0x100C0EE94, symSize: 0x8 } - - { offset: 0x11A03B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_33, symObjAddr: 0x4F934, symBinAddr: 0x100C0EE9C, symSize: 0x8 } - - { offset: 0x11A053, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_34, symObjAddr: 0x4F93C, symBinAddr: 0x100C0EEA4, symSize: 0x10 } - - { offset: 0x11A06B, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_35, symObjAddr: 0x4F94C, symBinAddr: 0x100C0EEB4, symSize: 0x14 } - - { offset: 0x11A083, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_36, symObjAddr: 0x4F960, symBinAddr: 0x100C0EEC8, symSize: 0x14 } - - { offset: 0x11A0B9, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc18___rust_start_panic, symObjAddr: 0x0, symBinAddr: 0x100C0EEDC, symSize: 0xA0 } - - { offset: 0x11A19E, size: 0x8, addend: 0x0, symName: __ZN12panic_unwind3imp5panic17exception_cleanup17h899ef725bb5b1c6eE, symObjAddr: 0x108, symBinAddr: 0x100C0EFE4, symSize: 0x18 } - - { offset: 0x11A1BA, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc18___rust_start_panic, symObjAddr: 0x0, symBinAddr: 0x100C0EEDC, symSize: 0xA0 } - - { offset: 0x11A24A, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc20___rust_panic_cleanup, symObjAddr: 0xA0, symBinAddr: 0x100C0EF7C, symSize: 0x68 } - - { offset: 0x11A34A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr49drop_in_place$LT$panic_unwind..imp..Exception$GT$17h7f767adf3d756084E', symObjAddr: 0x120, symBinAddr: 0x100C0EFFC, symSize: 0x78 } - - { offset: 0x11A45C, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr74drop_in_place$LT$alloc..boxed..Box$LT$panic_unwind..imp..Exception$GT$$GT$17hfaf9d05ffb215939E', symObjAddr: 0x198, symBinAddr: 0x100C0F074, symSize: 0x8C } - - { offset: 0x11A697, size: 0x8, addend: 0x0, symName: __ZN9hashbrown3raw11Fallibility17capacity_overflow17he23f9fe273b27342E, symObjAddr: 0x148, symBinAddr: 0x100C16AE8, symSize: 0x44 } - - { offset: 0x11A6C7, size: 0x8, addend: 0x0, symName: __ZN9hashbrown3raw11Fallibility9alloc_err17h77589919793742a4E, symObjAddr: 0x18C, symBinAddr: 0x100C16B2C, symSize: 0x24 } - - { offset: 0x11A7A0, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h6b23df44e0c37717E, symObjAddr: 0x13C, symBinAddr: 0x100C16BE8, symSize: 0x10 } - - { offset: 0x11A7E4, size: 0x8, addend: 0x0, symName: '__ZN53_$LT$core..fmt..Error$u20$as$u20$core..fmt..Debug$GT$3fmt17hdaf7e34180b4a8deE', symObjAddr: 0x1AC, symBinAddr: 0x100C16C10, symSize: 0x14 } - - { offset: 0x11A98A, size: 0x8, addend: 0x0, symName: '__ZN69_$LT$core..alloc..layout..LayoutError$u20$as$u20$core..fmt..Debug$GT$3fmt17h9902189354e2963bE', symObjAddr: 0x4BFC, symBinAddr: 0x100C182B8, symSize: 0x14 } - - { offset: 0x11AA10, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hca3b3c575537557cE', symObjAddr: 0x164, symBinAddr: 0x100C16BF8, symSize: 0x18 } - - { offset: 0x11AEFE, size: 0x8, addend: 0x0, symName: '__ZN5alloc3ffi5c_str40_$LT$impl$u20$core..ffi..c_str..CStr$GT$15to_string_lossy17hcc4ddaacddae66efE', symObjAddr: 0x490, symBinAddr: 0x100C16DB4, symSize: 0x8 } - - { offset: 0x11AF1D, size: 0x8, addend: 0x0, symName: '__ZN5alloc3ffi5c_str40_$LT$impl$u20$core..ffi..c_str..CStr$GT$15to_string_lossy17hcc4ddaacddae66efE', symObjAddr: 0x490, symBinAddr: 0x100C16DB4, symSize: 0x8 } - - { offset: 0x11B1D1, size: 0x8, addend: 0x0, symName: __ZN5alloc5alloc18handle_alloc_error17h9ce39ee6bd740d4aE, symObjAddr: 0x2E30, symBinAddr: 0x100C728B4, symSize: 0x18 } - - { offset: 0x11B4BF, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h42ee3004339b0233E', symObjAddr: 0x47B4, symBinAddr: 0x100C72918, symSize: 0x60 } - - { offset: 0x11B56D, size: 0x8, addend: 0x0, symName: __ZN5alloc7raw_vec12handle_error17ha045b2c2db1a4ffeE, symObjAddr: 0x4768, symBinAddr: 0x100C728CC, symSize: 0x14 } - - { offset: 0x11B5B5, size: 0x8, addend: 0x0, symName: __ZN5alloc7raw_vec17capacity_overflow17hbcb772577d0bb908E, symObjAddr: 0x477C, symBinAddr: 0x100C728E0, symSize: 0x38 } - - { offset: 0x11B639, size: 0x8, addend: 0x0, symName: '__ZN254_$LT$alloc..boxed..convert..$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Sync$u2b$core..marker..Send$GT$$GT$..from..StringError$u20$as$u20$core..fmt..Debug$GT$3fmt17h9e1a6928f85da48bE', symObjAddr: 0x10C, symBinAddr: 0x100C16BC8, symSize: 0x10 } - - { offset: 0x11B713, size: 0x8, addend: 0x0, symName: '__ZN256_$LT$alloc..boxed..convert..$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Sync$u2b$core..marker..Send$GT$$GT$..from..StringError$u20$as$u20$core..fmt..Display$GT$3fmt17h50a60514c697e315E', symObjAddr: 0x11C, symBinAddr: 0x100C16BD8, symSize: 0x10 } - - { offset: 0x11B7F0, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$alloc..boxed..Box$LT$str$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h32dd46fc4b83efbaE', symObjAddr: 0x4B68, symBinAddr: 0x100C18238, symSize: 0x78 } - - { offset: 0x11B97C, size: 0x8, addend: 0x0, symName: '__ZN100_$LT$alloc..ffi..c_str..CString$u20$as$u20$core..convert..From$LT$$RF$core..ffi..c_str..CStr$GT$$GT$4from17h62c6b54910d821bfE', symObjAddr: 0x94, symBinAddr: 0x100C16B50, symSize: 0x78 } - - { offset: 0x11BAFD, size: 0x8, addend: 0x0, symName: __ZN5alloc3ffi5c_str7CString19_from_vec_unchecked17haaf0346e8c7731fdE, symObjAddr: 0x804, symBinAddr: 0x100C16DBC, symSize: 0x118 } - - { offset: 0x11BE07, size: 0x8, addend: 0x0, symName: __ZN5alloc3ffi5c_str7CString8from_raw17hf303eed547b92c05E, symObjAddr: 0x9C4, symBinAddr: 0x100C16ED4, symSize: 0x28 } - - { offset: 0x11BE43, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$$RF$str$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17h47b23a973e43cdbcE', symObjAddr: 0x4C10, symBinAddr: 0x100C182CC, symSize: 0x124 } - - { offset: 0x11C0DF, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$alloc..ffi..c_str..NulError$u20$as$u20$core..fmt..Display$GT$3fmt17h6179e7d89ceca196E', symObjAddr: 0x4B18, symBinAddr: 0x100C181E8, symSize: 0x50 } - - { offset: 0x11C349, size: 0x8, addend: 0x0, symName: '__ZN5alloc3vec16Vec$LT$T$C$A$GT$10insert_mut13assert_failed17h9d2194f79e08e55dE', symObjAddr: 0x1EBC, symBinAddr: 0x100C72800, symSize: 0x24 } - - { offset: 0x11C383, size: 0x8, addend: 0x0, symName: '__ZN5alloc3vec16Vec$LT$T$C$A$GT$11swap_remove13assert_failed17h67bef705037e10a7E', symObjAddr: 0x1EE0, symBinAddr: 0x100C72824, symSize: 0x48 } - - { offset: 0x11C3BD, size: 0x8, addend: 0x0, symName: '__ZN5alloc3vec16Vec$LT$T$C$A$GT$6remove13assert_failed17h61b3357402aee7beE', symObjAddr: 0x1F28, symBinAddr: 0x100C7286C, symSize: 0x24 } - - { offset: 0x11C3F7, size: 0x8, addend: 0x0, symName: '__ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off13assert_failed17hbd6da1b5949544a4E', symObjAddr: 0x1F4C, symBinAddr: 0x100C72890, symSize: 0x24 } - - { offset: 0x11C509, size: 0x8, addend: 0x0, symName: __ZN5alloc6string6String11try_reserve17h0030e45069993bfbE, symObjAddr: 0x35B8, symBinAddr: 0x100C17D94, symSize: 0x9C } - - { offset: 0x11C66B, size: 0x8, addend: 0x0, symName: __ZN5alloc6string6String15from_utf8_lossy17h0796934cbf8c4e0cE, symObjAddr: 0x3DA8, symBinAddr: 0x100C17E30, symSize: 0x234 } - - { offset: 0x11CC06, size: 0x8, addend: 0x0, symName: __ZN5alloc6string6String17try_reserve_exact17hc45c7749ae87d458E, symObjAddr: 0x3FDC, symBinAddr: 0x100C18064, symSize: 0x84 } - - { offset: 0x11CD54, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Write$GT$10write_char17he5512f41f38db629E', symObjAddr: 0x224, symBinAddr: 0x100C16C24, symSize: 0x118 } - - { offset: 0x11CF0A, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Write$GT$9write_str17h07f07e45209a5724E', symObjAddr: 0x33C, symBinAddr: 0x100C16D3C, symSize: 0x78 } - - { offset: 0x11D083, size: 0x8, addend: 0x0, symName: '__ZN98_$LT$alloc..string..String$u20$as$u20$core..convert..From$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$4from17h1d6de96ddce5f39fE', symObjAddr: 0x5778, symBinAddr: 0x100C18404, symSize: 0xAC } - - { offset: 0x11D231, size: 0x8, addend: 0x0, symName: '__ZN5alloc6string107_$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$str$GT$$GT$4from17h213937dad5606687E', symObjAddr: 0x30A0, symBinAddr: 0x100C17CFC, symSize: 0x98 } - - { offset: 0x11D3CA, size: 0x8, addend: 0x0, symName: '__ZN85_$LT$alloc..string..String..retain..SetLenOnDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf16da6c8c8a98e1aE', symObjAddr: 0x513C, symBinAddr: 0x100C183F0, symSize: 0x14 } - - { offset: 0x11D405, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h1f8881cf73048a3eE', symObjAddr: 0x4994, symBinAddr: 0x100C180E8, symSize: 0x88 } - - { offset: 0x11D5A1, size: 0x8, addend: 0x0, symName: '__ZN62_$LT$alloc..string..Drain$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3fef744f730af50cE', symObjAddr: 0x4A84, symBinAddr: 0x100C18170, symSize: 0x78 } - - { offset: 0x11D716, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$alloc..string..FromUtf8Error$u20$as$u20$core..fmt..Display$GT$3fmt17hcfdc7d193f65a0acE', symObjAddr: 0x4BE0, symBinAddr: 0x100C182B0, symSize: 0x8 } - - { offset: 0x11D7A8, size: 0x8, addend: 0x0, symName: __ZN5alloc3fmt6format12format_inner17hfba7744daf75a2c1E, symObjAddr: 0x9EC, symBinAddr: 0x100C16EFC, symSize: 0x1C4 } - - { offset: 0x11DAD2, size: 0x8, addend: 0x0, symName: '__ZN5alloc3str21_$LT$impl$u20$str$GT$12to_lowercase17h5a66f5cba8e2f530E', symObjAddr: 0xBB0, symBinAddr: 0x100C170C0, symSize: 0xBC8 } - - { offset: 0x11EA97, size: 0x8, addend: 0x0, symName: __ZN5alloc4sync32arcinner_layout_for_value_layout17he425d1548cf056f2E, symObjAddr: 0x1F70, symBinAddr: 0x100C17C88, symSize: 0x74 } - - { offset: 0x11EBB9, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_0, symObjAddr: 0x5824, symBinAddr: 0x100C184B0, symSize: 0x24 } - - { offset: 0x11EBD1, size: 0x8, addend: 0x0, symName: _OUTLINED_FUNCTION_1, symObjAddr: 0x5848, symBinAddr: 0x100C184D4, symSize: 0x20 } - - { offset: 0x11ED3A, size: 0x8, addend: 0x0, symName: '__ZN71_$LT$core..ops..range..Range$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h81c5689bd48f13c8E', symObjAddr: 0x1D238, symBinAddr: 0x100C28740, symSize: 0x5C } - - { offset: 0x11F649, size: 0x8, addend: 0x0, symName: '__ZN4core4char7methods22_$LT$impl$u20$char$GT$16escape_debug_ext17h7fd3d5a0914badefE', symObjAddr: 0x159CC, symBinAddr: 0x100C25480, symSize: 0x284 } - - { offset: 0x11FF59, size: 0x8, addend: 0x0, symName: __ZN4core3num6bignum8Big32x4010mul_digits17h67f6e8dbae34aa8aE, symObjAddr: 0xE5C0, symBinAddr: 0x100C1F930, symSize: 0x2F0 } - - { offset: 0x1202C1, size: 0x8, addend: 0x0, symName: __ZN4core3num6bignum8Big32x408mul_pow217h2c25e40166782b80E, symObjAddr: 0xEB84, symBinAddr: 0x100C1FC20, symSize: 0x274 } - - { offset: 0x120509, size: 0x8, addend: 0x0, symName: '__ZN73_$LT$core..num..nonzero..NonZero$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17hc41b09fcc8e635b3E', symObjAddr: 0x1D674, symBinAddr: 0x100C289FC, symSize: 0x28 } - - { offset: 0x120600, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt11decimal_seq10DecimalSeq10left_shift17h3de49e607837d80aE, symObjAddr: 0xF420, symBinAddr: 0x100C1FE94, symSize: 0x214 } - - { offset: 0x1206AC, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt11decimal_seq10DecimalSeq11right_shift17hf034f3958c6743f0E, symObjAddr: 0xF634, symBinAddr: 0x100C200A8, symSize: 0x1BC } - - { offset: 0x1206D4, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt11decimal_seq10DecimalSeq5round17h4e69160c7e927c28E, symObjAddr: 0xF840, symBinAddr: 0x100C20264, symSize: 0xB4 } - - { offset: 0x120774, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt11decimal_seq17parse_decimal_seq17hbef94dd5f51dba05E, symObjAddr: 0xF8F4, symBinAddr: 0x100C20318, symSize: 0x3CC } - - { offset: 0x120B60, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt5parse12parse_number17h0cdb0b4521f015f2E, symObjAddr: 0xFCC0, symBinAddr: 0x100C206E4, symSize: 0x438 } - - { offset: 0x12112D, size: 0x8, addend: 0x0, symName: '__ZN4core3num7dec2flt60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$f32$GT$8from_str17h917ba9cff099e3bcE', symObjAddr: 0x10574, symBinAddr: 0x100C20B1C, symSize: 0x49C } - - { offset: 0x121158, size: 0x8, addend: 0x0, symName: '__ZN4core3num7dec2flt60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$f32$GT$8from_str17h917ba9cff099e3bcE', symObjAddr: 0x10574, symBinAddr: 0x100C20B1C, symSize: 0x49C } - - { offset: 0x1213FC, size: 0x8, addend: 0x0, symName: '__ZN4core3num7dec2flt60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$f64$GT$8from_str17hafe621d3833c96eaE', symObjAddr: 0x10A10, symBinAddr: 0x100C20FB8, symSize: 0x484 } - - { offset: 0x1216AA, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt6lemire13compute_float17h7775f5a0f2dc708eE, symObjAddr: 0x10FC0, symBinAddr: 0x100C2143C, symSize: 0x14C } - - { offset: 0x121767, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt6lemire13compute_float17h79ca2c061a9792b5E, symObjAddr: 0x1110C, symBinAddr: 0x100C21588, symSize: 0x150 } - - { offset: 0x12181E, size: 0x8, addend: 0x0, symName: '__ZN74_$LT$core..num..dec2flt..ParseFloatError$u20$as$u20$core..fmt..Display$GT$3fmt17h4340c3b1b64219c9E', symObjAddr: 0x1D920, symBinAddr: 0x100C28A24, symSize: 0x38 } - - { offset: 0x1218E4, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14possibly_round17hb6b166221dd652edE, symObjAddr: 0x117A4, symBinAddr: 0x100C21820, symSize: 0x204 } - - { offset: 0x121AC2, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy5grisu16format_exact_opt17hfeae5dfa1e4112a1E, symObjAddr: 0x119A8, symBinAddr: 0x100C21A24, symSize: 0x368 } - - { offset: 0x121B76, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt17hd2176588811e89a7E, symObjAddr: 0x11D10, symBinAddr: 0x100C21D8C, symSize: 0x5E0 } - - { offset: 0x121D2F, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy6dragon12format_exact17h420d1b19b197ee3bE, symObjAddr: 0x122F0, symBinAddr: 0x100C2236C, symSize: 0xAB0 } - - { offset: 0x1233AE, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy6dragon15format_shortest17ha75e20ffb3e62208E, symObjAddr: 0x12DA0, symBinAddr: 0x100C22E1C, symSize: 0xC3C } - - { offset: 0x124CC1, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h3a761cb4e09599d8E, symObjAddr: 0x139DC, symBinAddr: 0x100C23A58, symSize: 0x1E0 } - - { offset: 0x12504D, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec17digits_to_dec_str17h07cef77e4c6b5334E, symObjAddr: 0x112C8, symBinAddr: 0x100C216D8, symSize: 0x148 } - - { offset: 0x1251B6, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$core..num..error..ParseIntError$u20$as$u20$core..fmt..Display$GT$3fmt17h5ead7e0c08bc1fcfE', symObjAddr: 0x1CE40, symBinAddr: 0x100C286FC, symSize: 0x28 } - - { offset: 0x1251F4, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$core..num..niche_types..Nanoseconds$u20$as$u20$core..fmt..Debug$GT$3fmt17h97c185b26e54a58eE', symObjAddr: 0x1D43C, symBinAddr: 0x100C287D8, symSize: 0x1C8 } - - { offset: 0x1255B7, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$core..ptr..alignment..Alignment$u20$as$u20$core..fmt..Debug$GT$3fmt17he543fcb317e2a15fE', symObjAddr: 0x1C36C, symBinAddr: 0x100C2865C, symSize: 0x78 } - - { offset: 0x125A5B, size: 0x8, addend: 0x0, symName: __ZN4core6option13expect_failed17h0ccd2b94a57b79d0E, symObjAddr: 0x16244, symBinAddr: 0x100C72BFC, symSize: 0x48 } - - { offset: 0x125AA5, size: 0x8, addend: 0x0, symName: __ZN4core6option13unwrap_failed17h2bbb35b31c2cb6f3E, symObjAddr: 0x1628C, symBinAddr: 0x100C72C44, symSize: 0x1C } - - { offset: 0x125D93, size: 0x8, addend: 0x0, symName: __ZN4core5ascii14escape_default17hae208fa8f7578da1E, symObjAddr: 0x15CFC, symBinAddr: 0x100C25724, symSize: 0x74 } - - { offset: 0x126230, size: 0x8, addend: 0x0, symName: '__ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17len_mismatch_fail8do_panic7runtime17h02afd8a3a33616a5E', symObjAddr: 0x15D88, symBinAddr: 0x100C72A3C, symSize: 0x54 } - - { offset: 0x126264, size: 0x8, addend: 0x0, symName: '__ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17len_mismatch_fail17h4b4b495d36eedb23E', symObjAddr: 0x15D70, symBinAddr: 0x100C72A24, symSize: 0x18 } - - { offset: 0x126BC4, size: 0x8, addend: 0x0, symName: __ZN4core5slice5index16slice_index_fail8do_panic7runtime17h2465cf9dde14bb9eE, symObjAddr: 0x15F58, symBinAddr: 0x100C72B0C, symSize: 0x50 } - - { offset: 0x126BF6, size: 0x8, addend: 0x0, symName: __ZN4core5slice5index16slice_index_fail8do_panic7runtime17h7c85dbf6702bad0fE, symObjAddr: 0x15FA8, symBinAddr: 0x100C72B5C, symSize: 0x50 } - - { offset: 0x126C28, size: 0x8, addend: 0x0, symName: __ZN4core5slice5index16slice_index_fail8do_panic7runtime17hc2f4cb0f83a9f516E, symObjAddr: 0x15FF8, symBinAddr: 0x100C72BAC, symSize: 0x50 } - - { offset: 0x126C5C, size: 0x8, addend: 0x0, symName: __ZN4core5slice5index16slice_index_fail17hefbaa1bb9611e99cE, symObjAddr: 0x15F14, symBinAddr: 0x100C72AC8, symSize: 0x44 } - - { offset: 0x126D26, size: 0x8, addend: 0x0, symName: __ZN4core5slice6memchr14memchr_aligned17h2090105558adc3b5E, symObjAddr: 0x16048, symBinAddr: 0x100C257C4, symSize: 0xDC } - - { offset: 0x126D3E, size: 0x8, addend: 0x0, symName: __ZN4core5slice6memchr14memchr_aligned17h2090105558adc3b5E, symObjAddr: 0x16048, symBinAddr: 0x100C257C4, symSize: 0xDC } - - { offset: 0x126D54, size: 0x8, addend: 0x0, symName: __ZN4core5slice6memchr14memchr_aligned17h2090105558adc3b5E, symObjAddr: 0x16048, symBinAddr: 0x100C257C4, symSize: 0xDC } - - { offset: 0x126D69, size: 0x8, addend: 0x0, symName: __ZN4core5slice6memchr14memchr_aligned17h2090105558adc3b5E, symObjAddr: 0x16048, symBinAddr: 0x100C257C4, symSize: 0xDC } - - { offset: 0x126D7F, size: 0x8, addend: 0x0, symName: __ZN4core5slice6memchr14memchr_aligned17h2090105558adc3b5E, symObjAddr: 0x16048, symBinAddr: 0x100C257C4, symSize: 0xDC } - - { offset: 0x126E35, size: 0x8, addend: 0x0, symName: __ZN4core5slice6memchr7memrchr17h507833fefca73613E, symObjAddr: 0x16124, symBinAddr: 0x100C258A0, symSize: 0x120 } - - { offset: 0x12709E, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort22panic_on_ord_violation17h4776d59d4c698189E, symObjAddr: 0x15E00, symBinAddr: 0x100C72A90, symSize: 0x38 } - - { offset: 0x1270DE, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift11sqrt_approx17h1992f821a29ab3b9E, symObjAddr: 0x15E38, symBinAddr: 0x100C25798, symSize: 0x2C } - - { offset: 0x127303, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter10debug_list17h7eaf5ba5089f4458E, symObjAddr: 0x9D4C, symBinAddr: 0x100C1D054, symSize: 0x48 } - - { offset: 0x127345, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter11debug_tuple17hf6860858a928f689E, symObjAddr: 0x9D94, symBinAddr: 0x100C1D09C, symSize: 0x50 } - - { offset: 0x127395, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter12debug_struct17h44e0bbfbf058f524E, symObjAddr: 0x9DE4, symBinAddr: 0x100C1D0EC, symSize: 0x3C } - - { offset: 0x127400, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter12pad_integral17hb30c41365f2ae320E, symObjAddr: 0x9E9C, symBinAddr: 0x100C1D1A4, symSize: 0x3B4 } - - { offset: 0x12773C, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter19pad_formatted_parts17h2cd7a02bf0fc63fcE, symObjAddr: 0xA250, symBinAddr: 0x100C1D558, symSize: 0x238 } - - { offset: 0x1279FC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter21write_formatted_parts17h22738579b4594a85E, symObjAddr: 0xA488, symBinAddr: 0x100C1D790, symSize: 0x210 } - - { offset: 0x127B34, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter25debug_tuple_field1_finish17h9c5ede4ec5a57fbfE, symObjAddr: 0xA698, symBinAddr: 0x100C1D9A0, symSize: 0x160 } - - { offset: 0x127D48, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter25debug_tuple_field2_finish17h3a3e56296721aa98E, symObjAddr: 0xA7F8, symBinAddr: 0x100C1DB00, symSize: 0x1D8 } - - { offset: 0x128066, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter25debug_tuple_field3_finish17h584c19e872c58f02E, symObjAddr: 0xA9D0, symBinAddr: 0x100C1DCD8, symSize: 0x284 } - - { offset: 0x1284B3, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field1_finish17hc7a3bc8aac89cc3bE, symObjAddr: 0xB5B0, symBinAddr: 0x100C1DF5C, symSize: 0xD0 } - - { offset: 0x128592, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field2_finish17h844ed70214b90ab7E, symObjAddr: 0xB680, symBinAddr: 0x100C1E02C, symSize: 0x104 } - - { offset: 0x128671, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field3_finish17h8d3e0a1e7a7c2d97E, symObjAddr: 0xB784, symBinAddr: 0x100C1E130, symSize: 0x12C } - - { offset: 0x128750, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field4_finish17hfc4f87e21bd6391fE, symObjAddr: 0xB8B0, symBinAddr: 0x100C1E25C, symSize: 0x15C } - - { offset: 0x12882F, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field5_finish17hed4f7d19b323d993E, symObjAddr: 0xBA0C, symBinAddr: 0x100C1E3B8, symSize: 0x180 } - - { offset: 0x12890E, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_fields_finish17hff5e1c7dbe692884E, symObjAddr: 0xBB8C, symBinAddr: 0x100C1E538, symSize: 0x10C } - - { offset: 0x128A0A, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter3pad17hf4614a1c20e4508eE, symObjAddr: 0xBC98, symBinAddr: 0x100C1E644, symSize: 0x304 } - - { offset: 0x128D93, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter9debug_map17hcc9534cfc627da68E, symObjAddr: 0xBFA8, symBinAddr: 0x100C1E948, symSize: 0x58 } - - { offset: 0x128DDC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter9debug_set17h2ff6fbf3ea3ed613E, symObjAddr: 0xC000, symBinAddr: 0x100C1E9A0, symSize: 0x48 } - - { offset: 0x128E25, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter9write_str17h3cacbd623944fdc2E, symObjAddr: 0xC048, symBinAddr: 0x100C1E9E8, symSize: 0x10 } - - { offset: 0x128EB4, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders11DebugStruct21finish_non_exhaustive17h9b7d3479d8e82e13E, symObjAddr: 0x918C, symBinAddr: 0x100C1C820, symSize: 0xC4 } - - { offset: 0x128FEA, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders11DebugStruct5field17h3258b872fad0c517E, symObjAddr: 0x9250, symBinAddr: 0x100C1C8E4, symSize: 0x1B4 } - - { offset: 0x12920F, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders11DebugStruct6finish17hf111625dd93b01ddE, symObjAddr: 0x9404, symBinAddr: 0x100C1CA98, symSize: 0x7C } - - { offset: 0x129355, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders10DebugTuple5field17h459c5e0195c30ccfE, symObjAddr: 0x8F6C, symBinAddr: 0x100C1C600, symSize: 0x148 } - - { offset: 0x1294E4, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders10DebugTuple6finish17hd5de67e8ed3e6125E, symObjAddr: 0x90B4, symBinAddr: 0x100C1C748, symSize: 0xB4 } - - { offset: 0x129619, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders10PadAdapter4wrap17hea1e3195e6fe612cE, symObjAddr: 0x9168, symBinAddr: 0x100C1C7FC, symSize: 0x24 } - - { offset: 0x129631, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders10PadAdapter4wrap17hea1e3195e6fe612cE, symObjAddr: 0x9168, symBinAddr: 0x100C1C7FC, symSize: 0x24 } - - { offset: 0x129703, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugMap3key17hdd6a276f9f0aa72dE, symObjAddr: 0x9578, symBinAddr: 0x100C1CB14, symSize: 0x1C8 } - - { offset: 0x1298FB, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugMap5entry17h9ae15732d7ae5568E, symObjAddr: 0x9740, symBinAddr: 0x100C1CCDC, symSize: 0x110 } - - { offset: 0x129A5C, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugMap6finish17ha58b41827f13c57dE, symObjAddr: 0x9958, symBinAddr: 0x100C1CDEC, symSize: 0x88 } - - { offset: 0x129AFA, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugSet5entry17hb023dd586cfdd03dE, symObjAddr: 0x9AA4, symBinAddr: 0x100C1CE74, symSize: 0x148 } - - { offset: 0x129C90, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugSet6finish17h88de968d8402123bE, symObjAddr: 0x9BEC, symBinAddr: 0x100C1CFBC, symSize: 0x4C } - - { offset: 0x129D4A, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders9DebugList6finish17h14d1ed16cd133200E, symObjAddr: 0x9D00, symBinAddr: 0x100C1D008, symSize: 0x4C } - - { offset: 0x129DE7, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$10write_char17h716c13c5de8a4527E', symObjAddr: 0x1BF9C, symBinAddr: 0x100C28398, symSize: 0x80 } - - { offset: 0x129E11, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$9write_str17h5e689f5661e08c5aE', symObjAddr: 0x1C01C, symBinAddr: 0x100C28418, symSize: 0x244 } - - { offset: 0x12A2FF, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..fmt..Formatter$u20$as$u20$core..fmt..Write$GT$10write_char17h769139afde77b15aE', symObjAddr: 0x183B8, symBinAddr: 0x100C26368, symSize: 0x10 } - - { offset: 0x12A33D, size: 0x8, addend: 0x0, symName: '__ZN40_$LT$str$u20$as$u20$core..fmt..Debug$GT$3fmt17h78d738a10a78752bE', symObjAddr: 0x318, symBinAddr: 0x100C18560, symSize: 0x398 } - - { offset: 0x12A77D, size: 0x8, addend: 0x0, symName: '__ZN41_$LT$char$u20$as$u20$core..fmt..Debug$GT$3fmt17h30366c1c7f9644c7E', symObjAddr: 0x6B0, symBinAddr: 0x100C188F8, symSize: 0xA8 } - - { offset: 0x12A893, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h6813e4b81119822dE', symObjAddr: 0x760, symBinAddr: 0x100C189A0, symSize: 0x10 } - - { offset: 0x12A8B5, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h74ac95f14f5c8ef1E', symObjAddr: 0x770, symBinAddr: 0x100C189B0, symSize: 0x164 } - - { offset: 0x12AAF6, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17ha233922974c88301E', symObjAddr: 0x8E4, symBinAddr: 0x100C18B14, symSize: 0xC } - - { offset: 0x12AB11, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hdc2a3d6d42f71ceaE', symObjAddr: 0x900, symBinAddr: 0x100C18B20, symSize: 0x8 } - - { offset: 0x12AB3A, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17h63cc4bbe29090358E', symObjAddr: 0x908, symBinAddr: 0x100C18B28, symSize: 0x14 } - - { offset: 0x12AB63, size: 0x8, addend: 0x0, symName: '__ZN43_$LT$bool$u20$as$u20$core..fmt..Display$GT$3fmt17h65bad19dd4638338E', symObjAddr: 0x91C, symBinAddr: 0x100C18B3C, symSize: 0x34 } - - { offset: 0x12ABB9, size: 0x8, addend: 0x0, symName: '__ZN43_$LT$char$u20$as$u20$core..fmt..Display$GT$3fmt17he0b9d2d6b8d677c9E', symObjAddr: 0x950, symBinAddr: 0x100C18B70, symSize: 0xD4 } - - { offset: 0x12AC34, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h315a7a3c4f7bdcbbE', symObjAddr: 0xA24, symBinAddr: 0x100C18C44, symSize: 0x8 } - - { offset: 0x12AC4F, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h360d8bfef4237bfdE', symObjAddr: 0xA2C, symBinAddr: 0x100C18C4C, symSize: 0x10 } - - { offset: 0x12AC81, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hb422673cb8856047E', symObjAddr: 0xA3C, symBinAddr: 0x100C18C5C, symSize: 0x8 } - - { offset: 0x12AD12, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp21_$LT$impl$u20$u16$GT$4_fmt17hb5d631c54cd2266eE', symObjAddr: 0x2120, symBinAddr: 0x100C19328, symSize: 0xFC } - - { offset: 0x12AE06, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp21_$LT$impl$u20$u32$GT$4_fmt17h765ae886da27f8c1E', symObjAddr: 0x2328, symBinAddr: 0x100C19424, symSize: 0x108 } - - { offset: 0x12AEE6, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp21_$LT$impl$u20$u64$GT$4_fmt17hea7499c047b3a9ddE', symObjAddr: 0x2544, symBinAddr: 0x100C1952C, symSize: 0x110 } - - { offset: 0x12AFB9, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17h98dd3bacd3ed43bdE', symObjAddr: 0x2724, symBinAddr: 0x100C1963C, symSize: 0xB0 } - - { offset: 0x12B0A8, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i16$GT$3fmt17hc8d1c66112cc3abcE', symObjAddr: 0x27D4, symBinAddr: 0x100C196EC, symSize: 0x118 } - - { offset: 0x12B1A7, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h44e9b3674c32bab8E', symObjAddr: 0x28EC, symBinAddr: 0x100C19804, symSize: 0x13C } - - { offset: 0x12B2B5, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i64$GT$3fmt17he46465887a655020E', symObjAddr: 0x2A28, symBinAddr: 0x100C19940, symSize: 0x144 } - - { offset: 0x12B3CB, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u16$GT$3fmt17ha58bc3935f56e4d0E', symObjAddr: 0x2B6C, symBinAddr: 0x100C19A84, symSize: 0xFC } - - { offset: 0x12B4BE, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h8d9a26a42695d350E', symObjAddr: 0x2C68, symBinAddr: 0x100C19B80, symSize: 0x130 } - - { offset: 0x12B5C7, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17hf290744b1c26d37fE', symObjAddr: 0x2D98, symBinAddr: 0x100C19CB0, symSize: 0x13C } - - { offset: 0x12B6FB, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u16$GT$3fmt17h5af38dba3a7087b0E', symObjAddr: 0x5024, symBinAddr: 0x100C1A6CC, symSize: 0x74 } - - { offset: 0x12B7A3, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num22_$LT$impl$u20$u128$GT$10_fmt_inner17haafebf800abea46aE', symObjAddr: 0x12B4, symBinAddr: 0x100C18E88, symSize: 0x4A0 } - - { offset: 0x12B93B, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u8$GT$3fmt17hedb4777804964d81E', symObjAddr: 0x4C94, symBinAddr: 0x100C1A424, symSize: 0x74 } - - { offset: 0x12B9B2, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u8$GT$3fmt17h50925e9b57f75ef7E', symObjAddr: 0x4D7C, symBinAddr: 0x100C1A498, symSize: 0x74 } - - { offset: 0x12BA29, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Octal$u20$for$u20$u8$GT$3fmt17h48b3307955968e40E', symObjAddr: 0x3928, symBinAddr: 0x100C19DEC, symSize: 0x74 } - - { offset: 0x12BAA0, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Binary$u20$for$u20$u8$GT$3fmt17hedd6ff29a65e3174E', symObjAddr: 0x3A10, symBinAddr: 0x100C19E60, symSize: 0x74 } - - { offset: 0x12BB17, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u16$GT$3fmt17hebd58d652d57a7d2E', symObjAddr: 0x52DC, symBinAddr: 0x100C1A910, symSize: 0x74 } - - { offset: 0x12BB8E, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u32$GT$3fmt17h1ec811601ebe3a63E', symObjAddr: 0x5098, symBinAddr: 0x100C1A740, symSize: 0x74 } - - { offset: 0x12BC05, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u32$GT$3fmt17h34ed060ad6fb82ebE', symObjAddr: 0x5350, symBinAddr: 0x100C1A984, symSize: 0x74 } - - { offset: 0x12BC6F, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u32$GT$3fmt17h63d27749e7694155E', symObjAddr: 0x3E10, symBinAddr: 0x100C19ED4, symSize: 0xC4 } - - { offset: 0x12BD10, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u64$GT$3fmt17hfc912d2a86e92a47E', symObjAddr: 0x510C, symBinAddr: 0x100C1A7B4, symSize: 0x74 } - - { offset: 0x12BD87, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u64$GT$3fmt17hf105ba80954e3508E', symObjAddr: 0x53C4, symBinAddr: 0x100C1A9F8, symSize: 0x74 } - - { offset: 0x12BDF1, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u64$GT$3fmt17hb44309dd4024cc30E', symObjAddr: 0x3ED4, symBinAddr: 0x100C19F98, symSize: 0x1CC } - - { offset: 0x12BF79, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num51_$LT$impl$u20$core..fmt..Binary$u20$for$u20$u16$GT$3fmt17h21e5c4fc20fe3920E', symObjAddr: 0x44B4, symBinAddr: 0x100C1A164, symSize: 0x74 } - - { offset: 0x12BFF0, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num51_$LT$impl$u20$core..fmt..Binary$u20$for$u20$u64$GT$3fmt17h291bbb8279f41a62E', symObjAddr: 0x459C, symBinAddr: 0x100C1A1D8, symSize: 0x74 } - - { offset: 0x12C068, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..Display$u20$for$u20$i128$GT$3fmt17h63647f3fcb828e00E', symObjAddr: 0x4DF0, symBinAddr: 0x100C1A50C, symSize: 0x78 } - - { offset: 0x12C11E, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num54_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u128$GT$3fmt17h4364df5c7524a733E', symObjAddr: 0x5500, symBinAddr: 0x100C1AAEC, symSize: 0x80 } - - { offset: 0x12C195, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num54_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i128$GT$3fmt17h9b56112ffc9e125bE', symObjAddr: 0x5480, symBinAddr: 0x100C1AA6C, symSize: 0x80 } - - { offset: 0x12C222, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num54_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u128$GT$3fmt17h848a4840287527bbE', symObjAddr: 0x5648, symBinAddr: 0x100C1ABEC, symSize: 0x80 } - - { offset: 0x12C299, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num54_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i128$GT$3fmt17h6301bfe82eac27e3E', symObjAddr: 0x55C8, symBinAddr: 0x100C1AB6C, symSize: 0x80 } - - { offset: 0x12C327, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..Display$u20$for$u20$u128$GT$3fmt17h0f0972625c577cc7E', symObjAddr: 0x4E68, symBinAddr: 0x100C1A584, symSize: 0x60 } - - { offset: 0x12C3DF, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17h9ee511eeaaac07a5E', symObjAddr: 0x4A48, symBinAddr: 0x100C1A24C, symSize: 0x1D8 } - - { offset: 0x12C55A, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i32$GT$3fmt17hf4f3f6cb5a210a86E', symObjAddr: 0x4F3C, symBinAddr: 0x100C1A5E4, symSize: 0x74 } - - { offset: 0x12C5E7, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i64$GT$3fmt17h302fb56d1ceb3029E', symObjAddr: 0x4FB0, symBinAddr: 0x100C1A658, symSize: 0x74 } - - { offset: 0x12C674, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i32$GT$3fmt17h87b90536a374a042E', symObjAddr: 0x51F4, symBinAddr: 0x100C1A828, symSize: 0x74 } - - { offset: 0x12C701, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i64$GT$3fmt17h89e0a469ebd3bf66E', symObjAddr: 0x5268, symBinAddr: 0x100C1A89C, symSize: 0x74 } - - { offset: 0x12C78F, size: 0x8, addend: 0x0, symName: '__ZN45_$LT$$RF$T$u20$as$u20$core..fmt..LowerHex$GT$3fmt17h05b3a3d2bfbdae41E', symObjAddr: 0xB84, symBinAddr: 0x100C18C64, symSize: 0x78 } - - { offset: 0x12C8CE, size: 0x8, addend: 0x0, symName: __ZN4core3fmt17pointer_fmt_inner17h2b953d6d0d84cc95E, symObjAddr: 0x11A0, symBinAddr: 0x100C18DD4, symSize: 0xB4 } - - { offset: 0x12C990, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h327cb3b7b77bf140E, symObjAddr: 0x5FD0, symBinAddr: 0x100C1AC6C, symSize: 0x134 } - - { offset: 0x12CA7E, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h4d75857624942983E, symObjAddr: 0x6104, symBinAddr: 0x100C1ADA0, symSize: 0x134 } - - { offset: 0x12CB6C, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17hc7bd6fd1ca90d3f5E, symObjAddr: 0x6238, symBinAddr: 0x100C1AED4, symSize: 0x134 } - - { offset: 0x12CC5A, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17hd06bf30838c9bc3fE, symObjAddr: 0x636C, symBinAddr: 0x100C1B008, symSize: 0x134 } - - { offset: 0x12CD97, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h1338533b53592359E, symObjAddr: 0x64A0, symBinAddr: 0x100C1B13C, symSize: 0x10 } - - { offset: 0x12CDC7, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h19c815d1dc24bc83E, symObjAddr: 0x64B0, symBinAddr: 0x100C1B14C, symSize: 0x10 } - - { offset: 0x12CDF7, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h438d4f6f3d26c4d1E, symObjAddr: 0x64C0, symBinAddr: 0x100C1B15C, symSize: 0x10 } - - { offset: 0x12CE27, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h745afc1aa007832bE, symObjAddr: 0x64D0, symBinAddr: 0x100C1B16C, symSize: 0x10 } - - { offset: 0x12CE57, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h7ec734f509aaedf0E, symObjAddr: 0x64E0, symBinAddr: 0x100C1B17C, symSize: 0x10 } - - { offset: 0x12CEC2, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float29float_to_decimal_common_exact17h424e762303659f5eE, symObjAddr: 0x64F0, symBinAddr: 0x100C1B18C, symSize: 0x328 } - - { offset: 0x12CF97, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float29float_to_decimal_common_exact17h46de281188360264E, symObjAddr: 0x6818, symBinAddr: 0x100C1B4B4, symSize: 0x32C } - - { offset: 0x12D082, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float32float_to_decimal_common_shortest17h449e81c53dfd8c83E, symObjAddr: 0x70E8, symBinAddr: 0x100C1B7E0, symSize: 0x270 } - - { offset: 0x12D15F, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float32float_to_decimal_common_shortest17hc6fe8917ac9a0cc8E, symObjAddr: 0x7358, symBinAddr: 0x100C1BA50, symSize: 0x26C } - - { offset: 0x12D226, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float36float_to_exponential_common_shortest17h0042aa257877048eE, symObjAddr: 0x8020, symBinAddr: 0x100C1BCBC, symSize: 0x314 } - - { offset: 0x12D314, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float36float_to_exponential_common_shortest17hf82915ac3e8e123bE, symObjAddr: 0x8650, symBinAddr: 0x100C1BFD0, symSize: 0x318 } - - { offset: 0x12D43F, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt5float50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$f32$GT$3fmt17h78af10e6d0682bc8E', symObjAddr: 0x89E4, symBinAddr: 0x100C1C2E8, symSize: 0x78 } - - { offset: 0x12D4ED, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt5float50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$f64$GT$3fmt17he77028914ee1a27eE', symObjAddr: 0x8A5C, symBinAddr: 0x100C1C360, symSize: 0x88 } - - { offset: 0x12D587, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17hc2d66b4dc914ebe8E', symObjAddr: 0x8B44, symBinAddr: 0x100C1C3E8, symSize: 0x30 } - - { offset: 0x12D642, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5write17h164e2e78980a3344E, symObjAddr: 0x8CC4, symBinAddr: 0x100C1C418, symSize: 0x1E8 } - - { offset: 0x12D825, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter12pad_integral12write_prefix17hb8ba5c49cdc42ad5E, symObjAddr: 0x9E20, symBinAddr: 0x100C1D128, symSize: 0x7C } - - { offset: 0x12D897, size: 0x8, addend: 0x0, symName: '__ZN53_$LT$core..fmt..Error$u20$as$u20$core..fmt..Debug$GT$3fmt17hdaf7e34180b4a8deE', symObjAddr: 0x17A28, symBinAddr: 0x100C26344, symSize: 0x18 } - - { offset: 0x12D8B5, size: 0x8, addend: 0x0, symName: '__ZN53_$LT$core..fmt..Error$u20$as$u20$core..fmt..Debug$GT$3fmt17hdaf7e34180b4a8deE', symObjAddr: 0x17A28, symBinAddr: 0x100C26344, symSize: 0x18 } - - { offset: 0x12D8DC, size: 0x8, addend: 0x0, symName: '__ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17h52418a8a7efea083E', symObjAddr: 0x19064, symBinAddr: 0x100C26BD0, symSize: 0xC } - - { offset: 0x12D8F7, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Debug$GT$3fmt17hce9691be13f12a06E', symObjAddr: 0x183AC, symBinAddr: 0x100C2635C, symSize: 0xC } - - { offset: 0x12DB06, size: 0x8, addend: 0x0, symName: __ZN4core6result13unwrap_failed17hecc7e6934498f5c2E, symObjAddr: 0x162A8, symBinAddr: 0x100C72C60, symSize: 0x5C } - - { offset: 0x12DB46, size: 0x8, addend: 0x0, symName: '__ZN105_$LT$dyn$u20$core..any..Any$u2b$core..marker..Sync$u2b$core..marker..Send$u20$as$u20$core..fmt..Debug$GT$3fmt17h8b3e181f1529b25eE', symObjAddr: 0x16C, symBinAddr: 0x100C184F4, symSize: 0x6C } - - { offset: 0x12DCA7, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$core..net..ip_addr..IpAddr$u20$as$u20$core..fmt..Display$GT$3fmt17hb734b5e59fb38c7bE', symObjAddr: 0x1A680, symBinAddr: 0x100C26F78, symSize: 0x14 } - - { offset: 0x12DCC2, size: 0x8, addend: 0x0, symName: '__ZN63_$LT$core..net..ip_addr..IpAddr$u20$as$u20$core..fmt..Debug$GT$3fmt17hdcccc667fa10390fE', symObjAddr: 0x1A37C, symBinAddr: 0x100C26F50, symSize: 0x14 } - - { offset: 0x12DCE1, size: 0x8, addend: 0x0, symName: '__ZN63_$LT$core..net..ip_addr..IpAddr$u20$as$u20$core..fmt..Debug$GT$3fmt17hdcccc667fa10390fE', symObjAddr: 0x1A37C, symBinAddr: 0x100C26F50, symSize: 0x14 } - - { offset: 0x12DCFB, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$core..net..ip_addr..Ipv4Addr$u20$as$u20$core..fmt..Debug$GT$3fmt17h06424b2dfe12cd64E', symObjAddr: 0x1A694, symBinAddr: 0x100C26F8C, symSize: 0x4 } - - { offset: 0x12DD1D, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..fmt..Debug$GT$3fmt17h2e3f710af04d6c44E', symObjAddr: 0x1A698, symBinAddr: 0x100C26F90, symSize: 0x4 } - - { offset: 0x12DD3F, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..net..ip_addr..Ipv4Addr$u20$as$u20$core..fmt..Display$GT$3fmt17h6513381b60885348E', symObjAddr: 0x1AD28, symBinAddr: 0x100C271F0, symSize: 0x148 } - - { offset: 0x12DE69, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..fmt..Display$GT$3fmt12fmt_subslice17h7bbbb9afa29b9285E', symObjAddr: 0x1AE70, symBinAddr: 0x100C27338, symSize: 0x10C } - - { offset: 0x12DF4E, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..fmt..Display$GT$3fmt17hd9bd05e67defaa86E', symObjAddr: 0x1AF7C, symBinAddr: 0x100C27444, symSize: 0x718 } - - { offset: 0x12E2B3, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$core..net..display_buffer..DisplayBuffer$LT$_$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h63f2e65f2d3e5331E', symObjAddr: 0x1F640, symBinAddr: 0x100C28DD0, symSize: 0x50 } - - { offset: 0x12E354, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$core..net..display_buffer..DisplayBuffer$LT$_$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h6a536cefeb78690eE', symObjAddr: 0x1F690, symBinAddr: 0x100C28E20, symSize: 0x50 } - - { offset: 0x12E3F5, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$core..net..display_buffer..DisplayBuffer$LT$_$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h8193d428e5cb9597E', symObjAddr: 0x1F6E0, symBinAddr: 0x100C28E70, symSize: 0x50 } - - { offset: 0x12E496, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$core..net..display_buffer..DisplayBuffer$LT$_$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h9e97877d5d2c34dcE', symObjAddr: 0x1F730, symBinAddr: 0x100C28EC0, symSize: 0x50 } - - { offset: 0x12E749, size: 0x8, addend: 0x0, symName: __ZN4core3net6parser6Parser14read_ipv4_addr17hf1eb8bfd1756a1f2E, symObjAddr: 0xC7C4, symBinAddr: 0x100C1EE18, symSize: 0x39C } - - { offset: 0x12E97A, size: 0x8, addend: 0x0, symName: __ZN4core3net6parser6Parser14read_ipv6_addr17hc0839af9db01d8b7E, symObjAddr: 0xCD5C, symBinAddr: 0x100C1F3B0, symSize: 0x140 } - - { offset: 0x12ECAB, size: 0x8, addend: 0x0, symName: __ZN4core3net6parser6Parser19read_socket_addr_v617h83c27e2b249a0f1eE, symObjAddr: 0xCE9C, symBinAddr: 0x100C1F4F0, symSize: 0x1B8 } - - { offset: 0x12F29F, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser6Parser11read_number28_$u7b$$u7b$closure$u7d$$u7d$17ha480f39391dd68dcE', symObjAddr: 0xC540, symBinAddr: 0x100C1EB94, symSize: 0x284 } - - { offset: 0x12F513, size: 0x8, addend: 0x0, symName: __ZN4core3net6parser6Parser14read_ipv6_addr11read_groups17hb77959f975924e44E, symObjAddr: 0xCB60, symBinAddr: 0x100C1F1B4, symSize: 0x1FC } - - { offset: 0x12F84A, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser83_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..ip_addr..IpAddr$GT$8from_str17hb57081a9f421f200E', symObjAddr: 0xD054, symBinAddr: 0x100C1F6A8, symSize: 0xB8 } - - { offset: 0x12F932, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser85_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..ip_addr..Ipv4Addr$GT$8from_str17h0ac9c075953735ffE', symObjAddr: 0xD10C, symBinAddr: 0x100C1F760, symSize: 0x74 } - - { offset: 0x12F9A6, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser85_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..ip_addr..Ipv6Addr$GT$8from_str17h7f84e0b17bc4d5c2E', symObjAddr: 0xD180, symBinAddr: 0x100C1F7D4, symSize: 0x70 } - - { offset: 0x12FA2F, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser91_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..socket_addr..SocketAddr$GT$8from_str17hba518b0cef9c7f49E', symObjAddr: 0xD1F0, symBinAddr: 0x100C1F844, symSize: 0x4 } - - { offset: 0x12FA51, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser93_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..socket_addr..SocketAddrV4$GT$8from_str17hd1c0c0980a13462aE', symObjAddr: 0xD1F4, symBinAddr: 0x100C1F848, symSize: 0xE8 } - - { offset: 0x12FC2E, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$core..net..parser..AddrParseError$u20$as$u20$core..fmt..Display$GT$3fmt17h0664cff71db8bbe7E', symObjAddr: 0x1D400, symBinAddr: 0x100C287B0, symSize: 0x28 } - - { offset: 0x12FC82, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser52_$LT$impl$u20$core..net..socket_addr..SocketAddr$GT$11parse_ascii17hd983f988ebdd8aedE', symObjAddr: 0xC240, symBinAddr: 0x100C1E9F8, symSize: 0x19C } - - { offset: 0x12FF41, size: 0x8, addend: 0x0, symName: '__ZN73_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..fmt..Display$GT$3fmt17h873b0a6b9c27f03aE', symObjAddr: 0x1D650, symBinAddr: 0x100C289D8, symSize: 0x1C } - - { offset: 0x12FF5C, size: 0x8, addend: 0x0, symName: '__ZN71_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..fmt..Debug$GT$3fmt17h747c3d39c66e8105E', symObjAddr: 0x1D21C, symBinAddr: 0x100C28724, symSize: 0x1C } - - { offset: 0x12FF7B, size: 0x8, addend: 0x0, symName: '__ZN71_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..fmt..Debug$GT$3fmt17h747c3d39c66e8105E', symObjAddr: 0x1D21C, symBinAddr: 0x100C28724, symSize: 0x1C } - - { offset: 0x12FF95, size: 0x8, addend: 0x0, symName: '__ZN73_$LT$core..net..socket_addr..SocketAddrV4$u20$as$u20$core..fmt..Debug$GT$3fmt17h63f39eb4ff1a2821E', symObjAddr: 0x1D66C, symBinAddr: 0x100C289F4, symSize: 0x4 } - - { offset: 0x12FFB7, size: 0x8, addend: 0x0, symName: '__ZN73_$LT$core..net..socket_addr..SocketAddrV6$u20$as$u20$core..fmt..Debug$GT$3fmt17h1e55c363e64a55edE', symObjAddr: 0x1D670, symBinAddr: 0x100C289F8, symSize: 0x4 } - - { offset: 0x12FFD9, size: 0x8, addend: 0x0, symName: '__ZN75_$LT$core..net..socket_addr..SocketAddrV4$u20$as$u20$core..fmt..Display$GT$3fmt17heb4bdd312f955d99E', symObjAddr: 0x1DD18, symBinAddr: 0x100C28A5C, symSize: 0x144 } - - { offset: 0x130155, size: 0x8, addend: 0x0, symName: '__ZN75_$LT$core..net..socket_addr..SocketAddrV6$u20$as$u20$core..fmt..Display$GT$3fmt17hfe35cc387747a442E', symObjAddr: 0x1DE5C, symBinAddr: 0x100C28BA0, symSize: 0x230 } - - { offset: 0x130490, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..str..iter..EscapeDebug$u20$as$u20$core..fmt..Display$GT$3fmt17hc100f582bbb60a36E', symObjAddr: 0x1B748, symBinAddr: 0x100C27B5C, symSize: 0x808 } - - { offset: 0x131082, size: 0x8, addend: 0x0, symName: '__ZN4core3str21_$LT$impl$u20$str$GT$12escape_debug17hae803f881ba46609E', symObjAddr: 0x13F50, symBinAddr: 0x100C23EA4, symSize: 0xE4 } - - { offset: 0x13128C, size: 0x8, addend: 0x0, symName: __ZN4core3str5count14do_count_chars17h33e6469de2df7647E, symObjAddr: 0x1407C, symBinAddr: 0x100C23F88, symSize: 0x72C } - - { offset: 0x1316C1, size: 0x8, addend: 0x0, symName: __ZN4core3str5count23char_count_general_case17h75d98cb7073cf7deE, symObjAddr: 0x147A8, symBinAddr: 0x100C246B4, symSize: 0x2A8 } - - { offset: 0x131772, size: 0x8, addend: 0x0, symName: __ZN4core3str16slice_error_fail17he312d86f3b7ce317E, symObjAddr: 0x13CA4, symBinAddr: 0x100C72978, symSize: 0xC } - - { offset: 0x13178C, size: 0x8, addend: 0x0, symName: __ZN4core3str19slice_error_fail_rt17h7ffac88431dff4f3E, symObjAddr: 0x13CE4, symBinAddr: 0x100C23C38, symSize: 0x26C } - - { offset: 0x131920, size: 0x8, addend: 0x0, symName: __ZN4core3str7pattern11StrSearcher3new17h365be42c5338e9efE, symObjAddr: 0x14A84, symBinAddr: 0x100C2495C, symSize: 0x8B0 } - - { offset: 0x131BD6, size: 0x8, addend: 0x0, symName: __ZN4core3str8converts9from_utf817h907df036b51c9b19E, symObjAddr: 0x155A8, symBinAddr: 0x100C2520C, symSize: 0x274 } - - { offset: 0x131BF4, size: 0x8, addend: 0x0, symName: __ZN4core3str8converts9from_utf817h907df036b51c9b19E, symObjAddr: 0x155A8, symBinAddr: 0x100C2520C, symSize: 0x274 } - - { offset: 0x131C75, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$core..str..lossy..Debug$u20$as$u20$core..fmt..Debug$GT$3fmt17ha4f002b02a8dc8c1E', symObjAddr: 0x19D2C, symBinAddr: 0x100C26BDC, symSize: 0x360 } - - { offset: 0x131FA7, size: 0x8, addend: 0x0, symName: '__ZN87_$LT$core..str..lossy..Utf8Chunks$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h7c6935794b4bf75bE', symObjAddr: 0x1FB1C, symBinAddr: 0x100C28F10, symSize: 0x1C0 } - - { offset: 0x1321CE, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$core..str..error..Utf8Error$u20$as$u20$core..fmt..Display$GT$3fmt17h7929e0cdec4892caE', symObjAddr: 0x1A8D0, symBinAddr: 0x100C26F94, symSize: 0x8C } - - { offset: 0x132234, size: 0x8, addend: 0x0, symName: '__ZN71_$LT$core..str..error..ParseBoolError$u20$as$u20$core..fmt..Display$GT$3fmt17h3a0286f1bc5f85d8E', symObjAddr: 0x1D2E4, symBinAddr: 0x100C2879C, symSize: 0x14 } - - { offset: 0x132342, size: 0x8, addend: 0x0, symName: __ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h1961d7e667fc8bd9E, symObjAddr: 0xFC0, symBinAddr: 0x100C18CDC, symSize: 0xF0 } - - { offset: 0x132361, size: 0x8, addend: 0x0, symName: __ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h1961d7e667fc8bd9E, symObjAddr: 0xFC0, symBinAddr: 0x100C18CDC, symSize: 0xF0 } - - { offset: 0x13245A, size: 0x8, addend: 0x0, symName: __ZN4core3ffi5c_str4CStr6to_str17h53f289478bd78a24E, symObjAddr: 0x118C, symBinAddr: 0x100C18DCC, symSize: 0x8 } - - { offset: 0x132479, size: 0x8, addend: 0x0, symName: __ZN4core3ffi5c_str4CStr6to_str17h53f289478bd78a24E, symObjAddr: 0x118C, symBinAddr: 0x100C18DCC, symSize: 0x8 } - - { offset: 0x1324E6, size: 0x8, addend: 0x0, symName: __ZN4core4cell22panic_already_borrowed8do_panic7runtime17h75f4247cf40d346fE, symObjAddr: 0x15828, symBinAddr: 0x100C72990, symSize: 0x44 } - - { offset: 0x13251A, size: 0x8, addend: 0x0, symName: __ZN4core4cell22panic_already_borrowed17h4fa42f1e3626b259E, symObjAddr: 0x1581C, symBinAddr: 0x100C72984, symSize: 0xC } - - { offset: 0x132564, size: 0x8, addend: 0x0, symName: __ZN4core4cell30panic_already_mutably_borrowed8do_panic7runtime17hcd0a801fe1b5362fE, symObjAddr: 0x15878, symBinAddr: 0x100C729E0, symSize: 0x44 } - - { offset: 0x132598, size: 0x8, addend: 0x0, symName: __ZN4core4cell30panic_already_mutably_borrowed17hd8b9067969a6f752E, symObjAddr: 0x1586C, symBinAddr: 0x100C729D4, symSize: 0xC } - - { offset: 0x1325CF, size: 0x8, addend: 0x0, symName: '__ZN62_$LT$core..cell..BorrowError$u20$as$u20$core..fmt..Display$GT$3fmt17h80f4a626dd81473dE', symObjAddr: 0x1A190, symBinAddr: 0x100C26F3C, symSize: 0x14 } - - { offset: 0x132608, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$core..cell..BorrowMutError$u20$as$u20$core..fmt..Display$GT$3fmt17h778e10d6fba8f374E', symObjAddr: 0x1A66C, symBinAddr: 0x100C26F64, symSize: 0x14 } - - { offset: 0x13265C, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data15grapheme_extend11lookup_slow17hf7d326cb6e780d1eE, symObjAddr: 0x16848, symBinAddr: 0x100C25D5C, symSize: 0x108 } - - { offset: 0x132904, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data10alphabetic11lookup_slow17hdcd9a417aa69b51cE, symObjAddr: 0x16304, symBinAddr: 0x100C259C0, symSize: 0x108 } - - { offset: 0x132AA0, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data11conversions8to_lower17h837192fa34f39920E, symObjAddr: 0x1640C, symBinAddr: 0x100C25AC8, symSize: 0x188 } - - { offset: 0x132BDB, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data14case_ignorable11lookup_slow17h29db2c3efd971bdeE, symObjAddr: 0x1673C, symBinAddr: 0x100C25C50, symSize: 0x10C } - - { offset: 0x132D7E, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data1n11lookup_slow17hda2398d1e0f6b165E, symObjAddr: 0x16950, symBinAddr: 0x100C25E64, symSize: 0x108 } - - { offset: 0x132F14, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data5cased11lookup_slow17h83bed5ab734a8770E, symObjAddr: 0x16A58, symBinAddr: 0x100C25F6C, symSize: 0xF4 } - - { offset: 0x132F33, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data5cased11lookup_slow17h83bed5ab734a8770E, symObjAddr: 0x16A58, symBinAddr: 0x100C25F6C, symSize: 0xF4 } - - { offset: 0x1330AB, size: 0x8, addend: 0x0, symName: __ZN4core7unicode9printable12is_printable17h2646e2e575849d73E, symObjAddr: 0x16D64, symBinAddr: 0x100C26060, symSize: 0x2E4 } - - { offset: 0x133370, size: 0x8, addend: 0x0, symName: __ZN4core5alloc6layout6Layout19is_size_align_valid17h7e53a514873591cbE, symObjAddr: 0x15CDC, symBinAddr: 0x100C25704, symSize: 0x20 } - - { offset: 0x13338E, size: 0x8, addend: 0x0, symName: __ZN4core5alloc6layout6Layout19is_size_align_valid17h7e53a514873591cbE, symObjAddr: 0x15CDC, symBinAddr: 0x100C25704, symSize: 0x20 } - - { offset: 0x1333BD, size: 0x8, addend: 0x0, symName: __ZN4core9panicking11panic_const23panic_const_div_by_zero17hc8ccfb6d43a5a054E, symObjAddr: 0x17048, symBinAddr: 0x100C72CBC, symSize: 0x34 } - - { offset: 0x1333ED, size: 0x8, addend: 0x0, symName: __ZN4core9panicking11panic_const23panic_const_rem_by_zero17h949d2d238097b6ddE, symObjAddr: 0x170B0, symBinAddr: 0x100C72CF0, symSize: 0x34 } - - { offset: 0x13341D, size: 0x8, addend: 0x0, symName: __ZN4core9panicking11panic_const28panic_const_async_fn_resumed17h86a73eab4bf9906aE, symObjAddr: 0x17284, symBinAddr: 0x100C72D24, symSize: 0x34 } - - { offset: 0x13344D, size: 0x8, addend: 0x0, symName: __ZN4core9panicking11panic_const34panic_const_async_fn_resumed_panic17h7959ccefc31200c7E, symObjAddr: 0x173BC, symBinAddr: 0x100C72D58, symSize: 0x34 } - - { offset: 0x13347E, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17h3185fe20b6b360a6E, symObjAddr: 0x174C0, symBinAddr: 0x100C72D8C, symSize: 0x24 } - - { offset: 0x133499, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17h34abf6781a632a2bE, symObjAddr: 0x174E4, symBinAddr: 0x100C72DB0, symSize: 0x24 } - - { offset: 0x1334B4, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17hae7772335a475aaaE, symObjAddr: 0x17508, symBinAddr: 0x100C72DD4, symSize: 0x24 } - - { offset: 0x1334CF, size: 0x8, addend: 0x0, symName: __ZN4core9panicking14panic_nounwind17h6b2e5f463f7678f3E, symObjAddr: 0x1752C, symBinAddr: 0x100C72DF8, symSize: 0x3C } - - { offset: 0x1334FF, size: 0x8, addend: 0x0, symName: __ZN4core9panicking16panic_in_cleanup17h0018177c7013b04bE, symObjAddr: 0x175CC, symBinAddr: 0x100C72E34, symSize: 0x18 } - - { offset: 0x13351A, size: 0x8, addend: 0x0, symName: __ZN4core9panicking18panic_bounds_check17hc44da13ec084d376E, symObjAddr: 0x175E4, symBinAddr: 0x100C72E4C, symSize: 0x50 } - - { offset: 0x133562, size: 0x8, addend: 0x0, symName: __ZN4core9panicking18panic_nounwind_fmt17hbccf1478dcdd0d51E, symObjAddr: 0x17634, symBinAddr: 0x100C72E9C, symSize: 0x3C } - - { offset: 0x1335A9, size: 0x8, addend: 0x0, symName: __ZN4core9panicking19assert_failed_inner17hfb93774e4aca671fE, symObjAddr: 0x17670, symBinAddr: 0x100C72ED8, symSize: 0xE4 } - - { offset: 0x1335F3, size: 0x8, addend: 0x0, symName: __ZN4core9panicking19panic_cannot_unwind17hf78649432160e0dbE, symObjAddr: 0x17754, symBinAddr: 0x100C72FBC, symSize: 0x18 } - - { offset: 0x13360E, size: 0x8, addend: 0x0, symName: __ZN4core9panicking26panic_nounwind_nobacktrace17h251dcd38966d0e56E, symObjAddr: 0x1776C, symBinAddr: 0x100C72FD4, symSize: 0x3C } - - { offset: 0x13363E, size: 0x8, addend: 0x0, symName: __ZN4core9panicking5panic17h4a3c64c65dc98033E, symObjAddr: 0x17870, symBinAddr: 0x100C73010, symSize: 0x34 } - - { offset: 0x13366E, size: 0x8, addend: 0x0, symName: __ZN4core9panicking9panic_fmt17hfe9cfd57c06d80d9E, symObjAddr: 0x178A4, symBinAddr: 0x100C73044, symSize: 0x20 } - - { offset: 0x1336F5, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..time..Duration$u20$as$u20$core..fmt..Debug$GT$3fmt11fmt_decimal17h1fd9618c744af809E', symObjAddr: 0x183C8, symBinAddr: 0x100C26378, symSize: 0x570 } - - { offset: 0x1339F8, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..time..Duration$u20$as$u20$core..fmt..Debug$GT$3fmt11fmt_decimal28_$u7b$$u7b$closure$u7d$$u7d$17h445c61af5a1e6080E', symObjAddr: 0x18938, symBinAddr: 0x100C268E8, symSize: 0x204 } - - { offset: 0x133B6B, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..time..Duration$u20$as$u20$core..fmt..Debug$GT$3fmt17h720510d0e68230ddE', symObjAddr: 0x18B3C, symBinAddr: 0x100C26AEC, symSize: 0xE4 } - - { offset: 0x133BA4, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$core..time..TryFromFloatSecsError$u20$as$u20$core..fmt..Display$GT$3fmt17ha97791460a6eee89E', symObjAddr: 0x1D604, symBinAddr: 0x100C289A0, symSize: 0x38 } - - { offset: 0x133C31, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$core..sync..atomic..AtomicU32$u20$as$u20$core..fmt..Debug$GT$3fmt17h41a4a6f4eb7f891cE', symObjAddr: 0x1AAF8, symBinAddr: 0x100C27020, symSize: 0x1C8 } - - { offset: 0x133E0C, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$core..sync..atomic..AtomicU64$u20$as$u20$core..fmt..Debug$GT$3fmt17h41e43c2bebad6499E', symObjAddr: 0x1ACC0, symBinAddr: 0x100C271E8, symSize: 0x8 } - - { offset: 0x133E2B, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$core..sync..atomic..AtomicU64$u20$as$u20$core..fmt..Debug$GT$3fmt17h41e43c2bebad6499E', symObjAddr: 0x1ACC0, symBinAddr: 0x100C271E8, symSize: 0x8 } - - { offset: 0x133E41, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$core..sync..atomic..AtomicU64$u20$as$u20$core..fmt..Debug$GT$3fmt17h41e43c2bebad6499E', symObjAddr: 0x1ACC0, symBinAddr: 0x100C271E8, symSize: 0x8 } - - { offset: 0x133E71, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..sync..atomic..AtomicBool$u20$as$u20$core..fmt..Debug$GT$3fmt17h2fa2c3af4f987727E', symObjAddr: 0x1BF50, symBinAddr: 0x100C28364, symSize: 0x34 } - - { offset: 0x133F3E, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$core..sync..atomic..AtomicUsize$u20$as$u20$core..fmt..Debug$GT$3fmt17h8abc62ba70b07eafE', symObjAddr: 0x1C450, symBinAddr: 0x100C286D4, symSize: 0x28 } - - { offset: 0x133FA9, size: 0x8, addend: 0x0, symName: __ZN17compiler_builtins3int19specialized_div_rem12u128_div_rem17hb8b6b550bb9332edE, symObjAddr: 0x0, symBinAddr: 0x100C290D0, symSize: 0x328 } - - { offset: 0x13407B, size: 0x8, addend: 0x0, symName: __ZN17compiler_builtins3int19specialized_div_rem12u128_div_rem17hb8b6b550bb9332edE, symObjAddr: 0x0, symBinAddr: 0x100C290D0, symSize: 0x328 } - - { offset: 0x134099, size: 0x8, addend: 0x0, symName: __ZN17compiler_builtins3int19specialized_div_rem12u128_div_rem17hb8b6b550bb9332edE, symObjAddr: 0x0, symBinAddr: 0x100C290D0, symSize: 0x328 } - - { offset: 0x1343CD, size: 0x8, addend: 0x0, symName: ___floatuntidf, symObjAddr: 0x0, symBinAddr: 0x100C293F8, symSize: 0x7C } - - { offset: 0x1343F3, size: 0x8, addend: 0x0, symName: ___floatuntidf, symObjAddr: 0x0, symBinAddr: 0x100C293F8, symSize: 0x7C } - - { offset: 0x13440E, size: 0x8, addend: 0x0, symName: ___floatuntidf, symObjAddr: 0x0, symBinAddr: 0x100C293F8, symSize: 0x7C } - - { offset: 0x134424, size: 0x8, addend: 0x0, symName: ___floatuntidf, symObjAddr: 0x0, symBinAddr: 0x100C293F8, symSize: 0x7C } - - { offset: 0x134439, size: 0x8, addend: 0x0, symName: ___floatuntidf, symObjAddr: 0x0, symBinAddr: 0x100C293F8, symSize: 0x7C } - - { offset: 0x1346B8, size: 0x8, addend: 0x0, symName: ___udivti3, symObjAddr: 0x0, symBinAddr: 0x100C29474, symSize: 0x28 } - - { offset: 0x1346DE, size: 0x8, addend: 0x0, symName: ___udivti3, symObjAddr: 0x0, symBinAddr: 0x100C29474, symSize: 0x28 } - - { offset: 0x134769, size: 0x8, addend: 0x0, symName: ___umodti3, symObjAddr: 0x0, symBinAddr: 0x100C2949C, symSize: 0x28 } - - { offset: 0x13478F, size: 0x8, addend: 0x0, symName: ___umodti3, symObjAddr: 0x0, symBinAddr: 0x100C2949C, symSize: 0x28 } -... diff --git a/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/Relocations/x86_64/SwiftierHelper.yml b/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/Relocations/x86_64/SwiftierHelper.yml deleted file mode 100644 index 35394d1..0000000 --- a/Swiftier.xcarchive/dSYMs/SwiftierHelper.dSYM/Contents/Resources/Relocations/x86_64/SwiftierHelper.yml +++ /dev/null @@ -1,1285 +0,0 @@ ---- -triple: 'x86_64-apple-darwin' -binary-path: '/Users/alick/Library/Developer/Xcode/DerivedData/Swiftier-ctkjodxpxqqyhsbthnbqoqrbkuwb/Build/Intermediates.noindex/ArchiveIntermediates/Swiftier/IntermediateBuildFilesPath/UninstalledProducts/macosx/SwiftierHelper' -relocations: - - { offset: 0x7969A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper01kB15MachServiceNameSSvp', symObjAddr: 0x172E8, symBinAddr: 0x1012D5800, symSize: 0x0 } - - { offset: 0x796B4, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper01kB7VersionSSvp', symObjAddr: 0x172F8, symBinAddr: 0x1012D5810, symSize: 0x0 } - - { offset: 0x796CE, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper7logPathSSvp', symObjAddr: 0x17308, symBinAddr: 0x1012D5820, symSize: 0x0 } - - { offset: 0x796E9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper8delegateAA0B8DelegateCvp', symObjAddr: 0x17318, symBinAddr: 0x1012D5830, symSize: 0x0 } - - { offset: 0x79A45, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper8listenerSo13NSXPCListenerCvp', symObjAddr: 0x17320, symBinAddr: 0x1012D5838, symSize: 0x0 } - - { offset: 0x79A5F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC6sharedACvpZ', symObjAddr: 0x17328, symBinAddr: 0x1012D5840, symSize: 0x0 } - - { offset: 0x79C1F, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x0, symBinAddr: 0x100001280, symSize: 0x2E0 } - - { offset: 0x79E3C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12setupLoggingyyF', symObjAddr: 0x2E0, symBinAddr: 0x100001560, symSize: 0x1A0 } - - { offset: 0x79EDD, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper3logyySSF', symObjAddr: 0x480, symBinAddr: 0x100001700, symSize: 0x3A0 } - - { offset: 0x7A0DA, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateCMa', symObjAddr: 0x820, symBinAddr: 0x100001AA0, symSize: 0x20 } - - { offset: 0x7A0EE, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC6shared_WZ', symObjAddr: 0x840, symBinAddr: 0x100001AC0, symSize: 0x40 } - - { offset: 0x7A249, size: 0x8, addend: 0x0, symName: '_$sSo7NSTimerCIeghg_ABIeyBhy_TR', symObjAddr: 0x1AD0, symBinAddr: 0x100002D50, symSize: 0x50 } - - { offset: 0x7A282, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCMU', symObjAddr: 0x2010, symBinAddr: 0x100003290, symSize: 0x10 } - - { offset: 0x7A296, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCMa', symObjAddr: 0x2020, symBinAddr: 0x1000032A0, symSize: 0x30 } - - { offset: 0x7A2AA, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCMr', symObjAddr: 0x2050, symBinAddr: 0x1000032D0, symSize: 0xC0 } - - { offset: 0x7A2BE, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgMa', symObjAddr: 0x2110, symBinAddr: 0x100003390, symSize: 0x50 } - - { offset: 0x7A326, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateCfETo', symObjAddr: 0x2D00, symBinAddr: 0x100003F80, symSize: 0x50 } - - { offset: 0x7A357, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_TA', symObjAddr: 0x2EB0, symBinAddr: 0x1000040B0, symSize: 0x10 } - - { offset: 0x7A36B, size: 0x8, addend: 0x0, symName: _block_copy_helper, symObjAddr: 0x2EC0, symBinAddr: 0x1000040C0, symSize: 0x20 } - - { offset: 0x7A37F, size: 0x8, addend: 0x0, symName: _block_destroy_helper, symObjAddr: 0x2EE0, symBinAddr: 0x1000040E0, symSize: 0x10 } - - { offset: 0x7A393, size: 0x8, addend: 0x0, symName: '_$s8Dispatch0A13WorkItemFlagsVACs10SetAlgebraAAWl', symObjAddr: 0x2EF0, symBinAddr: 0x1000040F0, symSize: 0x40 } - - { offset: 0x7A3A7, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameV2, symObjAddr: 0x2F30, symBinAddr: 0x100004130, symSize: 0x40 } - - { offset: 0x7A3BB, size: 0x8, addend: 0x0, symName: '_$sSay8Dispatch0A13WorkItemFlagsVGSayxGSTsWl', symObjAddr: 0x2F70, symBinAddr: 0x100004170, symSize: 0x40 } - - { offset: 0x7A3CF, size: 0x8, addend: 0x0, symName: ___swift_instantiateConcreteTypeFromMangledNameAbstractV2, symObjAddr: 0x2FB0, symBinAddr: 0x1000041B0, symSize: 0x50 } - - { offset: 0x7A3E3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_ySo7NSTimerCYbcfU_TA', symObjAddr: 0x3000, symBinAddr: 0x100004200, symSize: 0x10 } - - { offset: 0x7A5BE, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataV15_RepresentationOWOe', symObjAddr: 0x3E50, symBinAddr: 0x100005050, symSize: 0x40 } - - { offset: 0x7A5D2, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFyycfU_TA', symObjAddr: 0x3EE0, symBinAddr: 0x1000050E0, symSize: 0x20 } - - { offset: 0x7A5E6, size: 0x8, addend: 0x0, symName: '_$sS2SSysWl', symObjAddr: 0x3F30, symBinAddr: 0x100005130, symSize: 0x30 } - - { offset: 0x7A5FA, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_TA', symObjAddr: 0x3F60, symBinAddr: 0x100005160, symSize: 0x10 } - - { offset: 0x7A60E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_ySo7NSTimerCYbcfU_TA', symObjAddr: 0x3F90, symBinAddr: 0x100005190, symSize: 0x10 } - - { offset: 0x7A622, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOd', symObjAddr: 0x3FA0, symBinAddr: 0x1000051A0, symSize: 0x40 } - - { offset: 0x7A636, size: 0x8, addend: 0x0, symName: '_$sypWOb', symObjAddr: 0x3FE0, symBinAddr: 0x1000051E0, symSize: 0x20 } - - { offset: 0x7A64A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5Int32VSPys4Int8VGXEfU_TA', symObjAddr: 0x4000, symBinAddr: 0x100005200, symSize: 0x20 } - - { offset: 0x7A65E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5Int32VSPys4Int8VGXEfU_AhKXEfU_TA', symObjAddr: 0x4020, symBinAddr: 0x100005220, symSize: 0x20 } - - { offset: 0x7A672, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DataVSgWOe', symObjAddr: 0x40A0, symBinAddr: 0x1000052A0, symSize: 0x20 } - - { offset: 0x7A8F9, size: 0x8, addend: 0x0, symName: '_$sSS11withCStringyxxSPys4Int8VGKXEKlFs5Int32V_Tg5066$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5d6VSPys4C15VGXEfU_AhKXEfU_A2DSgTf1cn_n', symObjAddr: 0x2D50, symBinAddr: 0x100003FD0, symSize: 0xB0 } - - { offset: 0x7A944, size: 0x8, addend: 0x0, symName: '_$sSS11withCStringyxxSPys4Int8VGKXEKlFs5Int32V_Tg5066$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5d6VSPys4C7VGXEfU_SSADSgTf1cn_nTf4ngn_n', symObjAddr: 0x3010, symBinAddr: 0x100004210, symSize: 0xB0 } - - { offset: 0x7AB22, size: 0x8, addend: 0x0, symName: '_$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_ypTt0g5Tf4g_n', symObjAddr: 0x30C0, symBinAddr: 0x1000042C0, symSize: 0x110 } - - { offset: 0x7AC4E, size: 0x8, addend: 0x0, symName: '_$sSlsE6prefixy11SubSequenceQzSiFSS_Tg5Tf4ng_n', symObjAddr: 0x3C30, symBinAddr: 0x100004E30, symSize: 0x90 } - - { offset: 0x7AF8E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCACyc33_7DF960DDBA7E38F611BC80C1A069EF24Llfc', symObjAddr: 0x880, symBinAddr: 0x100001B00, symSize: 0x110 } - - { offset: 0x7B007, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC9startTimeSdvg', symObjAddr: 0x990, symBinAddr: 0x100001C10, symSize: 0x140 } - - { offset: 0x7B143, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC5start10configPath12consoleLevelySS_SStKF', symObjAddr: 0xAD0, symBinAddr: 0x100001D50, symSize: 0x930 } - - { offset: 0x7B6F5, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC4stopyyF', symObjAddr: 0x1400, symBinAddr: 0x100002680, symSize: 0x300 } - - { offset: 0x7B7A0, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC4stopyyFyyYbcfU_', symObjAddr: 0x1700, symBinAddr: 0x100002980, symSize: 0x100 } - - { offset: 0x7B86A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyF', symObjAddr: 0x1800, symBinAddr: 0x100002A80, symSize: 0x190 } - - { offset: 0x7B8B8, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_', symObjAddr: 0x1990, symBinAddr: 0x100002C10, symSize: 0xF0 } - - { offset: 0x7B8E3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15startLogMonitor33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_ySo7NSTimerCYbcfU_', symObjAddr: 0x1A80, symBinAddr: 0x100002D00, symSize: 0x50 } - - { offset: 0x7B975, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC12checkLogFile33_7DF960DDBA7E38F611BC80C1A069EF24LLyyF', symObjAddr: 0x1B60, symBinAddr: 0x100002DE0, symSize: 0x310 } - - { offset: 0x7BAB9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerCfD', symObjAddr: 0x1F80, symBinAddr: 0x100003200, symSize: 0x90 } - - { offset: 0x7BB3C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFyycfU_', symObjAddr: 0x2160, symBinAddr: 0x1000033E0, symSize: 0x210 } - - { offset: 0x7BBD0, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFyycfU0_', symObjAddr: 0x2370, symBinAddr: 0x1000035F0, symSize: 0x30 } - - { offset: 0x7BC14, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFTo', symObjAddr: 0x23A0, symBinAddr: 0x100003620, symSize: 0x70 } - - { offset: 0x7BC46, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC16registerListener8endpointySo21NSXPCListenerEndpointC_tFTo', symObjAddr: 0x2410, symBinAddr: 0x100003690, symSize: 0x30 } - - { offset: 0x7BC88, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyF', symObjAddr: 0x2440, symBinAddr: 0x1000036C0, symSize: 0x1A0 } - - { offset: 0x7BCD9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_', symObjAddr: 0x25E0, symBinAddr: 0x100003860, symSize: 0x110 } - - { offset: 0x7BD4C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13startPushLoop33_7DF960DDBA7E38F611BC80C1A069EF24LLyyFyyScMYccfU_ySo7NSTimerCYbcfU_', symObjAddr: 0x26F0, symBinAddr: 0x100003970, symSize: 0x170 } - - { offset: 0x7BEBF, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC9startCore10configPath04coreG012consoleLevel5replyySS_S2SySb_SSSgtctFTo', symObjAddr: 0x2860, symBinAddr: 0x100003AE0, symSize: 0xB0 } - - { offset: 0x7BEFF, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8stopCore5replyyySbc_tFTo', symObjAddr: 0x2910, symBinAddr: 0x100003B90, symSize: 0x80 } - - { offset: 0x7BF8F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC16getCoreStartTime5replyyySdc_tFTo', symObjAddr: 0x29B0, symBinAddr: 0x100003C30, symSize: 0xF0 } - - { offset: 0x7C07E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC10getVersion5replyyySSc_tFTo', symObjAddr: 0x2AA0, symBinAddr: 0x100003D20, symSize: 0x50 } - - { offset: 0x7C10A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC15getRecentEvents10sinceIndex5replyySi_y10Foundation4DataV_SitctFTo', symObjAddr: 0x2AF0, symBinAddr: 0x100003D70, symSize: 0xA0 } - - { offset: 0x7C173, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC04quitB05replyyySbc_tFyyScMYccfU_', symObjAddr: 0x2B90, symBinAddr: 0x100003E10, symSize: 0x10 } - - { offset: 0x7C19C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateCACycfcTo', symObjAddr: 0x2C40, symBinAddr: 0x100003EC0, symSize: 0x90 } - - { offset: 0x7C1FE, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateCfD', symObjAddr: 0x2CD0, symBinAddr: 0x100003F50, symSize: 0x30 } - - { offset: 0x7C261, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper18CoreProcessManagerC15processLogChunk33_7DF960DDBA7E38F611BC80C1A069EF24LLyySSFTf4nd_n', symObjAddr: 0x31D0, symBinAddr: 0x1000043D0, symSize: 0x1A0 } - - { offset: 0x7C3FB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC8listener_25shouldAcceptNewConnectionSbSo13NSXPCListenerC_So15NSXPCConnectionCtFTf4dnn_n', symObjAddr: 0x3370, symBinAddr: 0x100004570, symSize: 0x310 } - - { offset: 0x7C4DC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC9startCore10configPath04coreG012consoleLevel5replyySS_S2SySb_SSSgtctF59$s10ObjectiveC8ObjCBoolVSo8NSStringCSgIeyByy_SbSSSgIegyg_TR0M1C0oP0VSo0R0CSgIeyByy_Tf1nnncn_nTf4ndndg_n', symObjAddr: 0x3680, symBinAddr: 0x100004880, symSize: 0x1B0 } - - { offset: 0x7C6C1, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC13getCoreStatus5replyyys5Int32Vc_tF04$ss5H16VIeyBy_ABIegy_TRAGIeyBy_Tf1cn_nTf4dg_n', symObjAddr: 0x3830, symBinAddr: 0x100004A30, symSize: 0x170 } - - { offset: 0x7C79E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC04quitB05replyyySbc_tF39$s10ObjectiveC8ObjCBoolVIeyBy_SbIegy_TR0G1C0iJ0VIeyBy_Tf1cn_nTf4dg_n', symObjAddr: 0x39A0, symBinAddr: 0x100004BA0, symSize: 0x290 } - - { offset: 0x7C82E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper0B8DelegateC14getRunningInfo5replyyySSSgc_tF33$sSo8NSStringCSgIeyBy_SSSgIegg_TRSo0J0CSgIeyBy_Tf1cn_nTf4dg_n', symObjAddr: 0x3CC0, symBinAddr: 0x100004EC0, symSize: 0x190 } - - { offset: 0x7CA04, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x100005410, symSize: 0x30 } - - { offset: 0x7CA28, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC6sharedACvpZ', symObjAddr: 0x3708, symBinAddr: 0x1012D5848, symSize: 0x0 } - - { offset: 0x7CAFC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC6shared_WZ', symObjAddr: 0x0, symBinAddr: 0x100005410, symSize: 0x30 } - - { offset: 0x7CB86, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreCMa', symObjAddr: 0x150, symBinAddr: 0x100005560, symSize: 0x20 } - - { offset: 0x7CC08, size: 0x8, addend: 0x0, symName: '_$sSS_yptWOh', symObjAddr: 0x550, symBinAddr: 0x100005920, symSize: 0x40 } - - { offset: 0x7CC1C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC12startNetwork6configySS_tKFs5Int32VSPys4Int8VGXEfU_TA', symObjAddr: 0x590, symBinAddr: 0x100005960, symSize: 0x21 } - - { offset: 0x7CCB3, size: 0x8, addend: 0x0, symName: '_$sSS11withCStringyxxSPys4Int8VGKXEKlFs5Int32V_Tg5063$s14SwiftierHelper12EasyTierCoreC12startNetwork6configySS_tKFs5d6VSPys4C7VGXEfU_ADSgTf1cn_n', symObjAddr: 0x90, symBinAddr: 0x1000054A0, symSize: 0xA0 } - - { offset: 0x7CDFB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5Int32VSPys4Int8VGXEfU_', symObjAddr: 0x30, symBinAddr: 0x100005440, symSize: 0x30 } - - { offset: 0x7CE40, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC10initLogger4path5levelySS_SStFs5Int32VSPys4Int8VGXEfU_AhKXEfU_', symObjAddr: 0x60, symBinAddr: 0x100005470, symSize: 0x30 } - - { offset: 0x7CEB1, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreCfD', symObjAddr: 0x130, symBinAddr: 0x100005540, symSize: 0x20 } - - { offset: 0x7CF73, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC12startNetwork6configySS_tKFTf4nd_n', symObjAddr: 0x170, symBinAddr: 0x100005580, symSize: 0x300 } - - { offset: 0x7D18C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12EasyTierCoreC14getRunningInfoSSSgyFTf4d_n', symObjAddr: 0x470, symBinAddr: 0x100005880, symSize: 0xA0 } - - { offset: 0x7D2C5, size: 0x8, addend: 0x0, symName: '_$sSlsE9dropFirsty11SubSequenceQzSiFSay14SwiftierHelper14ProcessedEventVG_Tg5', symObjAddr: 0x0, symBinAddr: 0x100005990, symSize: 0x60 } - - { offset: 0x7D2E9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC6sharedACvpZ', symObjAddr: 0x109C8, symBinAddr: 0x1012D5850, symSize: 0x0 } - - { offset: 0x7D4E4, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC6shared_WZ', symObjAddr: 0x60, symBinAddr: 0x1000059F0, symSize: 0xE0 } - - { offset: 0x7D5C7, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorCMa', symObjAddr: 0x780, symBinAddr: 0x100006110, symSize: 0x20 } - - { offset: 0x7D5DB, size: 0x8, addend: 0x0, symName: '_$s10Foundation6LocaleVSgWOh', symObjAddr: 0x8E0, symBinAddr: 0x100006200, symSize: 0x40 } - - { offset: 0x7D65D, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtF14SwiftierHelper14ProcessedEventV_Tg5', symObjAddr: 0x980, symBinAddr: 0x100006240, symSize: 0x1A0 } - - { offset: 0x7D7AC, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4findys10_HashTableV6BucketV6bucket_Sb5foundtxSHRzlFSS_Tg5', symObjAddr: 0xB20, symBinAddr: 0x1000063E0, symSize: 0x60 } - - { offset: 0x7D7EF, size: 0x8, addend: 0x0, symName: '_$ss22__RawDictionaryStorageC4find_9hashValues10_HashTableV6BucketV6bucket_Sb5foundtx_SitSHRzlFSS_Tg5', symObjAddr: 0xB80, symBinAddr: 0x100006440, symSize: 0xC0 } - - { offset: 0x7D867, size: 0x8, addend: 0x0, symName: '_$ss12_ArrayBufferV19_getElementSlowPathyyXlSiFSo20NSTextCheckingResultC_Tg5', symObjAddr: 0xC40, symBinAddr: 0x100006500, symSize: 0x1E0 } - - { offset: 0x7D904, size: 0x8, addend: 0x0, symName: '_$ss15ContiguousArrayV16_createNewBuffer14bufferIsUnique15minimumCapacity13growForAppendySb_SiSbtFSS_Tg5', symObjAddr: 0xE20, symBinAddr: 0x1000066E0, symSize: 0x20 } - - { offset: 0x7D974, size: 0x8, addend: 0x0, symName: '_$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSS_Tg5', symObjAddr: 0xE40, symBinAddr: 0x100006700, symSize: 0x120 } - - { offset: 0x7DAB8, size: 0x8, addend: 0x0, symName: '_$ss32_copyCollectionToContiguousArrayys0dE0Vy7ElementQzGxSlRzlFs0E5SliceVy14SwiftierHelper14ProcessedEventVG_Tg5', symObjAddr: 0xF60, symBinAddr: 0x100006820, symSize: 0x140 } - - { offset: 0x7DC46, size: 0x8, addend: 0x0, symName: '_$sSD4KeysVyxSD5IndexVyxq__GcigSS_ypTg5Tf4nn_g', symObjAddr: 0x10A0, symBinAddr: 0x100006960, symSize: 0x50 } - - { offset: 0x7DE84, size: 0x8, addend: 0x0, symName: '_$ss20_ArrayBufferProtocolPsE15replaceSubrange_4with10elementsOfySnySiG_Siqd__ntSlRd__7ElementQyd__AGRtzlFs01_aB0Vy14SwiftierHelper14ProcessedEventVG_s15EmptyCollectionVyANGTg5Tf4nndn_n', symObjAddr: 0x1840, symBinAddr: 0x100007100, symSize: 0x120 } - - { offset: 0x7DFD7, size: 0x8, addend: 0x0, symName: '_$sSa15replaceSubrange_4withySnySiG_qd__nt7ElementQyd__RszSlRd__lF14SwiftierHelper14ProcessedEventV_s15EmptyCollectionVyAHGTg5Tf4ndn_n', symObjAddr: 0x1960, symBinAddr: 0x100007220, symSize: 0xB0 } - - { offset: 0x7E221, size: 0x8, addend: 0x0, symName: '_$sypWOc', symObjAddr: 0x22C0, symBinAddr: 0x100007B80, symSize: 0x30 } - - { offset: 0x7E235, size: 0x8, addend: 0x0, symName: ___swift_project_boxed_opaque_existential_0, symObjAddr: 0x2310, symBinAddr: 0x100007BB0, symSize: 0x30 } - - { offset: 0x7E249, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOb', symObjAddr: 0x2340, symBinAddr: 0x100007BE0, symSize: 0x40 } - - { offset: 0x7E25D, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVWOc', symObjAddr: 0x2380, symBinAddr: 0x100007C20, symSize: 0x30 } - - { offset: 0x7E271, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVWOb', symObjAddr: 0x23B0, symBinAddr: 0x100007C50, symSize: 0x30 } - - { offset: 0x7E285, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVWOh', symObjAddr: 0x23E0, symBinAddr: 0x100007C80, symSize: 0x30 } - - { offset: 0x7E299, size: 0x8, addend: 0x0, symName: ___swift_destroy_boxed_opaque_existential_0, symObjAddr: 0x2410, symBinAddr: 0x100007CB0, symSize: 0x30 } - - { offset: 0x7E2AD, size: 0x8, addend: 0x0, symName: '_$sSo20NSTextCheckingResultCMa', symObjAddr: 0x2440, symBinAddr: 0x100007CE0, symSize: 0x40 } - - { offset: 0x7E2C1, size: 0x8, addend: 0x0, symName: '_$sSaySSGSayxGSKsWl', symObjAddr: 0x2480, symBinAddr: 0x100007D20, symSize: 0x40 } - - { offset: 0x7E2D5, size: 0x8, addend: 0x0, symName: '_$sSay14SwiftierHelper14ProcessedEventVGSayxGSEsSERzlWl', symObjAddr: 0x2510, symBinAddr: 0x100007D60, symSize: 0x60 } - - { offset: 0x7E2E9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVACSEAAWl', symObjAddr: 0x2570, symBinAddr: 0x100007DC0, symSize: 0x40 } - - { offset: 0x7E3EB, size: 0x8, addend: 0x0, symName: '_$sSlsE9dropFirsty11SubSequenceQzSiFSay14SwiftierHelper14ProcessedEventVG_Tg5', symObjAddr: 0x0, symBinAddr: 0x100005990, symSize: 0x60 } - - { offset: 0x7E86B, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC19getSerializedEvents10sinceIndex10Foundation4DataV_SitSi_tF', symObjAddr: 0x140, symBinAddr: 0x100005AD0, symSize: 0x250 } - - { offset: 0x7EA4F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC14processRawLineyySSF', symObjAddr: 0x390, symBinAddr: 0x100005D20, symSize: 0x3B0 } - - { offset: 0x7EB5F, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorCfD', symObjAddr: 0x740, symBinAddr: 0x1000060D0, symSize: 0x40 } - - { offset: 0x7EB98, size: 0x8, addend: 0x0, symName: '_$sSo19NSRegularExpressionC7pattern7optionsABSS_So0aB7OptionsVtKcfcTO', symObjAddr: 0x7E0, symBinAddr: 0x100006130, symSize: 0xD0 } - - { offset: 0x7EC0C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC27collapsePrettyPrintedArrays33_27AEB632ED150D7960F32A9DEAC821C0LLyS2SFTf4nd_n', symObjAddr: 0x10F0, symBinAddr: 0x1000069B0, symSize: 0x750 } - - { offset: 0x7F2E9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper12LogProcessorC16parseAndAddEvent33_27AEB632ED150D7960F32A9DEAC821C0LL4json7rawLineySDySSypG_SStFTf4ndn_n', symObjAddr: 0x1A10, symBinAddr: 0x1000072D0, symSize: 0x8B0 } - - { offset: 0x7FA34, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVMa', symObjAddr: 0xA0, symBinAddr: 0x100007EA0, symSize: 0x30 } - - { offset: 0x7FCCC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs0E3KeyAAWl', symObjAddr: 0x540, symBinAddr: 0x100008290, symSize: 0x30 } - - { offset: 0x7FCE0, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOc', symObjAddr: 0x1390, symBinAddr: 0x100009090, symSize: 0x40 } - - { offset: 0x7FCF4, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs0E3KeyAAWl', symObjAddr: 0x13D0, symBinAddr: 0x1000090D0, symSize: 0x30 } - - { offset: 0x7FD08, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVACSEAAWl', symObjAddr: 0x1450, symBinAddr: 0x100009100, symSize: 0x30 } - - { offset: 0x7FD1C, size: 0x8, addend: 0x0, symName: '_$s10Foundation4DateVSgWOh', symObjAddr: 0x14B0, symBinAddr: 0x100009130, symSize: 0x40 } - - { offset: 0x7FD30, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVACSeAAWl', symObjAddr: 0x1580, symBinAddr: 0x100009200, symSize: 0x30 } - - { offset: 0x7FD44, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwCP', symObjAddr: 0x1610, symBinAddr: 0x100009230, symSize: 0x30 } - - { offset: 0x7FD58, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwxx', symObjAddr: 0x1640, symBinAddr: 0x100009260, symSize: 0x10 } - - { offset: 0x7FD6C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwcp', symObjAddr: 0x1650, symBinAddr: 0x100009270, symSize: 0x40 } - - { offset: 0x7FD80, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwca', symObjAddr: 0x1690, symBinAddr: 0x1000092B0, symSize: 0x60 } - - { offset: 0x7FD94, size: 0x8, addend: 0x0, symName: ___swift_memcpy33_8, symObjAddr: 0x16F0, symBinAddr: 0x100009310, symSize: 0x20 } - - { offset: 0x7FDA8, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwta', symObjAddr: 0x1710, symBinAddr: 0x100009330, symSize: 0x40 } - - { offset: 0x7FDBC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwet', symObjAddr: 0x1750, symBinAddr: 0x100009370, symSize: 0x50 } - - { offset: 0x7FDD0, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVwst', symObjAddr: 0x17A0, symBinAddr: 0x1000093C0, symSize: 0x50 } - - { offset: 0x7FDE4, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVMa', symObjAddr: 0x17F0, symBinAddr: 0x100009410, symSize: 0x10 } - - { offset: 0x7FDF8, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwCP', symObjAddr: 0x1800, symBinAddr: 0x100009420, symSize: 0x170 } - - { offset: 0x7FE0C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwxx', symObjAddr: 0x1970, symBinAddr: 0x100009590, symSize: 0xA0 } - - { offset: 0x7FE20, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwcp', symObjAddr: 0x1A10, symBinAddr: 0x100009630, symSize: 0x150 } - - { offset: 0x7FE34, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwca', symObjAddr: 0x1B60, symBinAddr: 0x100009780, symSize: 0x1E0 } - - { offset: 0x7FE48, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwtk', symObjAddr: 0x1D40, symBinAddr: 0x100009960, symSize: 0x100 } - - { offset: 0x7FE5C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwta', symObjAddr: 0x1E40, symBinAddr: 0x100009A60, symSize: 0x1B0 } - - { offset: 0x7FE70, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwet', symObjAddr: 0x1FF0, symBinAddr: 0x100009C10, symSize: 0x20 } - - { offset: 0x7FE84, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVwst', symObjAddr: 0x20A0, symBinAddr: 0x100009CC0, symSize: 0x20 } - - { offset: 0x7FE98, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVMr', symObjAddr: 0x2140, symBinAddr: 0x100009D60, symSize: 0xA0 } - - { offset: 0x7FEAC, size: 0x8, addend: 0x0, symName: ___swift_memcpy1_1, symObjAddr: 0x2230, symBinAddr: 0x100009E00, symSize: 0x10 } - - { offset: 0x7FEC0, size: 0x8, addend: 0x0, symName: ___swift_noop_void_return, symObjAddr: 0x2240, symBinAddr: 0x100009E10, symSize: 0x10 } - - { offset: 0x7FED4, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwet', symObjAddr: 0x2250, symBinAddr: 0x100009E20, symSize: 0x80 } - - { offset: 0x7FEE8, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwst', symObjAddr: 0x22D0, symBinAddr: 0x100009EA0, symSize: 0xD0 } - - { offset: 0x7FEFC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwup', symObjAddr: 0x23A0, symBinAddr: 0x100009F70, symSize: 0x10 } - - { offset: 0x7FF10, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOMa', symObjAddr: 0x23B0, symBinAddr: 0x100009F80, symSize: 0x10 } - - { offset: 0x7FF24, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwet', symObjAddr: 0x23C0, symBinAddr: 0x100009F90, symSize: 0x80 } - - { offset: 0x7FF38, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOwst', symObjAddr: 0x2440, symBinAddr: 0x10000A010, symSize: 0xD0 } - - { offset: 0x7FF4C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOMa', symObjAddr: 0x2540, symBinAddr: 0x10000A100, symSize: 0x10 } - - { offset: 0x7FF60, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOSHAASQWb', symObjAddr: 0x2550, symBinAddr: 0x10000A110, symSize: 0x10 } - - { offset: 0x7FF74, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFSQAAWl', symObjAddr: 0x2560, symBinAddr: 0x10000A120, symSize: 0x30 } - - { offset: 0x7FF88, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOSHAASQWb', symObjAddr: 0x2590, symBinAddr: 0x10000A150, symSize: 0x10 } - - { offset: 0x7FF9C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFSQAAWl', symObjAddr: 0x25A0, symBinAddr: 0x10000A160, symSize: 0x30 } - - { offset: 0x7FFB0, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x25D0, symBinAddr: 0x10000A190, symSize: 0x10 } - - { offset: 0x7FFC4, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x25E0, symBinAddr: 0x10000A1A0, symSize: 0x30 } - - { offset: 0x7FFD8, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x2610, symBinAddr: 0x10000A1D0, symSize: 0x10 } - - { offset: 0x7FFEC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x2620, symBinAddr: 0x10000A1E0, symSize: 0x30 } - - { offset: 0x80000, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAs28CustomDebugStringConvertiblePWb', symObjAddr: 0x2650, symBinAddr: 0x10000A210, symSize: 0x10 } - - { offset: 0x80014, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs28CustomDebugStringConvertibleAAWl', symObjAddr: 0x2660, symBinAddr: 0x10000A220, symSize: 0x30 } - - { offset: 0x80028, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAs23CustomStringConvertiblePWb', symObjAddr: 0x2690, symBinAddr: 0x10000A250, symSize: 0x10 } - - { offset: 0x8003C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOAFs23CustomStringConvertibleAAWl', symObjAddr: 0x26A0, symBinAddr: 0x10000A260, symSize: 0x30 } - - { offset: 0x800C2, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x2E0, symBinAddr: 0x100008060, symSize: 0x20 } - - { offset: 0x800DE, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x300, symBinAddr: 0x100008080, symSize: 0x20 } - - { offset: 0x8015C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs28CustomDebugStringConvertibleAAsAGP16debugDescriptionSSvgTW', symObjAddr: 0x8F0, symBinAddr: 0x1000085F0, symSize: 0x20 } - - { offset: 0x80178, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs23CustomStringConvertibleAAsAGP11descriptionSSvgTW', symObjAddr: 0x910, symBinAddr: 0x100008610, symSize: 0x20 } - - { offset: 0x8019C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV2id9timestamp4time4type7details10highlightsAC10Foundation4UUIDV_SSAJ4DateVSgS2SSayAA14HighlightRangeVGtcfC', symObjAddr: 0x0, symBinAddr: 0x100007E00, symSize: 0xA0 } - - { offset: 0x8021C, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV5start6length5color4boldACSi_SiSSSbtcfC', symObjAddr: 0x150, symBinAddr: 0x100007ED0, symSize: 0x20 } - - { offset: 0x8027D, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV5startSivg', symObjAddr: 0x170, symBinAddr: 0x100007EF0, symSize: 0x10 } - - { offset: 0x80291, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV6lengthSivg', symObjAddr: 0x180, symBinAddr: 0x100007F00, symSize: 0x10 } - - { offset: 0x802A5, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV5colorSSvg', symObjAddr: 0x190, symBinAddr: 0x100007F10, symSize: 0x30 } - - { offset: 0x802B9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV4boldSbvg', symObjAddr: 0x1C0, symBinAddr: 0x100007F40, symSize: 0x10 } - - { offset: 0x802F9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0x220, symBinAddr: 0x100007FA0, symSize: 0x80 } - - { offset: 0x80329, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x2A0, symBinAddr: 0x100008020, symSize: 0x20 } - - { offset: 0x80352, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP8intValueSiSgvgTW', symObjAddr: 0x2C0, symBinAddr: 0x100008040, symSize: 0x10 } - - { offset: 0x80366, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP8intValuexSgSi_tcfCTW', symObjAddr: 0x2D0, symBinAddr: 0x100008050, symSize: 0x10 } - - { offset: 0x8037A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV23__derived_struct_equalsySbAC_ACtFZ', symObjAddr: 0x320, symBinAddr: 0x1000080A0, symSize: 0x80 } - - { offset: 0x803D3, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV6encode2toys7Encoder_p_tKF', symObjAddr: 0x3A0, symBinAddr: 0x100008120, symSize: 0x170 } - - { offset: 0x80404, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV4fromACs7Decoder_p_tKcfC', symObjAddr: 0x570, symBinAddr: 0x1000082C0, symSize: 0x40 } - - { offset: 0x80426, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x5F0, symBinAddr: 0x100008300, symSize: 0x10 } - - { offset: 0x8046A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeVSQAASQ2eeoiySbx_xtFZTW', symObjAddr: 0x600, symBinAddr: 0x100008310, symSize: 0x80 } - - { offset: 0x804B5, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV2id10Foundation4UUIDVvg', symObjAddr: 0x680, symBinAddr: 0x100008390, symSize: 0x30 } - - { offset: 0x804C9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV9timestampSSvg', symObjAddr: 0x6B0, symBinAddr: 0x1000083C0, symSize: 0x30 } - - { offset: 0x804DD, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV4time10Foundation4DateVSgvg', symObjAddr: 0x6E0, symBinAddr: 0x1000083F0, symSize: 0x30 } - - { offset: 0x804F1, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV4typeSSvg', symObjAddr: 0x710, symBinAddr: 0x100008420, symSize: 0x30 } - - { offset: 0x80505, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV7detailsSSvg', symObjAddr: 0x740, symBinAddr: 0x100008450, symSize: 0x30 } - - { offset: 0x80519, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10highlightsSayAA14HighlightRangeVGvg', symObjAddr: 0x770, symBinAddr: 0x100008480, symSize: 0x20 } - - { offset: 0x80544, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP11stringValueSSvgTW', symObjAddr: 0x810, symBinAddr: 0x100008520, symSize: 0xA0 } - - { offset: 0x80582, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP11stringValuexSgSS_tcfCTW', symObjAddr: 0x8B0, symBinAddr: 0x1000085C0, symSize: 0x20 } - - { offset: 0x805AB, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLOs0E3KeyAAsAGP8intValuexSgSi_tcfCTW', symObjAddr: 0x8E0, symBinAddr: 0x1000085E0, symSize: 0x10 } - - { offset: 0x805BF, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV6encode2toys7Encoder_p_tKF', symObjAddr: 0x930, symBinAddr: 0x100008630, symSize: 0x2A0 } - - { offset: 0x805F0, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV4fromACs7Decoder_p_tKcfC', symObjAddr: 0xBD0, symBinAddr: 0x1000088D0, symSize: 0x4A0 } - - { offset: 0x8061A, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVSeAASe4fromxs7Decoder_p_tKcfCTW', symObjAddr: 0x1070, symBinAddr: 0x100008D70, symSize: 0x10 } - - { offset: 0x8062E, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventVSEAASE6encode2toys7Encoder_p_tKFTW', symObjAddr: 0x1080, symBinAddr: 0x100008D80, symSize: 0x10 } - - { offset: 0x80642, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x1090, symBinAddr: 0x100008D90, symSize: 0x140 } - - { offset: 0x806C9, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14HighlightRangeV4fromACs7Decoder_p_tKcfCTf4nd_n', symObjAddr: 0x11D0, symBinAddr: 0x100008ED0, symSize: 0x1C0 } - - { offset: 0x806EC, size: 0x8, addend: 0x0, symName: '_$s14SwiftierHelper14ProcessedEventV10CodingKeys33_DCC133245B8C61A8EC2ADA1F3B9A1B44LLO11stringValueAFSgSS_tcfCTf4nd_n', symObjAddr: 0x26D0, symBinAddr: 0x10000A290, symSize: 0x1C0 } - - { offset: 0x8082A, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_frombytes_vartime, symObjAddr: 0x0, symBinAddr: 0x100D37CE0, symSize: 0x3940 } - - { offset: 0x80844, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__k25519Precomp, symObjAddr: 0xEA30, symBinAddr: 0x100FA0B10, symSize: 0x0 } - - { offset: 0x80899, size: 0x8, addend: 0x0, symName: _d, symObjAddr: 0x14A30, symBinAddr: 0x100FA6B10, symSize: 0x0 } - - { offset: 0x80903, size: 0x8, addend: 0x0, symName: _sqrtm1, symObjAddr: 0x14A58, symBinAddr: 0x100FA6B38, symSize: 0x0 } - - { offset: 0x80919, size: 0x8, addend: 0x0, symName: _d2, symObjAddr: 0x14E60, symBinAddr: 0x100FA6F40, symSize: 0x0 } - - { offset: 0x80930, size: 0x8, addend: 0x0, symName: _Bi, symObjAddr: 0x14AA0, symBinAddr: 0x100FA6B80, symSize: 0x0 } - - { offset: 0x81642, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_frombytes_vartime, symObjAddr: 0x0, symBinAddr: 0x100D37CE0, symSize: 0x3940 } - - { offset: 0x8566E, size: 0x8, addend: 0x0, symName: _fe_mul_impl, symObjAddr: 0xE280, symBinAddr: 0x100D45F60, symSize: 0x3E0 } - - { offset: 0x858DB, size: 0x8, addend: 0x0, symName: _fe_tobytes, symObjAddr: 0x7B70, symBinAddr: 0x100D3F850, symSize: 0x270 } - - { offset: 0x86112, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_scalarmult_base, symObjAddr: 0x3940, symBinAddr: 0x100D3B620, symSize: 0xA10 } - - { offset: 0x87164, size: 0x8, addend: 0x0, symName: _table_select, symObjAddr: 0x4350, symBinAddr: 0x100D3C030, symSize: 0xA10 } - - { offset: 0x877BC, size: 0x8, addend: 0x0, symName: _ge_madd, symObjAddr: 0x4D60, symBinAddr: 0x100D3CA40, symSize: 0x260 } - - { offset: 0x87D6F, size: 0x8, addend: 0x0, symName: _ge_p2_dbl, symObjAddr: 0x4FC0, symBinAddr: 0x100D3CCA0, symSize: 0xCF0 } - - { offset: 0x88BAF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_sc_reduce, symObjAddr: 0x5CB0, symBinAddr: 0x100D3D990, symSize: 0xB40 } - - { offset: 0x8956F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_scalar_mult_generic_masked, symObjAddr: 0x67F0, symBinAddr: 0x100D3E4D0, symSize: 0x1380 } - - { offset: 0x8AB29, size: 0x8, addend: 0x0, symName: _fe_loose_invert, symObjAddr: 0x7F00, symBinAddr: 0x100D3FBE0, symSize: 0x2A10 } - - { offset: 0x8E2F2, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_public_from_private_generic_masked, symObjAddr: 0x7DE0, symBinAddr: 0x100D3FAC0, symSize: 0x120 } - - { offset: 0x8E4F9, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_invert, symObjAddr: 0xA910, symBinAddr: 0x100D425F0, symSize: 0x30 } - - { offset: 0x8E5EE, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_isnegative, symObjAddr: 0xA940, symBinAddr: 0x100D42620, symSize: 0x50 } - - { offset: 0x8E663, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_mul_ttt, symObjAddr: 0xA990, symBinAddr: 0x100D42670, symSize: 0x10 } - - { offset: 0x8E6FE, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_neg, symObjAddr: 0xA9A0, symBinAddr: 0x100D42680, symSize: 0xB0 } - - { offset: 0x8E829, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_fe_tobytes, symObjAddr: 0xAA50, symBinAddr: 0x100D42730, symSize: 0x10 } - - { offset: 0x8EB00, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_double_scalarmult_vartime, symObjAddr: 0xAA60, symBinAddr: 0x100D42740, symSize: 0x1E50 } - - { offset: 0x91661, size: 0x8, addend: 0x0, symName: _x25519_ge_add, symObjAddr: 0xE660, symBinAddr: 0x100D46340, symSize: 0x27A } - - { offset: 0x91C7D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_sc_mask, symObjAddr: 0xC8B0, symBinAddr: 0x100D44590, symSize: 0x20 } - - { offset: 0x9211A, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_sc_muladd, symObjAddr: 0xC8D0, symBinAddr: 0x100D445B0, symSize: 0x19B0 } - - { offset: 0x93216, size: 0x8, addend: 0x0, symName: _aes_nohw_sub_bytes, symObjAddr: 0x18F0, symBinAddr: 0x100D47680, symSize: 0x300 } - - { offset: 0x947C8, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_nohw_encrypt, symObjAddr: 0x830, symBinAddr: 0x100D465C0, symSize: 0x80 } - - { offset: 0x948B6, size: 0x8, addend: 0x0, symName: _aes_nohw_expand_round_keys, symObjAddr: 0x8B0, symBinAddr: 0x100D46640, symSize: 0x490 } - - { offset: 0x94B31, size: 0x8, addend: 0x0, symName: _aes_nohw_to_batch, symObjAddr: 0xD40, symBinAddr: 0x100D46AD0, symSize: 0x3F0 } - - { offset: 0x95063, size: 0x8, addend: 0x0, symName: _aes_nohw_encrypt_batch, symObjAddr: 0x1130, symBinAddr: 0x100D46EC0, symSize: 0x390 } - - { offset: 0x954F4, size: 0x8, addend: 0x0, symName: _aes_nohw_from_batch, symObjAddr: 0x14C0, symBinAddr: 0x100D47250, symSize: 0x250 } - - { offset: 0x95C73, size: 0x8, addend: 0x0, symName: _aes_nohw_shift_rows, symObjAddr: 0x1BF0, symBinAddr: 0x100D47980, symSize: 0x14C } - - { offset: 0x95EDD, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_nohw_ctr32_encrypt_blocks, symObjAddr: 0x1710, symBinAddr: 0x100D474A0, symSize: 0x1E0 } - - { offset: 0x96300, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_from_montgomery_in_place, symObjAddr: 0x0, symBinAddr: 0x100D47AD0, symSize: 0x2FC } - - { offset: 0x964B2, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_from_montgomery_in_place, symObjAddr: 0x0, symBinAddr: 0x100D47AD0, symSize: 0x2FC } - - { offset: 0x9671D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_neg_inv_mod_r_u64, symObjAddr: 0x0, symBinAddr: 0x100D47DD0, symSize: 0x87 } - - { offset: 0x9672B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_neg_inv_mod_r_u64, symObjAddr: 0x0, symBinAddr: 0x100D47DD0, symSize: 0x87 } - - { offset: 0x9683F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__little_endian_bytes_from_scalar, symObjAddr: 0x0, symBinAddr: 0x100D47E60, symSize: 0x31 } - - { offset: 0x9684D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__little_endian_bytes_from_scalar, symObjAddr: 0x0, symBinAddr: 0x100D47E60, symSize: 0x31 } - - { offset: 0x969BC, size: 0x8, addend: 0x0, symName: _Q_N0, symObjAddr: 0x15F0, symBinAddr: 0x100FA7070, symSize: 0x0 } - - { offset: 0x969EF, size: 0x8, addend: 0x0, symName: _Q, symObjAddr: 0x1580, symBinAddr: 0x100FA7000, symSize: 0x0 } - - { offset: 0x96A11, size: 0x8, addend: 0x0, symName: _N, symObjAddr: 0x15B0, symBinAddr: 0x100FA7030, symSize: 0x0 } - - { offset: 0x96A27, size: 0x8, addend: 0x0, symName: _N_N0, symObjAddr: 0x15E0, symBinAddr: 0x100FA7060, symSize: 0x0 } - - { offset: 0x96D4A, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_elem_mul_mont, symObjAddr: 0x150, symBinAddr: 0x100D47EA0, symSize: 0x20 } - - { offset: 0x96F66, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_scalar_mul_mont, symObjAddr: 0x250, symBinAddr: 0x100D47EC0, symSize: 0x20 } - - { offset: 0x9705A, size: 0x8, addend: 0x0, symName: _nistz384_point_double, symObjAddr: 0x340, symBinAddr: 0x100D47EE0, symSize: 0x3A0 } - - { offset: 0x97E04, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_point_add, symObjAddr: 0x6E0, symBinAddr: 0x100D48280, symSize: 0x140 } - - { offset: 0x980FF, size: 0x8, addend: 0x0, symName: _nistz384_point_add, symObjAddr: 0x820, symBinAddr: 0x100D483C0, symSize: 0x6B0 } - - { offset: 0x997C3, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p384_point_mul, symObjAddr: 0xED0, symBinAddr: 0x100D48A70, symSize: 0x380 } - - { offset: 0x99E30, size: 0x8, addend: 0x0, symName: _p384_point_select_w5, symObjAddr: 0x1250, symBinAddr: 0x100D48DF0, symSize: 0x170 } - - { offset: 0x9A059, size: 0x8, addend: 0x0, symName: _add_precomputed_w5, symObjAddr: 0x13C0, symBinAddr: 0x100D48F60, symSize: 0x1BC } - - { offset: 0x9A396, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMB_is_zero, symObjAddr: 0x0, symBinAddr: 0x100D49120, symSize: 0x20 } - - { offset: 0x9A458, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMB_is_zero, symObjAddr: 0x0, symBinAddr: 0x100D49120, symSize: 0x20 } - - { offset: 0x9A4CF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_are_zero, symObjAddr: 0x20, symBinAddr: 0x100D49140, symSize: 0x90 } - - { offset: 0x9A5DF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_equal, symObjAddr: 0xB0, symBinAddr: 0x100D491D0, symSize: 0x60 } - - { offset: 0x9A74C, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_less_than, symObjAddr: 0x110, symBinAddr: 0x100D49230, symSize: 0xB0 } - - { offset: 0x9A871, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_reduce_once, symObjAddr: 0x1C0, symBinAddr: 0x100D492E0, symSize: 0x170 } - - { offset: 0x9AB76, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_add_mod, symObjAddr: 0x330, symBinAddr: 0x100D49450, symSize: 0x260 } - - { offset: 0x9AE8B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_sub_mod, symObjAddr: 0x590, symBinAddr: 0x100D496B0, symSize: 0x1A0 } - - { offset: 0x9B076, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_shl_mod, symObjAddr: 0x730, symBinAddr: 0x100D49850, symSize: 0x290 } - - { offset: 0x9B2A5, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_window5_split_window, symObjAddr: 0xBF0, symBinAddr: 0x100D49AE0, symSize: 0x20 } - - { offset: 0x9B30E, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMBS_window5_unsplit_window, symObjAddr: 0xC10, symBinAddr: 0x100D49B00, symSize: 0x20 } - - { offset: 0x9B349, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__LIMB_shr, symObjAddr: 0xC30, symBinAddr: 0x100D49B20, symSize: 0x10 } - - { offset: 0x9B3CF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__limbs_mul_add_limb, symObjAddr: 0xC40, symBinAddr: 0x100D49B30, symSize: 0x4A } - - { offset: 0x9B560, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__CRYPTO_memcmp, symObjAddr: 0x0, symBinAddr: 0x100D49B80, symSize: 0x119 } - - { offset: 0x9B56E, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__CRYPTO_memcmp, symObjAddr: 0x0, symBinAddr: 0x100D49B80, symSize: 0x119 } - - { offset: 0x9B677, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__avx2_available, symObjAddr: 0x404, symBinAddr: 0x1012D5898, symSize: 0x0 } - - { offset: 0x9B6A1, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__adx_bmi2_available, symObjAddr: 0x408, symBinAddr: 0x1012D589C, symSize: 0x0 } - - { offset: 0x9B6D1, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__OPENSSL_cpuid_setup, symObjAddr: 0x0, symBinAddr: 0x100D49CA0, symSize: 0x137 } - - { offset: 0x9B784, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__OPENSSL_cpuid_setup, symObjAddr: 0x0, symBinAddr: 0x100D49CA0, symSize: 0x137 } - - { offset: 0x9B92E, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_scalar_mult_adx, symObjAddr: 0x0, symBinAddr: 0x100D49DE0, symSize: 0x1210 } - - { offset: 0x9C243, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_scalar_mult_adx, symObjAddr: 0x0, symBinAddr: 0x100D49DE0, symSize: 0x1210 } - - { offset: 0xA0735, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__x25519_ge_scalarmult_base_adx, symObjAddr: 0x1210, symBinAddr: 0x100D4AFF0, symSize: 0x2080 } - - { offset: 0xA4D96, size: 0x8, addend: 0x0, symName: _inline_x25519_ge_dbl_4, symObjAddr: 0x3290, symBinAddr: 0x100D4D070, symSize: 0x361 } - - { offset: 0xA60FE, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__fiat_curve25519_adx_mul, symObjAddr: 0x0, symBinAddr: 0x100D4D3D1, symSize: 0x2AF } - - { offset: 0xA6134, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__fiat_curve25519_adx_square, symObjAddr: 0x0, symBinAddr: 0x100D4D680, symSize: 0x1F4 } - - { offset: 0xA6164, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_mul_mont, symObjAddr: 0x0, symBinAddr: 0x100D4D880, symSize: 0x20 } - - { offset: 0xA61B9, size: 0x8, addend: 0x0, symName: _ecp_nistz256_precomputed, symObjAddr: 0x1000, symBinAddr: 0x100FA8000, symSize: 0x0 } - - { offset: 0xA6243, size: 0x8, addend: 0x0, symName: _ONE_MONT, symObjAddr: 0x26000, symBinAddr: 0x100FCD000, symSize: 0x0 } - - { offset: 0xA6266, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_mul_mont, symObjAddr: 0x0, symBinAddr: 0x100D4D880, symSize: 0x20 } - - { offset: 0xA62FD, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_sqr_mont, symObjAddr: 0x20, symBinAddr: 0x100D4D8A0, symSize: 0x20 } - - { offset: 0xA6372, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_scalar_mul_mont, symObjAddr: 0x40, symBinAddr: 0x100D4D8C0, symSize: 0x20 } - - { offset: 0xA63FF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_scalar_sqr_rep_mont, symObjAddr: 0x60, symBinAddr: 0x100D4D8E0, symSize: 0x20 } - - { offset: 0xA64F9, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_add, symObjAddr: 0xA0, symBinAddr: 0x100D4D900, symSize: 0x20 } - - { offset: 0xA682F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_mul, symObjAddr: 0xE0, symBinAddr: 0x100D4D920, symSize: 0x8E0 } - - { offset: 0xA789C, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_mul_base, symObjAddr: 0x9C0, symBinAddr: 0x100D4E200, symSize: 0x340 } - - { offset: 0xA7E60, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__p256_point_mul_base_vartime, symObjAddr: 0xD00, symBinAddr: 0x100D4E540, symSize: 0x274 } - - { offset: 0xA8269, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ChaCha20_ctr32_nohw, symObjAddr: 0x0, symBinAddr: 0x100D4E7C0, symSize: 0x380 } - - { offset: 0xA827F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ChaCha20_ctr32_ssse3_4x, symObjAddr: 0x380, symBinAddr: 0x100D4EB40, symSize: 0x9E0 } - - { offset: 0xA8295, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ChaCha20_ctr32_avx2, symObjAddr: 0xD60, symBinAddr: 0x100D4F520, symSize: 0xB4C } - - { offset: 0xA82CB, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_init_vpclmulqdq_avx2, symObjAddr: 0x0, symBinAddr: 0x100D50080, symSize: 0x180 } - - { offset: 0xA82E1, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_ghash_vpclmulqdq_avx2_1, symObjAddr: 0x180, symBinAddr: 0x100D50200, symSize: 0x80 } - - { offset: 0xA82F7, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_gcm_enc_update_vaes_avx2, symObjAddr: 0x200, symBinAddr: 0x100D50280, symSize: 0x7A0 } - - { offset: 0xA830D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_gcm_dec_update_vaes_avx2, symObjAddr: 0x9A0, symBinAddr: 0x100D50A20, symSize: 0x5D9 } - - { offset: 0xA8343, size: 0x8, addend: 0x0, symName: _aesni_ctr32_ghash_6x, symObjAddr: 0x0, symBinAddr: 0x100D51000, symSize: 0x5A0 } - - { offset: 0xA8359, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aesni_gcm_decrypt, symObjAddr: 0x5A0, symBinAddr: 0x100D515A0, symSize: 0x140 } - - { offset: 0xA836F, size: 0x8, addend: 0x0, symName: _aesni_ctr32_6x, symObjAddr: 0x6E0, symBinAddr: 0x100D516E0, symSize: 0x180 } - - { offset: 0xA8385, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aesni_gcm_encrypt, symObjAddr: 0x860, symBinAddr: 0x100D51860, symSize: 0x423 } - - { offset: 0xA83BB, size: 0x8, addend: 0x0, symName: _aesni_encrypt2, symObjAddr: 0x0, symBinAddr: 0x100D51CA0, symSize: 0x60 } - - { offset: 0xA83D1, size: 0x8, addend: 0x0, symName: _aesni_encrypt3, symObjAddr: 0x60, symBinAddr: 0x100D51D00, symSize: 0x70 } - - { offset: 0xA83E7, size: 0x8, addend: 0x0, symName: _aesni_encrypt4, symObjAddr: 0xD0, symBinAddr: 0x100D51D70, symSize: 0x90 } - - { offset: 0xA83FD, size: 0x8, addend: 0x0, symName: _aesni_encrypt6, symObjAddr: 0x160, symBinAddr: 0x100D51E00, symSize: 0xE0 } - - { offset: 0xA8413, size: 0x8, addend: 0x0, symName: _aesni_encrypt8, symObjAddr: 0x240, symBinAddr: 0x100D51EE0, symSize: 0x110 } - - { offset: 0xA8429, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_hw_ctr32_encrypt_blocks, symObjAddr: 0x350, symBinAddr: 0x100D51FF0, symSize: 0x7A0 } - - { offset: 0xA843F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_hw_set_encrypt_key_base, symObjAddr: 0xAF0, symBinAddr: 0x100D52790, symSize: 0x1F0 } - - { offset: 0xA8455, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__aes_hw_set_encrypt_key_alt, symObjAddr: 0xCE0, symBinAddr: 0x100D52980, symSize: 0x214 } - - { offset: 0xA848B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_init_clmul, symObjAddr: 0x0, symBinAddr: 0x100D52BA0, symSize: 0x260 } - - { offset: 0xA84A1, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_ghash_clmul, symObjAddr: 0x260, symBinAddr: 0x100D52E00, symSize: 0x660 } - - { offset: 0xA84B7, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_init_avx, symObjAddr: 0x8C0, symBinAddr: 0x100D53460, symSize: 0x1A0 } - - { offset: 0xA84CD, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__gcm_ghash_avx, symObjAddr: 0xA60, symBinAddr: 0x100D53600, symSize: 0x697 } - - { offset: 0xA8503, size: 0x8, addend: 0x0, symName: _vpaes_encrypt_core, symObjAddr: 0x0, symBinAddr: 0x100D53CA0, symSize: 0x160 } - - { offset: 0xA8519, size: 0x8, addend: 0x0, symName: _vpaes_encrypt_core_2x, symObjAddr: 0x160, symBinAddr: 0x100D53E00, symSize: 0x290 } - - { offset: 0xA852F, size: 0x8, addend: 0x0, symName: _vpaes_schedule_core, symObjAddr: 0x3F0, symBinAddr: 0x100D54090, symSize: 0xF0 } - - { offset: 0xA8545, size: 0x8, addend: 0x0, symName: _vpaes_schedule_round, symObjAddr: 0x4E0, symBinAddr: 0x100D54180, symSize: 0x21 } - - { offset: 0xA855B, size: 0x8, addend: 0x0, symName: _vpaes_schedule_low_round, symObjAddr: 0x501, symBinAddr: 0x100D541A1, symSize: 0x9F } - - { offset: 0xA8571, size: 0x8, addend: 0x0, symName: _vpaes_schedule_transform, symObjAddr: 0x5A0, symBinAddr: 0x100D54240, symSize: 0x30 } - - { offset: 0xA8587, size: 0x8, addend: 0x0, symName: _vpaes_schedule_mangle, symObjAddr: 0x5D0, symBinAddr: 0x100D54270, symSize: 0x50 } - - { offset: 0xA859D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__vpaes_set_encrypt_key, symObjAddr: 0x620, symBinAddr: 0x100D542C0, symSize: 0x30 } - - { offset: 0xA85B3, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__vpaes_ctr32_encrypt_blocks, symObjAddr: 0x650, symBinAddr: 0x100D542F0, symSize: 0xD0 } - - { offset: 0xA85C9, size: 0x8, addend: 0x0, symName: _vpaes_preheat, symObjAddr: 0x720, symBinAddr: 0x100D543C0, symSize: 0x31 } - - { offset: 0xA85FF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_mul_mont_nohw, symObjAddr: 0x0, symBinAddr: 0x100D54400, symSize: 0x260 } - - { offset: 0xA8615, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_mul4x_mont, symObjAddr: 0x260, symBinAddr: 0x100D54660, symSize: 0x540 } - - { offset: 0xA862B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_sqr8x_mont, symObjAddr: 0x7A0, symBinAddr: 0x100D54BA0, symSize: 0x220 } - - { offset: 0xA8641, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_mulx4x_mont, symObjAddr: 0x9C0, symBinAddr: 0x100D54DC0, symSize: 0x570 } - - { offset: 0xA8677, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_mul4x_mont_gather5, symObjAddr: 0x0, symBinAddr: 0x100D55340, symSize: 0x100 } - - { offset: 0xA868D, size: 0x8, addend: 0x0, symName: mul4x_internal, symObjAddr: 0x100, symBinAddr: 0x100D55440, symSize: 0x7E0 } - - { offset: 0xA86A3, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_power5_nohw, symObjAddr: 0x8E0, symBinAddr: 0x100D55C20, symSize: 0x160 } - - { offset: 0xA86B9, size: 0x8, addend: 0x0, symName: __bn_sqr8x_internal, symObjAddr: 0xA40, symBinAddr: 0x100D55D80, symSize: 0x579 } - - { offset: 0xA86CF, size: 0x8, addend: 0x0, symName: __bn_sqr8x_reduction, symObjAddr: 0xFB9, symBinAddr: 0x100D562F9, symSize: 0x347 } - - { offset: 0xA86E5, size: 0x8, addend: 0x0, symName: __bn_post4x_internal, symObjAddr: 0x1300, symBinAddr: 0x100D56640, symSize: 0xA0 } - - { offset: 0xA86FB, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_mulx4x_mont_gather5, symObjAddr: 0x13A0, symBinAddr: 0x100D566E0, symSize: 0xE0 } - - { offset: 0xA8711, size: 0x8, addend: 0x0, symName: mulx4x_internal, symObjAddr: 0x1480, symBinAddr: 0x100D567C0, symSize: 0x7E0 } - - { offset: 0xA8727, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_powerx5, symObjAddr: 0x1C60, symBinAddr: 0x100D56FA0, symSize: 0x160 } - - { offset: 0xA873D, size: 0x8, addend: 0x0, symName: __bn_sqrx8x_internal, symObjAddr: 0x1DC0, symBinAddr: 0x100D57100, symSize: 0x637 } - - { offset: 0xA8753, size: 0x8, addend: 0x0, symName: __bn_sqrx8x_reduction, symObjAddr: 0x23F7, symBinAddr: 0x100D57737, symSize: 0x329 } - - { offset: 0xA8769, size: 0x8, addend: 0x0, symName: __bn_postx4x_internal, symObjAddr: 0x2720, symBinAddr: 0x100D57A60, symSize: 0x90 } - - { offset: 0xA877F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_scatter5, symObjAddr: 0x27B0, symBinAddr: 0x100D57AF0, symSize: 0x30 } - - { offset: 0xA8795, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__bn_gather5, symObjAddr: 0x27E0, symBinAddr: 0x100D57B20, symSize: 0x27F } - - { offset: 0xA87CB, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_neg, symObjAddr: 0x0, symBinAddr: 0x100D57DA0, symSize: 0x80 } - - { offset: 0xA87E1, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_ord_mul_mont_nohw, symObjAddr: 0x80, symBinAddr: 0x100D57E20, symSize: 0x340 } - - { offset: 0xA87F7, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_ord_sqr_mont_nohw, symObjAddr: 0x3C0, symBinAddr: 0x100D58160, symSize: 0x2E0 } - - { offset: 0xA880D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_ord_mul_mont_adx, symObjAddr: 0x6A0, symBinAddr: 0x100D58440, symSize: 0x3C0 } - - { offset: 0xA8823, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_ord_sqr_mont_adx, symObjAddr: 0xA60, symBinAddr: 0x100D58800, symSize: 0x320 } - - { offset: 0xA8839, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_mul_mont_nohw, symObjAddr: 0xD80, symBinAddr: 0x100D58B20, symSize: 0x60 } - - { offset: 0xA884F, size: 0x8, addend: 0x0, symName: __ecp_nistz256_mul_montq, symObjAddr: 0xDE0, symBinAddr: 0x100D58B80, symSize: 0x240 } - - { offset: 0xA8865, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_sqr_mont_nohw, symObjAddr: 0x1020, symBinAddr: 0x100D58DC0, symSize: 0x60 } - - { offset: 0xA887B, size: 0x8, addend: 0x0, symName: __ecp_nistz256_sqr_montq, symObjAddr: 0x1080, symBinAddr: 0x100D58E20, symSize: 0x1A0 } - - { offset: 0xA8891, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_mul_mont_adx, symObjAddr: 0x1220, symBinAddr: 0x100D58FC0, symSize: 0x60 } - - { offset: 0xA88A7, size: 0x8, addend: 0x0, symName: __ecp_nistz256_mul_montx, symObjAddr: 0x1280, symBinAddr: 0x100D59020, symSize: 0x260 } - - { offset: 0xA88BD, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_sqr_mont_adx, symObjAddr: 0x14E0, symBinAddr: 0x100D59280, symSize: 0x60 } - - { offset: 0xA88D3, size: 0x8, addend: 0x0, symName: __ecp_nistz256_sqr_montx, symObjAddr: 0x1540, symBinAddr: 0x100D592E0, symSize: 0x1C0 } - - { offset: 0xA88E9, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_select_w5_nohw, symObjAddr: 0x1700, symBinAddr: 0x100D594A0, symSize: 0xE0 } - - { offset: 0xA88FF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_select_w7_nohw, symObjAddr: 0x17E0, symBinAddr: 0x100D59580, symSize: 0xA0 } - - { offset: 0xA8915, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_select_w5_avx2, symObjAddr: 0x1880, symBinAddr: 0x100D59620, symSize: 0xC0 } - - { offset: 0xA892B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_select_w7_avx2, symObjAddr: 0x1940, symBinAddr: 0x100D596E0, symSize: 0xE0 } - - { offset: 0xA8941, size: 0x8, addend: 0x0, symName: __ecp_nistz256_add_toq, symObjAddr: 0x1A20, symBinAddr: 0x100D597C0, symSize: 0x60 } - - { offset: 0xA8957, size: 0x8, addend: 0x0, symName: __ecp_nistz256_sub_fromq, symObjAddr: 0x1A80, symBinAddr: 0x100D59820, symSize: 0x60 } - - { offset: 0xA896D, size: 0x8, addend: 0x0, symName: __ecp_nistz256_subq, symObjAddr: 0x1AE0, symBinAddr: 0x100D59880, symSize: 0x40 } - - { offset: 0xA8983, size: 0x8, addend: 0x0, symName: __ecp_nistz256_mul_by_2q, symObjAddr: 0x1B20, symBinAddr: 0x100D598C0, symSize: 0x60 } - - { offset: 0xA8999, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_point_double_nohw, symObjAddr: 0x1B80, symBinAddr: 0x100D59920, symSize: 0x300 } - - { offset: 0xA89AF, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_point_add_nohw, symObjAddr: 0x1E80, symBinAddr: 0x100D59C20, symSize: 0x760 } - - { offset: 0xA89C5, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_point_add_affine_nohw, symObjAddr: 0x25E0, symBinAddr: 0x100D5A380, symSize: 0x560 } - - { offset: 0xA89DB, size: 0x8, addend: 0x0, symName: __ecp_nistz256_add_tox, symObjAddr: 0x2B40, symBinAddr: 0x100D5A8E0, symSize: 0x60 } - - { offset: 0xA89F1, size: 0x8, addend: 0x0, symName: __ecp_nistz256_sub_fromx, symObjAddr: 0x2BA0, symBinAddr: 0x100D5A940, symSize: 0x60 } - - { offset: 0xA8A07, size: 0x8, addend: 0x0, symName: __ecp_nistz256_subx, symObjAddr: 0x2C00, symBinAddr: 0x100D5A9A0, symSize: 0x60 } - - { offset: 0xA8A1D, size: 0x8, addend: 0x0, symName: __ecp_nistz256_mul_by_2x, symObjAddr: 0x2C60, symBinAddr: 0x100D5AA00, symSize: 0x60 } - - { offset: 0xA8A33, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_point_double_adx, symObjAddr: 0x2CC0, symBinAddr: 0x100D5AA60, symSize: 0x320 } - - { offset: 0xA8A49, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_point_add_adx, symObjAddr: 0x2FE0, symBinAddr: 0x100D5AD80, symSize: 0x760 } - - { offset: 0xA8A5F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__ecp_nistz256_point_add_affine_adx, symObjAddr: 0x3740, symBinAddr: 0x100D5B4E0, symSize: 0x555 } - - { offset: 0xA8A95, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha512_block_data_order_nohw, symObjAddr: 0x0, symBinAddr: 0x100D5BA40, symSize: 0x1200 } - - { offset: 0xA8AAB, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha512_block_data_order_avx, symObjAddr: 0x1200, symBinAddr: 0x100D5CC40, symSize: 0x1176 } - - { offset: 0xA8AE1, size: 0x8, addend: 0x0, symName: poly_hash_ad_internal, symObjAddr: 0x0, symBinAddr: 0x100D5DDC0, symSize: 0x200 } - - { offset: 0xA8AF7, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__chacha20_poly1305_open_sse41, symObjAddr: 0x200, symBinAddr: 0x100D5DFC0, symSize: 0x2180 } - - { offset: 0xA8B0D, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__chacha20_poly1305_seal_sse41, symObjAddr: 0x2380, symBinAddr: 0x100D60140, symSize: 0x1D0D } - - { offset: 0xA8B23, size: 0x8, addend: 0x0, symName: process_extra_in_trailer, symObjAddr: 0x408D, symBinAddr: 0x100D61E4D, symSize: 0x533 } - - { offset: 0xA8B39, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__chacha20_poly1305_open_avx2, symObjAddr: 0x45C0, symBinAddr: 0x100D62380, symSize: 0x2600 } - - { offset: 0xA8B4F, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__chacha20_poly1305_seal_avx2, symObjAddr: 0x6BC0, symBinAddr: 0x100D64980, symSize: 0x2F21 } - - { offset: 0xA8B85, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha256_block_data_order_nohw, symObjAddr: 0x0, symBinAddr: 0x100D678C0, symSize: 0x1180 } - - { offset: 0xA8B9B, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha256_block_data_order_hw, symObjAddr: 0x1180, symBinAddr: 0x100D68A40, symSize: 0x340 } - - { offset: 0xA8BB1, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha256_block_data_order_ssse3, symObjAddr: 0x14C0, symBinAddr: 0x100D68D80, symSize: 0xEC0 } - - { offset: 0xA8BC7, size: 0x8, addend: 0x0, symName: _ring_core_0_17_14__sha256_block_data_order_avx, symObjAddr: 0x2380, symBinAddr: 0x100D69C40, symSize: 0xEF7 } - - { offset: 0xA8BEF, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc10rust_panic, symObjAddr: 0x0, symBinAddr: 0x100E8FE20, symSize: 0x70 } - - { offset: 0xA8FB4, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h20e34627980a8b91E', symObjAddr: 0x275B0, symBinAddr: 0x100DFECD0, symSize: 0x80 } - - { offset: 0xA90CF, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h463f85838c98dca2E', symObjAddr: 0x276A0, symBinAddr: 0x100DFED50, symSize: 0x20 } - - { offset: 0xA9101, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h480d456677e7bde7E', symObjAddr: 0x27950, symBinAddr: 0x100DFED70, symSize: 0x20 } - - { offset: 0xA9123, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h726bfd01c69676bcE', symObjAddr: 0x27AA0, symBinAddr: 0x100DFED90, symSize: 0xA0 } - - { offset: 0xA91C5, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h73a54fe8ac9e4cdcE', symObjAddr: 0x27B40, symBinAddr: 0x100DFEE30, symSize: 0x80 } - - { offset: 0xA9257, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h8d205ab315c35118E', symObjAddr: 0x27E30, symBinAddr: 0x100DFEEB0, symSize: 0x30 } - - { offset: 0xA929F, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h9376cf65fceee87cE', symObjAddr: 0x27ED0, symBinAddr: 0x100DFEEE0, symSize: 0x20 } - - { offset: 0xA92D1, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17ha931f1f7c82976bbE', symObjAddr: 0x27EF0, symBinAddr: 0x100DFEF00, symSize: 0x30 } - - { offset: 0xA938D, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17h8308b1de27514132E', symObjAddr: 0x28530, symBinAddr: 0x100DFF180, symSize: 0x30 } - - { offset: 0xA93BE, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i64$GT$3fmt17h167233e7cd422a98E', symObjAddr: 0x28560, symBinAddr: 0x100DFF1B0, symSize: 0x30 } - - { offset: 0xA93F5, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hfb36d3f48ce35194E', symObjAddr: 0x285F0, symBinAddr: 0x100DFF1E0, symSize: 0x30 } - - { offset: 0xA9434, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h2222e16a31d849a7E', symObjAddr: 0x28170, symBinAddr: 0x100DFEF30, symSize: 0x90 } - - { offset: 0xA94C0, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h748ff8e59f809511E', symObjAddr: 0x28200, symBinAddr: 0x100DFEFC0, symSize: 0x20 } - - { offset: 0xA94FE, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h4c24f492a6282be4E, symObjAddr: 0x28620, symBinAddr: 0x100DFF210, symSize: 0x130 } - - { offset: 0xA9684, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17ha343929ffc7896eeE, symObjAddr: 0x288B0, symBinAddr: 0x100DFF340, symSize: 0xE0 } - - { offset: 0xA970C, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17ha9eaa0995f261a4eE, symObjAddr: 0x28990, symBinAddr: 0x100DFF420, symSize: 0x160 } - - { offset: 0xA9854, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17hc66cba1f0ef61ed5E, symObjAddr: 0x28AF0, symBinAddr: 0x100DFF580, symSize: 0xF0 } - - { offset: 0xA99AB, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17hde2e5e3f3c4411f2E, symObjAddr: 0x28BE0, symBinAddr: 0x100DFF670, symSize: 0xE0 } - - { offset: 0xA9A8F, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h20a9e07ca3f91294E, symObjAddr: 0x28CC0, symBinAddr: 0x100DFF750, symSize: 0x20 } - - { offset: 0xA9ABF, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h357e480160c56008E, symObjAddr: 0x28CE0, symBinAddr: 0x100DFF770, symSize: 0x20 } - - { offset: 0xA9AEF, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h671d8c32ed4cf429E, symObjAddr: 0x28D20, symBinAddr: 0x100DFF790, symSize: 0x20 } - - { offset: 0xA9B1F, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h91670802f45d6348E, symObjAddr: 0x28D40, symBinAddr: 0x100DFF7B0, symSize: 0x20 } - - { offset: 0xA9B4F, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17ha29adabefac81799E, symObjAddr: 0x28D60, symBinAddr: 0x100DFF7D0, symSize: 0x20 } - - { offset: 0xA9B7F, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17ha77b6f916b691edbE, symObjAddr: 0x28D80, symBinAddr: 0x100DFF7F0, symSize: 0x20 } - - { offset: 0xA9BE0, size: 0x8, addend: 0x0, symName: '__ZN50_$LT$$BP$mut$u20$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hf5a0406a1d6df7ebE', symObjAddr: 0x3AA50, symBinAddr: 0x100E0C510, symSize: 0x10 } - - { offset: 0xA9C30, size: 0x8, addend: 0x0, symName: '__ZN52_$LT$$RF$mut$u20$T$u20$as$u20$core..fmt..Display$GT$3fmt17haae00ac609526e67E', symObjAddr: 0x3B0B0, symBinAddr: 0x100E0C800, symSize: 0x20 } - - { offset: 0xAC7A6, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr107drop_in_place$LT$core..pin..Pin$LT$alloc..boxed..Box$LT$std..sys..pal..unix..sync..mutex..Mutex$GT$$GT$$GT$17h161cb3ff4288392bE', symObjAddr: 0x29400, symBinAddr: 0x100DFFBD0, symSize: 0x30 } - - { offset: 0xAC843, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr109drop_in_place$LT$alloc..sync..Arc$LT$std..sync..poison..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$17h9cdccbed0f5df713E', symObjAddr: 0x29430, symBinAddr: 0x100DFFC00, symSize: 0x20 } - - { offset: 0xAC8C9, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr118drop_in_place$LT$$LT$std..backtrace..Backtrace$u20$as$u20$core..fmt..Display$GT$..fmt..$u7b$$u7b$closure$u7d$$u7d$$GT$17h25ff08bf03705045E', symObjAddr: 0x294A0, symBinAddr: 0x100DFFC20, symSize: 0x30 } - - { offset: 0xAC9B1, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr119drop_in_place$LT$std..io..default_write_fmt..Adapter$LT$std..io..cursor..Cursor$LT$$RF$mut$u20$$u5b$u8$u5d$$GT$$GT$$GT$17h7e533da62559fce8E', symObjAddr: 0x294D0, symBinAddr: 0x100DFFC50, symSize: 0x20 } - - { offset: 0xAC9D4, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr123drop_in_place$LT$addr2line..Context$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h7172493319c6c37bE', symObjAddr: 0x294F0, symBinAddr: 0x100DFFC70, symSize: 0x60 } - - { offset: 0xACA71, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr124drop_in_place$LT$alloc..collections..btree..map..IntoIter$LT$std..ffi..os_str..OsString$C$std..ffi..os_str..OsString$GT$$GT$17hc5166a867fd76a9cE', symObjAddr: 0x29550, symBinAddr: 0x100DFFCD0, symSize: 0xA0 } - - { offset: 0xACC85, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr128drop_in_place$LT$core..result..Result$LT$$RF$std..thread..Thread$C$$LP$$RF$std..thread..Thread$C$std..thread..Thread$RP$$GT$$GT$17h0f366512e80ef739E', symObjAddr: 0x295F0, symBinAddr: 0x100DFFD70, symSize: 0x20 } - - { offset: 0xACDB0, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr129drop_in_place$LT$addr2line..unit..ResUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17hfd7a66b655c72705E', symObjAddr: 0x29610, symBinAddr: 0x100DFFD90, symSize: 0x100 } - - { offset: 0xACFD7, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr129drop_in_place$LT$addr2line..unit..SupUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h712b70c88fb671aeE', symObjAddr: 0x29710, symBinAddr: 0x100DFFE90, symSize: 0x50 } - - { offset: 0xAD089, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr130drop_in_place$LT$addr2line..unit..ResUnits$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h0177a0ba9f77719dE', symObjAddr: 0x29760, symBinAddr: 0x100DFFEE0, symSize: 0xE0 } - - { offset: 0xAD243, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr130drop_in_place$LT$addr2line..unit..SupUnits$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h1137d7961ef136aeE', symObjAddr: 0x29840, symBinAddr: 0x100DFFFC0, symSize: 0xE0 } - - { offset: 0xAD3F3, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr130drop_in_place$LT$gimli..read..dwarf..Dwarf$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17hc183877ec606e020E', symObjAddr: 0x29920, symBinAddr: 0x100E000A0, symSize: 0x60 } - - { offset: 0xAD462, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr131drop_in_place$LT$$u5b$core..option..Option$LT$core..option..Option$LT$std..backtrace_rs..symbolize..gimli..Mapping$GT$$GT$$u5d$$GT$17hd8c382a24326fa94E', symObjAddr: 0x29980, symBinAddr: 0x100E00100, symSize: 0xE0 } - - { offset: 0xAD514, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr131drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$GT$$GT$17h7a386eb91277658aE', symObjAddr: 0x29A60, symBinAddr: 0x100E001E0, symSize: 0x70 } - - { offset: 0xAD609, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr137drop_in_place$LT$gimli..read..dwarf..Unit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$C$usize$GT$$GT$17h61bc2fbb7f0dc6d4E', symObjAddr: 0x29AD0, symBinAddr: 0x100E00250, symSize: 0x50 } - - { offset: 0xAD6F8, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr138drop_in_place$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h587270c448fdfcffE', symObjAddr: 0x29B20, symBinAddr: 0x100E002A0, symSize: 0x60 } - - { offset: 0xAD710, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr138drop_in_place$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h587270c448fdfcffE', symObjAddr: 0x29B20, symBinAddr: 0x100E002A0, symSize: 0x60 } - - { offset: 0xAD726, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr138drop_in_place$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h587270c448fdfcffE', symObjAddr: 0x29B20, symBinAddr: 0x100E002A0, symSize: 0x60 } - - { offset: 0xAD73C, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr138drop_in_place$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$17h587270c448fdfcffE', symObjAddr: 0x29B20, symBinAddr: 0x100E002A0, symSize: 0x60 } - - { offset: 0xAD87E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr144drop_in_place$LT$alloc..vec..Vec$LT$core..option..Option$LT$core..option..Option$LT$std..backtrace_rs..symbolize..gimli..Mapping$GT$$GT$$GT$$GT$17h14586cf1eaddc3b1E', symObjAddr: 0x29B80, symBinAddr: 0x100E00300, symSize: 0x80 } - - { offset: 0xAD9E7, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr152drop_in_place$LT$alloc..vec..Vec$LT$addr2line..unit..ResUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$17h3d65c4789d38b9baE', symObjAddr: 0x29CF0, symBinAddr: 0x100E00380, symSize: 0xD0 } - - { offset: 0xADB65, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr152drop_in_place$LT$alloc..vec..Vec$LT$addr2line..unit..SupUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$17h512a1d2b5d6b03fbE', symObjAddr: 0x29DC0, symBinAddr: 0x100E00450, symSize: 0x100 } - - { offset: 0xADD81, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr156drop_in_place$LT$alloc..boxed..Box$LT$$u5b$core..option..Option$LT$core..option..Option$LT$std..backtrace_rs..symbolize..gimli..Mapping$GT$$GT$$u5d$$GT$$GT$17ha10b6c385710a75bE', symObjAddr: 0x29EC0, symBinAddr: 0x100E00550, symSize: 0xF0 } - - { offset: 0xADEB7, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr159drop_in_place$LT$alloc..sync..ArcInner$LT$gimli..read..dwarf..Dwarf$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$17hec9a8589814a16d2E', symObjAddr: 0x2A050, symBinAddr: 0x100E00640, symSize: 0x60 } - - { offset: 0xADF6E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr161drop_in_place$LT$alloc..vec..Vec$LT$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$17hba1d649070e55b00E', symObjAddr: 0x2A0B0, symBinAddr: 0x100E006A0, symSize: 0xC0 } - - { offset: 0xAE1C6, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr164drop_in_place$LT$$u5b$alloc..boxed..Box$LT$dyn$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$u2b$core..marker..Send$GT$$u5d$$GT$17h948d9ecea0d6acf0E', symObjAddr: 0x2A170, symBinAddr: 0x100E00760, symSize: 0xB0 } - - { offset: 0xAE2DF, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr172drop_in_place$LT$core..result..Result$LT$addr2line..Context$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$GT$17h83111520b638af7cE', symObjAddr: 0x2A220, symBinAddr: 0x100E00810, symSize: 0x70 } - - { offset: 0xAE365, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr173drop_in_place$LT$alloc..boxed..Box$LT$$u5b$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$u5d$$GT$$GT$17hcd13899994e11e2aE', symObjAddr: 0x2A290, symBinAddr: 0x100E00880, symSize: 0xA0 } - - { offset: 0xAE37D, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr173drop_in_place$LT$alloc..boxed..Box$LT$$u5b$addr2line..function..LazyFunction$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$u5d$$GT$$GT$17hcd13899994e11e2aE', symObjAddr: 0x2A290, symBinAddr: 0x100E00880, symSize: 0xA0 } - - { offset: 0xAE569, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr177drop_in_place$LT$alloc..vec..Vec$LT$alloc..boxed..Box$LT$dyn$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$u2b$core..marker..Send$GT$$GT$$GT$17h5e2dc112b7d393bdE', symObjAddr: 0x2A330, symBinAddr: 0x100E00920, symSize: 0x70 } - - { offset: 0xAE6D9, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr181drop_in_place$LT$core..option..Option$LT$gimli..read..line..IncompleteLineProgram$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$C$usize$GT$$GT$$GT$17h3b0d4401191289f1E', symObjAddr: 0x2A3A0, symBinAddr: 0x100E00990, symSize: 0xA0 } - - { offset: 0xAE954, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr181drop_in_place$LT$core..result..Result$LT$addr2line..frame..FrameIter$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$GT$17hc1c2055c66c77cf6E', symObjAddr: 0x2A440, symBinAddr: 0x100E00A30, symSize: 0x40 } - - { offset: 0xAEAA1, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr184drop_in_place$LT$core..result..Result$LT$addr2line..function..Functions$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$GT$17h6655c64df8a9f5f8E', symObjAddr: 0x2A480, symBinAddr: 0x100E00A70, symSize: 0xE0 } - - { offset: 0xAED51, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr193drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$alloc..boxed..Box$LT$dyn$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$u2b$core..marker..Send$GT$$GT$$GT$17h1916ec74e4d1a2c1E', symObjAddr: 0x2A560, symBinAddr: 0x100E00B50, symSize: 0x70 } - - { offset: 0xAEF6B, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr194drop_in_place$LT$core..result..Result$LT$std..sync..poison..mutex..MutexGuard$LT$$LP$$RP$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..poison..mutex..MutexGuard$LT$$LP$$RP$$GT$$GT$$GT$$GT$17h8759922b2fb8dd04E', symObjAddr: 0x2A5D0, symBinAddr: 0x100E00BC0, symSize: 0x50 } - - { offset: 0xAEFA9, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr231drop_in_place$LT$core..result..Result$LT$core..option..Option$LT$alloc..boxed..Box$LT$addr2line..unit..DwoUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$$C$gimli..read..Error$GT$$GT$17hfd0354eca8c69ff8E', symObjAddr: 0x2A620, symBinAddr: 0x100E00C10, symSize: 0xB0 } - - { offset: 0xAF189, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr238drop_in_place$LT$alloc..boxed..convert..$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$..from..StringError$GT$17h7271168cd2d3e9ceE', symObjAddr: 0x2A6D0, symBinAddr: 0x100E00CC0, symSize: 0x20 } - - { offset: 0xAF23C, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr275drop_in_place$LT$gimli..read..line..LineRows$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$C$gimli..read..line..IncompleteLineProgram$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$C$usize$GT$$C$usize$GT$$GT$17h80b79bfc738f4380E', symObjAddr: 0x2A6F0, symBinAddr: 0x100E00CE0, symSize: 0xA0 } - - { offset: 0xAF4D3, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr280drop_in_place$LT$$LT$alloc..collections..btree..map..IntoIter$LT$K$C$V$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$u64$C$core..result..Result$LT$alloc..sync..Arc$LT$gimli..read..abbrev..Abbreviations$GT$$C$gimli..read..Error$GT$$C$alloc..alloc..Global$GT$$GT$17h81a3fa8d228d12a7E', symObjAddr: 0x2A790, symBinAddr: 0x100E00D80, symSize: 0x80 } - - { offset: 0xAF60D, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr284drop_in_place$LT$core..result..Result$LT$$RF$core..result..Result$LT$addr2line..line..Lines$C$gimli..read..Error$GT$$C$$LP$$RF$core..result..Result$LT$addr2line..line..Lines$C$gimli..read..Error$GT$$C$core..result..Result$LT$addr2line..line..Lines$C$gimli..read..Error$GT$$RP$$GT$$GT$17h131be11165096a78E', symObjAddr: 0x2A810, symBinAddr: 0x100E00E00, symSize: 0x20 } - - { offset: 0xAF63F, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr37drop_in_place$LT$std..env..VarsOs$GT$17hf319662a595e0be1E', symObjAddr: 0x2A830, symBinAddr: 0x100E00E20, symSize: 0xB0 } - - { offset: 0xAF93A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h3a31e7eb0ee01813E', symObjAddr: 0x2A9D0, symBinAddr: 0x100E00ED0, symSize: 0x20 } - - { offset: 0xAF9D6, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h8f3750ee276b960cE', symObjAddr: 0x2A9F0, symBinAddr: 0x100E00EF0, symSize: 0xA0 } - - { offset: 0xAFC0E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr44drop_in_place$LT$object..read..ObjectMap$GT$17h6c65fde252b06d1cE', symObjAddr: 0x2AA90, symBinAddr: 0x100E00F90, symSize: 0x50 } - - { offset: 0xAFD5C, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr44drop_in_place$LT$std..backtrace..Capture$GT$17hcb8a0693cf58dcb2E', symObjAddr: 0x2AAE0, symBinAddr: 0x100E00FE0, symSize: 0x60 } - - { offset: 0xAFE5B, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr45drop_in_place$LT$std..process..StdioPipes$GT$17hcace502d8ada4c43E', symObjAddr: 0x2AB40, symBinAddr: 0x100E01040, symSize: 0x40 } - - { offset: 0xAFFC6, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hbfe90586c8d2642eE', symObjAddr: 0x2AB80, symBinAddr: 0x100E01080, symSize: 0x20 } - - { offset: 0xB004B, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr46drop_in_place$LT$std..io..stdio..StdinLock$GT$17hb10e757d2861299eE', symObjAddr: 0x2ABA0, symBinAddr: 0x100E010A0, symSize: 0x50 } - - { offset: 0xB0063, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr46drop_in_place$LT$std..io..stdio..StdinLock$GT$17hb10e757d2861299eE', symObjAddr: 0x2ABA0, symBinAddr: 0x100E010A0, symSize: 0x50 } - - { offset: 0xB0079, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr46drop_in_place$LT$std..io..stdio..StdinLock$GT$17hb10e757d2861299eE', symObjAddr: 0x2ABA0, symBinAddr: 0x100E010A0, symSize: 0x50 } - - { offset: 0xB0168, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr48drop_in_place$LT$alloc..ffi..c_str..NulError$GT$17h01e30dd49b676619E', symObjAddr: 0x2ACF0, symBinAddr: 0x100E010F0, symSize: 0x20 } - - { offset: 0xB0274, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr51drop_in_place$LT$std..backtrace..BacktraceFrame$GT$17h1c9a76b57bd80dd8E', symObjAddr: 0x2ADC0, symBinAddr: 0x100E01110, symSize: 0xE0 } - - { offset: 0xB054E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr52drop_in_place$LT$std..backtrace..BacktraceSymbol$GT$17h513e7fb7488dba76E', symObjAddr: 0x2AEA0, symBinAddr: 0x100E011F0, symSize: 0x80 } - - { offset: 0xB0744, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr54drop_in_place$LT$std..thread..spawnhook..SpawnHook$GT$17h0ea28c7202d7f151E', symObjAddr: 0x2AF20, symBinAddr: 0x100E01270, symSize: 0xB0 } - - { offset: 0xB099D, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr55drop_in_place$LT$gimli..read..abbrev..Abbreviations$GT$17h3dfce482dd873fe1E', symObjAddr: 0x2B030, symBinAddr: 0x100E01320, symSize: 0x130 } - - { offset: 0xB0D01, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr55drop_in_place$LT$std..sys..thread..unix..ThreadData$GT$17hfd70d3a2134f6f8cE', symObjAddr: 0x2B170, symBinAddr: 0x100E01450, symSize: 0x90 } - - { offset: 0xB0E77, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr55drop_in_place$LT$std..thread..spawnhook..SpawnHooks$GT$17hcfcfd68e8d000852E', symObjAddr: 0x2B200, symBinAddr: 0x100E014E0, symSize: 0x60 } - - { offset: 0xB0F7E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr560drop_in_place$LT$core..result..Result$LT$$RF$core..result..Result$LT$addr2line..function..Functions$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$C$$LP$$RF$core..result..Result$LT$addr2line..function..Functions$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$C$core..result..Result$LT$addr2line..function..Functions$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$C$gimli..read..Error$GT$$RP$$GT$$GT$17he1b1f01a9341f58dE', symObjAddr: 0x2B260, symBinAddr: 0x100E01540, symSize: 0x20 } - - { offset: 0xB0FDA, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr60drop_in_place$LT$gimli..read..abbrev..AbbreviationsCache$GT$17hb7fd6336cfad1e3cE', symObjAddr: 0x2B280, symBinAddr: 0x100E01560, symSize: 0xE0 } - - { offset: 0xB1153, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr61drop_in_place$LT$std..panicking..resume_unwind..RewrapBox$GT$17h1f080ccb7ef53ba7E', symObjAddr: 0x2B360, symBinAddr: 0x100E01640, symSize: 0x70 } - - { offset: 0xB1257, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr64drop_in_place$LT$std..sys..pal..unix..sync..mutex..AttrGuard$GT$17hdad15dbfbbd3e218E', symObjAddr: 0x2B3D0, symBinAddr: 0x100E016B0, symSize: 0x40 } - - { offset: 0xB127A, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr64drop_in_place$LT$std..sys..process..unix..common..ChildPipes$GT$17h4441e5ac249fc6fcE', symObjAddr: 0x2B410, symBinAddr: 0x100E016F0, symSize: 0x50 } - - { offset: 0xB13B2, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr65drop_in_place$LT$std..backtrace_rs..symbolize..gimli..Context$GT$17h5c627f9f2f95b29bE', symObjAddr: 0x2B4F0, symBinAddr: 0x100E01740, symSize: 0x100 } - - { offset: 0xB1653, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr66drop_in_place$LT$std..backtrace_rs..backtrace..libunwind..Bomb$GT$17h6fd021bfa9aecb41E', symObjAddr: 0x2B5F0, symBinAddr: 0x100E01840, symSize: 0x50 } - - { offset: 0xB16A1, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr701drop_in_place$LT$core..result..Result$LT$$RF$core..result..Result$LT$core..option..Option$LT$alloc..boxed..Box$LT$addr2line..unit..DwoUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$$C$gimli..read..Error$GT$$C$$LP$$RF$core..result..Result$LT$core..option..Option$LT$alloc..boxed..Box$LT$addr2line..unit..DwoUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$$C$gimli..read..Error$GT$$C$core..result..Result$LT$core..option..Option$LT$alloc..boxed..Box$LT$addr2line..unit..DwoUnit$LT$gimli..read..endian_slice..EndianSlice$LT$gimli..endianity..LittleEndian$GT$$GT$$GT$$GT$$C$gimli..read..Error$GT$$RP$$GT$$GT$17h418ce4bb82c81d52E', symObjAddr: 0x2B640, symBinAddr: 0x100E01890, symSize: 0x20 } - - { offset: 0xB1743, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr70drop_in_place$LT$std..backtrace_rs..symbolize..gimli..stash..Stash$GT$17h8045181cc45abc54E', symObjAddr: 0x2B660, symBinAddr: 0x100E018B0, symSize: 0xE0 } - - { offset: 0xB1A07, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr71drop_in_place$LT$std..backtrace_rs..symbolize..gimli..macho..Object$GT$17h1a0dba3f81ee3ac8E', symObjAddr: 0x2B740, symBinAddr: 0x100E01990, symSize: 0xD0 } - - { offset: 0xB1CF2, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr71drop_in_place$LT$std..panicking..panic_handler..FormatStringPayload$GT$17h65faeede2a68b7f2E', symObjAddr: 0x2B810, symBinAddr: 0x100E01A60, symSize: 0x30 } - - { offset: 0xB1DB6, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$object..read..ObjectMap$GT$$GT$17h74a3c0234f1bcd9dE', symObjAddr: 0x2B840, symBinAddr: 0x100E01A90, symSize: 0x60 } - - { offset: 0xB1F45, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr73drop_in_place$LT$alloc..vec..Vec$LT$addr2line..line..LineSequence$GT$$GT$17h7836f4bf04081140E', symObjAddr: 0x2B8A0, symBinAddr: 0x100E01AF0, symSize: 0x90 } - - { offset: 0xB20AD, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr77drop_in_place$LT$alloc..boxed..Box$LT$$u5b$alloc..string..String$u5d$$GT$$GT$17hd26c322169d32e11E', symObjAddr: 0x2B980, symBinAddr: 0x100E01B80, symSize: 0x60 } - - { offset: 0xB20C5, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr77drop_in_place$LT$alloc..boxed..Box$LT$$u5b$alloc..string..String$u5d$$GT$$GT$17hd26c322169d32e11E', symObjAddr: 0x2B980, symBinAddr: 0x100E01B80, symSize: 0x60 } - - { offset: 0xB21CF, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17h4105a31a1ba6a9eaE', symObjAddr: 0x2B9E0, symBinAddr: 0x100E01BE0, symSize: 0x20 } - - { offset: 0xB21F1, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr80drop_in_place$LT$alloc..boxed..Box$LT$std..sys..thread..unix..ThreadData$GT$$GT$17hea9054b183329010E', symObjAddr: 0x2BA50, symBinAddr: 0x100E01C00, symSize: 0xB0 } - - { offset: 0xB2405, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$17hff8d16e9d7c3a87eE', symObjAddr: 0x2BB00, symBinAddr: 0x100E01CB0, symSize: 0x20 } - - { offset: 0xB2435, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr81drop_in_place$LT$std..sys..process..unix..common..cstring_array..CStringArray$GT$17h17fc6bdebbe6b356E', symObjAddr: 0x2BB20, symBinAddr: 0x100E01CD0, symSize: 0xD0 } - - { offset: 0xB27A5, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr82drop_in_place$LT$alloc..sync..ArcInner$LT$std..sys..fs..unix..InnerReadDir$GT$$GT$17h68c88d1d948421f9E', symObjAddr: 0x2BBF0, symBinAddr: 0x100E01DA0, symSize: 0x60 } - - { offset: 0xB295E, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr90drop_in_place$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$..flush_buf..BufGuard$GT$17h971aa14b803c30dbE', symObjAddr: 0x2BCF0, symBinAddr: 0x100E01E00, symSize: 0x50 } - - { offset: 0xB2ACC, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr91drop_in_place$LT$core..result..Result$LT$alloc..string..String$C$std..env..VarError$GT$$GT$17hee8cde2ae1f0ab9cE', symObjAddr: 0x2BD40, symBinAddr: 0x100E01E50, symSize: 0x30 } - - { offset: 0xB2BAA, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr92drop_in_place$LT$core..result..Result$LT$addr2line..line..Lines$C$gimli..read..Error$GT$$GT$17hcb854f90ffd09b67E', symObjAddr: 0x2BDA0, symBinAddr: 0x100E01E80, symSize: 0xE0 } - - { offset: 0xB2E0D, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$std..backtrace_rs..symbolize..gimli..Mapping$GT$$GT$17hb2567f3c916f6856E', symObjAddr: 0x2BE80, symBinAddr: 0x100E01F60, symSize: 0x70 } - - { offset: 0xB51A2, size: 0x8, addend: 0x0, symName: __ZN4core5panic12PanicPayload6as_str17h5c8014a566469ab0E, symObjAddr: 0x301D0, symBinAddr: 0x100E02130, symSize: 0x10 } - - { offset: 0xB5D43, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$core..num..error..TryFromIntError$u20$as$u20$core..fmt..Debug$GT$3fmt17h4b1a84b7c1165803E', symObjAddr: 0x54390, symBinAddr: 0x100E1D140, symSize: 0x40 } - - { offset: 0xB7D1C, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable7ipnsort17h3205143ce3496488E, symObjAddr: 0x39770, symBinAddr: 0x100E0B2F0, symSize: 0xE0 } - - { offset: 0xB7EDB, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable7ipnsort17hbcf0665257cb39d7E, symObjAddr: 0x39850, symBinAddr: 0x100E0B3D0, symSize: 0x1A0 } - - { offset: 0xB81B4, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable8heapsort8heapsort17h00907fe609a8815dE, symObjAddr: 0x399F0, symBinAddr: 0x100E0B570, symSize: 0x120 } - - { offset: 0xB8409, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable8heapsort8heapsort17h6cc5cb437af57fe9E, symObjAddr: 0x39B10, symBinAddr: 0x100E0B690, symSize: 0x1D0 } - - { offset: 0xB87D5, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable9quicksort9quicksort17h0000a1cc30dec1cbE, symObjAddr: 0x39CE0, symBinAddr: 0x100E0B860, symSize: 0x540 } - - { offset: 0xB907B, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort8unstable9quicksort9quicksort17hf7987f8c83d9d408E, symObjAddr: 0x3A220, symBinAddr: 0x100E0BDA0, symSize: 0x761 } - - { offset: 0xB9D10, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h3d74718f1723b2b8E, symObjAddr: 0x31F00, symBinAddr: 0x100E03A80, symSize: 0x150 } - - { offset: 0xBA009, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h53dda2ae448c4acaE, symObjAddr: 0x32050, symBinAddr: 0x100E03BD0, symSize: 0x150 } - - { offset: 0xBA302, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h587fac24587c15f5E, symObjAddr: 0x321A0, symBinAddr: 0x100E03D20, symSize: 0x160 } - - { offset: 0xBA573, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17h5ac73a1d36ad7fc2E, symObjAddr: 0x32300, symBinAddr: 0x100E03E80, symSize: 0x150 } - - { offset: 0xBA8C6, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17hb01084b89cf2d84cE, symObjAddr: 0x32450, symBinAddr: 0x100E03FD0, symSize: 0x160 } - - { offset: 0xBAC19, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable14driftsort_main17he0c21c572faa4506E, symObjAddr: 0x325B0, symBinAddr: 0x100E04130, symSize: 0x150 } - - { offset: 0xBB128, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17h6d275b8530c865f3E, symObjAddr: 0x32700, symBinAddr: 0x100E04280, symSize: 0x6E0 } - - { offset: 0xBB87F, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17ha37c07f6b42c7525E, symObjAddr: 0x32DE0, symBinAddr: 0x100E04960, symSize: 0x690 } - - { offset: 0xBBFFE, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17hb2fd8c00dd152130E, symObjAddr: 0x33470, symBinAddr: 0x100E04FF0, symSize: 0x690 } - - { offset: 0xBC77D, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17hb731949ee61ad050E, symObjAddr: 0x33B00, symBinAddr: 0x100E05680, symSize: 0x6D0 } - - { offset: 0xBCF02, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17hb90047335a5b88fcE, symObjAddr: 0x341D0, symBinAddr: 0x100E05D50, symSize: 0x6E0 } - - { offset: 0xBD671, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift4sort17hcfce98ac9826310dE, symObjAddr: 0x348B0, symBinAddr: 0x100E06430, symSize: 0x6B0 } - - { offset: 0xBE07F, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h2646713500ed1756E, symObjAddr: 0x34F60, symBinAddr: 0x100E06AE0, symSize: 0xBB0 } - - { offset: 0xBF57C, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h3abfcf9bebcdef10E, symObjAddr: 0x35B10, symBinAddr: 0x100E07690, symSize: 0xC20 } - - { offset: 0xC036A, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17h5fea9ab5d8c6d7cfE, symObjAddr: 0x36730, symBinAddr: 0x100E082B0, symSize: 0xB50 } - - { offset: 0xC11B3, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17ha510357279e9668fE, symObjAddr: 0x37280, symBinAddr: 0x100E08E00, symSize: 0xB50 } - - { offset: 0xC1AC8, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17hc7408f3ac674fefdE, symObjAddr: 0x37DD0, symBinAddr: 0x100E09950, symSize: 0xD60 } - - { offset: 0xC28C1, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable9quicksort9quicksort17hf12ed2615acd9dc3E, symObjAddr: 0x38B30, symBinAddr: 0x100E0A6B0, symSize: 0xC40 } - - { offset: 0xC378A, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort12sort4_stable17h3101ff5c25eb3a55E, symObjAddr: 0x308A0, symBinAddr: 0x100E02800, symSize: 0x1B0 } - - { offset: 0xC3972, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort12sort4_stable17hf466009ea485f44eE, symObjAddr: 0x30A50, symBinAddr: 0x100E029B0, symSize: 0x1F0 } - - { offset: 0xC3DF2, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort18small_sort_general17h25eb641c5c944791E, symObjAddr: 0x31020, symBinAddr: 0x100E02BA0, symSize: 0x520 } - - { offset: 0xC4347, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort18small_sort_general17he4a7a10de884ae0aE, symObjAddr: 0x31540, symBinAddr: 0x100E030C0, symSize: 0x600 } - - { offset: 0xC4BB1, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort25insertion_sort_shift_left17h17ba9264ab2bd71aE, symObjAddr: 0x31B40, symBinAddr: 0x100E036C0, symSize: 0xC0 } - - { offset: 0xC4CEC, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort25insertion_sort_shift_left17h734a631330c593c2E, symObjAddr: 0x31C00, symBinAddr: 0x100E03780, symSize: 0xF0 } - - { offset: 0xC4E27, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort25insertion_sort_shift_left17hc85d8d9501288eb2E, symObjAddr: 0x31CF0, symBinAddr: 0x100E03870, symSize: 0xF0 } - - { offset: 0xC4F52, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort25insertion_sort_shift_left17he361975453aedd02E, symObjAddr: 0x31DE0, symBinAddr: 0x100E03960, symSize: 0x120 } - - { offset: 0xC5321, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17h036feb095153a12dE, symObjAddr: 0x301E0, symBinAddr: 0x100E02140, symSize: 0xC0 } - - { offset: 0xC5440, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17h0f374e299e0af6a8E, symObjAddr: 0x302A0, symBinAddr: 0x100E02200, symSize: 0x110 } - - { offset: 0xC5569, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17h287bc5437113b5ddE, symObjAddr: 0x303B0, symBinAddr: 0x100E02310, symSize: 0x140 } - - { offset: 0xC57C3, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17h58bbff84dc1ee6dfE, symObjAddr: 0x304F0, symBinAddr: 0x100E02450, symSize: 0xC0 } - - { offset: 0xC58E0, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17h7167526e336f4522E, symObjAddr: 0x305B0, symBinAddr: 0x100E02510, symSize: 0xC0 } - - { offset: 0xC59FD, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17ha1ad6a53f0c378fcE, symObjAddr: 0x30670, symBinAddr: 0x100E025D0, symSize: 0xC0 } - - { offset: 0xC5B1A, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17hbec34d9dc32f4bacE, symObjAddr: 0x30730, symBinAddr: 0x100E02690, symSize: 0xC0 } - - { offset: 0xC5C37, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared5pivot11median3_rec17hd9a18abe3b71e41eE, symObjAddr: 0x307F0, symBinAddr: 0x100E02750, symSize: 0xB0 } - - { offset: 0xC792F, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h051714f7acde57acE', symObjAddr: 0x29060, symBinAddr: 0x100DFF980, symSize: 0x10 } - - { offset: 0xC796C, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h180389476113a4dfE', symObjAddr: 0x29070, symBinAddr: 0x100DFF990, symSize: 0x10 } - - { offset: 0xC79BF, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h33eaa0d4869be92cE', symObjAddr: 0x29080, symBinAddr: 0x100DFF9A0, symSize: 0x10 } - - { offset: 0xC79FC, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h5575f3e81c06f985E', symObjAddr: 0x290A0, symBinAddr: 0x100DFF9B0, symSize: 0x10 } - - { offset: 0xC7A39, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h614d16a7fad70eb4E', symObjAddr: 0x290D0, symBinAddr: 0x100DFF9C0, symSize: 0x10 } - - { offset: 0xC7A8C, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h733c51af0a1097b1E', symObjAddr: 0x290E0, symBinAddr: 0x100DFF9D0, symSize: 0x90 } - - { offset: 0xC7BE0, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hb8e7fdaab143ce58E', symObjAddr: 0x29200, symBinAddr: 0x100DFFA60, symSize: 0x20 } - - { offset: 0xC7C1D, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hc9fd8ccaa4e44fe5E', symObjAddr: 0x292B0, symBinAddr: 0x100DFFA80, symSize: 0x20 } - - { offset: 0xC7C5A, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hd67674c38c9c50b5E', symObjAddr: 0x292D0, symBinAddr: 0x100DFFAA0, symSize: 0xA0 } - - { offset: 0xC7DB3, size: 0x8, addend: 0x0, symName: '__ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17he343304ad66587abE', symObjAddr: 0x29370, symBinAddr: 0x100DFFB40, symSize: 0x90 } - - { offset: 0xC8059, size: 0x8, addend: 0x0, symName: __ZN4core3ops8function2Fn4call17h26ed795807608365E, symObjAddr: 0x28DF0, symBinAddr: 0x100DFF810, symSize: 0x30 } - - { offset: 0xC80FB, size: 0x8, addend: 0x0, symName: __ZN4core3ops8function2Fn4call17h3b147040b7ad1613E, symObjAddr: 0x28E20, symBinAddr: 0x100DFF840, symSize: 0xA0 } - - { offset: 0xC8217, size: 0x8, addend: 0x0, symName: __ZN4core3ops8function2Fn4call17hd24e6329bafca2a3E, symObjAddr: 0x28EE0, symBinAddr: 0x100DFF8E0, symSize: 0xA0 } - - { offset: 0xC93ED, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17h19e759218580c4d7E', symObjAddr: 0xE30, symBinAddr: 0x100DE7B00, symSize: 0x30 } - - { offset: 0xC941D, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17h1f11286173761af7E', symObjAddr: 0xE60, symBinAddr: 0x100DE7B30, symSize: 0x30 } - - { offset: 0xC944D, size: 0x8, addend: 0x0, symName: '__ZN36_$LT$T$u20$as$u20$core..any..Any$GT$7type_id17h34e9838391a58b41E', symObjAddr: 0xE90, symBinAddr: 0x100DE7B60, symSize: 0x30 } - - { offset: 0xCA527, size: 0x8, addend: 0x0, symName: '__ZN4core5array69_$LT$impl$u20$core..fmt..Debug$u20$for$u20$$u5b$T$u3b$$u20$N$u5d$$GT$3fmt17he2f07586aac78a10E', symObjAddr: 0x30000, symBinAddr: 0x100E01FD0, symSize: 0xF0 } - - { offset: 0xCA8AE, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h104fe91fb71c60cfE', symObjAddr: 0x2C0F0, symBinAddr: 0x100E910F0, symSize: 0x70 } - - { offset: 0xCA8CD, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h104fe91fb71c60cfE', symObjAddr: 0x2C0F0, symBinAddr: 0x100E910F0, symSize: 0x70 } - - { offset: 0xCA8E3, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h104fe91fb71c60cfE', symObjAddr: 0x2C0F0, symBinAddr: 0x100E910F0, symSize: 0x70 } - - { offset: 0xCA8F8, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h104fe91fb71c60cfE', symObjAddr: 0x2C0F0, symBinAddr: 0x100E910F0, symSize: 0x70 } - - { offset: 0xCA951, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h4153f1e58a169a49E', symObjAddr: 0x2C160, symBinAddr: 0x100E91160, symSize: 0x110 } - - { offset: 0xCABCF, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h58dfc268538373b6E', symObjAddr: 0x2C270, symBinAddr: 0x100E91270, symSize: 0x2570 } - - { offset: 0xCDEFA, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h5c3bc2fcd270988eE', symObjAddr: 0x2E7E0, symBinAddr: 0x100E937E0, symSize: 0xF00 } - - { offset: 0xCF6EE, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17h70d1f1aa22e41a4bE', symObjAddr: 0x2F6E0, symBinAddr: 0x100E946E0, symSize: 0x8A0 } - - { offset: 0xD0310, size: 0x8, addend: 0x0, symName: '__ZN4core4cell4once17OnceCell$LT$T$GT$8try_init17he3d7a4f2c80dcce9E', symObjAddr: 0x2FF80, symBinAddr: 0x100E94F80, symSize: 0x80 } - - { offset: 0xD08F9, size: 0x8, addend: 0x0, symName: '__ZN55_$LT$$RF$str$u20$as$u20$core..str..pattern..Pattern$GT$15is_contained_in17h1a2057fb9bfe7a21E', symObjAddr: 0x3B690, symBinAddr: 0x100E0C8C0, symSize: 0x860 } - - { offset: 0xD1514, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error11description17h247239122ad69a57E, symObjAddr: 0x300F0, symBinAddr: 0x100E020C0, symSize: 0x20 } - - { offset: 0xD152E, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error5cause17h51f50fc72d4d9ba6E, symObjAddr: 0x30140, symBinAddr: 0x100E020E0, symSize: 0x10 } - - { offset: 0xD1548, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error7provide17hca6d710ae681c4ecE, symObjAddr: 0x30160, symBinAddr: 0x100E020F0, symSize: 0x10 } - - { offset: 0xD1562, size: 0x8, addend: 0x0, symName: __ZN4core5error5Error7type_id17h502d9ad85b9af2e7E, symObjAddr: 0x30170, symBinAddr: 0x100E02100, symSize: 0x30 } - - { offset: 0xD159A, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17h27f93d5cedc0c82bE, symObjAddr: 0x3A981, symBinAddr: 0x100E95001, symSize: 0x2F } - - { offset: 0xD15B6, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17h59391361be1bc1faE, symObjAddr: 0x3A9B0, symBinAddr: 0x100E95030, symSize: 0x2F } - - { offset: 0xD15D2, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17h7e4efd8af2ce0112E, symObjAddr: 0x3AA0E, symBinAddr: 0x100E9506E, symSize: 0x42 } - - { offset: 0xD16C8, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc10rust_panic, symObjAddr: 0x0, symBinAddr: 0x100E8FE20, symSize: 0x70 } - - { offset: 0xD16FA, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc17___rust_drop_panic, symObjAddr: 0x1A0, symBinAddr: 0x100DE7700, symSize: 0xD0 } - - { offset: 0xD1962, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc17rust_begin_unwind, symObjAddr: 0x270, symBinAddr: 0x100DE77D0, symSize: 0x30 } - - { offset: 0xD19AA, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc24___rust_foreign_exception, symObjAddr: 0x330, symBinAddr: 0x100DE7890, symSize: 0xD0 } - - { offset: 0xD1C95, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11panic_count17is_zero_slow_path17h73509c5131c29b00E, symObjAddr: 0x26430, symBinAddr: 0x100E91000, symSize: 0x20 } - - { offset: 0xD1D4B, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11panic_count8increase17hc3c62b3ad69ca677E, symObjAddr: 0x26490, symBinAddr: 0x100DFE0C0, symSize: 0x40 } - - { offset: 0xD1D63, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11panic_count8increase17hc3c62b3ad69ca677E, symObjAddr: 0x26490, symBinAddr: 0x100DFE0C0, symSize: 0x40 } - - { offset: 0xD1D79, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11panic_count8increase17hc3c62b3ad69ca677E, symObjAddr: 0x26490, symBinAddr: 0x100DFE0C0, symSize: 0x40 } - - { offset: 0xD1EAB, size: 0x8, addend: 0x0, symName: __ZN3std9panicking12catch_unwind7cleanup17h812c8a94b68e2a33E, symObjAddr: 0x264E2, symBinAddr: 0x100E91022, symSize: 0x29 } - - { offset: 0xD1FC8, size: 0x8, addend: 0x0, symName: __ZN3std9panicking11begin_panic17h4d8e3456c91faba4E, symObjAddr: 0x263CF, symBinAddr: 0x100E90FDF, symSize: 0x21 } - - { offset: 0xD1FE9, size: 0x8, addend: 0x0, symName: '__ZN3std9panicking11begin_panic28_$u7b$$u7b$closure$u7d$$u7d$17hcee84488a92d336bE', symObjAddr: 0x263F0, symBinAddr: 0x100DFE080, symSize: 0x40 } - - { offset: 0xD200A, size: 0x8, addend: 0x0, symName: '__ZN84_$LT$std..panicking..begin_panic..Payload$LT$A$GT$$u20$as$u20$core..fmt..Display$GT$3fmt17h0203fdbc04631f03E', symObjAddr: 0x587D0, symBinAddr: 0x100E1E180, symSize: 0x20 } - - { offset: 0xD2043, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..panicking..begin_panic..Payload$LT$A$GT$$u20$as$u20$core..panic..PanicPayload$GT$3get17hcdbce4438335000dE', symObjAddr: 0x58FF0, symBinAddr: 0x100E1E580, symSize: 0x20 } - - { offset: 0xD205E, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..panicking..begin_panic..Payload$LT$A$GT$$u20$as$u20$core..panic..PanicPayload$GT$8take_box17h3c45bc73e450fc27E', symObjAddr: 0x59010, symBinAddr: 0x100E1E5A0, symSize: 0x60 } - - { offset: 0xD2109, size: 0x8, addend: 0x0, symName: __ZN3std9panicking12default_hook17h831fad149bd387e2E, symObjAddr: 0x2650B, symBinAddr: 0x100DFE10B, symSize: 0x12B } - - { offset: 0xD22B4, size: 0x8, addend: 0x0, symName: '__ZN3std9panicking12default_hook28_$u7b$$u7b$closure$u7d$$u7d$17hcd0d8eda8ad11a72E', symObjAddr: 0x26636, symBinAddr: 0x100DFE236, symSize: 0x18A } - - { offset: 0xD2490, size: 0x8, addend: 0x0, symName: '__ZN3std9panicking12default_hook28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h93eae936173c5701E', symObjAddr: 0x267C0, symBinAddr: 0x100DFE3C0, symSize: 0x380 } - - { offset: 0xD2BFE, size: 0x8, addend: 0x0, symName: '__ZN3std9panicking13panic_handler28_$u7b$$u7b$closure$u7d$$u7d$17h0c2f47016e5ca1d7E', symObjAddr: 0x26B40, symBinAddr: 0x100DFE740, symSize: 0xD0 } - - { offset: 0xD2D6A, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$std..panicking..panic_handler..StaticStrPayload$u20$as$u20$core..fmt..Display$GT$3fmt17h69459cf884358c7bE', symObjAddr: 0x58A40, symBinAddr: 0x100E1E1A0, symSize: 0x20 } - - { offset: 0xD2D8C, size: 0x8, addend: 0x0, symName: '__ZN89_$LT$std..panicking..panic_handler..FormatStringPayload$u20$as$u20$core..fmt..Display$GT$3fmt17hb2373bd7ca62cac3E', symObjAddr: 0x58E50, symBinAddr: 0x100E1E3F0, symSize: 0x70 } - - { offset: 0xD2E92, size: 0x8, addend: 0x0, symName: '__ZN93_$LT$std..panicking..panic_handler..StaticStrPayload$u20$as$u20$core..panic..PanicPayload$GT$3get17h374fe3711ad4c2c8E', symObjAddr: 0x59730, symBinAddr: 0x100E1E650, symSize: 0x10 } - - { offset: 0xD2EAD, size: 0x8, addend: 0x0, symName: '__ZN93_$LT$std..panicking..panic_handler..StaticStrPayload$u20$as$u20$core..panic..PanicPayload$GT$6as_str17he7594da06f5bccb7E', symObjAddr: 0x59740, symBinAddr: 0x100E1E660, symSize: 0x10 } - - { offset: 0xD2EC8, size: 0x8, addend: 0x0, symName: '__ZN93_$LT$std..panicking..panic_handler..StaticStrPayload$u20$as$u20$core..panic..PanicPayload$GT$8take_box17h52d12fc13f13c96dE', symObjAddr: 0x59750, symBinAddr: 0x100E1E670, symSize: 0x50 } - - { offset: 0xD2F7C, size: 0x8, addend: 0x0, symName: '__ZN96_$LT$std..panicking..panic_handler..FormatStringPayload$u20$as$u20$core..panic..PanicPayload$GT$3get17h48bb44236458e5acE', symObjAddr: 0x59F50, symBinAddr: 0x100E1EAB0, symSize: 0xD0 } - - { offset: 0xD30BC, size: 0x8, addend: 0x0, symName: '__ZN96_$LT$std..panicking..panic_handler..FormatStringPayload$u20$as$u20$core..panic..PanicPayload$GT$8take_box17h6c10754cd3562552E', symObjAddr: 0x5A020, symBinAddr: 0x100E1EB80, symSize: 0x150 } - - { offset: 0xD3357, size: 0x8, addend: 0x0, symName: __ZN3std9panicking13resume_unwind17h484ce31c789e74acE, symObjAddr: 0x26C10, symBinAddr: 0x100E91050, symSize: 0xA0 } - - { offset: 0xD357A, size: 0x8, addend: 0x0, symName: __ZN3std9panicking14payload_as_str17hbae460a4700306e1E, symObjAddr: 0x26CB0, symBinAddr: 0x100DFE810, symSize: 0x7D } - - { offset: 0xD36CD, size: 0x8, addend: 0x0, symName: __ZN3std9panicking15panic_with_hook17he279b1ed12881c5dE, symObjAddr: 0x26D2D, symBinAddr: 0x100DFE88D, symSize: 0x43D } - - { offset: 0xD3FA2, size: 0x8, addend: 0x0, symName: '__ZN79_$LT$std..panicking..resume_unwind..RewrapBox$u20$as$u20$core..fmt..Display$GT$3fmt17h9800624a3eaa4432E', symObjAddr: 0x570A0, symBinAddr: 0x100E1D540, symSize: 0x20 } - - { offset: 0xD3FC4, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$std..panicking..resume_unwind..RewrapBox$u20$as$u20$core..panic..PanicPayload$GT$3get17h69537e85a8f70e7aE', symObjAddr: 0x58A60, symBinAddr: 0x100E1E1C0, symSize: 0x10 } - - { offset: 0xD3FDF, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$std..panicking..resume_unwind..RewrapBox$u20$as$u20$core..panic..PanicPayload$GT$8take_box17hef3adacc06170807E', symObjAddr: 0x58A70, symBinAddr: 0x100E1E1D0, symSize: 0x20 } - - { offset: 0xD40CA, size: 0x8, addend: 0x0, symName: '__ZN102_$LT$std..sys..process..unix..common..cstring_array..CStringArray$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb1950a1da1f0e46bE', symObjAddr: 0x420, symBinAddr: 0x100DE7960, symSize: 0x80 } - - { offset: 0xD42CC, size: 0x8, addend: 0x0, symName: '__ZN3std3sys7process4unix4unix58_$LT$impl$u20$std..sys..process..unix..common..Command$GT$5spawn17h34cf14fbad515ce9E', symObjAddr: 0x1C5B0, symBinAddr: 0x100DF8480, symSize: 0xB40 } - - { offset: 0xD54CE, size: 0x8, addend: 0x0, symName: '__ZN3std3sys7process4unix4unix58_$LT$impl$u20$std..sys..process..unix..common..Command$GT$7do_exec17h9e4ba9e80602e02eE', symObjAddr: 0x1D0F0, symBinAddr: 0x100DF8FC0, symSize: 0x340 } - - { offset: 0xD5E82, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command11capture_env17hc59cb0ea6a6331d9E, symObjAddr: 0x1D610, symBinAddr: 0x100DF94E0, symSize: 0x1250 } - - { offset: 0xD827F, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command3arg17hb32eb8c2eaee4f8eE, symObjAddr: 0x1E860, symBinAddr: 0x100DFA730, symSize: 0xD0 } - - { offset: 0xD85AC, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command3new17h930a473de93d32a9E, symObjAddr: 0x1EA00, symBinAddr: 0x100DFA800, symSize: 0x2B0 } - - { offset: 0xD8B57, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command6stderr17h618e84edaf8a59d4E, symObjAddr: 0x1EDF0, symBinAddr: 0x100DFAAB0, symSize: 0x40 } - - { offset: 0xD8BE5, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command6stdout17ha9e435928bf06572E, symObjAddr: 0x1EE30, symBinAddr: 0x100DFAAF0, symSize: 0x40 } - - { offset: 0xD8C73, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common7Command8setup_io17h58cf66d4b2e6383aE, symObjAddr: 0x1EEE0, symBinAddr: 0x100DFAB30, symSize: 0x2C0 } - - { offset: 0xD90EC, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix6common5Stdio14to_child_stdio17hff0f571bec7c1570E, symObjAddr: 0x1D4C0, symBinAddr: 0x100DF9390, symSize: 0x150 } - - { offset: 0xD92CB, size: 0x8, addend: 0x0, symName: __ZN3std3sys7process4unix4unix7Process4wait17hdd205c96c3eea8a1E, symObjAddr: 0x1D430, symBinAddr: 0x100DF9300, symSize: 0x90 } - - { offset: 0xD9454, size: 0x8, addend: 0x0, symName: '__ZN103_$LT$std..sys..thread_local..abort_on_dtor_unwind..DtorUnwindGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf132d431cdc6f716E', symObjAddr: 0x520, symBinAddr: 0x100E8FEB0, symSize: 0x60 } - - { offset: 0xD94EE, size: 0x8, addend: 0x0, symName: __ZN3std3sys12thread_local6native5eager7destroy17h4812fd0eb748efabE, symObjAddr: 0x11C60, symBinAddr: 0x100DF43C0, symSize: 0x20 } - - { offset: 0xD9617, size: 0x8, addend: 0x0, symName: __ZN3std3sys12thread_local6native5eager7destroy17hc088f25344b94d67E, symObjAddr: 0x11C80, symBinAddr: 0x100DF43E0, symSize: 0x60 } - - { offset: 0xD9839, size: 0x8, addend: 0x0, symName: __ZN3std3sys12thread_local5guard5apple6enable9run_dtors17h2b2f21d537c6c21fE, symObjAddr: 0x11B70, symBinAddr: 0x100DF42D0, symSize: 0xF0 } - - { offset: 0xD9D12, size: 0x8, addend: 0x0, symName: __ZN3std3sys12thread_local11destructors4list8register17ha615fb0f45049e01E, symObjAddr: 0x11A80, symBinAddr: 0x100DF41E0, symSize: 0xF0 } - - { offset: 0xDA062, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket4unix6Socket10take_error17h98dc1e8131410b76E, symObjAddr: 0x170B0, symBinAddr: 0x100DF5490, symSize: 0x70 } - - { offset: 0xDA148, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket4unix6Socket20recv_from_with_flags17h11253b5de993a7dbE, symObjAddr: 0x17120, symBinAddr: 0x100DF5500, symSize: 0x140 } - - { offset: 0xDA28B, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket4unix6Socket3new17hf172b5bc14e52cc5E, symObjAddr: 0x17260, symBinAddr: 0x100DF5640, symSize: 0xB0 } - - { offset: 0xDA4D3, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket11TcpListener11socket_addr17hb7e0507250fc7c1bE, symObjAddr: 0x16C40, symBinAddr: 0x100DF5160, symSize: 0x170 } - - { offset: 0xDA6A5, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9TcpStream9peer_addr17h6325c89895dfc9d9E, symObjAddr: 0x17560, symBinAddr: 0x100DF5820, symSize: 0x170 } - - { offset: 0xDA8F1, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9UdpSocket7send_to17h425b2bfe2cf912ccE, symObjAddr: 0x17890, symBinAddr: 0x100DF5B50, symSize: 0xA0 } - - { offset: 0xDA910, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9UdpSocket7send_to17h425b2bfe2cf912ccE, symObjAddr: 0x17890, symBinAddr: 0x100DF5B50, symSize: 0xA0 } - - { offset: 0xDAACE, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9UdpSocket4bind5inner17h4814fb9d2a94825aE, symObjAddr: 0x176D0, symBinAddr: 0x100DF5990, symSize: 0x110 } - - { offset: 0xDAD04, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9UdpSocket7connect5inner17hb8607a6af0080ac6E, symObjAddr: 0x177E0, symBinAddr: 0x100DF5AA0, symSize: 0xB0 } - - { offset: 0xDAEC8, size: 0x8, addend: 0x0, symName: '__ZN3std3sys3net10connection6socket11lookup_host28_$u7b$$u7b$closure$u7d$$u7d$17hb964705b281e67e6E', symObjAddr: 0x16EF0, symBinAddr: 0x100DF52D0, symSize: 0x1C0 } - - { offset: 0xDB376, size: 0x8, addend: 0x0, symName: __ZN3std3sys3net10connection6socket9TcpStream7connect5inner17h9f998e07baf41e32E, symObjAddr: 0x17430, symBinAddr: 0x100DF56F0, symSize: 0x130 } - - { offset: 0xDB598, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..sys..net..connection..socket..TcpStream$u20$as$u20$core..fmt..Debug$GT$3fmt17h43835e191eb6e593E', symObjAddr: 0x57BE0, symBinAddr: 0x100E1DC30, symSize: 0x1F0 } - - { offset: 0xDBB1F, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..sys..net..connection..socket..UdpSocket$u20$as$u20$core..fmt..Debug$GT$3fmt17h8ccc04c3d9ceb521E', symObjAddr: 0x57DD0, symBinAddr: 0x100E1DE20, symSize: 0x140 } - - { offset: 0xDBDEC, size: 0x8, addend: 0x0, symName: '__ZN83_$LT$std..sys..net..connection..socket..TcpListener$u20$as$u20$core..fmt..Debug$GT$3fmt17hb886a4cbc8b9d5daE', symObjAddr: 0x585E0, symBinAddr: 0x100E1E040, symSize: 0x140 } - - { offset: 0xDC0EF, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix14stack_overflow11thread_info16set_current_info17hed7258b6f44044d8E, symObjAddr: 0x17940, symBinAddr: 0x100DF5BF0, symSize: 0xF10 } - - { offset: 0xDD4EE, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix14stack_overflow3imp12drop_handler17h6f3a1ebed288ce50E, symObjAddr: 0x18850, symBinAddr: 0x100DF6B00, symSize: 0x520 } - - { offset: 0xDDDD7, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix14stack_overflow3imp12make_handler17hbd1b88baa097392aE, symObjAddr: 0x18D70, symBinAddr: 0x100DF7020, symSize: 0x290 } - - { offset: 0xDE2D4, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4time8Timespec12sub_timespec17h120465f1b35b07c1E, symObjAddr: 0x19DA0, symBinAddr: 0x100DF7A40, symSize: 0xD0 } - - { offset: 0xDE397, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4time8Timespec3now17h01ce9c828e4e74dcE, symObjAddr: 0x19E70, symBinAddr: 0x100DF7B10, symSize: 0x100 } - - { offset: 0xDE56B, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex4init17h99ef18eea7e38fedE, symObjAddr: 0x19B00, symBinAddr: 0x100DF78A0, symSize: 0x160 } - - { offset: 0xDE5F0, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex4lock17h675211c532fbc7efE, symObjAddr: 0x19C60, symBinAddr: 0x100DF7A00, symSize: 0x20 } - - { offset: 0xDE604, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex6unlock17hf81ca7359b920a69E, symObjAddr: 0x19D80, symBinAddr: 0x100DF7A20, symSize: 0x10 } - - { offset: 0xDE618, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex8try_lock17h7c1de46f936ac2cfE, symObjAddr: 0x19D90, symBinAddr: 0x100DF7A30, symSize: 0x10 } - - { offset: 0xDE667, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4sync5mutex5Mutex4lock4fail17h074b346d149ba455E, symObjAddr: 0x19C80, symBinAddr: 0x100E90040, symSize: 0x100 } - - { offset: 0xDE92A, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..sys..pal..unix..sync..mutex..Mutex$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5c04e9b45dbfca77E', symObjAddr: 0x57F10, symBinAddr: 0x100E1DF60, symSize: 0x10 } - - { offset: 0xDE999, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix14abort_internal17ha98aa180a5bbc8a2E, symObjAddr: 0x17930, symBinAddr: 0x100E90030, symSize: 0x10 } - - { offset: 0xDE9B4, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix17decode_error_kind17h51f211c634ef6e57E, symObjAddr: 0x19380, symBinAddr: 0x100DF72B0, symSize: 0x250 } - - { offset: 0xDEA09, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4pipe5read217h6587f1a47a935ac2E, symObjAddr: 0x19760, symBinAddr: 0x100DF7500, symSize: 0x240 } - - { offset: 0xDEF38, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4pipe8AnonPipe5write17h2f20460f74f93dd0E, symObjAddr: 0x199A0, symBinAddr: 0x100DF7740, symSize: 0x50 } - - { offset: 0xDF030, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal4unix4pipe9anon_pipe17h4f3dab97dc6d6a1cE, symObjAddr: 0x199F0, symBinAddr: 0x100DF7790, symSize: 0x110 } - - { offset: 0xDF4F0, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17h0dbd6f3c82b8580dE, symObjAddr: 0x19F70, symBinAddr: 0x100E90140, symSize: 0xB0 } - - { offset: 0xDF6E2, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17h76ef9baf2ff297d2E, symObjAddr: 0x1A1A0, symBinAddr: 0x100E901F0, symSize: 0xB0 } - - { offset: 0xDF8D4, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17h8bcc3d18b5578274E, symObjAddr: 0x1A250, symBinAddr: 0x100E902A0, symSize: 0xB0 } - - { offset: 0xDFADB, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17h91dff7e7f09e01a2E, symObjAddr: 0x1A300, symBinAddr: 0x100E90350, symSize: 0xB0 } - - { offset: 0xDFCCD, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17haf4c1e2b70b98c59E, symObjAddr: 0x1A3B0, symBinAddr: 0x100E90400, symSize: 0x90 } - - { offset: 0xDFE4D, size: 0x8, addend: 0x0, symName: __ZN3std3sys3pal6common14small_c_string24run_with_cstr_allocating17he01cc62f291e13ecE, symObjAddr: 0x1A440, symBinAddr: 0x100E90490, symSize: 0xB0 } - - { offset: 0xE00DF, size: 0x8, addend: 0x0, symName: __ZN3std3sys3env4unix13env_read_lock17h080e22eed9e69a2aE, symObjAddr: 0x164A0, symBinAddr: 0x100DF4DC0, symSize: 0x280 } - - { offset: 0xE07F9, size: 0x8, addend: 0x0, symName: '__ZN3std3sys3env4unix6getenv28_$u7b$$u7b$closure$u7d$$u7d$17hf116ef918c0a60eaE', symObjAddr: 0x16720, symBinAddr: 0x100DF5040, symSize: 0x120 } - - { offset: 0xE0B74, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs4unix4File4read17h4d1b2916be1f8817E, symObjAddr: 0x14B90, symBinAddr: 0x100DF4880, symSize: 0x50 } - - { offset: 0xE0C76, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs4unix4File6open_c17h4ab06e6eddb4e9a2E, symObjAddr: 0x14BE0, symBinAddr: 0x100DF48D0, symSize: 0x180 } - - { offset: 0xE0DD9, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$std..sys..fs..unix..ReadDir$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2d02c6365fb51d7eE', symObjAddr: 0x58A90, symBinAddr: 0x100E1E1F0, symSize: 0x160 } - - { offset: 0xE1034, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs4unix8DirEntry8metadata17h668a58866ed48c7eE, symObjAddr: 0x15280, symBinAddr: 0x100DF4A50, symSize: 0x170 } - - { offset: 0xE1647, size: 0x8, addend: 0x0, symName: '__ZN3std3sys2fs4unix10DirBuilder5mkdir28_$u7b$$u7b$closure$u7d$$u7d$17hfe735729597ef7f8E', symObjAddr: 0x146D0, symBinAddr: 0x100DF4850, symSize: 0x30 } - - { offset: 0xE177D, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$std..sys..fs..unix..Dir$u20$as$u20$core..ops..drop..Drop$GT$4drop17he29e78a62d800920E', symObjAddr: 0x53070, symBinAddr: 0x100E1CA90, symSize: 0xD0 } - - { offset: 0xE187D, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs11remove_file17h6cb84f0b486ca638E, symObjAddr: 0x13950, symBinAddr: 0x100DF46A0, symSize: 0xB0 } - - { offset: 0xE19BE, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs16symlink_metadata17h60b8d02dbd6c8d2aE, symObjAddr: 0x13D10, symBinAddr: 0x100DF4750, symSize: 0x100 } - - { offset: 0xE1B59, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fs8read_dir17h30ffda450dc61986E, symObjAddr: 0x15CF0, symBinAddr: 0x100DF4BC0, symSize: 0x200 } - - { offset: 0xE1FFE, size: 0x8, addend: 0x0, symName: __ZN3std3sys2fd4unix8FileDesc11read_to_end17h0dbc7840bee74e70E, symObjAddr: 0x13170, symBinAddr: 0x100DF4440, symSize: 0x260 } - - { offset: 0xE24A7, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..sys..stdio..unix..Stderr$u20$as$u20$std..io..Write$GT$14write_vectored17he669de2036e74d62E', symObjAddr: 0x52DB0, symBinAddr: 0x100E1C9D0, symSize: 0x50 } - - { offset: 0xE257E, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..sys..stdio..unix..Stderr$u20$as$u20$std..io..Write$GT$17is_write_vectored17hb2de0e92d4a42c51E', symObjAddr: 0x52E00, symBinAddr: 0x100E1CA20, symSize: 0x10 } - - { offset: 0xE2598, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..sys..stdio..unix..Stderr$u20$as$u20$std..io..Write$GT$5flush17h53af85588f2280ebE', symObjAddr: 0x52E10, symBinAddr: 0x100E1CA30, symSize: 0x10 } - - { offset: 0xE25B2, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..sys..stdio..unix..Stderr$u20$as$u20$std..io..Write$GT$5write17h0eddc5a66bf0cfcbE', symObjAddr: 0x52E20, symBinAddr: 0x100E1CA40, symSize: 0x50 } - - { offset: 0xE270F, size: 0x8, addend: 0x0, symName: '__ZN3std3sys4sync8once_box16OnceBox$LT$T$GT$10initialize17h46a5a38a05617ddeE', symObjAddr: 0x1B510, symBinAddr: 0x100E90A00, symSize: 0x120 } - - { offset: 0xE29D9, size: 0x8, addend: 0x0, symName: '__ZN79_$LT$std..sys..sync..mutex..pthread..Mutex$u20$as$u20$core..ops..drop..Drop$GT$4drop17h52174563629282c5E', symObjAddr: 0x57130, symBinAddr: 0x100E1D560, symSize: 0x50 } - - { offset: 0xE2B1A, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync4once5queue4Once4call17hd0ce9df5b79e8d22E, symObjAddr: 0x1A920, symBinAddr: 0x100E90540, symSize: 0x210 } - - { offset: 0xE2DF4, size: 0x8, addend: 0x0, symName: '__ZN82_$LT$std..sys..sync..once..queue..WaiterQueue$u20$as$u20$core..ops..drop..Drop$GT$4drop17h729146ee6877b8d9E', symObjAddr: 0x584F0, symBinAddr: 0x100E1DF70, symSize: 0xD0 } - - { offset: 0xE2FBE, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync4once5queue4wait17h879659b0b66e22efE, symObjAddr: 0x1AD20, symBinAddr: 0x100DF7C30, symSize: 0x160 } - - { offset: 0xE34DD, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock12unlock_queue17h1a32deced9e9263cE, symObjAddr: 0x1AEA0, symBinAddr: 0x100DF7DB0, symSize: 0x180 } - - { offset: 0xE3B46, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock14lock_contended17h83a02ca7e6cffb5cE, symObjAddr: 0x1B110, symBinAddr: 0x100E90750, symSize: 0x220 } - - { offset: 0xE40F6, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock16unlock_contended17h1da21bdde9d2c4c9E, symObjAddr: 0x1B330, symBinAddr: 0x100E90970, symSize: 0x40 } - - { offset: 0xE41DB, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue6RwLock21read_unlock_contended17h43b073e682e0e319E, symObjAddr: 0x1B370, symBinAddr: 0x100E909B0, symSize: 0x50 } - - { offset: 0xE4412, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue10write_lock17he030c4624f373cdbE, symObjAddr: 0x1AE80, symBinAddr: 0x100DF7D90, symSize: 0x20 } - - { offset: 0xE445C, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync6rwlock5queue9read_lock17h9cc61ccd81b32a84E, symObjAddr: 0x1B3C0, symBinAddr: 0x100DF7F30, symSize: 0x30 } - - { offset: 0xE4483, size: 0x8, addend: 0x0, symName: '__ZN83_$LT$std..sys..sync..rwlock..queue..PanicGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3ebf9aa26e904d8aE', symObjAddr: 0x58770, symBinAddr: 0x100E95650, symSize: 0x60 } - - { offset: 0xE44D6, size: 0x8, addend: 0x0, symName: __ZN3std3sys4sync14thread_parking6darwin6Parker6unpark17he70b4d97a5cff279E, symObjAddr: 0x1A900, symBinAddr: 0x100DF7C10, symSize: 0x20 } - - { offset: 0xE458A, size: 0x8, addend: 0x0, symName: __ZN3std3sys6thread4unix6Thread3new12thread_start17hf3e2176ff1907cbcE, symObjAddr: 0x1B9A0, symBinAddr: 0x100DF7FE0, symSize: 0xC0 } - - { offset: 0xE474B, size: 0x8, addend: 0x0, symName: __ZN3std3sys6thread4unix6Thread3new17h517a677fdbaa9018E, symObjAddr: 0x1BA60, symBinAddr: 0x100DF80A0, symSize: 0x2D0 } - - { offset: 0xE4A28, size: 0x8, addend: 0x0, symName: __ZN3std3sys6thread4unix6Thread4join17he7a4b9ba421497fcE, symObjAddr: 0x1BD30, symBinAddr: 0x100DF8370, symSize: 0x90 } - - { offset: 0xE4A86, size: 0x8, addend: 0x0, symName: __ZN3std3sys6thread4unix8set_name17h12316377c004265aE, symObjAddr: 0x1BDC0, symBinAddr: 0x100DF8400, symSize: 0x80 } - - { offset: 0xE4B8D, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$std..sys..thread..unix..Thread$u20$as$u20$core..ops..drop..Drop$GT$4drop17h30332efc7279a24aE', symObjAddr: 0x54900, symBinAddr: 0x100E1D1B0, symSize: 0x10 } - - { offset: 0xE4BBC, size: 0x8, addend: 0x0, symName: '__ZN3std3sys11personality3gcc14find_eh_action28_$u7b$$u7b$closure$u7d$$u7d$17h8baa12d6c78d5d30E', symObjAddr: 0x11A60, symBinAddr: 0x100DF41C0, symSize: 0x10 } - - { offset: 0xE4BD0, size: 0x8, addend: 0x0, symName: '__ZN3std3sys11personality3gcc14find_eh_action28_$u7b$$u7b$closure$u7d$$u7d$17haa7761d8c6810ed4E', symObjAddr: 0x11A70, symBinAddr: 0x100DF41D0, symSize: 0x10 } - - { offset: 0xE4C1C, size: 0x8, addend: 0x0, symName: _rust_eh_personality, symObjAddr: 0x5D7D0, symBinAddr: 0x100E220E0, symSize: 0x640 } - - { offset: 0xE5737, size: 0x8, addend: 0x0, symName: __ZN3std3sys6random19hashmap_random_keys17h779ddd06d3550d23E, symObjAddr: 0x1B920, symBinAddr: 0x100DF7F60, symSize: 0x80 } - - { offset: 0xE57F4, size: 0x8, addend: 0x0, symName: '__ZN3std3sys9backtrace10_print_fmt28_$u7b$$u7b$closure$u7d$$u7d$17h8613b02fdb441333E', symObjAddr: 0x1F2B0, symBinAddr: 0x100DFADF0, symSize: 0x20 } - - { offset: 0xE581E, size: 0x8, addend: 0x0, symName: '__ZN3std3sys9backtrace10_print_fmt28_$u7b$$u7b$closure$u7d$$u7d$17h97bee7d7af9f9ff1E', symObjAddr: 0x1F2D0, symBinAddr: 0x100DFAE10, symSize: 0x130 } - - { offset: 0xE592A, size: 0x8, addend: 0x0, symName: '__ZN3std3sys9backtrace10_print_fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h623e08f4f5b444b3E', symObjAddr: 0x1F400, symBinAddr: 0x100DFAF40, symSize: 0x2A0 } - - { offset: 0xE5B4B, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace13BacktraceLock5print17h624ba515ee42db46E, symObjAddr: 0x1F6A0, symBinAddr: 0x100DFB1E0, symSize: 0x60 } - - { offset: 0xE5B7D, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace15output_filename17hca5ad628012549d8E, symObjAddr: 0x1F700, symBinAddr: 0x100DFB240, symSize: 0x120 } - - { offset: 0xE5D0F, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace26__rust_end_short_backtrace17h3c88a03cee16a842E, symObjAddr: 0x1F820, symBinAddr: 0x100DFB360, symSize: 0x10 } - - { offset: 0xE5D29, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace26__rust_end_short_backtrace17h45b468d36ef2b1b1E, symObjAddr: 0x1F830, symBinAddr: 0x100DFB370, symSize: 0x10 } - - { offset: 0xE5D43, size: 0x8, addend: 0x0, symName: __ZN3std3sys9backtrace4lock17h2f8fe20d9cebbe12E, symObjAddr: 0x1F840, symBinAddr: 0x100DFB380, symSize: 0x80 } - - { offset: 0xE5EAC, size: 0x8, addend: 0x0, symName: '__ZN98_$LT$std..sys..backtrace..BacktraceLock..print..DisplayBacktrace$u20$as$u20$core..fmt..Display$GT$3fmt17hde20aac7c5b209d4E', symObjAddr: 0x5A310, symBinAddr: 0x100E1ED20, symSize: 0x280 } - - { offset: 0xE644F, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc11___rdl_alloc, symObjAddr: 0x70, symBinAddr: 0x100DE75E0, symSize: 0x70 } - - { offset: 0xE64D2, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc13___rdl_dealloc, symObjAddr: 0xF0, symBinAddr: 0x100DE7650, symSize: 0x10 } - - { offset: 0xE6504, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc13___rdl_realloc, symObjAddr: 0x100, symBinAddr: 0x100DE7660, symSize: 0xA0 } - - { offset: 0xE65E2, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc18___rdl_alloc_zeroed, symObjAddr: 0x2A0, symBinAddr: 0x100DE7800, symSize: 0x90 } - - { offset: 0xE668F, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc26___rust_alloc_error_handler, symObjAddr: 0x400, symBinAddr: 0x100E8FE90, symSize: 0x20 } - - { offset: 0xE66AB, size: 0x8, addend: 0x0, symName: __ZN3std5alloc24default_alloc_error_hook17h80c78cca1fb507c7E, symObjAddr: 0x23BF0, symBinAddr: 0x100DFC6B0, symSize: 0x160 } - - { offset: 0xE6958, size: 0x8, addend: 0x0, symName: __ZN3std5alloc8rust_oom17h0e0d717e42466eb4E, symObjAddr: 0x23D50, symBinAddr: 0x100E90D30, symSize: 0x20 } - - { offset: 0xE6B09, size: 0x8, addend: 0x0, symName: __ZN3std2io5error14repr_bitpacked11decode_repr17hd5f85a3fd2a5ddc2E, symObjAddr: 0xBF70, symBinAddr: 0x100DF19A0, symSize: 0x60 } - - { offset: 0xE6BAF, size: 0x8, addend: 0x0, symName: __ZN3std2io5error5Error3new17h4dcb3801cff078d7E, symObjAddr: 0xC030, symBinAddr: 0x100DF1A00, symSize: 0x120 } - - { offset: 0xE6F4C, size: 0x8, addend: 0x0, symName: __ZN3std2io5error5Error4_new17he64e5e49be701f14E, symObjAddr: 0xC1D0, symBinAddr: 0x100DF1B20, symSize: 0x80 } - - { offset: 0xE70DB, size: 0x8, addend: 0x0, symName: '__ZN3std2io5error83_$LT$impl$u20$core..fmt..Debug$u20$for$u20$std..io..error..repr_bitpacked..Repr$GT$3fmt17h204ace7985d759fcE', symObjAddr: 0xC250, symBinAddr: 0x100DF1BA0, symSize: 0x300 } - - { offset: 0xE7351, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$std..io..error..Error$u20$as$u20$core..fmt..Debug$GT$3fmt17h990cafee3d04bd6bE', symObjAddr: 0x3CF80, symBinAddr: 0x100E0D3A0, symSize: 0x10 } - - { offset: 0xE736C, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$5cause17h5507b6f5363ba16cE', symObjAddr: 0x4EDD0, symBinAddr: 0x100E1B630, symSize: 0x30 } - - { offset: 0xE738B, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$5cause17h5507b6f5363ba16cE', symObjAddr: 0x4EDD0, symBinAddr: 0x100E1B630, symSize: 0x30 } - - { offset: 0xE73B4, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$6source17hdc4a0bb93690719dE', symObjAddr: 0x4EE00, symBinAddr: 0x100E1B660, symSize: 0x30 } - - { offset: 0xE73D3, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..error..Error$GT$6source17hdc4a0bb93690719dE', symObjAddr: 0x4EE00, symBinAddr: 0x100E1B660, symSize: 0x30 } - - { offset: 0xE7403, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..io..error..Error$u20$as$u20$core..fmt..Display$GT$3fmt17h7da0cae8c77319c0E', symObjAddr: 0x4EE30, symBinAddr: 0x100E1B690, symSize: 0x280 } - - { offset: 0xE7681, size: 0x8, addend: 0x0, symName: '__ZN62_$LT$std..io..error..ErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hf8db6d8bd7006c85E', symObjAddr: 0x51A70, symBinAddr: 0x100E1C2B0, symSize: 0x30 } - - { offset: 0xE771B, size: 0x8, addend: 0x0, symName: '__ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$14write_all_cold17h2bad88a7298ca9ceE', symObjAddr: 0xD450, symBinAddr: 0x100E8FF10, symSize: 0x120 } - - { offset: 0xE7948, size: 0x8, addend: 0x0, symName: '__ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17h154e58480f0d498bE', symObjAddr: 0xD570, symBinAddr: 0x100DF2820, symSize: 0x240 } - - { offset: 0xE7FA8, size: 0x8, addend: 0x0, symName: '__ZN56_$LT$std..io..Guard$u20$as$u20$core..ops..drop..Drop$GT$4drop17h8f5a9cb76f8d2c1fE', symObjAddr: 0x3C5E0, symBinAddr: 0x100E0D1D0, symSize: 0x20 } - - { offset: 0xE7FDA, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write18write_all_vectored17h745addc0dbbb2dc2E, symObjAddr: 0xB970, symBinAddr: 0x100DF13A0, symSize: 0x1D0 } - - { offset: 0xE820F, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write9write_all17h33f1f79b14849b9dE, symObjAddr: 0xBB40, symBinAddr: 0x100DF1570, symSize: 0xA0 } - - { offset: 0xE82DD, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write9write_fmt17h45c5032d22f6a52aE, symObjAddr: 0xBBE0, symBinAddr: 0x100DF1610, symSize: 0x130 } - - { offset: 0xE85D9, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write9write_fmt17h7b90414b77d0d714E, symObjAddr: 0xBD10, symBinAddr: 0x100DF1740, symSize: 0x130 } - - { offset: 0xE88D5, size: 0x8, addend: 0x0, symName: __ZN3std2io5Write9write_fmt17hf6412943e12ca2a4E, symObjAddr: 0xBE40, symBinAddr: 0x100DF1870, symSize: 0x130 } - - { offset: 0xE8C4E, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio22try_set_output_capture17h8805d5468a5e88f7E, symObjAddr: 0xCA10, symBinAddr: 0x100DF2290, symSize: 0xB0 } - - { offset: 0xE8F17, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio31print_to_buffer_if_capture_used17h97daa681068bc75fE, symObjAddr: 0xCB90, symBinAddr: 0x100DF2340, symSize: 0x250 } - - { offset: 0xE9686, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio6Stderr4lock17h658367ca10df88b1E, symObjAddr: 0xD040, symBinAddr: 0x100DF2590, symSize: 0xC0 } - - { offset: 0xE9977, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio6_print17hdd22173c5154f4edE, symObjAddr: 0xD100, symBinAddr: 0x100DF2650, symSize: 0xF0 } - - { offset: 0xE9A91, size: 0x8, addend: 0x0, symName: __ZN3std2io5stdio7_eprint17h3be24f1684970aceE, symObjAddr: 0xD220, symBinAddr: 0x100DF2740, symSize: 0xE0 } - - { offset: 0xE9B3F, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$$RF$std..io..stdio..Stderr$u20$as$u20$std..io..Write$GT$9write_fmt17h50d9e3eebb6512afE', symObjAddr: 0x4FFA0, symBinAddr: 0x100E1BB00, symSize: 0x180 } - - { offset: 0xE9FFD, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..io..stdio..StderrLock$u20$as$u20$std..io..Write$GT$9write_all17h5421acc13a7cc309E', symObjAddr: 0x507C0, symBinAddr: 0x100E1BE00, symSize: 0x100 } - - { offset: 0xEA26F, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$$RF$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$9write_fmt17haa18d62d3d0955c0E', symObjAddr: 0x503E0, symBinAddr: 0x100E1BC80, symSize: 0x180 } - - { offset: 0xEA74E, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..io..stdio..StdoutLock$u20$as$u20$std..io..Write$GT$9write_all17h1bd6521db4727c9aE', symObjAddr: 0x50E80, symBinAddr: 0x100E1BF00, symSize: 0x270 } - - { offset: 0xEADE4, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$14write_vectored17h5cfe2d8870d53142E', symObjAddr: 0xC550, symBinAddr: 0x100DF1EA0, symSize: 0x180 } - - { offset: 0xEB003, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$17is_write_vectored17h7a7f21b0b8544ec0E', symObjAddr: 0xC6D0, symBinAddr: 0x100DF2020, symSize: 0x10 } - - { offset: 0xEB02C, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17hd5ed17bfce1070b6E', symObjAddr: 0xC6E0, symBinAddr: 0x100DF2030, symSize: 0x170 } - - { offset: 0xEB059, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17hd5ed17bfce1070b6E', symObjAddr: 0xC6E0, symBinAddr: 0x100DF2030, symSize: 0x170 } - - { offset: 0xEB06F, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17hd5ed17bfce1070b6E', symObjAddr: 0xC6E0, symBinAddr: 0x100DF2030, symSize: 0x170 } - - { offset: 0xEB085, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17hd5ed17bfce1070b6E', symObjAddr: 0xC6E0, symBinAddr: 0x100DF2030, symSize: 0x170 } - - { offset: 0xEB09A, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17hd5ed17bfce1070b6E', symObjAddr: 0xC6E0, symBinAddr: 0x100DF2030, symSize: 0x170 } - - { offset: 0xEB0AF, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$18write_all_vectored17hd5ed17bfce1070b6E', symObjAddr: 0xC6E0, symBinAddr: 0x100DF2030, symSize: 0x170 } - - { offset: 0xEB281, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$5flush17hef710d0d4f384f3aE', symObjAddr: 0xC850, symBinAddr: 0x100DF21A0, symSize: 0x10 } - - { offset: 0xEB29C, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$5write17hce31c4342e2f6a59E', symObjAddr: 0xC860, symBinAddr: 0x100DF21B0, symSize: 0x70 } - - { offset: 0xEB38E, size: 0x8, addend: 0x0, symName: '__ZN3std2io5impls74_$LT$impl$u20$std..io..Write$u20$for$u20$alloc..vec..Vec$LT$u8$C$A$GT$$GT$9write_all17h0287e1e6f4572af9E', symObjAddr: 0xC8D0, symBinAddr: 0x100DF2220, symSize: 0x70 } - - { offset: 0xEB4A4, size: 0x8, addend: 0x0, symName: __ZN3std2io19default_read_to_end16small_probe_read17h0aac8a0b27622c15E, symObjAddr: 0xADE0, symBinAddr: 0x100DF0C10, symSize: 0xF0 } - - { offset: 0xEB68A, size: 0x8, addend: 0x0, symName: __ZN3std2io19default_read_to_end16small_probe_read17h812eb18caa7ce8bcE, symObjAddr: 0xAED0, symBinAddr: 0x100DF0D00, symSize: 0xF0 } - - { offset: 0xEB89C, size: 0x8, addend: 0x0, symName: __ZN3std2io19default_read_to_end17h54536827ab28006eE, symObjAddr: 0xB0B0, symBinAddr: 0x100DF0DF0, symSize: 0x2E0 } - - { offset: 0xEBD58, size: 0x8, addend: 0x0, symName: __ZN3std2io19default_read_to_end17hcb29420dc7b52f06E, symObjAddr: 0xB390, symBinAddr: 0x100DF10D0, symSize: 0x2D0 } - - { offset: 0xEC353, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h1780fed68a87f6ffE', symObjAddr: 0x57960, symBinAddr: 0x100E1D9B0, symSize: 0xA0 } - - { offset: 0xEC47C, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h1a95258de970b4cdE', symObjAddr: 0x57A00, symBinAddr: 0x100E1DA50, symSize: 0x50 } - - { offset: 0xEC4A7, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h302ee9bee323e893E', symObjAddr: 0x57A50, symBinAddr: 0x100E1DAA0, symSize: 0x70 } - - { offset: 0xEC5A1, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h9ae512d89c458daaE', symObjAddr: 0x57AC0, symBinAddr: 0x100E1DB10, symSize: 0xD0 } - - { offset: 0xEC68C, size: 0x8, addend: 0x0, symName: '__ZN81_$LT$std..io..default_write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17hd93e7d61d9c0aa61E', symObjAddr: 0x57B90, symBinAddr: 0x100E1DBE0, symSize: 0x50 } - - { offset: 0xEC7EC, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path11is_absolute17hace3dba389940fdbE, symObjAddr: 0x208D0, symBinAddr: 0x100DFBA40, symSize: 0x20 } - - { offset: 0xEC888, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path13_strip_prefix17h91e3b2bcd2731614E, symObjAddr: 0x20B70, symBinAddr: 0x100DFBA60, symSize: 0x3C0 } - - { offset: 0xEC9A3, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path5_join17h74f6726539dff87fE, symObjAddr: 0x216C0, symBinAddr: 0x100DFBE20, symSize: 0x190 } - - { offset: 0xECFDD, size: 0x8, addend: 0x0, symName: __ZN3std4path4Path6is_dir17he3eb257a276e4005E, symObjAddr: 0x21850, symBinAddr: 0x100DFBFB0, symSize: 0x1E0 } - - { offset: 0xED5A0, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components15len_before_body17h88c339f963e3d0c8E, symObjAddr: 0x1F8C0, symBinAddr: 0x100DFB400, symSize: 0x170 } - - { offset: 0xED5B8, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components15len_before_body17h88c339f963e3d0c8E, symObjAddr: 0x1F8C0, symBinAddr: 0x100DFB400, symSize: 0x170 } - - { offset: 0xED5CE, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components15len_before_body17h88c339f963e3d0c8E, symObjAddr: 0x1F8C0, symBinAddr: 0x100DFB400, symSize: 0x170 } - - { offset: 0xED7B7, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components25parse_next_component_back17hcc50dd473caa44b9E, symObjAddr: 0x1FA30, symBinAddr: 0x100DFB570, symSize: 0xF0 } - - { offset: 0xED937, size: 0x8, addend: 0x0, symName: __ZN3std4path10Components7as_path17hb11c261c65b95851E, symObjAddr: 0x1FB20, symBinAddr: 0x100DFB660, symSize: 0x3E0 } - - { offset: 0xEDD63, size: 0x8, addend: 0x0, symName: '__ZN55_$LT$std..path..PathBuf$u20$as$u20$core..fmt..Debug$GT$3fmt17h11184e8a4cb2f971E', symObjAddr: 0x3C530, symBinAddr: 0x100E0D120, symSize: 0x30 } - - { offset: 0xEDF04, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..path..Component$u20$as$u20$core..cmp..PartialEq$GT$2eq17hcd77e9cb5255e750E', symObjAddr: 0x51110, symBinAddr: 0x100E1C190, symSize: 0xE0 } - - { offset: 0xEDFC6, size: 0x8, addend: 0x0, symName: '__ZN80_$LT$std..path..Components$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h81c183393a7a5576E', symObjAddr: 0x57180, symBinAddr: 0x100E1D5B0, symSize: 0x400 } - - { offset: 0xEE2FC, size: 0x8, addend: 0x0, symName: '__ZN95_$LT$std..path..Components$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17ha41bc7bd364fa934E', symObjAddr: 0x59B10, symBinAddr: 0x100E1E6C0, symSize: 0x3F0 } - - { offset: 0xEE54E, size: 0x8, addend: 0x0, symName: __ZN3std2os2fd5owned7OwnedFd9try_clone17h03ddbdd21c557d22E, symObjAddr: 0xD840, symBinAddr: 0x100DF2A60, symSize: 0x50 } - - { offset: 0xEE6F3, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$std..io..pipe..PipeReader$u20$as$u20$std..os..fd..owned..AsFd$GT$5as_fd17h9ec9b518ee02bbccE', symObjAddr: 0x543D0, symBinAddr: 0x100E1D180, symSize: 0x10 } - - { offset: 0xEE77B, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net4addr10SocketAddr11as_pathname17he52a7b859117d02fE, symObjAddr: 0xD8D0, symBinAddr: 0x100DF2AB0, symSize: 0x40 } - - { offset: 0xEE80F, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net4addr11sockaddr_un17ha2f3c53250ff462dE, symObjAddr: 0xD910, symBinAddr: 0x100DF2AF0, symSize: 0x100 } - - { offset: 0xEE926, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream10local_addr17hc2c881ca5cf65258E, symObjAddr: 0xDA10, symBinAddr: 0x100DF2BF0, symSize: 0xC0 } - - { offset: 0xEEA4B, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream10take_error17hb629946c322ca0caE, symObjAddr: 0xDAD0, symBinAddr: 0x100DF2CB0, symSize: 0x80 } - - { offset: 0xEEB47, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream16set_read_timeout17ha3554d8ff3acbf9bE, symObjAddr: 0xDDD0, symBinAddr: 0x100DF2D30, symSize: 0xB0 } - - { offset: 0xEEC0D, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream17set_write_timeout17h1c43a8c50541838dE, symObjAddr: 0xDE80, symBinAddr: 0x100DF2DE0, symSize: 0xB0 } - - { offset: 0xEECD3, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream8shutdown17haa08f56d2405d5f9E, symObjAddr: 0xDFC0, symBinAddr: 0x100DF2E90, symSize: 0x30 } - - { offset: 0xEED7D, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net6stream10UnixStream9peer_addr17h126c12f94c490455E, symObjAddr: 0xDFF0, symBinAddr: 0x100DF2EC0, symSize: 0xC0 } - - { offset: 0xEEECA, size: 0x8, addend: 0x0, symName: __ZN3std2os4unix3net8datagram12UnixDatagram4recv17h43ea67b2b0d88743E, symObjAddr: 0xE230, symBinAddr: 0x100DF2F80, symSize: 0x40 } - - { offset: 0xEEFA4, size: 0x8, addend: 0x0, symName: __ZN3std7process5Child4kill17hd40de727254c633eE, symObjAddr: 0x25390, symBinAddr: 0x100DFD4E0, symSize: 0x40 } - - { offset: 0xEF05D, size: 0x8, addend: 0x0, symName: __ZN3std7process5Child8try_wait17hb7749e44f5adcc5fE, symObjAddr: 0x25480, symBinAddr: 0x100DFD520, symSize: 0xB0 } - - { offset: 0xEF127, size: 0x8, addend: 0x0, symName: __ZN3std7process5abort17hb51cffb777ba3a3aE, symObjAddr: 0x25530, symBinAddr: 0x100E90FC0, symSize: 0x10 } - - { offset: 0xEF148, size: 0x8, addend: 0x0, symName: __ZN3std7process7Command5spawn17h9c13fc65013071e9E, symObjAddr: 0x25620, symBinAddr: 0x100DFD5D0, symSize: 0x60 } - - { offset: 0xEF17A, size: 0x8, addend: 0x0, symName: __ZN3std7process7Command6output17h884280fe4dedc295E, symObjAddr: 0x25680, symBinAddr: 0x100DFD630, symSize: 0x350 } - - { offset: 0xEF770, size: 0x8, addend: 0x0, symName: '__ZN118_$LT$std..thread..thread_name_string..ThreadNameString$u20$as$u20$core..convert..From$LT$alloc..string..String$GT$$GT$4from17hd446f9a5bac8d14bE', symObjAddr: 0xCB0, symBinAddr: 0x100DE79E0, symSize: 0x120 } - - { offset: 0xEFA67, size: 0x8, addend: 0x0, symName: __ZN3std6thread5local18panic_access_error17h03ab9188edce3167E, symObjAddr: 0x24170, symBinAddr: 0x100E90D60, symSize: 0x60 } - - { offset: 0xEFABC, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$std..thread..local..AccessError$u20$as$u20$core..fmt..Debug$GT$3fmt17h825f1d6f2231fd3aE', symObjAddr: 0x53C90, symBinAddr: 0x100E1CB80, symSize: 0x30 } - - { offset: 0xEFBDA, size: 0x8, addend: 0x0, symName: __ZN3std6thread7current11set_current17h83442058bd8a527fE, symObjAddr: 0x24670, symBinAddr: 0x100DFCF10, symSize: 0x70 } - - { offset: 0xEFDAF, size: 0x8, addend: 0x0, symName: __ZN3std6thread7current12init_current17h4c31a04e948d0c35E, symObjAddr: 0x246E0, symBinAddr: 0x100E90E10, symSize: 0x160 } - - { offset: 0xF00F4, size: 0x8, addend: 0x0, symName: __ZN3std6thread7current7current17hc5ad18cd0a8e76a4E, symObjAddr: 0x24960, symBinAddr: 0x100DFCF80, symSize: 0x30 } - - { offset: 0xF01BC, size: 0x8, addend: 0x0, symName: __ZN3std6thread8ThreadId3new17h91147692389b8251E, symObjAddr: 0x24990, symBinAddr: 0x100DFCFB0, symSize: 0x40 } - - { offset: 0xF01D4, size: 0x8, addend: 0x0, symName: __ZN3std6thread8ThreadId3new17h91147692389b8251E, symObjAddr: 0x24990, symBinAddr: 0x100DFCFB0, symSize: 0x40 } - - { offset: 0xF01EA, size: 0x8, addend: 0x0, symName: __ZN3std6thread8ThreadId3new17h91147692389b8251E, symObjAddr: 0x24990, symBinAddr: 0x100DFCFB0, symSize: 0x40 } - - { offset: 0xF02BA, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread12park_timeout17h1eae1a7a4ad9a487E, symObjAddr: 0x24290, symBinAddr: 0x100DFCB90, symSize: 0x90 } - - { offset: 0xF03DA, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread3new17h5578788a3034b6a9E, symObjAddr: 0x24320, symBinAddr: 0x100DFCC20, symSize: 0x140 } - - { offset: 0xF06ED, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4name17he4a3ef4553953545E, symObjAddr: 0x24460, symBinAddr: 0x100DFCD60, symSize: 0x40 } - - { offset: 0xF083F, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread4park17h278e5e06ada08379E, symObjAddr: 0x244A0, symBinAddr: 0x100DFCDA0, symSize: 0x40 } - - { offset: 0xF091E, size: 0x8, addend: 0x0, symName: __ZN3std6thread6Thread5cname17h0d9c25a5cbb71545E, symObjAddr: 0x244E0, symBinAddr: 0x100DFCDE0, symSize: 0x40 } - - { offset: 0xF0B39, size: 0x8, addend: 0x0, symName: __ZN3std6thread12park_timeout17hd1c6e10fd85ed587E, symObjAddr: 0x23F50, symBinAddr: 0x100DFC8E0, symSize: 0x100 } - - { offset: 0xF0D46, size: 0x8, addend: 0x0, symName: __ZN3std6thread21available_parallelism17hafbc74612127fda8E, symObjAddr: 0x24080, symBinAddr: 0x100DFC9E0, symSize: 0x50 } - - { offset: 0xF0DCA, size: 0x8, addend: 0x0, symName: __ZN3std6thread4park17h1766f893f74d4a8eE, symObjAddr: 0x240D0, symBinAddr: 0x100DFCA30, symSize: 0xA0 } - - { offset: 0xF0F96, size: 0x8, addend: 0x0, symName: __ZN3std6thread5sleep17h82fd8d2601f8b463E, symObjAddr: 0x241D0, symBinAddr: 0x100DFCAD0, symSize: 0xC0 } - - { offset: 0xF103A, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData29decrement_num_running_threads17h06319b9d58b2c34bE, symObjAddr: 0x24530, symBinAddr: 0x100DFCE20, symSize: 0x30 } - - { offset: 0xF1151, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData29increment_num_running_threads17hc9abcebf9849a991E, symObjAddr: 0x24560, symBinAddr: 0x100DFCE50, symSize: 0x20 } - - { offset: 0xF116F, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData29increment_num_running_threads17hc9abcebf9849a991E, symObjAddr: 0x24560, symBinAddr: 0x100DFCE50, symSize: 0x20 } - - { offset: 0xF1184, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData29increment_num_running_threads17hc9abcebf9849a991E, symObjAddr: 0x24560, symBinAddr: 0x100DFCE50, symSize: 0x20 } - - { offset: 0xF1198, size: 0x8, addend: 0x0, symName: __ZN3std6thread6scoped9ScopeData8overflow17h229df3273c215987E, symObjAddr: 0x24580, symBinAddr: 0x100E90DC0, symSize: 0x50 } - - { offset: 0xF11D0, size: 0x8, addend: 0x0, symName: __ZN3std6thread7Builder4name17hf78559529739f042E, symObjAddr: 0x245D0, symBinAddr: 0x100DFCE70, symSize: 0xA0 } - - { offset: 0xF12A8, size: 0x8, addend: 0x0, symName: __ZN3std6thread8ThreadId3new9exhausted17h43367038515b503fE, symObjAddr: 0x249D0, symBinAddr: 0x100E90F70, symSize: 0x50 } - - { offset: 0xF1311, size: 0x8, addend: 0x0, symName: __ZN3std6thread9spawnhook15ChildSpawnHooks3run17h1d6cde96b9bdcebeE, symObjAddr: 0x24B00, symBinAddr: 0x100DFCFF0, symSize: 0x230 } - - { offset: 0xF1A4B, size: 0x8, addend: 0x0, symName: __ZN3std6thread9spawnhook15run_spawn_hooks17hf1fbb9a6f9f293f6E, symObjAddr: 0x24D30, symBinAddr: 0x100DFD220, symSize: 0x2B0 } - - { offset: 0xF2069, size: 0x8, addend: 0x0, symName: '__ZN76_$LT$std..thread..spawnhook..SpawnHooks$u20$as$u20$core..ops..drop..Drop$GT$4drop17h9c46a2bb3a1009cfE', symObjAddr: 0x556B0, symBinAddr: 0x100E1D250, symSize: 0xE0 } - - { offset: 0xF237A, size: 0x8, addend: 0x0, symName: __ZN3std6thread9yield_now17hd06c2a610524b1a2E, symObjAddr: 0x24FE0, symBinAddr: 0x100DFD4D0, symSize: 0x10 } - - { offset: 0xF23D5, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$std..thread..PanicGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17h051e92a7aa8da909E', symObjAddr: 0x531A0, symBinAddr: 0x100E955F0, symSize: 0x60 } - - { offset: 0xF2435, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs5print17BacktraceFrameFmt21print_raw_with_column17ha8adcfa4cdaab56fE, symObjAddr: 0xEC0, symBinAddr: 0x100DE7B90, symSize: 0x540 } - - { offset: 0xF26A3, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9backtrace9libunwind5trace8trace_fn17ha3ff5df35cb8c168E, symObjAddr: 0x1400, symBinAddr: 0x100DE80D0, symSize: 0x50 } - - { offset: 0xF27D0, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli4mmap17hd3de8e39f4b4cda2E, symObjAddr: 0x1450, symBinAddr: 0x100DE8120, symSize: 0x210 } - - { offset: 0xF2CFC, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho11find_header17h1074f44010213bcdE, symObjAddr: 0x1660, symBinAddr: 0x100DE8330, symSize: 0x190 } - - { offset: 0xF3432, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho6Object5parse17hac5365954acf9450E, symObjAddr: 0x17F0, symBinAddr: 0x100DE84C0, symSize: 0x1070 } - - { offset: 0xF53B6, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli5macho6Object7section17h6d1c19b592f8e6c7E, symObjAddr: 0x2860, symBinAddr: 0x100DE9530, symSize: 0x180 } - - { offset: 0xF57F4, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli7Context11find_frames17h2f19a1f406aa52f8E, symObjAddr: 0x29E0, symBinAddr: 0x100DE96B0, symSize: 0x3D0 } - - { offset: 0xF5BD7, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli7Context3new17hac2b4b165bc652c9E, symObjAddr: 0x2DB0, symBinAddr: 0x100DE9A80, symSize: 0x2FC0 } - - { offset: 0xF9F4C, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize5gimli7resolve17h2dcda7727ba0c0c2E, symObjAddr: 0x5D70, symBinAddr: 0x100DECA40, symSize: 0x3220 } - - { offset: 0x100157, size: 0x8, addend: 0x0, symName: __ZN3std12backtrace_rs9symbolize6Symbol4name17h3cf03035ba91e1c4E, symObjAddr: 0x8FD0, symBinAddr: 0x100DEFC60, symSize: 0x110 } - - { offset: 0x1002C2, size: 0x8, addend: 0x0, symName: '__ZN79_$LT$std..backtrace_rs..symbolize..SymbolName$u20$as$u20$core..fmt..Display$GT$3fmt17hb4f2bd8fee938fd7E', symObjAddr: 0x56940, symBinAddr: 0x100E1D460, symSize: 0xE0 } - - { offset: 0x1003A9, size: 0x8, addend: 0x0, symName: __ZN3std2fs11OpenOptions5_open17hf64adc8a659a6f56E, symObjAddr: 0x9730, symBinAddr: 0x100DF03C0, symSize: 0xD0 } - - { offset: 0x10047F, size: 0x8, addend: 0x0, symName: __ZN3std2fs4File15set_permissions17hb12c48ce7e00c89cE, symObjAddr: 0x9AF0, symBinAddr: 0x100DF0750, symSize: 0x60 } - - { offset: 0x10054F, size: 0x8, addend: 0x0, symName: __ZN3std2fs4File9try_clone17ha3c393edc950ab52E, symObjAddr: 0x9ED0, symBinAddr: 0x100DF07B0, symSize: 0x50 } - - { offset: 0x100681, size: 0x8, addend: 0x0, symName: '__ZN75_$LT$std..fs..ReadDir$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h88ba235c9b631e66E', symObjAddr: 0x54FE0, symBinAddr: 0x100E1D1C0, symSize: 0x90 } - - { offset: 0x1006ED, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry4path17hc7d14155b6f06cf9E, symObjAddr: 0xA610, symBinAddr: 0x100DF0A70, symSize: 0x30 } - - { offset: 0x10089C, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry9file_name17h748b04dbe78f5db4E, symObjAddr: 0xA6A0, symBinAddr: 0x100DF0AA0, symSize: 0x80 } - - { offset: 0x1009FA, size: 0x8, addend: 0x0, symName: __ZN3std2fs8DirEntry9file_type17hcbf6c8e33ea05b27E, symObjAddr: 0xA720, symBinAddr: 0x100DF0B20, symSize: 0x80 } - - { offset: 0x100A48, size: 0x8, addend: 0x0, symName: __ZN3std2fs10DirBuilder14create_dir_all17h25a705abe48fff60E, symObjAddr: 0x90E0, symBinAddr: 0x100DEFD70, symSize: 0x590 } - - { offset: 0x1012A7, size: 0x8, addend: 0x0, symName: __ZN3std2fs10DirBuilder7_create17hb090a93b23c47cf4E, symObjAddr: 0x9670, symBinAddr: 0x100DF0300, symSize: 0xC0 } - - { offset: 0x1013EA, size: 0x8, addend: 0x0, symName: __ZN3std2fs14read_to_string5inner17h979f351aa7eab339E, symObjAddr: 0x9800, symBinAddr: 0x100DF0490, symSize: 0x2C0 } - - { offset: 0x101A27, size: 0x8, addend: 0x0, symName: __ZN3std2fs4read5inner17he5b6f61dd85ae099E, symObjAddr: 0x9F20, symBinAddr: 0x100DF0800, symSize: 0x270 } - - { offset: 0x101F74, size: 0x8, addend: 0x0, symName: '__ZN52_$LT$$RF$std..fs..File$u20$as$u20$std..io..Write$GT$14write_vectored17hc51484749c4720c3E', symObjAddr: 0x3B0D0, symBinAddr: 0x100E0C820, symSize: 0x50 } - - { offset: 0x102063, size: 0x8, addend: 0x0, symName: '__ZN52_$LT$$RF$std..fs..File$u20$as$u20$std..io..Write$GT$5write17h5faf72b5599e9eaeE', symObjAddr: 0x3B120, symBinAddr: 0x100E0C870, symSize: 0x50 } - - { offset: 0x102167, size: 0x8, addend: 0x0, symName: '__ZN48_$LT$std..fs..File$u20$as$u20$std..io..Write$GT$5write17ha0e00383d7af25f1E', symObjAddr: 0x284B0, symBinAddr: 0x100DFF130, symSize: 0x50 } - - { offset: 0x1022BA, size: 0x8, addend: 0x0, symName: '__ZN51_$LT$$RF$std..fs..File$u20$as$u20$std..io..Read$GT$11read_to_end17h57b2a887575b6351E', symObjAddr: 0x3AB50, symBinAddr: 0x100E0C520, symSize: 0x160 } - - { offset: 0x102573, size: 0x8, addend: 0x0, symName: '__ZN51_$LT$$RF$std..fs..File$u20$as$u20$std..io..Read$GT$14read_to_string17hb294906c5601aecfE', symObjAddr: 0x3ACB0, symBinAddr: 0x100E0C680, symSize: 0x180 } - - { offset: 0x1028EE, size: 0x8, addend: 0x0, symName: __ZN3std2fs8Metadata8modified17hc7880a84ffaadd47E, symObjAddr: 0xA880, symBinAddr: 0x100DF0BA0, symSize: 0x70 } - - { offset: 0x102990, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$11read_to_end17h24cf808ee1eabb46E', symObjAddr: 0x28260, symBinAddr: 0x100DFEFE0, symSize: 0x20 } - - { offset: 0x1029A4, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$13read_vectored17hdff185a02226bb17E', symObjAddr: 0x28280, symBinAddr: 0x100DFF000, symSize: 0x50 } - - { offset: 0x102AD4, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$14read_to_string17h8da6fe5f802e72e0E', symObjAddr: 0x282D0, symBinAddr: 0x100DFF050, symSize: 0x20 } - - { offset: 0x102AE8, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$4read17hc07e997e91a6d5a5E', symObjAddr: 0x282F0, symBinAddr: 0x100DFF070, symSize: 0x50 } - - { offset: 0x102C18, size: 0x8, addend: 0x0, symName: '__ZN47_$LT$std..fs..File$u20$as$u20$std..io..Read$GT$8read_buf17h06c7b92286aa16adE', symObjAddr: 0x28340, symBinAddr: 0x100DFF0C0, symSize: 0x70 } - - { offset: 0x1030DC, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..ffi..os_str..Display$u20$as$u20$core..fmt..Display$GT$3fmt17he61c792f817e45c2E', symObjAddr: 0x52A70, symBinAddr: 0x100E1C900, symSize: 0xD0 } - - { offset: 0x103168, size: 0x8, addend: 0x0, symName: '__ZN3std4sync6poison5mutex14Mutex$LT$T$GT$4lock17h104ed1e021836be8E', symObjAddr: 0x23190, symBinAddr: 0x100DFC420, symSize: 0x70 } - - { offset: 0x103460, size: 0x8, addend: 0x0, symName: '__ZN3std4sync4once4Once15call_once_force28_$u7b$$u7b$closure$u7d$$u7d$17h03085f1c9b680c30E', symObjAddr: 0x22B80, symBinAddr: 0x100DFC190, symSize: 0x200 } - - { offset: 0x1037C8, size: 0x8, addend: 0x0, symName: '__ZN3std4sync4once4Once15call_once_force28_$u7b$$u7b$closure$u7d$$u7d$17h433301a20a74b1eaE', symObjAddr: 0x22E10, symBinAddr: 0x100DFC390, symSize: 0x90 } - - { offset: 0x103969, size: 0x8, addend: 0x0, symName: '__ZN3std4sync9once_lock17OnceLock$LT$T$GT$10initialize17hf6f812e30546dfd0E', symObjAddr: 0x23961, symBinAddr: 0x100E90CD1, symSize: 0x5F } - - { offset: 0x103996, size: 0x8, addend: 0x0, symName: '__ZN3std4sync9once_lock17OnceLock$LT$T$GT$10initialize17hf6f812e30546dfd0E', symObjAddr: 0x23961, symBinAddr: 0x100E90CD1, symSize: 0x5F } - - { offset: 0x1039AB, size: 0x8, addend: 0x0, symName: '__ZN3std4sync9once_lock17OnceLock$LT$T$GT$10initialize17hf6f812e30546dfd0E', symObjAddr: 0x23961, symBinAddr: 0x100E90CD1, symSize: 0x5F } - - { offset: 0x1039C0, size: 0x8, addend: 0x0, symName: '__ZN3std4sync9once_lock17OnceLock$LT$T$GT$10initialize17hf6f812e30546dfd0E', symObjAddr: 0x23961, symBinAddr: 0x100E90CD1, symSize: 0x5F } - - { offset: 0x103AFC, size: 0x8, addend: 0x0, symName: __ZN3std4sync4mpmc7context7Context3new17hf91424f625f5fc99E, symObjAddr: 0x22A00, symBinAddr: 0x100E90B20, symSize: 0x160 } - - { offset: 0x103EA5, size: 0x8, addend: 0x0, symName: __ZN3std4sync9lazy_lock14panic_poisoned17h0e5cd5d17867a552E, symObjAddr: 0x23870, symBinAddr: 0x100E90C80, symSize: 0x43 } - - { offset: 0x103F24, size: 0x8, addend: 0x0, symName: __ZN3std5panic13resume_unwind17hc5e0278df18103edE, symObjAddr: 0x23D70, symBinAddr: 0x100E90D50, symSize: 0x10 } - - { offset: 0x103F54, size: 0x8, addend: 0x0, symName: __ZN3std5panic19get_backtrace_style17h7595db6eb6568f2fE, symObjAddr: 0x23D80, symBinAddr: 0x100DFC810, symSize: 0xD0 } - - { offset: 0x103F73, size: 0x8, addend: 0x0, symName: __ZN3std5panic19get_backtrace_style17h7595db6eb6568f2fE, symObjAddr: 0x23D80, symBinAddr: 0x100DFC810, symSize: 0xD0 } - - { offset: 0x103F89, size: 0x8, addend: 0x0, symName: __ZN3std5panic19get_backtrace_style17h7595db6eb6568f2fE, symObjAddr: 0x23D80, symBinAddr: 0x100DFC810, symSize: 0xD0 } - - { offset: 0x104212, size: 0x8, addend: 0x0, symName: __ZN3std3env11current_dir17h256a42c8c1c8fe06E, symObjAddr: 0xEF80, symBinAddr: 0x100DF2FC0, symSize: 0x1B0 } - - { offset: 0x104659, size: 0x8, addend: 0x0, symName: __ZN3std3env4_var17h46b4090634ba8c54E, symObjAddr: 0xF210, symBinAddr: 0x100DF3170, symSize: 0xA0 } - - { offset: 0x104761, size: 0x8, addend: 0x0, symName: __ZN3std3env7_var_os17hef0dbe314532e96dE, symObjAddr: 0xF2F0, symBinAddr: 0x100DF3210, symSize: 0x170 } - - { offset: 0x104A45, size: 0x8, addend: 0x0, symName: __ZN3std3env7vars_os17hb636876eb0780c2dE, symObjAddr: 0xF690, symBinAddr: 0x100DF3380, symSize: 0x440 } - - { offset: 0x10540F, size: 0x8, addend: 0x0, symName: __ZN3std3net11socket_addr11lookup_host17h22d94bbe0ca5a44fE, symObjAddr: 0x102D0, symBinAddr: 0x100DF37C0, symSize: 0x470 } - - { offset: 0x105997, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$str$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hbc6c953def969556E', symObjAddr: 0x4F9C0, symBinAddr: 0x100E1B950, symSize: 0x1B0 } - - { offset: 0x105BFD, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$$LP$$RF$str$C$u16$RP$$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17hc528a61337980c4aE', symObjAddr: 0x56630, symBinAddr: 0x100E1D330, symSize: 0x100 } - - { offset: 0x105CC5, size: 0x8, addend: 0x0, symName: '__ZN78_$LT$alloc..string..String$u20$as$u20$std..net..socket_addr..ToSocketAddrs$GT$15to_socket_addrs17h13e3a11632f9d687E', symObjAddr: 0x56730, symBinAddr: 0x100E1D430, symSize: 0x30 } - - { offset: 0x105D8F, size: 0x8, addend: 0x0, symName: __ZN3std3net3tcp11TcpListener10local_addr17h5f4523b5b42708f7E, symObjAddr: 0x10740, symBinAddr: 0x100DF3C30, symSize: 0x20 } - - { offset: 0x105DB1, size: 0x8, addend: 0x0, symName: __ZN3std3net3tcp9TcpStream11set_nodelay17h5e89778a296eeaddE, symObjAddr: 0x10B40, symBinAddr: 0x100DF3C50, symSize: 0x50 } - - { offset: 0x105E78, size: 0x8, addend: 0x0, symName: __ZN3std3net3tcp9TcpStream15connect_timeout17hdb6ed80f17eb2c60E, symObjAddr: 0x10D30, symBinAddr: 0x100DF3CA0, symSize: 0x4A0 } - - { offset: 0x106726, size: 0x8, addend: 0x0, symName: __ZN3std3net3tcp9TcpStream9peer_addr17h7f64f97f6b77acaaE, symObjAddr: 0x112C0, symBinAddr: 0x100DF4140, symSize: 0x20 } - - { offset: 0x106747, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$std..net..tcp..TcpStream$u20$as$u20$std..io..Read$GT$13read_vectored17h77ec4910c380a576E', symObjAddr: 0x3D470, symBinAddr: 0x100E0D3B0, symSize: 0x50 } - - { offset: 0x106852, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$std..net..tcp..TcpStream$u20$as$u20$std..io..Read$GT$8read_buf17h3c76e51a8c62e407E', symObjAddr: 0x3D4C0, symBinAddr: 0x100E0D400, symSize: 0x60 } - - { offset: 0x1069ED, size: 0x8, addend: 0x0, symName: '__ZN59_$LT$std..net..tcp..TcpStream$u20$as$u20$std..io..Write$GT$14write_vectored17hf9cb861f6c274897E', symObjAddr: 0x3E580, symBinAddr: 0x100E0D4E0, symSize: 0x50 } - - { offset: 0x106B01, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..net..tcp..TcpStream$u20$as$u20$core..fmt..Debug$GT$3fmt17h81f76e1ad37f2052E', symObjAddr: 0x510F0, symBinAddr: 0x100E1C170, symSize: 0x10 } - - { offset: 0x106B23, size: 0x8, addend: 0x0, symName: '__ZN62_$LT$$RF$std..net..tcp..TcpStream$u20$as$u20$std..io..Read$GT$4read17hbc3e8539609ea7d6E', symObjAddr: 0x517F0, symBinAddr: 0x100E1C270, symSize: 0x40 } - - { offset: 0x106C0A, size: 0x8, addend: 0x0, symName: '__ZN63_$LT$$RF$std..net..tcp..TcpStream$u20$as$u20$std..io..Write$GT$5write17h59ce77a22a4438dbE', symObjAddr: 0x51F80, symBinAddr: 0x100E1C2E0, symSize: 0x40 } - - { offset: 0x106CC3, size: 0x8, addend: 0x0, symName: '__ZN63_$LT$std..net..tcp..TcpListener$u20$as$u20$core..fmt..Debug$GT$3fmt17h813d77c7bb048145E', symObjAddr: 0x52100, symBinAddr: 0x100E1C320, symSize: 0x10 } - - { offset: 0x106CEC, size: 0x8, addend: 0x0, symName: __ZN3std3net3udp9UdpSocket4send17h807d9f7f865fdfd9E, symObjAddr: 0x116C0, symBinAddr: 0x100DF4160, symSize: 0x40 } - - { offset: 0x106D9E, size: 0x8, addend: 0x0, symName: __ZN3std3net3udp9UdpSocket9recv_from17h0a1a65d72d4cc2baE, symObjAddr: 0x118F0, symBinAddr: 0x100DF41A0, symSize: 0x20 } - - { offset: 0x106DEC, size: 0x8, addend: 0x0, symName: '__ZN61_$LT$std..net..udp..UdpSocket$u20$as$u20$core..fmt..Debug$GT$3fmt17h0bbdeecbf1af35b4E', symObjAddr: 0x51100, symBinAddr: 0x100E1C180, symSize: 0x10 } - - { offset: 0x106E4E, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant14duration_since17h641acbc16f532298E, symObjAddr: 0x23AF0, symBinAddr: 0x100DFC5C0, symSize: 0x40 } - - { offset: 0x106EA6, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant22checked_duration_since17hb45ee7bd559250f3E, symObjAddr: 0x23B30, symBinAddr: 0x100DFC600, symSize: 0x40 } - - { offset: 0x106EE8, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant3now17hcfb9df636783d0a6E, symObjAddr: 0x23B70, symBinAddr: 0x100DFC640, symSize: 0x10 } - - { offset: 0x106F13, size: 0x8, addend: 0x0, symName: __ZN3std4time7Instant7elapsed17ha36ab0784b02bc99E, symObjAddr: 0x23B80, symBinAddr: 0x100DFC650, symSize: 0x60 } - - { offset: 0x106FF7, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$GT$3sub17he60a9fd94436839fE', symObjAddr: 0x4F980, symBinAddr: 0x100E1B910, symSize: 0x40 } - - { offset: 0x10706D, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime11checked_add17h5c65bb59b5773e96E, symObjAddr: 0x239C0, symBinAddr: 0x100DFC490, symSize: 0x40 } - - { offset: 0x10714A, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime11checked_sub17h482431544b83f4cbE, symObjAddr: 0x23A00, symBinAddr: 0x100DFC4D0, symSize: 0x40 } - - { offset: 0x107217, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime14duration_since17hd7144c88f7c78bc0E, symObjAddr: 0x23A40, symBinAddr: 0x100DFC510, symSize: 0x40 } - - { offset: 0x107258, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime3now17hf206ba1c27c88203E, symObjAddr: 0x23A80, symBinAddr: 0x100DFC550, symSize: 0x10 } - - { offset: 0x10729F, size: 0x8, addend: 0x0, symName: __ZN3std4time10SystemTime7elapsed17h5deee9e47cdb1ffdE, symObjAddr: 0x23A90, symBinAddr: 0x100DFC560, symSize: 0x60 } - - { offset: 0x10734E, size: 0x8, addend: 0x0, symName: '__ZN55_$LT$std..time..Instant$u20$as$u20$core..fmt..Debug$GT$3fmt17h559249b5d88c77ffE', symObjAddr: 0x3C560, symBinAddr: 0x100E0D150, symSize: 0x80 } - - { offset: 0x107387, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$std..time..SystemTime$u20$as$u20$core..fmt..Debug$GT$3fmt17h858830930c63d22eE', symObjAddr: 0x3D600, symBinAddr: 0x100E0D460, symSize: 0x80 } - - { offset: 0x1073C0, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hd0505ba94c246a03E', symObjAddr: 0x58D90, symBinAddr: 0x100E1E350, symSize: 0x50 } - - { offset: 0x1073D8, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hd0505ba94c246a03E', symObjAddr: 0x58D90, symBinAddr: 0x100E1E350, symSize: 0x50 } - - { offset: 0x1073EE, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hd0505ba94c246a03E', symObjAddr: 0x58D90, symBinAddr: 0x100E1E350, symSize: 0x50 } - - { offset: 0x107404, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hd0505ba94c246a03E', symObjAddr: 0x58D90, symBinAddr: 0x100E1E350, symSize: 0x50 } - - { offset: 0x10741A, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hd0505ba94c246a03E', symObjAddr: 0x58D90, symBinAddr: 0x100E1E350, symSize: 0x50 } - - { offset: 0x10742F, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hd0505ba94c246a03E', symObjAddr: 0x58D90, symBinAddr: 0x100E1E350, symSize: 0x50 } - - { offset: 0x107445, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hd0505ba94c246a03E', symObjAddr: 0x58D90, symBinAddr: 0x100E1E350, symSize: 0x50 } - - { offset: 0x1074E0, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$LT$core..time..Duration$GT$$GT$3sub17h0e203dc18648186fE', symObjAddr: 0x58DE0, symBinAddr: 0x100E1E3A0, symSize: 0x50 } - - { offset: 0x107522, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$LT$core..time..Duration$GT$$GT$3sub17h0e203dc18648186fE', symObjAddr: 0x58DE0, symBinAddr: 0x100E1E3A0, symSize: 0x50 } - - { offset: 0x107537, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$LT$core..time..Duration$GT$$GT$3sub17h0e203dc18648186fE', symObjAddr: 0x58DE0, symBinAddr: 0x100E1E3A0, symSize: 0x50 } - - { offset: 0x10754D, size: 0x8, addend: 0x0, symName: '__ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Sub$LT$core..time..Duration$GT$$GT$3sub17h0e203dc18648186fE', symObjAddr: 0x58DE0, symBinAddr: 0x100E1E3A0, symSize: 0x50 } - - { offset: 0x1075E8, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc8ac3149bf9ed90fE', symObjAddr: 0x59090, symBinAddr: 0x100E1E600, symSize: 0x50 } - - { offset: 0x107600, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc8ac3149bf9ed90fE', symObjAddr: 0x59090, symBinAddr: 0x100E1E600, symSize: 0x50 } - - { offset: 0x107616, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc8ac3149bf9ed90fE', symObjAddr: 0x59090, symBinAddr: 0x100E1E600, symSize: 0x50 } - - { offset: 0x10762C, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc8ac3149bf9ed90fE', symObjAddr: 0x59090, symBinAddr: 0x100E1E600, symSize: 0x50 } - - { offset: 0x107641, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc8ac3149bf9ed90fE', symObjAddr: 0x59090, symBinAddr: 0x100E1E600, symSize: 0x50 } - - { offset: 0x107656, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc8ac3149bf9ed90fE', symObjAddr: 0x59090, symBinAddr: 0x100E1E600, symSize: 0x50 } - - { offset: 0x10766C, size: 0x8, addend: 0x0, symName: '__ZN91_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc8ac3149bf9ed90fE', symObjAddr: 0x59090, symBinAddr: 0x100E1E600, symSize: 0x50 } - - { offset: 0x107707, size: 0x8, addend: 0x0, symName: '__ZN97_$LT$std..time..SystemTime$u20$as$u20$core..ops..arith..AddAssign$LT$core..time..Duration$GT$$GT$10add_assign17h160d029915fdb5dcE', symObjAddr: 0x5A260, symBinAddr: 0x100E1ECD0, symSize: 0x50 } - - { offset: 0x107872, size: 0x8, addend: 0x0, symName: '__ZN3std9backtrace6helper12lazy_resolve28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hb45232017b719bbfE', symObjAddr: 0x25C40, symBinAddr: 0x100DFD980, symSize: 0x1E0 } - - { offset: 0x107CFD, size: 0x8, addend: 0x0, symName: __ZN3std9backtrace9Backtrace6create17ha0689aea3a3caccbE, symObjAddr: 0x25E40, symBinAddr: 0x100DFDB60, symSize: 0x1C0 } - - { offset: 0x108092, size: 0x8, addend: 0x0, symName: __ZN3std9backtrace9Backtrace7capture17hcb3a2ceee210050bE, symObjAddr: 0x261C0, symBinAddr: 0x100DFDE70, symSize: 0x20F } - - { offset: 0x1085C6, size: 0x8, addend: 0x0, symName: '__ZN3std9backtrace9Backtrace6create28_$u7b$$u7b$closure$u7d$$u7d$17h81717645cd7ccb6aE', symObjAddr: 0x26000, symBinAddr: 0x100DFDD20, symSize: 0x150 } - - { offset: 0x10879F, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$std..backtrace..Backtrace$u20$as$u20$core..fmt..Display$GT$3fmt17h116b887bf8f5ee57E', symObjAddr: 0x523D0, symBinAddr: 0x100E1C380, symSize: 0x580 } - - { offset: 0x10927F, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58064327dc4c386aE', symObjAddr: 0x54600, symBinAddr: 0x100E1D190, symSize: 0x20 } - - { offset: 0x10957B, size: 0x8, addend: 0x0, symName: __ZN5alloc5alloc15exchange_malloc17hd3ae8fbbd2a9c007E, symObjAddr: 0x451C0, symBinAddr: 0x100E123D0, symSize: 0x40 } - - { offset: 0x10ACF6, size: 0x8, addend: 0x0, symName: '__ZN64_$LT$alloc..ffi..c_str..NulError$u20$as$u20$core..fmt..Debug$GT$3fmt17he6b2a21c62f9bcf6E', symObjAddr: 0x52380, symBinAddr: 0x100E1C330, symSize: 0x50 } - - { offset: 0x10BE56, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node208Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h93804e4b3a970859E', symObjAddr: 0x41150, symBinAddr: 0x100E0EF10, symSize: 0x1C0 } - - { offset: 0x10C25F, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node208Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17hfba4436f72951990E', symObjAddr: 0x41310, symBinAddr: 0x100E0F0D0, symSize: 0x1F0 } - - { offset: 0x10C748, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h92c40fd49e68ab6aE', symObjAddr: 0x41500, symBinAddr: 0x100E0F2C0, symSize: 0x280 } - - { offset: 0x10CCD3, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17he503b878d1e01b77E', symObjAddr: 0x41A80, symBinAddr: 0x100E0F540, symSize: 0x2F0 } - - { offset: 0x10D437, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17h5180644acc2f9ac9E', symObjAddr: 0x434B0, symBinAddr: 0x100E10F70, symSize: 0x870 } - - { offset: 0x10E0FC, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc..collections..btree..node..Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$$GT$14remove_leaf_kv17hf4a27bb405008d64E', symObjAddr: 0x445D0, symBinAddr: 0x100E117E0, symSize: 0x8B0 } - - { offset: 0x10EF8A, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$15bulk_steal_left17h1f43278cd371e6ffE', symObjAddr: 0x41D70, symBinAddr: 0x100E0F830, symSize: 0x400 } - - { offset: 0x10F489, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$15bulk_steal_left17h5686cfa7516d776fE', symObjAddr: 0x42170, symBinAddr: 0x100E0FC30, symSize: 0x370 } - - { offset: 0x10F9A7, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$16bulk_steal_right17h1ba8af6231d8dc3bE', symObjAddr: 0x424E0, symBinAddr: 0x100E0FFA0, symSize: 0x440 } - - { offset: 0x10FF75, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$16bulk_steal_right17h5ffd2e84658dd853E', symObjAddr: 0x42920, symBinAddr: 0x100E103E0, symSize: 0x3C0 } - - { offset: 0x1105D7, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$8do_merge17h404243a143fef023E', symObjAddr: 0x42CE0, symBinAddr: 0x100E107A0, symSize: 0x400 } - - { offset: 0x110B6E, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree4node29BalancingContext$LT$K$C$V$GT$8do_merge17h464d0c8d24ace8f7E', symObjAddr: 0x430E0, symBinAddr: 0x100E10BA0, symSize: 0x3D0 } - - { offset: 0x1113ED, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6insert17h933a5be5993bc52eE', symObjAddr: 0x3F570, symBinAddr: 0x100E0D530, symSize: 0xEA0 } - - { offset: 0x112B4C, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree3map25IntoIter$LT$K$C$V$C$A$GT$10dying_next17h2ec43d861edc1b56E', symObjAddr: 0x40410, symBinAddr: 0x100E0E3D0, symSize: 0x3C0 } - - { offset: 0x112EE0, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree3map25IntoIter$LT$K$C$V$C$A$GT$10dying_next17h3885624a0b2f26a7E', symObjAddr: 0x407D0, symBinAddr: 0x100E0E790, symSize: 0x3C0 } - - { offset: 0x113274, size: 0x8, addend: 0x0, symName: '__ZN5alloc11collections5btree3map25IntoIter$LT$K$C$V$C$A$GT$10dying_next17ha87bcfcd668e6073E', symObjAddr: 0x40B90, symBinAddr: 0x100E0EB50, symSize: 0x3C0 } - - { offset: 0x114452, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h0931b85f9faeb78cE', symObjAddr: 0x45200, symBinAddr: 0x100E950B0, symSize: 0x70 } - - { offset: 0x1144DD, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h0f4425e685a9399fE', symObjAddr: 0x45270, symBinAddr: 0x100E95120, symSize: 0x70 } - - { offset: 0x114568, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h1ee1cf40f2bc5fbbE', symObjAddr: 0x452E0, symBinAddr: 0x100E95190, symSize: 0x70 } - - { offset: 0x1145F3, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h2694b3ffe652dcc0E', symObjAddr: 0x45350, symBinAddr: 0x100E95200, symSize: 0x70 } - - { offset: 0x11467E, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h4aa0a6aa1f60ad42E', symObjAddr: 0x453C0, symBinAddr: 0x100E95270, symSize: 0x70 } - - { offset: 0x114709, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h6b612de499045b3dE', symObjAddr: 0x45430, symBinAddr: 0x100E952E0, symSize: 0x70 } - - { offset: 0x114794, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h7057e2cefbf1db14E', symObjAddr: 0x454A0, symBinAddr: 0x100E95350, symSize: 0x70 } - - { offset: 0x11481F, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h7b2ef4508dd6c6c4E', symObjAddr: 0x45510, symBinAddr: 0x100E953C0, symSize: 0x70 } - - { offset: 0x1148AA, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17h94277f89b4599f16E', symObjAddr: 0x45580, symBinAddr: 0x100E95430, symSize: 0x70 } - - { offset: 0x114935, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17ha5822bc3845a8342E', symObjAddr: 0x455F0, symBinAddr: 0x100E954A0, symSize: 0x70 } - - { offset: 0x1149C0, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hdde38191fbd109e7E', symObjAddr: 0x45660, symBinAddr: 0x100E95510, symSize: 0x70 } - - { offset: 0x114A4B, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17heffb38835a253f7cE', symObjAddr: 0x456D0, symBinAddr: 0x100E95580, symSize: 0x70 } - - { offset: 0x114F0B, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Debug$GT$3fmt17hec163dda875695fcE', symObjAddr: 0x3CDA0, symBinAddr: 0x100E0D1F0, symSize: 0x20 } - - { offset: 0x114FCE, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Write$GT$10write_char17h7d826c86994e227aE', symObjAddr: 0x3CDC0, symBinAddr: 0x100E0D210, symSize: 0x120 } - - { offset: 0x115166, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Write$GT$9write_str17h1904e91697938df0E', symObjAddr: 0x3CEE0, symBinAddr: 0x100E0D330, symSize: 0x70 } - - { offset: 0x11526E, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17hbc7f4a50d699b175E', symObjAddr: 0x4EA80, symBinAddr: 0x100E1B610, symSize: 0x20 } - - { offset: 0x1157C4, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h120b15b6e48236e5E', symObjAddr: 0x44E80, symBinAddr: 0x100E12090, symSize: 0x70 } - - { offset: 0x11597A, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h36637d42412a109fE', symObjAddr: 0x44EF0, symBinAddr: 0x100E12100, symSize: 0x70 } - - { offset: 0x115B30, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h4cacb33cfbd12a79E', symObjAddr: 0x44F60, symBinAddr: 0x100E12170, symSize: 0xA0 } - - { offset: 0x115E83, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h507fff2cde552807E', symObjAddr: 0x45000, symBinAddr: 0x100E12210, symSize: 0xA0 } - - { offset: 0x1160A2, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h5b120f5519240893E', symObjAddr: 0x450A0, symBinAddr: 0x100E122B0, symSize: 0x60 } - - { offset: 0x11627D, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17ha715e780fd8f5421E', symObjAddr: 0x45100, symBinAddr: 0x100E12310, symSize: 0x90 } - - { offset: 0x11659C, size: 0x8, addend: 0x0, symName: '__ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hd5c31a2a8608b968E', symObjAddr: 0x45190, symBinAddr: 0x100E123A0, symSize: 0x30 } - - { offset: 0x116AEB, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$u20$core..fmt..Display$GT$3fmt17hf12d1d4e9600ad18E', symObjAddr: 0x53220, symBinAddr: 0x100E1CB60, symSize: 0x20 } - - { offset: 0x11708C, size: 0x8, addend: 0x0, symName: __ZN6object4read7archive13ArchiveMember12parse_aixbig17h97d271242f182652E, symObjAddr: 0x53E00, symBinAddr: 0x100E1CBB0, symSize: 0x190 } - - { offset: 0x117347, size: 0x8, addend: 0x0, symName: __ZN6object4read7archive13ArchiveMember5parse17h6671b1b2d986a2dcE, symObjAddr: 0x53F90, symBinAddr: 0x100E1CD40, symSize: 0x350 } - - { offset: 0x117AF6, size: 0x8, addend: 0x0, symName: __ZN6object4read7archive23parse_bsd_extended_name17h8bae1108d755a122E, symObjAddr: 0x542E0, symBinAddr: 0x100E1D090, symSize: 0xB0 } - - { offset: 0x117F25, size: 0x8, addend: 0x0, symName: '__ZN9addr2line4unit16ResUnit$LT$R$GT$25find_function_or_location28_$u7b$$u7b$closure$u7d$$u7d$17h0c3e6df785d7f60aE', symObjAddr: 0x5B210, symBinAddr: 0x100E1FC20, symSize: 0x2F0 } - - { offset: 0x1182F5, size: 0x8, addend: 0x0, symName: '__ZN9addr2line4unit16ResUnit$LT$R$GT$25find_function_or_location17h789d27c4f707370dE', symObjAddr: 0x5AD70, symBinAddr: 0x100E1F780, symSize: 0x4A0 } - - { offset: 0x11882E, size: 0x8, addend: 0x0, symName: '__ZN9addr2line16Context$LT$R$GT$9find_unit17h40a3557d031e4c2aE', symObjAddr: 0x5A590, symBinAddr: 0x100E1EFA0, symSize: 0x150 } - - { offset: 0x118A2B, size: 0x8, addend: 0x0, symName: '__ZN9addr2line6lookup30LoopingLookup$LT$T$C$L$C$F$GT$10new_lookup17h1b56cbcbf57aab17E', symObjAddr: 0x5B850, symBinAddr: 0x100E20260, symSize: 0x500 } - - { offset: 0x118F68, size: 0x8, addend: 0x0, symName: __ZN9addr2line4line11render_file17h1a200f631edaa405E, symObjAddr: 0x5A6E0, symBinAddr: 0x100E1F0F0, symSize: 0x690 } - - { offset: 0x1199FC, size: 0x8, addend: 0x0, symName: '__ZN9addr2line8function17Function$LT$R$GT$14parse_children17h9793a1465a94235bE', symObjAddr: 0x5C190, symBinAddr: 0x100E20BA0, symSize: 0x1390 } - - { offset: 0x11AF73, size: 0x8, addend: 0x0, symName: __ZN9addr2line8function10name_entry17h4cfbddc5111d38bfE, symObjAddr: 0x5BD50, symBinAddr: 0x100E20760, symSize: 0x440 } - - { offset: 0x11B406, size: 0x8, addend: 0x0, symName: __ZN9addr2line8function9name_attr17hcfefb08298d09395E, symObjAddr: 0x5D520, symBinAddr: 0x100E21F30, symSize: 0x1B0 } - - { offset: 0x11B647, size: 0x8, addend: 0x0, symName: '__ZN9addr2line5frame18FrameIter$LT$R$GT$4next17h6b604b34194761cfE', symObjAddr: 0x5B500, symBinAddr: 0x100E1FF10, symSize: 0x350 } - - { offset: 0x11BF35, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read5dwarf14Dwarf$LT$R$GT$11attr_string17h9ec5d722a3ca2e46E', symObjAddr: 0x4C9D0, symBinAddr: 0x100E19560, symSize: 0x210 } - - { offset: 0x11C68D, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read5dwarf13Unit$LT$R$GT$3new17h40c239cf36a255b5E', symObjAddr: 0x4A210, symBinAddr: 0x100E16DA0, symSize: 0x27C0 } - - { offset: 0x11F9DA, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read7aranges30ArangeHeader$LT$R$C$Offset$GT$5parse17hb0086bb209495088E', symObjAddr: 0x4D700, symBinAddr: 0x100E1A290, symSize: 0x2A0 } - - { offset: 0x1203F4, size: 0x8, addend: 0x0, symName: '__ZN90_$LT$gimli..read..unit..AttributeValue$LT$R$C$Offset$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hca9b0e0e3ecbb7f9E', symObjAddr: 0x58EC0, symBinAddr: 0x100E1E460, symSize: 0x120 } - - { offset: 0x120471, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit18Attribute$LT$R$GT$5value17h486a9e4e01d61ab9E', symObjAddr: 0x48E30, symBinAddr: 0x100E159C0, symSize: 0x980 } - - { offset: 0x120975, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit32AttributeValue$LT$R$C$Offset$GT$8u8_value17h2c5c270ce93d42f6E', symObjAddr: 0x49AE0, symBinAddr: 0x100E16670, symSize: 0x90 } - - { offset: 0x1209AD, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit32AttributeValue$LT$R$C$Offset$GT$9u16_value17h9def8cd1b6656ec9E', symObjAddr: 0x49B70, symBinAddr: 0x100E16700, symSize: 0x70 } - - { offset: 0x120A2C, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4unit15parse_attribute17h5ab92665293ea245E, symObjAddr: 0x46DB0, symBinAddr: 0x100E13940, symSize: 0x1960 } - - { offset: 0x12381F, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4unit15skip_attributes17h38931f17ff4f90b9E, symObjAddr: 0x48710, symBinAddr: 0x100E152A0, symSize: 0x720 } - - { offset: 0x1240D0, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit22EntriesCursor$LT$R$GT$10next_entry17hfd3b35bf559a1d8dE', symObjAddr: 0x497B0, symBinAddr: 0x100E16340, symSize: 0x330 } - - { offset: 0x124625, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4unit33DebugInfoUnitHeadersIter$LT$R$GT$4next17h283aeb95e5f7dda1E', symObjAddr: 0x49BE0, symBinAddr: 0x100E16770, symSize: 0x630 } - - { offset: 0x1256B0, size: 0x8, addend: 0x0, symName: __ZN5gimli4read6reader6Reader11read_offset17h8ba6bda57d019590E, symObjAddr: 0x4D470, symBinAddr: 0x100E1A000, symSize: 0xB0 } - - { offset: 0x1258AD, size: 0x8, addend: 0x0, symName: __ZN5gimli4read6reader6Reader12read_uleb12817h36f7e994c32d125dE, symObjAddr: 0x4D520, symBinAddr: 0x100E1A0B0, symSize: 0xB0 } - - { offset: 0x125963, size: 0x8, addend: 0x0, symName: __ZN5gimli4read6reader6Reader17read_sized_offset17h5b52c677c3a2b7d7E, symObjAddr: 0x4D5D0, symBinAddr: 0x100E1A160, symSize: 0x130 } - - { offset: 0x125FC0, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read8rnglists20RngListIter$LT$R$GT$4next17h58b002f7112f78e1E', symObjAddr: 0x4D9A0, symBinAddr: 0x100E1A530, symSize: 0x10E0 } - - { offset: 0x128413, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read5index18UnitIndex$LT$R$GT$5parse17h8c8900a7970a0b63E', symObjAddr: 0x4CBE0, symBinAddr: 0x100E19770, symSize: 0x890 } - - { offset: 0x128431, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read5index18UnitIndex$LT$R$GT$5parse17h8c8900a7970a0b63E', symObjAddr: 0x4CBE0, symBinAddr: 0x100E19770, symSize: 0x890 } - - { offset: 0x128446, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read5index18UnitIndex$LT$R$GT$5parse17h8c8900a7970a0b63E', symObjAddr: 0x4CBE0, symBinAddr: 0x100E19770, symSize: 0x890 } - - { offset: 0x128ADD, size: 0x8, addend: 0x0, symName: '__ZN5gimli4read4line27FileEntry$LT$R$C$Offset$GT$5parse17hbec2b55687c866a2E', symObjAddr: 0x46B50, symBinAddr: 0x100E136E0, symSize: 0x260 } - - { offset: 0x128D44, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4line13parse_file_v517h65ac0a8fd06b2dc1E, symObjAddr: 0x45880, symBinAddr: 0x100E12410, symSize: 0x350 } - - { offset: 0x128ED5, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4line15FileEntryFormat5parse17h1d659849397a4c6eE, symObjAddr: 0x45BD0, symBinAddr: 0x100E12760, symSize: 0x3A0 } - - { offset: 0x12961A, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4line15parse_attribute17h98f449788ea8ae00E, symObjAddr: 0x45F70, symBinAddr: 0x100E12B00, symSize: 0xAD0 } - - { offset: 0x12AD23, size: 0x8, addend: 0x0, symName: __ZN5gimli4read4line18parse_directory_v517hfec31a13c41eca54E, symObjAddr: 0x46A40, symBinAddr: 0x100E135D0, symSize: 0x110 } - - { offset: 0x12AFC3, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc18___rust_start_panic, symObjAddr: 0x0, symBinAddr: 0x100E22720, symSize: 0xB0 } - - { offset: 0x12B0A8, size: 0x8, addend: 0x0, symName: __ZN12panic_unwind3imp5panic17exception_cleanup17h79e8951b606c0d6aE, symObjAddr: 0x100, symBinAddr: 0x100E22820, symSize: 0x20 } - - { offset: 0x12B0C4, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc18___rust_start_panic, symObjAddr: 0x0, symBinAddr: 0x100E22720, symSize: 0xB0 } - - { offset: 0x12B154, size: 0x8, addend: 0x0, symName: __RNvCsiGVaDesi5rv_7___rustc20___rust_panic_cleanup, symObjAddr: 0xB0, symBinAddr: 0x100E227D0, symSize: 0x50 } - - { offset: 0x12B1FE, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr49drop_in_place$LT$panic_unwind..imp..Exception$GT$17h90f67ced05e22119E', symObjAddr: 0x120, symBinAddr: 0x100E22840, symSize: 0x70 } - - { offset: 0x12B310, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr74drop_in_place$LT$alloc..boxed..Box$LT$panic_unwind..imp..Exception$GT$$GT$17he4d4480b606fb1c1E', symObjAddr: 0x190, symBinAddr: 0x100E228B0, symSize: 0x89 } - - { offset: 0x12B790, size: 0x8, addend: 0x0, symName: __ZN6memchr4arch6x86_646memchr10memchr_raw6detect17h0a59d8ea3aaf74caE, symObjAddr: 0xE70, symBinAddr: 0x100E22C60, symSize: 0x1C0 } - - { offset: 0x12BD8C, size: 0x8, addend: 0x0, symName: __ZN6memchr4arch6x86_646memchr10memchr_raw9find_sse217h9d6671339b2df7ccE, symObjAddr: 0x1030, symBinAddr: 0x100E22E20, symSize: 0x1B0 } - - { offset: 0x12C35C, size: 0x8, addend: 0x0, symName: __ZN6memchr4arch6x86_646memchr11memchr2_raw6detect17hb8f64d64b1aca510E, symObjAddr: 0x11E0, symBinAddr: 0x100E22FD0, symSize: 0x1A0 } - - { offset: 0x12CA3F, size: 0x8, addend: 0x0, symName: __ZN6memchr4arch6x86_646memchr11memchr2_raw9find_sse217hdbf68e83631df4e6E, symObjAddr: 0x1380, symBinAddr: 0x100E23170, symSize: 0x1A0 } - - { offset: 0x12D263, size: 0x8, addend: 0x0, symName: __ZN10std_detect6detect5cache21detect_and_initialize17h14d551a393ed61abE, symObjAddr: 0x520, symBinAddr: 0x100E957D0, symSize: 0x6A0 } - - { offset: 0x12DB99, size: 0x8, addend: 0x0, symName: __ZN4core9core_arch3x865xsave7_xgetbv17h0c4807e10028c963E, symObjAddr: 0xBC0, symBinAddr: 0x100E2A6D0, symSize: 0x12 } - - { offset: 0x12DC7F, size: 0x8, addend: 0x0, symName: __ZN9hashbrown3raw11Fallibility17capacity_overflow17h58b1426426774dc3E, symObjAddr: 0x170, symBinAddr: 0x100E2A6F0, symSize: 0x50 } - - { offset: 0x12DCAF, size: 0x8, addend: 0x0, symName: __ZN9hashbrown3raw11Fallibility9alloc_err17ha72eef0ac2a3c15eE, symObjAddr: 0x1C0, symBinAddr: 0x100E2A740, symSize: 0x20 } - - { offset: 0x12DD88, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h59b75969bc01a871E, symObjAddr: 0x190, symBinAddr: 0x100E2A810, symSize: 0x20 } - - { offset: 0x12DDCC, size: 0x8, addend: 0x0, symName: '__ZN53_$LT$core..fmt..Error$u20$as$u20$core..fmt..Debug$GT$3fmt17he1601d3131babc3fE', symObjAddr: 0x260, symBinAddr: 0x100E2A850, symSize: 0x20 } - - { offset: 0x12DF8E, size: 0x8, addend: 0x0, symName: '__ZN69_$LT$core..alloc..layout..LayoutError$u20$as$u20$core..fmt..Debug$GT$3fmt17h2250bdd3c9cb108eE', symObjAddr: 0x5380, symBinAddr: 0x100E2C020, symSize: 0x20 } - - { offset: 0x12E014, size: 0x8, addend: 0x0, symName: '__ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h5f577ca73a0b19f1E', symObjAddr: 0x1D0, symBinAddr: 0x100E2A830, symSize: 0x20 } - - { offset: 0x12E583, size: 0x8, addend: 0x0, symName: '__ZN5alloc3ffi5c_str40_$LT$impl$u20$core..ffi..c_str..CStr$GT$15to_string_lossy17hd725361221c8e5d3E', symObjAddr: 0x550, symBinAddr: 0x100E2A9E0, symSize: 0x20 } - - { offset: 0x12E856, size: 0x8, addend: 0x0, symName: __ZN5alloc5alloc18handle_alloc_error17hd5607ad814415262E, symObjAddr: 0x324A, symBinAddr: 0x100E9600A, symSize: 0x16 } - - { offset: 0x12EB44, size: 0x8, addend: 0x0, symName: '__ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$8grow_one17hff8cd208b0125ae2E', symObjAddr: 0x4F20, symBinAddr: 0x100E96090, symSize: 0x60 } - - { offset: 0x12EBF2, size: 0x8, addend: 0x0, symName: __ZN5alloc7raw_vec12handle_error17hba6058fa8f3b3a81E, symObjAddr: 0x4EB1, symBinAddr: 0x100E96021, symSize: 0x1F } - - { offset: 0x12EC3A, size: 0x8, addend: 0x0, symName: __ZN5alloc7raw_vec17capacity_overflow17h04426611df9a8546E, symObjAddr: 0x4ED0, symBinAddr: 0x100E96040, symSize: 0x50 } - - { offset: 0x12ECBE, size: 0x8, addend: 0x0, symName: '__ZN254_$LT$alloc..boxed..convert..$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$..from..StringError$u20$as$u20$core..fmt..Debug$GT$3fmt17h191a35651a84389eE', symObjAddr: 0x130, symBinAddr: 0x100E2A7D0, symSize: 0x20 } - - { offset: 0x12ED98, size: 0x8, addend: 0x0, symName: '__ZN256_$LT$alloc..boxed..convert..$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$core..error..Error$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$..from..StringError$u20$as$u20$core..fmt..Display$GT$3fmt17h620fa3325cd14a3fE', symObjAddr: 0x150, symBinAddr: 0x100E2A7F0, symSize: 0x20 } - - { offset: 0x12EE75, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$alloc..boxed..Box$LT$str$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h5af4970fe2b5ad8dE', symObjAddr: 0x52E0, symBinAddr: 0x100E2BFA0, symSize: 0x70 } - - { offset: 0x12F001, size: 0x8, addend: 0x0, symName: '__ZN100_$LT$alloc..ffi..c_str..CString$u20$as$u20$core..convert..From$LT$$RF$core..ffi..c_str..CStr$GT$$GT$4from17hef910652f3ccbd0fE', symObjAddr: 0xC0, symBinAddr: 0x100E2A760, symSize: 0x70 } - - { offset: 0x12F182, size: 0x8, addend: 0x0, symName: __ZN5alloc3ffi5c_str7CString19_from_vec_unchecked17hda69675657dc5e5aE, symObjAddr: 0x8F0, symBinAddr: 0x100E2AA00, symSize: 0xF0 } - - { offset: 0x12F4C9, size: 0x8, addend: 0x0, symName: __ZN5alloc3ffi5c_str7CString8from_raw17h6a99ac6ed1870f16E, symObjAddr: 0xA90, symBinAddr: 0x100E2AAF0, symSize: 0x20 } - - { offset: 0x12F505, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$$RF$str$u20$as$u20$alloc..ffi..c_str..CString..new..SpecNewImpl$GT$13spec_new_impl17hd4fba4bfb367b04aE', symObjAddr: 0x53A0, symBinAddr: 0x100E2C040, symSize: 0x130 } - - { offset: 0x12F7A1, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$alloc..ffi..c_str..NulError$u20$as$u20$core..fmt..Display$GT$3fmt17h07c24a154f2952d2E', symObjAddr: 0x5280, symBinAddr: 0x100E2BF40, symSize: 0x60 } - - { offset: 0x12FA0B, size: 0x8, addend: 0x0, symName: '__ZN5alloc3vec16Vec$LT$T$C$A$GT$10insert_mut13assert_failed17hdd6dd5e130d31350E', symObjAddr: 0x2156, symBinAddr: 0x100E95E76, symSize: 0x5F } - - { offset: 0x12FA3D, size: 0x8, addend: 0x0, symName: '__ZN5alloc3vec16Vec$LT$T$C$A$GT$11swap_remove13assert_failed17h3441502f161ede28E', symObjAddr: 0x21B5, symBinAddr: 0x100E95ED5, symSize: 0x63 } - - { offset: 0x12FA6F, size: 0x8, addend: 0x0, symName: '__ZN5alloc3vec16Vec$LT$T$C$A$GT$6remove13assert_failed17h70d4037da9aefa43E', symObjAddr: 0x2218, symBinAddr: 0x100E95F38, symSize: 0x5F } - - { offset: 0x12FAA1, size: 0x8, addend: 0x0, symName: '__ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off13assert_failed17hbd02f04ac22a6980E', symObjAddr: 0x2277, symBinAddr: 0x100E95F97, symSize: 0x69 } - - { offset: 0x12FBAB, size: 0x8, addend: 0x0, symName: __ZN5alloc6string6String11try_reserve17h8d402731e39d465dE, symObjAddr: 0x3A40, symBinAddr: 0x100E2BAD0, symSize: 0x90 } - - { offset: 0x12FD05, size: 0x8, addend: 0x0, symName: __ZN5alloc6string6String15from_utf8_lossy17h6efed7368b8fe220E, symObjAddr: 0x43D0, symBinAddr: 0x100E2BB60, symSize: 0x260 } - - { offset: 0x13039C, size: 0x8, addend: 0x0, symName: __ZN5alloc6string6String17try_reserve_exact17hba9df1a56687fa0cE, symObjAddr: 0x4630, symBinAddr: 0x100E2BDC0, symSize: 0x80 } - - { offset: 0x1304E2, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Write$GT$10write_char17h7d826c86994e227aE', symObjAddr: 0x2E0, symBinAddr: 0x100E2A870, symSize: 0x110 } - - { offset: 0x13067A, size: 0x8, addend: 0x0, symName: '__ZN58_$LT$alloc..string..String$u20$as$u20$core..fmt..Write$GT$9write_str17h1904e91697938df0E', symObjAddr: 0x3F0, symBinAddr: 0x100E2A980, symSize: 0x60 } - - { offset: 0x130790, size: 0x8, addend: 0x0, symName: '__ZN98_$LT$alloc..string..String$u20$as$u20$core..convert..From$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$4from17h3042fa7bd8e99375E', symObjAddr: 0x6060, symBinAddr: 0x100E2C190, symSize: 0xA4 } - - { offset: 0x130936, size: 0x8, addend: 0x0, symName: '__ZN5alloc6string107_$LT$impl$u20$core..convert..From$LT$alloc..string..String$GT$$u20$for$u20$alloc..boxed..Box$LT$str$GT$$GT$4from17hec4dad17b66899f5E', symObjAddr: 0x34E0, symBinAddr: 0x100E2BA40, symSize: 0x90 } - - { offset: 0x130ACF, size: 0x8, addend: 0x0, symName: '__ZN85_$LT$alloc..string..String..retain..SetLenOnDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3524452e665ea561E', symObjAddr: 0x5940, symBinAddr: 0x100E2C170, symSize: 0x20 } - - { offset: 0x130B0A, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h63790340d10a681aE', symObjAddr: 0x50F0, symBinAddr: 0x100E2BE40, symSize: 0x90 } - - { offset: 0x130CA6, size: 0x8, addend: 0x0, symName: '__ZN62_$LT$alloc..string..Drain$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha119d38b4cd99079E', symObjAddr: 0x51E0, symBinAddr: 0x100E2BED0, symSize: 0x70 } - - { offset: 0x130DE6, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$alloc..string..FromUtf8Error$u20$as$u20$core..fmt..Display$GT$3fmt17h8b88464089c02bfbE', symObjAddr: 0x5350, symBinAddr: 0x100E2C010, symSize: 0x10 } - - { offset: 0x130E78, size: 0x8, addend: 0x0, symName: __ZN5alloc3fmt6format12format_inner17h28d37444cacf9dbaE, symObjAddr: 0xAB0, symBinAddr: 0x100E2AB10, symSize: 0x1E0 } - - { offset: 0x1311B7, size: 0x8, addend: 0x0, symName: '__ZN5alloc3str21_$LT$impl$u20$str$GT$12to_lowercase17h4cedc292a311c2bbE', symObjAddr: 0xC90, symBinAddr: 0x100E2ACF0, symSize: 0xCE0 } - - { offset: 0x132401, size: 0x8, addend: 0x0, symName: __ZN5alloc4sync32arcinner_layout_for_value_layout17h214be0583b3f4eaaE, symObjAddr: 0x22E0, symBinAddr: 0x100E2B9D0, symSize: 0x70 } - - { offset: 0x132419, size: 0x8, addend: 0x0, symName: __ZN5alloc4sync32arcinner_layout_for_value_layout17h214be0583b3f4eaaE, symObjAddr: 0x22E0, symBinAddr: 0x100E2B9D0, symSize: 0x70 } - - { offset: 0x13242F, size: 0x8, addend: 0x0, symName: __ZN5alloc4sync32arcinner_layout_for_value_layout17h214be0583b3f4eaaE, symObjAddr: 0x22E0, symBinAddr: 0x100E2B9D0, symSize: 0x70 } - - { offset: 0x132696, size: 0x8, addend: 0x0, symName: '__ZN71_$LT$core..ops..range..Range$LT$Idx$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17hf0581a4e4316ffe3E', symObjAddr: 0x1F630, symBinAddr: 0x100E3D9F0, symSize: 0x50 } - - { offset: 0x132FB6, size: 0x8, addend: 0x0, symName: '__ZN4core4char7methods22_$LT$impl$u20$char$GT$16escape_debug_ext17hdd50a7138ab3ef7aE', symObjAddr: 0x17140, symBinAddr: 0x100E3A2A0, symSize: 0x2D0 } - - { offset: 0x133946, size: 0x8, addend: 0x0, symName: __ZN4core3num6bignum8Big32x4010mul_digits17h5320827d8daea0e8E, symObjAddr: 0xEC90, symBinAddr: 0x100E33A50, symSize: 0x340 } - - { offset: 0x133CCB, size: 0x8, addend: 0x0, symName: __ZN4core3num6bignum8Big32x408mul_pow217h9e009002c1be1ce9E, symObjAddr: 0xF3B0, symBinAddr: 0x100E33D90, symSize: 0x1F0 } - - { offset: 0x133F4C, size: 0x8, addend: 0x0, symName: '__ZN73_$LT$core..num..nonzero..NonZero$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h847ef0ae4d6af582E', symObjAddr: 0x1F910, symBinAddr: 0x100E3DB30, symSize: 0x20 } - - { offset: 0x134079, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt11decimal_seq10DecimalSeq10left_shift17h26176a48e509e8e6E, symObjAddr: 0xFC60, symBinAddr: 0x100E33F80, symSize: 0x240 } - - { offset: 0x134133, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt11decimal_seq10DecimalSeq11right_shift17hd3717d5a0c213cbeE, symObjAddr: 0xFEA0, symBinAddr: 0x100E341C0, symSize: 0x200 } - - { offset: 0x13415B, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt11decimal_seq10DecimalSeq5round17hd23303e7170e96b5E, symObjAddr: 0x100F0, symBinAddr: 0x100E343C0, symSize: 0x100 } - - { offset: 0x1341FA, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt11decimal_seq17parse_decimal_seq17hf5ac552b67441cecE, symObjAddr: 0x101F0, symBinAddr: 0x100E344C0, symSize: 0x3D0 } - - { offset: 0x13466B, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt5parse12parse_number17h58f64d03219698ebE, symObjAddr: 0x105C0, symBinAddr: 0x100E34890, symSize: 0x4C0 } - - { offset: 0x134C47, size: 0x8, addend: 0x0, symName: '__ZN4core3num7dec2flt60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$f32$GT$8from_str17hd83b369dc81900ddE', symObjAddr: 0x11060, symBinAddr: 0x100E34D50, symSize: 0x530 } - - { offset: 0x134E82, size: 0x8, addend: 0x0, symName: '__ZN4core3num7dec2flt60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$f64$GT$8from_str17hef04bf6a1e62b7aeE', symObjAddr: 0x11590, symBinAddr: 0x100E35280, symSize: 0x580 } - - { offset: 0x1350C9, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt6lemire13compute_float17h11fca0ca6ab2bf2bE, symObjAddr: 0x11B10, symBinAddr: 0x100E35800, symSize: 0x190 } - - { offset: 0x135186, size: 0x8, addend: 0x0, symName: __ZN4core3num7dec2flt6lemire13compute_float17h2f390b5d690d90c4E, symObjAddr: 0x11CA0, symBinAddr: 0x100E35990, symSize: 0x170 } - - { offset: 0x13523D, size: 0x8, addend: 0x0, symName: '__ZN74_$LT$core..num..dec2flt..ParseFloatError$u20$as$u20$core..fmt..Display$GT$3fmt17he6a645549ad48e4cE', symObjAddr: 0x1FBB0, symBinAddr: 0x100E3DB50, symSize: 0x40 } - - { offset: 0x135310, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy5grisu16format_exact_opt14possibly_round17hb3910e6094daca3dE, symObjAddr: 0x12490, symBinAddr: 0x100E35C70, symSize: 0x1D0 } - - { offset: 0x135502, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy5grisu16format_exact_opt17h0aca6c6341064058E, symObjAddr: 0x12660, symBinAddr: 0x100E35E40, symSize: 0x3E0 } - - { offset: 0x1355AE, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy5grisu19format_shortest_opt17h6c3f600fa96405b0E, symObjAddr: 0x12A40, symBinAddr: 0x100E36220, symSize: 0x6A0 } - - { offset: 0x135784, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy6dragon12format_exact17h61e99cb51961951cE, symObjAddr: 0x130E0, symBinAddr: 0x100E368C0, symSize: 0xFD0 } - - { offset: 0x137083, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy6dragon15format_shortest17hef7a9795f4afc55fE, symObjAddr: 0x140B0, symBinAddr: 0x100E37890, symSize: 0x1260 } - - { offset: 0x138D1A, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec8strategy6dragon9mul_pow1017h1158d6bea38fc6caE, symObjAddr: 0x15310, symBinAddr: 0x100E38AF0, symSize: 0x450 } - - { offset: 0x13905D, size: 0x8, addend: 0x0, symName: __ZN4core3num7flt2dec17digits_to_dec_str17h36f371fd060b16afE, symObjAddr: 0x11FE0, symBinAddr: 0x100E35B00, symSize: 0x170 } - - { offset: 0x1391DA, size: 0x8, addend: 0x0, symName: '__ZN70_$LT$core..num..error..ParseIntError$u20$as$u20$core..fmt..Display$GT$3fmt17hda93a6138942fea7E', symObjAddr: 0x1F220, symBinAddr: 0x100E3D9A0, symSize: 0x30 } - - { offset: 0x13922C, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$core..num..niche_types..Nanoseconds$u20$as$u20$core..fmt..Debug$GT$3fmt17h35db1024f7acb59bE', symObjAddr: 0x1F850, symBinAddr: 0x100E3DA90, symSize: 0x20 } - - { offset: 0x139554, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$core..ptr..alignment..Alignment$u20$as$u20$core..fmt..Debug$GT$3fmt17h849e403900bc1a9bE', symObjAddr: 0x1E7C0, symBinAddr: 0x100E3D900, symSize: 0x80 } - - { offset: 0x139A5A, size: 0x8, addend: 0x0, symName: __ZN4core6option13expect_failed17hba1c1073ec1612f6E, symObjAddr: 0x17AD0, symBinAddr: 0x100E96450, symSize: 0x60 } - - { offset: 0x139AA4, size: 0x8, addend: 0x0, symName: __ZN4core6option13unwrap_failed17h4cb817e0201dc5c5E, symObjAddr: 0x17B30, symBinAddr: 0x100E964B0, symSize: 0x20 } - - { offset: 0x139E9C, size: 0x8, addend: 0x0, symName: __ZN4core5ascii14escape_default17h7950147814192f40E, symObjAddr: 0x174F0, symBinAddr: 0x100E3A5A0, symSize: 0x80 } - - { offset: 0x13A395, size: 0x8, addend: 0x0, symName: '__ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17len_mismatch_fail8do_panic7runtime17h8b1ba144b208416dE', symObjAddr: 0x17590, symBinAddr: 0x100E96200, symSize: 0x70 } - - { offset: 0x13A3C9, size: 0x8, addend: 0x0, symName: '__ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17len_mismatch_fail17hf5349c9b26710da8E', symObjAddr: 0x17570, symBinAddr: 0x100E961E0, symSize: 0x20 } - - { offset: 0x13ACF3, size: 0x8, addend: 0x0, symName: __ZN4core5slice5index16slice_index_fail8do_panic7runtime17h33d80303a08e5edcE, symObjAddr: 0x17790, symBinAddr: 0x100E96300, symSize: 0x70 } - - { offset: 0x13AD25, size: 0x8, addend: 0x0, symName: __ZN4core5slice5index16slice_index_fail8do_panic7runtime17h5e05d3d8cb23c896E, symObjAddr: 0x17800, symBinAddr: 0x100E96370, symSize: 0x70 } - - { offset: 0x13AD57, size: 0x8, addend: 0x0, symName: __ZN4core5slice5index16slice_index_fail8do_panic7runtime17hb8ea95126e234a12E, symObjAddr: 0x17870, symBinAddr: 0x100E963E0, symSize: 0x70 } - - { offset: 0x13AD8B, size: 0x8, addend: 0x0, symName: __ZN4core5slice5index16slice_index_fail17hd9ea2542901acbb2E, symObjAddr: 0x17750, symBinAddr: 0x100E962C0, symSize: 0x40 } - - { offset: 0x13AE48, size: 0x8, addend: 0x0, symName: __ZN4core5slice6memchr14memchr_aligned17hb8911b52e6b5a887E, symObjAddr: 0x178E0, symBinAddr: 0x100E3A650, symSize: 0xE0 } - - { offset: 0x13AF4C, size: 0x8, addend: 0x0, symName: __ZN4core5slice6memchr7memrchr17hd9ae8da4737f3f7eE, symObjAddr: 0x179C0, symBinAddr: 0x100E3A730, symSize: 0x110 } - - { offset: 0x13B1CA, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6shared9smallsort22panic_on_ord_violation17hfe40c03a562d7ff1E, symObjAddr: 0x17630, symBinAddr: 0x100E96270, symSize: 0x50 } - - { offset: 0x13B20A, size: 0x8, addend: 0x0, symName: __ZN4core5slice4sort6stable5drift11sqrt_approx17h349d99c0abdadd88E, symObjAddr: 0x17680, symBinAddr: 0x100E3A620, symSize: 0x30 } - - { offset: 0x13B406, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter10debug_list17h02d963d02a789e22E, symObjAddr: 0xA270, symBinAddr: 0x100E310B0, symSize: 0x40 } - - { offset: 0x13B448, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter11debug_tuple17hf10f04f369f402c1E, symObjAddr: 0xA2B0, symBinAddr: 0x100E310F0, symSize: 0x50 } - - { offset: 0x13B4A0, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter12debug_struct17h8ce75c83a78128a9E, symObjAddr: 0xA300, symBinAddr: 0x100E31140, symSize: 0x40 } - - { offset: 0x13B50B, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter12pad_integral17haf0cb271556cc0fcE, symObjAddr: 0xA3A0, symBinAddr: 0x100E311E0, symSize: 0x4A0 } - - { offset: 0x13B7D0, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter19pad_formatted_parts17heeaa0dc95497b45eE, symObjAddr: 0xA840, symBinAddr: 0x100E31680, symSize: 0x280 } - - { offset: 0x13BA3D, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter21write_formatted_parts17hfec8d45340317a05E, symObjAddr: 0xAAC0, symBinAddr: 0x100E31900, symSize: 0x280 } - - { offset: 0x13BBD3, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter25debug_tuple_field1_finish17h4650fedf6bbeb326E, symObjAddr: 0xAD40, symBinAddr: 0x100E31B80, symSize: 0x140 } - - { offset: 0x13BDF5, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter25debug_tuple_field2_finish17h85ac424547e12cfaE, symObjAddr: 0xAE80, symBinAddr: 0x100E31CC0, symSize: 0x1A0 } - - { offset: 0x13C113, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter25debug_tuple_field3_finish17h41dc43514763f868E, symObjAddr: 0xB020, symBinAddr: 0x100E31E60, symSize: 0x250 } - - { offset: 0x13C560, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field1_finish17h54bf1de1926d8528E, symObjAddr: 0xBB00, symBinAddr: 0x100E320B0, symSize: 0xB0 } - - { offset: 0x13C63F, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field2_finish17hecd2a39c47d390e7E, symObjAddr: 0xBBB0, symBinAddr: 0x100E32160, symSize: 0xD0 } - - { offset: 0x13C71E, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field3_finish17h4bdce5a33abb2e65E, symObjAddr: 0xBC80, symBinAddr: 0x100E32230, symSize: 0xE0 } - - { offset: 0x13C7FD, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field4_finish17h7369857ab249cd93E, symObjAddr: 0xBD60, symBinAddr: 0x100E32310, symSize: 0x100 } - - { offset: 0x13C8DC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_field5_finish17hb39db627df178057E, symObjAddr: 0xBE60, symBinAddr: 0x100E32410, symSize: 0x120 } - - { offset: 0x13C9BB, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter26debug_struct_fields_finish17hf706562e98ce3a27E, symObjAddr: 0xBF80, symBinAddr: 0x100E32530, symSize: 0x110 } - - { offset: 0x13CAB7, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter3pad17hef535f9d0e9f4d20E, symObjAddr: 0xC090, symBinAddr: 0x100E32640, symSize: 0x3D0 } - - { offset: 0x13CD4A, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter9debug_map17he04f53e0b1ceb6a9E, symObjAddr: 0xC470, symBinAddr: 0x100E32A10, symSize: 0x40 } - - { offset: 0x13CD93, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter9debug_set17h8c9e926c19829758E, symObjAddr: 0xC4B0, symBinAddr: 0x100E32A50, symSize: 0x40 } - - { offset: 0x13CDDC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter9write_str17hb349ace14124fef1E, symObjAddr: 0xC4F0, symBinAddr: 0x100E32A90, symSize: 0x20 } - - { offset: 0x13CE79, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders11DebugStruct21finish_non_exhaustive17hcd5587e8b58e7148E, symObjAddr: 0x97F0, symBinAddr: 0x100E30980, symSize: 0xB0 } - - { offset: 0x13CFAF, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders11DebugStruct5field17h65281cb382d5c4eaE, symObjAddr: 0x98A0, symBinAddr: 0x100E30A30, symSize: 0x190 } - - { offset: 0x13D1DC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders11DebugStruct6finish17hb45a48b2ab6ab29eE, symObjAddr: 0x9A30, symBinAddr: 0x100E30BC0, symSize: 0x60 } - - { offset: 0x13D322, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders10DebugTuple5field17h20996bea850e933eE, symObjAddr: 0x9600, symBinAddr: 0x100E30790, symSize: 0x130 } - - { offset: 0x13D4A1, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders10DebugTuple6finish17h751d2329af961861E, symObjAddr: 0x9730, symBinAddr: 0x100E308C0, symSize: 0x90 } - - { offset: 0x13D5D6, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders10PadAdapter4wrap17h190fe079b3a25f40E, symObjAddr: 0x97C0, symBinAddr: 0x100E30950, symSize: 0x30 } - - { offset: 0x13D6C0, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugMap3key17hb96f8f88bf533090E, symObjAddr: 0x9B80, symBinAddr: 0x100E30C20, symSize: 0x170 } - - { offset: 0x13D8C4, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugMap5entry17hef013ffff0700ac8E, symObjAddr: 0x9CF0, symBinAddr: 0x100E30D90, symSize: 0x100 } - - { offset: 0x13DA05, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugMap6finish17he75903ac40ee520aE, symObjAddr: 0x9EE0, symBinAddr: 0x100E30E90, symSize: 0x80 } - - { offset: 0x13DAA3, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugSet5entry17h825f4cbf567ebda9E, symObjAddr: 0xA010, symBinAddr: 0x100E30F10, symSize: 0x120 } - - { offset: 0x13DC39, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders8DebugSet6finish17h875f56f3351f2970E, symObjAddr: 0xA130, symBinAddr: 0x100E31030, symSize: 0x40 } - - { offset: 0x13DCF3, size: 0x8, addend: 0x0, symName: __ZN4core3fmt8builders9DebugList6finish17h2c341271836d7ddcE, symObjAddr: 0xA230, symBinAddr: 0x100E31070, symSize: 0x40 } - - { offset: 0x13DD90, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$10write_char17hf2e540de183c3827E', symObjAddr: 0x1E3E0, symBinAddr: 0x100E3D620, symSize: 0x60 } - - { offset: 0x13DDBA, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$9write_str17h697fdfe8c71c182eE', symObjAddr: 0x1E440, symBinAddr: 0x100E3D680, symSize: 0x280 } - - { offset: 0x13E248, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..fmt..Formatter$u20$as$u20$core..fmt..Write$GT$10write_char17h2ed62dd7ee28b91dE', symObjAddr: 0x1A130, symBinAddr: 0x100E3B1B0, symSize: 0x20 } - - { offset: 0x13E286, size: 0x8, addend: 0x0, symName: '__ZN40_$LT$str$u20$as$u20$core..fmt..Debug$GT$3fmt17h6a87b16c6e78603aE', symObjAddr: 0x2F0, symBinAddr: 0x100E2C290, symSize: 0x3A0 } - - { offset: 0x13E721, size: 0x8, addend: 0x0, symName: '__ZN41_$LT$char$u20$as$u20$core..fmt..Debug$GT$3fmt17h0d78a262db61950fE', symObjAddr: 0x690, symBinAddr: 0x100E2C630, symSize: 0xA0 } - - { offset: 0x13E857, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h0d06fd4e7b7cc77cE', symObjAddr: 0x730, symBinAddr: 0x100E2C6D0, symSize: 0x20 } - - { offset: 0x13E86B, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h851c306547f004bfE', symObjAddr: 0x770, symBinAddr: 0x100E2C6F0, symSize: 0x10 } - - { offset: 0x13E894, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17hccb487625c7ac0f8E', symObjAddr: 0x780, symBinAddr: 0x100E2C700, symSize: 0x160 } - - { offset: 0x13EAD5, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17he75da67881b5a9e8E', symObjAddr: 0x910, symBinAddr: 0x100E2C860, symSize: 0x10 } - - { offset: 0x13EAFE, size: 0x8, addend: 0x0, symName: '__ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17h01f44ca82a5074c0E', symObjAddr: 0x920, symBinAddr: 0x100E2C870, symSize: 0x20 } - - { offset: 0x13EB27, size: 0x8, addend: 0x0, symName: '__ZN43_$LT$bool$u20$as$u20$core..fmt..Display$GT$3fmt17h156685c137a674b8E', symObjAddr: 0x940, symBinAddr: 0x100E2C890, symSize: 0x40 } - - { offset: 0x13EB8B, size: 0x8, addend: 0x0, symName: '__ZN43_$LT$char$u20$as$u20$core..fmt..Display$GT$3fmt17h955b222aca21a128E', symObjAddr: 0x980, symBinAddr: 0x100E2C8D0, symSize: 0xC0 } - - { offset: 0x13EBFE, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h21eb8f3ff727b4a1E', symObjAddr: 0xA40, symBinAddr: 0x100E2C990, symSize: 0x20 } - - { offset: 0x13EC30, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h78b01f617415cff7E', symObjAddr: 0xA60, symBinAddr: 0x100E2C9B0, symSize: 0x10 } - - { offset: 0x13EC4B, size: 0x8, addend: 0x0, symName: '__ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hafec3e542c9fa000E', symObjAddr: 0xB80, symBinAddr: 0x100E2C9C0, symSize: 0x10 } - - { offset: 0x13ECDC, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp21_$LT$impl$u20$u16$GT$4_fmt17h87059f938bf7cf0aE', symObjAddr: 0x2190, symBinAddr: 0x100E2D140, symSize: 0xE0 } - - { offset: 0x13EDEB, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp21_$LT$impl$u20$u32$GT$4_fmt17h2bcd90bfe2f5fde0E', symObjAddr: 0x2350, symBinAddr: 0x100E2D220, symSize: 0xF0 } - - { offset: 0x13EEFB, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp21_$LT$impl$u20$u64$GT$4_fmt17h87d5adfe460308e7E', symObjAddr: 0x2530, symBinAddr: 0x100E2D310, symSize: 0x100 } - - { offset: 0x13EFFE, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17h2f9d056a72828e62E', symObjAddr: 0x26E0, symBinAddr: 0x100E2D410, symSize: 0xA0 } - - { offset: 0x13F0ED, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i16$GT$3fmt17h9c1f1edf7c832eaeE', symObjAddr: 0x2780, symBinAddr: 0x100E2D4B0, symSize: 0x100 } - - { offset: 0x13F22A, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h0e49f7551bc4ed5eE', symObjAddr: 0x2880, symBinAddr: 0x100E2D5B0, symSize: 0x120 } - - { offset: 0x13F358, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i64$GT$3fmt17hec350d4c4d0ff666E', symObjAddr: 0x29A0, symBinAddr: 0x100E2D6D0, symSize: 0x120 } - - { offset: 0x13F486, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u16$GT$3fmt17h808a10be2c3db7e8E', symObjAddr: 0x2AC0, symBinAddr: 0x100E2D7F0, symSize: 0xF0 } - - { offset: 0x13F59F, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17hf065dec89c9f7bf0E', symObjAddr: 0x2BB0, symBinAddr: 0x100E2D8E0, symSize: 0x110 } - - { offset: 0x13F6B8, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17hc7a0123e0a18317bE', symObjAddr: 0x2CC0, symBinAddr: 0x100E2D9F0, symSize: 0x110 } - - { offset: 0x13F7EC, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u16$GT$3fmt17ha82fae72dbf5648fE', symObjAddr: 0x4F10, symBinAddr: 0x100E2E4C0, symSize: 0x70 } - - { offset: 0x13F8B4, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num22_$LT$impl$u20$u128$GT$10_fmt_inner17ha5374df8fb0ecfb4E', symObjAddr: 0x13E0, symBinAddr: 0x100E2CC20, symSize: 0x520 } - - { offset: 0x13FA64, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u8$GT$3fmt17h41791e7a33bf15f8E', symObjAddr: 0x4B90, symBinAddr: 0x100E2E1B0, symSize: 0x70 } - - { offset: 0x13FAFB, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u8$GT$3fmt17h3a674a63db9557ceE', symObjAddr: 0x4C70, symBinAddr: 0x100E2E220, symSize: 0x70 } - - { offset: 0x13FB92, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num49_$LT$impl$u20$core..fmt..Octal$u20$for$u20$u8$GT$3fmt17h14d50c1329813370E', symObjAddr: 0x38F0, symBinAddr: 0x100E2DB00, symSize: 0x70 } - - { offset: 0x13FC29, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Binary$u20$for$u20$u8$GT$3fmt17hbfcdf282a1f5d8dcE', symObjAddr: 0x39D0, symBinAddr: 0x100E2DB70, symSize: 0x70 } - - { offset: 0x13FCC0, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i16$GT$3fmt17h18c6af2de8d82fc6E', symObjAddr: 0x4DC0, symBinAddr: 0x100E2E370, symSize: 0x70 } - - { offset: 0x13FD6D, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u16$GT$3fmt17h208d9177f0de5818E', symObjAddr: 0x51B0, symBinAddr: 0x100E2E760, symSize: 0x70 } - - { offset: 0x13FE04, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i16$GT$3fmt17hdf4d99e077bde55cE', symObjAddr: 0x5060, symBinAddr: 0x100E2E610, symSize: 0x70 } - - { offset: 0x13FEB1, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u32$GT$3fmt17h838469e1759023efE', symObjAddr: 0x4F80, symBinAddr: 0x100E2E530, symSize: 0x70 } - - { offset: 0x13FF48, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u32$GT$3fmt17h436a08f30e7a277eE', symObjAddr: 0x5220, symBinAddr: 0x100E2E7D0, symSize: 0x70 } - - { offset: 0x13FFD2, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u32$GT$3fmt17h85a47da6604c425dE', symObjAddr: 0x3D70, symBinAddr: 0x100E2DBE0, symSize: 0x1A0 } - - { offset: 0x140172, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u64$GT$3fmt17h16819853fdd93540E', symObjAddr: 0x4FF0, symBinAddr: 0x100E2E5A0, symSize: 0x70 } - - { offset: 0x140209, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u64$GT$3fmt17hb1e86262f4cb601cE', symObjAddr: 0x5290, symBinAddr: 0x100E2E840, symSize: 0x70 } - - { offset: 0x140293, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$u64$GT$3fmt17hfe4fe4a4bcf92e5eE', symObjAddr: 0x3F10, symBinAddr: 0x100E2DD80, symSize: 0x1A0 } - - { offset: 0x140433, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num51_$LT$impl$u20$core..fmt..Binary$u20$for$u20$u16$GT$3fmt17h3d8707726f8983bfE', symObjAddr: 0x44A0, symBinAddr: 0x100E2DF20, symSize: 0x70 } - - { offset: 0x1404CA, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num51_$LT$impl$u20$core..fmt..Binary$u20$for$u20$u64$GT$3fmt17h87b789913dce4ea7E', symObjAddr: 0x4580, symBinAddr: 0x100E2DF90, symSize: 0x70 } - - { offset: 0x140562, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..Display$u20$for$u20$i128$GT$3fmt17h03387997825805caE', symObjAddr: 0x4CE0, symBinAddr: 0x100E2E290, symSize: 0x80 } - - { offset: 0x140640, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num54_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u128$GT$3fmt17h400ee7a69e7e3d70E', symObjAddr: 0x5400, symBinAddr: 0x100E2E940, symSize: 0x90 } - - { offset: 0x1406D7, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num54_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i128$GT$3fmt17h9b139851f5bf0942E', symObjAddr: 0x5370, symBinAddr: 0x100E2E8B0, symSize: 0x90 } - - { offset: 0x140784, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num54_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u128$GT$3fmt17he8786fe086b9370fE', symObjAddr: 0x5590, symBinAddr: 0x100E2EA60, symSize: 0x90 } - - { offset: 0x14081B, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num54_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i128$GT$3fmt17h0dde8d47dde92464E', symObjAddr: 0x5500, symBinAddr: 0x100E2E9D0, symSize: 0x90 } - - { offset: 0x1408CF, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num52_$LT$impl$u20$core..fmt..Debug$u20$for$u20$usize$GT$3fmt17hfb36d3f48ce35194E', symObjAddr: 0x4970, symBinAddr: 0x100E2E000, symSize: 0x1B0 } - - { offset: 0x140A62, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..Display$u20$for$u20$u128$GT$3fmt17hc151ef5bd5bfbfc3E', symObjAddr: 0x4D60, symBinAddr: 0x100E2E310, symSize: 0x60 } - - { offset: 0x140B14, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i32$GT$3fmt17h9099dd3b6609d9c9E', symObjAddr: 0x4E30, symBinAddr: 0x100E2E3E0, symSize: 0x70 } - - { offset: 0x140BC1, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i64$GT$3fmt17h7fe475cc77fdabc1E', symObjAddr: 0x4EA0, symBinAddr: 0x100E2E450, symSize: 0x70 } - - { offset: 0x140C6E, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i32$GT$3fmt17h6e54a1b9ece3e4e2E', symObjAddr: 0x50D0, symBinAddr: 0x100E2E680, symSize: 0x70 } - - { offset: 0x140D1B, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i64$GT$3fmt17h7842e0b08a296d10E', symObjAddr: 0x5140, symBinAddr: 0x100E2E6F0, symSize: 0x70 } - - { offset: 0x140DC9, size: 0x8, addend: 0x0, symName: '__ZN45_$LT$$RF$T$u20$as$u20$core..fmt..LowerHex$GT$3fmt17h5aa9f405965fe871E', symObjAddr: 0xB90, symBinAddr: 0x100E2C9D0, symSize: 0x70 } - - { offset: 0x140F1A, size: 0x8, addend: 0x0, symName: __ZN4core3fmt17pointer_fmt_inner17h711874d0b4e6f977E, symObjAddr: 0x12F0, symBinAddr: 0x100E2CB80, symSize: 0xA0 } - - { offset: 0x140FFC, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h2071950b9c61d63aE, symObjAddr: 0x5F80, symBinAddr: 0x100E2EAF0, symSize: 0xD0 } - - { offset: 0x141112, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17h8d51fbeb6b52b857E, symObjAddr: 0x6050, symBinAddr: 0x100E2EBC0, symSize: 0xD0 } - - { offset: 0x141228, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17hb27e58eb16ff6da4E, symObjAddr: 0x6120, symBinAddr: 0x100E2EC90, symSize: 0xD0 } - - { offset: 0x14133E, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write10write_char17hde73760eeba78556E, symObjAddr: 0x61F0, symBinAddr: 0x100E2ED60, symSize: 0xD0 } - - { offset: 0x1414A3, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h9400c75ed7383cb9E, symObjAddr: 0x62C0, symBinAddr: 0x100E2EE30, symSize: 0x20 } - - { offset: 0x1414D3, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h9b4c41736496ec82E, symObjAddr: 0x62E0, symBinAddr: 0x100E2EE50, symSize: 0x20 } - - { offset: 0x141503, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17h9fa7b70b699879acE, symObjAddr: 0x6300, symBinAddr: 0x100E2EE70, symSize: 0x20 } - - { offset: 0x141533, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17haf2b69f7591b8630E, symObjAddr: 0x6320, symBinAddr: 0x100E2EE90, symSize: 0x20 } - - { offset: 0x141563, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5Write9write_fmt17heea0bc1cb6e3bf08E, symObjAddr: 0x6340, symBinAddr: 0x100E2EEB0, symSize: 0x20 } - - { offset: 0x1415CE, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float29float_to_decimal_common_exact17h038435fd201c0897E, symObjAddr: 0x6360, symBinAddr: 0x100E2EED0, symSize: 0x3F0 } - - { offset: 0x1416CE, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float29float_to_decimal_common_exact17he2e58e9bb62310c5E, symObjAddr: 0x6B40, symBinAddr: 0x100E2F2C0, symSize: 0x410 } - - { offset: 0x1417D6, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float32float_to_decimal_common_shortest17h9fc084246807eb2aE, symObjAddr: 0x7250, symBinAddr: 0x100E2F6D0, symSize: 0x310 } - - { offset: 0x1418A4, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float32float_to_decimal_common_shortest17hdb682bcab7d4ffbbE, symObjAddr: 0x7560, symBinAddr: 0x100E2F9E0, symSize: 0x300 } - - { offset: 0x141972, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float36float_to_exponential_common_shortest17h2f9e5944c91e6281E, symObjAddr: 0x8400, symBinAddr: 0x100E2FCE0, symSize: 0x3B0 } - - { offset: 0x141A8B, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5float36float_to_exponential_common_shortest17hb008fdc32fb7cbe5E, symObjAddr: 0x87B0, symBinAddr: 0x100E30090, symSize: 0x390 } - - { offset: 0x141BCB, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt5float50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$f32$GT$3fmt17he0550f86ea404b2eE', symObjAddr: 0x8FB0, symBinAddr: 0x100E30420, symSize: 0x80 } - - { offset: 0x141C79, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt5float50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$f64$GT$3fmt17h5b40c35d49bcd0a9E', symObjAddr: 0x9030, symBinAddr: 0x100E304A0, symSize: 0x90 } - - { offset: 0x141D13, size: 0x8, addend: 0x0, symName: '__ZN4core3fmt5float52_$LT$impl$u20$core..fmt..Display$u20$for$u20$f64$GT$3fmt17h0d041ae1d2d8ed5dE', symObjAddr: 0x9140, symBinAddr: 0x100E30530, symSize: 0x40 } - - { offset: 0x141DCE, size: 0x8, addend: 0x0, symName: __ZN4core3fmt5write17hb40f84478aa94947E, symObjAddr: 0x9330, symBinAddr: 0x100E30570, symSize: 0x220 } - - { offset: 0x141F91, size: 0x8, addend: 0x0, symName: __ZN4core3fmt9Formatter12pad_integral12write_prefix17hbd05ae72bfa062a2E, symObjAddr: 0xA340, symBinAddr: 0x100E31180, symSize: 0x60 } - - { offset: 0x142003, size: 0x8, addend: 0x0, symName: '__ZN53_$LT$core..fmt..Error$u20$as$u20$core..fmt..Debug$GT$3fmt17he1601d3131babc3fE', symObjAddr: 0x19440, symBinAddr: 0x100E3B170, symSize: 0x20 } - - { offset: 0x142048, size: 0x8, addend: 0x0, symName: '__ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17h304afdda4923426eE', symObjAddr: 0x1AFD0, symBinAddr: 0x100E3BAE0, symSize: 0x20 } - - { offset: 0x142063, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Debug$GT$3fmt17hc55a18d7ea22ed24E', symObjAddr: 0x1A110, symBinAddr: 0x100E3B190, symSize: 0x20 } - - { offset: 0x142272, size: 0x8, addend: 0x0, symName: __ZN4core6result13unwrap_failed17h42637f5d22a2ffe7E, symObjAddr: 0x17B50, symBinAddr: 0x100E964D0, symSize: 0x80 } - - { offset: 0x1422B2, size: 0x8, addend: 0x0, symName: '__ZN105_$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$u20$as$u20$core..fmt..Debug$GT$3fmt17h42c4f8093616763aE', symObjAddr: 0x170, symBinAddr: 0x100E2C240, symSize: 0x50 } - - { offset: 0x142413, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$core..net..ip_addr..IpAddr$u20$as$u20$core..fmt..Display$GT$3fmt17h089b0eb2540564ceE', symObjAddr: 0x1C7A0, symBinAddr: 0x100E3BFA0, symSize: 0x20 } - - { offset: 0x14242E, size: 0x8, addend: 0x0, symName: '__ZN63_$LT$core..net..ip_addr..IpAddr$u20$as$u20$core..fmt..Debug$GT$3fmt17he52f5aefb75af9a6E', symObjAddr: 0x1C440, symBinAddr: 0x100E3BF60, symSize: 0x20 } - - { offset: 0x142467, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$core..net..ip_addr..Ipv4Addr$u20$as$u20$core..fmt..Debug$GT$3fmt17h2a9449e404f33f69E', symObjAddr: 0x1C7C0, symBinAddr: 0x100E3BFC0, symSize: 0x10 } - - { offset: 0x142489, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..fmt..Debug$GT$3fmt17h5445fe44f5c3fe9fE', symObjAddr: 0x1C7D0, symBinAddr: 0x100E3BFD0, symSize: 0x10 } - - { offset: 0x1424AB, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..net..ip_addr..Ipv4Addr$u20$as$u20$core..fmt..Display$GT$3fmt17he98468f3c8c42e71E', symObjAddr: 0x1CCA0, symBinAddr: 0x100E3C0D0, symSize: 0x190 } - - { offset: 0x1425D5, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..fmt..Display$GT$3fmt12fmt_subslice17hc2210f40f4e03e13E', symObjAddr: 0x1CE30, symBinAddr: 0x100E3C260, symSize: 0x130 } - - { offset: 0x1425ED, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..fmt..Display$GT$3fmt12fmt_subslice17hc2210f40f4e03e13E', symObjAddr: 0x1CE30, symBinAddr: 0x100E3C260, symSize: 0x130 } - - { offset: 0x1426B2, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..fmt..Display$GT$3fmt17h76d285c81f606563E', symObjAddr: 0x1CF60, symBinAddr: 0x100E3C390, symSize: 0x8B0 } - - { offset: 0x1429F7, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$core..net..display_buffer..DisplayBuffer$LT$_$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h1c7d74fdc5368b1cE', symObjAddr: 0x214F0, symBinAddr: 0x100E3DFE0, symSize: 0x50 } - - { offset: 0x142AA8, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$core..net..display_buffer..DisplayBuffer$LT$_$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17habdabf36c9594075E', symObjAddr: 0x21540, symBinAddr: 0x100E3E030, symSize: 0x50 } - - { offset: 0x142B59, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$core..net..display_buffer..DisplayBuffer$LT$_$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17hd9cd426b3e6501d6E', symObjAddr: 0x21590, symBinAddr: 0x100E3E080, symSize: 0x50 } - - { offset: 0x142C0A, size: 0x8, addend: 0x0, symName: '__ZN86_$LT$core..net..display_buffer..DisplayBuffer$LT$_$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17hefac98da441c1e4eE', symObjAddr: 0x215E0, symBinAddr: 0x100E3E0D0, symSize: 0x50 } - - { offset: 0x142ECD, size: 0x8, addend: 0x0, symName: __ZN4core3net6parser6Parser14read_ipv4_addr17hdefc8273a0de9928E, symObjAddr: 0xCC60, symBinAddr: 0x100E32EC0, symSize: 0x3C0 } - - { offset: 0x1430E2, size: 0x8, addend: 0x0, symName: __ZN4core3net6parser6Parser14read_ipv6_addr17h89e06e547664c375E, symObjAddr: 0xD250, symBinAddr: 0x100E334B0, symSize: 0x140 } - - { offset: 0x14340F, size: 0x8, addend: 0x0, symName: __ZN4core3net6parser6Parser19read_socket_addr_v617hf7588a5413b08276E, symObjAddr: 0xD390, symBinAddr: 0x100E335F0, symSize: 0x1E0 } - - { offset: 0x143A01, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser6Parser11read_number28_$u7b$$u7b$closure$u7d$$u7d$17hed7dadbe55435845E', symObjAddr: 0xC9F0, symBinAddr: 0x100E32C50, symSize: 0x270 } - - { offset: 0x143C6D, size: 0x8, addend: 0x0, symName: __ZN4core3net6parser6Parser14read_ipv6_addr11read_groups17hc0b08764998de27fE, symObjAddr: 0xD020, symBinAddr: 0x100E33280, symSize: 0x230 } - - { offset: 0x14402E, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser83_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..ip_addr..IpAddr$GT$8from_str17h09b0f4e8cef2684eE', symObjAddr: 0xD570, symBinAddr: 0x100E337D0, symSize: 0xA0 } - - { offset: 0x144116, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser85_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..ip_addr..Ipv4Addr$GT$8from_str17h2abb23af2ded8132E', symObjAddr: 0xD610, symBinAddr: 0x100E33870, symSize: 0x70 } - - { offset: 0x144135, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser85_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..ip_addr..Ipv4Addr$GT$8from_str17h2abb23af2ded8132E', symObjAddr: 0xD610, symBinAddr: 0x100E33870, symSize: 0x70 } - - { offset: 0x144192, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser85_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..ip_addr..Ipv6Addr$GT$8from_str17h767276666649ca96E', symObjAddr: 0xD680, symBinAddr: 0x100E338E0, symSize: 0x60 } - - { offset: 0x14421B, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser91_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..socket_addr..SocketAddr$GT$8from_str17h59c28ef9bc24323dE', symObjAddr: 0xD6E0, symBinAddr: 0x100E33940, symSize: 0x20 } - - { offset: 0x14423D, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser93_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$core..net..socket_addr..SocketAddrV4$GT$8from_str17hf847f9bb8fdb0909E', symObjAddr: 0xD700, symBinAddr: 0x100E33960, symSize: 0xF0 } - - { offset: 0x144459, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$core..net..parser..AddrParseError$u20$as$u20$core..fmt..Display$GT$3fmt17hd63019de4443a6cfE', symObjAddr: 0x1F800, symBinAddr: 0x100E3DA60, symSize: 0x30 } - - { offset: 0x1444AD, size: 0x8, addend: 0x0, symName: '__ZN4core3net6parser52_$LT$impl$u20$core..net..socket_addr..SocketAddr$GT$11parse_ascii17h5720d19820280328E', symObjAddr: 0xC6E0, symBinAddr: 0x100E32AB0, symSize: 0x1A0 } - - { offset: 0x1447C3, size: 0x8, addend: 0x0, symName: '__ZN73_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..fmt..Display$GT$3fmt17h89e572ffaa3011adE', symObjAddr: 0x1F8D0, symBinAddr: 0x100E3DAF0, symSize: 0x20 } - - { offset: 0x1447DE, size: 0x8, addend: 0x0, symName: '__ZN71_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..fmt..Debug$GT$3fmt17hd158c318942cb327E', symObjAddr: 0x1F610, symBinAddr: 0x100E3D9D0, symSize: 0x20 } - - { offset: 0x144817, size: 0x8, addend: 0x0, symName: '__ZN73_$LT$core..net..socket_addr..SocketAddrV4$u20$as$u20$core..fmt..Debug$GT$3fmt17h47e1f42708d11cecE', symObjAddr: 0x1F8F0, symBinAddr: 0x100E3DB10, symSize: 0x10 } - - { offset: 0x144839, size: 0x8, addend: 0x0, symName: '__ZN73_$LT$core..net..socket_addr..SocketAddrV6$u20$as$u20$core..fmt..Debug$GT$3fmt17h3625baf0a83b1a77E', symObjAddr: 0x1F900, symBinAddr: 0x100E3DB20, symSize: 0x10 } - - { offset: 0x14485B, size: 0x8, addend: 0x0, symName: '__ZN75_$LT$core..net..socket_addr..SocketAddrV4$u20$as$u20$core..fmt..Display$GT$3fmt17hc41ca747cab3b505E', symObjAddr: 0x1FE20, symBinAddr: 0x100E3DB90, symSize: 0x180 } - - { offset: 0x1449D7, size: 0x8, addend: 0x0, symName: '__ZN75_$LT$core..net..socket_addr..SocketAddrV6$u20$as$u20$core..fmt..Display$GT$3fmt17habb1a135028fe6e9E', symObjAddr: 0x1FFA0, symBinAddr: 0x100E3DD10, symSize: 0x2D0 } - - { offset: 0x144D90, size: 0x8, addend: 0x0, symName: '__ZN4core3str21_$LT$impl$u20$str$GT$12escape_debug17hf3e1b227b2e8cc69E', symObjAddr: 0x15C40, symBinAddr: 0x100E392E0, symSize: 0xF0 } - - { offset: 0x145038, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..str..iter..EscapeDebug$u20$as$u20$core..fmt..Display$GT$3fmt17h04b9b0b849255002E', symObjAddr: 0x1D8A0, symBinAddr: 0x100E3CC40, symSize: 0x9A0 } - - { offset: 0x145B2D, size: 0x8, addend: 0x0, symName: __ZN4core3str5count14do_count_chars17h4e3f9821492f251cE, symObjAddr: 0x15DD0, symBinAddr: 0x100E393D0, symSize: 0x5C0 } - - { offset: 0x145F9A, size: 0x8, addend: 0x0, symName: __ZN4core3str5count23char_count_general_case17h15aba1e95e9ebcfbE, symObjAddr: 0x16390, symBinAddr: 0x100E39990, symSize: 0xB0 } - - { offset: 0x145FF4, size: 0x8, addend: 0x0, symName: __ZN4core3str5count23char_count_general_case17h15aba1e95e9ebcfbE, symObjAddr: 0x16390, symBinAddr: 0x100E39990, symSize: 0xB0 } - - { offset: 0x146076, size: 0x8, addend: 0x0, symName: __ZN4core3str16slice_error_fail17ha81dfbcf7fcc6f32E, symObjAddr: 0x15850, symBinAddr: 0x100E960F0, symSize: 0x10 } - - { offset: 0x146090, size: 0x8, addend: 0x0, symName: __ZN4core3str19slice_error_fail_rt17h4241ef8d098dae2bE, symObjAddr: 0x158A0, symBinAddr: 0x100E38F40, symSize: 0x3A0 } - - { offset: 0x14628D, size: 0x8, addend: 0x0, symName: __ZN4core3str7pattern11StrSearcher3new17hbbe31079938b9c37E, symObjAddr: 0x16480, symBinAddr: 0x100E39A40, symSize: 0x650 } - - { offset: 0x14655E, size: 0x8, addend: 0x0, symName: __ZN4core3str8converts9from_utf817h154f869b704af494E, symObjAddr: 0x16CE0, symBinAddr: 0x100E3A090, symSize: 0x210 } - - { offset: 0x1465CB, size: 0x8, addend: 0x0, symName: '__ZN60_$LT$core..str..lossy..Debug$u20$as$u20$core..fmt..Debug$GT$3fmt17h83cd8155548690f5E', symObjAddr: 0x1BD30, symBinAddr: 0x100E3BB00, symSize: 0x440 } - - { offset: 0x1469A4, size: 0x8, addend: 0x0, symName: '__ZN87_$LT$core..str..lossy..Utf8Chunks$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h73f5635154d8fdeeE', symObjAddr: 0x219B0, symBinAddr: 0x100E3E120, symSize: 0x1A0 } - - { offset: 0x146BCB, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$core..str..error..Utf8Error$u20$as$u20$core..fmt..Display$GT$3fmt17hd916602f37785f4cE', symObjAddr: 0x1C9F0, symBinAddr: 0x100E3BFE0, symSize: 0xC0 } - - { offset: 0x146C31, size: 0x8, addend: 0x0, symName: '__ZN71_$LT$core..str..error..ParseBoolError$u20$as$u20$core..fmt..Display$GT$3fmt17hea132f996204b9f7E', symObjAddr: 0x1F6E0, symBinAddr: 0x100E3DA40, symSize: 0x20 } - - { offset: 0x146D4D, size: 0x8, addend: 0x0, symName: __ZN4core3ffi5c_str4CStr19from_bytes_with_nul17h2284ab2a2d1fc3baE, symObjAddr: 0x10A0, symBinAddr: 0x100E2CA40, symSize: 0x120 } - - { offset: 0x146E3B, size: 0x8, addend: 0x0, symName: __ZN4core3ffi5c_str4CStr6to_str17hbfbb53b3029ed3c0E, symObjAddr: 0x12C0, symBinAddr: 0x100E2CB60, symSize: 0x20 } - - { offset: 0x146EC7, size: 0x8, addend: 0x0, symName: __ZN4core4cell22panic_already_borrowed8do_panic7runtime17hf7f16bf95076b635E, symObjAddr: 0x16F00, symBinAddr: 0x100E96110, symSize: 0x60 } - - { offset: 0x146EFB, size: 0x8, addend: 0x0, symName: __ZN4core4cell22panic_already_borrowed17ha5090d1a47222c8eE, symObjAddr: 0x16EF0, symBinAddr: 0x100E96100, symSize: 0x10 } - - { offset: 0x146F45, size: 0x8, addend: 0x0, symName: __ZN4core4cell30panic_already_mutably_borrowed8do_panic7runtime17hc4acf2539c395a23E, symObjAddr: 0x16F70, symBinAddr: 0x100E96180, symSize: 0x60 } - - { offset: 0x146F79, size: 0x8, addend: 0x0, symName: __ZN4core4cell30panic_already_mutably_borrowed17h83c2817ffe2bf1e8E, symObjAddr: 0x16F60, symBinAddr: 0x100E96170, symSize: 0x10 } - - { offset: 0x146FB0, size: 0x8, addend: 0x0, symName: '__ZN62_$LT$core..cell..BorrowError$u20$as$u20$core..fmt..Display$GT$3fmt17he2bbdeed7d10104aE', symObjAddr: 0x1C270, symBinAddr: 0x100E3BF40, symSize: 0x20 } - - { offset: 0x146FE9, size: 0x8, addend: 0x0, symName: '__ZN65_$LT$core..cell..BorrowMutError$u20$as$u20$core..fmt..Display$GT$3fmt17h71a140bd32c98443E', symObjAddr: 0x1C780, symBinAddr: 0x100E3BF80, symSize: 0x20 } - - { offset: 0x14703D, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data15grapheme_extend11lookup_slow17h3aa8fc9e189773a3E, symObjAddr: 0x18070, symBinAddr: 0x100E3AB80, symSize: 0x110 } - - { offset: 0x147327, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data10alphabetic11lookup_slow17hdc48d18efee44bb2E, symObjAddr: 0x17BD0, symBinAddr: 0x100E3A840, symSize: 0x100 } - - { offset: 0x14750D, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data11conversions8to_lower17h14c44c4c5548572aE, symObjAddr: 0x17CD0, symBinAddr: 0x100E3A940, symSize: 0x140 } - - { offset: 0x14752C, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data11conversions8to_lower17h14c44c4c5548572aE, symObjAddr: 0x17CD0, symBinAddr: 0x100E3A940, symSize: 0x140 } - - { offset: 0x147656, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data14case_ignorable11lookup_slow17h44f691547921f68cE, symObjAddr: 0x17F70, symBinAddr: 0x100E3AA80, symSize: 0x100 } - - { offset: 0x147843, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data1n11lookup_slow17h2497b1fdac511c93E, symObjAddr: 0x18180, symBinAddr: 0x100E3AC90, symSize: 0x100 } - - { offset: 0x147A23, size: 0x8, addend: 0x0, symName: __ZN4core7unicode12unicode_data5cased11lookup_slow17h1ba500edb287a7b6E, symObjAddr: 0x18280, symBinAddr: 0x100E3AD90, symSize: 0xF0 } - - { offset: 0x147C04, size: 0x8, addend: 0x0, symName: __ZN4core7unicode9printable12is_printable17hb9f0ce4ba44496f4E, symObjAddr: 0x18550, symBinAddr: 0x100E3AE80, symSize: 0x2F0 } - - { offset: 0x147F67, size: 0x8, addend: 0x0, symName: __ZN4core5alloc6layout6Layout19is_size_align_valid17h6820829d212f00f1E, symObjAddr: 0x174C0, symBinAddr: 0x100E3A570, symSize: 0x30 } - - { offset: 0x147FB4, size: 0x8, addend: 0x0, symName: __ZN4core9panicking11panic_const23panic_const_div_by_zero17hf0dec845555af972E, symObjAddr: 0x18840, symBinAddr: 0x100E96550, symSize: 0x40 } - - { offset: 0x147FE4, size: 0x8, addend: 0x0, symName: __ZN4core9panicking11panic_const23panic_const_rem_by_zero17h6c6e1cb09ac1c34aE, symObjAddr: 0x188C0, symBinAddr: 0x100E96590, symSize: 0x40 } - - { offset: 0x148014, size: 0x8, addend: 0x0, symName: __ZN4core9panicking11panic_const28panic_const_async_fn_resumed17h84f904b04329ccf3E, symObjAddr: 0x18B00, symBinAddr: 0x100E965D0, symSize: 0x40 } - - { offset: 0x148044, size: 0x8, addend: 0x0, symName: __ZN4core9panicking11panic_const34panic_const_async_fn_resumed_panic17ha03d4bc4292823e6E, symObjAddr: 0x18C80, symBinAddr: 0x100E96610, symSize: 0x40 } - - { offset: 0x148075, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17h21a20a6b15b6b2dcE, symObjAddr: 0x18DBF, symBinAddr: 0x100E9665F, symSize: 0x2F } - - { offset: 0x148090, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17hc6eed8944ea3c063E, symObjAddr: 0x18DEE, symBinAddr: 0x100E9668E, symSize: 0x2F } - - { offset: 0x1480AB, size: 0x8, addend: 0x0, symName: __ZN4core9panicking13assert_failed17hcc3333473547db02E, symObjAddr: 0x18E1D, symBinAddr: 0x100E966BD, symSize: 0x33 } - - { offset: 0x1480C6, size: 0x8, addend: 0x0, symName: __ZN4core9panicking14panic_nounwind17h96f8a52144e13bcbE, symObjAddr: 0x18E50, symBinAddr: 0x100E966F0, symSize: 0x50 } - - { offset: 0x1480F6, size: 0x8, addend: 0x0, symName: __ZN4core9panicking16panic_in_cleanup17hd104481b94ca5e3cE, symObjAddr: 0x18F18, symBinAddr: 0x100E96748, symSize: 0x13 } - - { offset: 0x148111, size: 0x8, addend: 0x0, symName: __ZN4core9panicking18panic_bounds_check17h8869c814f59239f9E, symObjAddr: 0x18F2B, symBinAddr: 0x100E9675B, symSize: 0x65 } - - { offset: 0x148151, size: 0x8, addend: 0x0, symName: __ZN4core9panicking18panic_nounwind_fmt17hd642507177360d37E, symObjAddr: 0x18F90, symBinAddr: 0x100E967C0, symSize: 0x5B } - - { offset: 0x148198, size: 0x8, addend: 0x0, symName: __ZN4core9panicking19assert_failed_inner17hdbafa2a56811135bE, symObjAddr: 0x18FEB, symBinAddr: 0x100E9681B, symSize: 0x127 } - - { offset: 0x1481D2, size: 0x8, addend: 0x0, symName: __ZN4core9panicking19panic_cannot_unwind17h25fbd5d21a3902c9E, symObjAddr: 0x19112, symBinAddr: 0x100E96942, symSize: 0x1E } - - { offset: 0x1481ED, size: 0x8, addend: 0x0, symName: __ZN4core9panicking26panic_nounwind_nobacktrace17h654b8f8486173d78E, symObjAddr: 0x19130, symBinAddr: 0x100E96960, symSize: 0x4D } - - { offset: 0x14821D, size: 0x8, addend: 0x0, symName: __ZN4core9panicking5panic17h4604ae42d1e601b0E, symObjAddr: 0x19280, symBinAddr: 0x100E969B0, symSize: 0x50 } - - { offset: 0x14824D, size: 0x8, addend: 0x0, symName: __ZN4core9panicking9panic_fmt17h0799f7744622f0a3E, symObjAddr: 0x192D0, symBinAddr: 0x100E96A00, symSize: 0x20 } - - { offset: 0x1482D4, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..time..Duration$u20$as$u20$core..fmt..Debug$GT$3fmt11fmt_decimal17h3d7d34986e9fcc34E', symObjAddr: 0x1A150, symBinAddr: 0x100E3B1D0, symSize: 0x5E0 } - - { offset: 0x14858D, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..time..Duration$u20$as$u20$core..fmt..Debug$GT$3fmt11fmt_decimal28_$u7b$$u7b$closure$u7d$$u7d$17h95d8c5087f7c2247E', symObjAddr: 0x1A730, symBinAddr: 0x100E3B7B0, symSize: 0x260 } - - { offset: 0x1486EA, size: 0x8, addend: 0x0, symName: '__ZN57_$LT$core..time..Duration$u20$as$u20$core..fmt..Debug$GT$3fmt17he789fd739bbe7f7bE', symObjAddr: 0x1A990, symBinAddr: 0x100E3BA10, symSize: 0xD0 } - - { offset: 0x148723, size: 0x8, addend: 0x0, symName: '__ZN72_$LT$core..time..TryFromFloatSecsError$u20$as$u20$core..fmt..Display$GT$3fmt17h55f74fd8aaeabb1eE', symObjAddr: 0x1F870, symBinAddr: 0x100E3DAB0, symSize: 0x40 } - - { offset: 0x1487BE, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$core..sync..atomic..AtomicU32$u20$as$u20$core..fmt..Debug$GT$3fmt17ha8430fdf50ef0589E', symObjAddr: 0x1CC50, symBinAddr: 0x100E3C0A0, symSize: 0x20 } - - { offset: 0x148831, size: 0x8, addend: 0x0, symName: '__ZN66_$LT$core..sync..atomic..AtomicU64$u20$as$u20$core..fmt..Debug$GT$3fmt17h5955b38b4defccaaE', symObjAddr: 0x1CC70, symBinAddr: 0x100E3C0C0, symSize: 0x10 } - - { offset: 0x148896, size: 0x8, addend: 0x0, symName: '__ZN67_$LT$core..sync..atomic..AtomicBool$u20$as$u20$core..fmt..Debug$GT$3fmt17h3d2450bf8381c9a7E', symObjAddr: 0x1E240, symBinAddr: 0x100E3D5E0, symSize: 0x40 } - - { offset: 0x148971, size: 0x8, addend: 0x0, symName: '__ZN68_$LT$core..sync..atomic..AtomicUsize$u20$as$u20$core..fmt..Debug$GT$3fmt17h7d2c14c504fda875E', symObjAddr: 0x1E890, symBinAddr: 0x100E3D980, symSize: 0x20 } - - { offset: 0x1489DC, size: 0x8, addend: 0x0, symName: ___umodti3, symObjAddr: 0x0, symBinAddr: 0x100E3E2C0, symSize: 0xB6 } - - { offset: 0x148A02, size: 0x8, addend: 0x0, symName: ___umodti3, symObjAddr: 0x0, symBinAddr: 0x100E3E2C0, symSize: 0xB6 } - - { offset: 0x148BB7, size: 0x8, addend: 0x0, symName: ___udivti3, symObjAddr: 0x0, symBinAddr: 0x100E3E380, symSize: 0xAC } - - { offset: 0x148BDD, size: 0x8, addend: 0x0, symName: ___udivti3, symObjAddr: 0x0, symBinAddr: 0x100E3E380, symSize: 0xAC } - - { offset: 0x148D7E, size: 0x8, addend: 0x0, symName: ___floattidf, symObjAddr: 0x0, symBinAddr: 0x100E3E430, symSize: 0xAD } - - { offset: 0x148DA4, size: 0x8, addend: 0x0, symName: ___floattidf, symObjAddr: 0x0, symBinAddr: 0x100E3E430, symSize: 0xAD } -... diff --git a/Swiftier.xcodeproj/project.pbxproj b/Swiftier.xcodeproj/project.pbxproj deleted file mode 100644 index dd9411c..0000000 --- a/Swiftier.xcodeproj/project.pbxproj +++ /dev/null @@ -1,635 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 77; - objects = { - -/* Begin PBXBuildFile section */ - E025243B2F1BDA8500F5065A /* SwiftierHelper in Copy Helper Executable */ = {isa = PBXBuildFile; fileRef = E0AC7EE12F192DD600FC425C /* SwiftierHelper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - E0AC7EEE2F19307C00FC425C /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0AC7EED2F19307C00FC425C /* ServiceManagement.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - E0AC7EF52F1933C600FC425C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E0933DC42F16A25B00C7DE59 /* Project object */; - proxyType = 1; - remoteGlobalIDString = E0AC7EE02F192DD600FC425C; - remoteInfo = EasyTierHelper; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - E0933E002F16A42100C7DE59 /* Copy Helper Executable */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 6; - files = ( - E025243B2F1BDA8500F5065A /* SwiftierHelper in Copy Helper Executable */, - ); - name = "Copy Helper Executable"; - runOnlyForDeploymentPostprocessing = 0; - }; - E0AC7ED12F19208200FC425C /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = Contents/Library/LaunchDaemons; - dstSubfolderSpec = 1; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E0AC7EDF2F192DD600FC425C /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - E0933DCC2F16A25B00C7DE59 /* Swiftier.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Swiftier.app; sourceTree = BUILT_PRODUCTS_DIR; }; - E0AC7EE12F192DD600FC425C /* SwiftierHelper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = SwiftierHelper; sourceTree = BUILT_PRODUCTS_DIR; }; - E0AC7EED2F19307C00FC425C /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - E0DA09B32F17A75300C54228 /* Exceptions for "EasyTier" folder in "Swiftier" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Info.plist, - ); - target = E0933DCB2F16A25B00C7DE59 /* Swiftier */; - }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ - -/* Begin PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */ - E025243D2F1BDABB00F5065A /* Exceptions for "EasyTier" folder in "Copy Files" phase from "Swiftier" target */ = { - isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet; - attributesByRelativePath = { - com.alick.swiftier.helper.plist = (CodeSignOnCopy, ); - }; - buildPhase = E0AC7ED12F19208200FC425C /* CopyFiles */; - membershipExceptions = ( - com.alick.swiftier.helper.plist, - ); - }; -/* End PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */ - -/* Begin PBXFileSystemSynchronizedRootGroup section */ - E0933DCE2F16A25B00C7DE59 /* EasyTier */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - E0DA09B32F17A75300C54228 /* Exceptions for "EasyTier" folder in "Swiftier" target */, - E025243D2F1BDABB00F5065A /* Exceptions for "EasyTier" folder in "Copy Files" phase from "Swiftier" target */, - ); - path = EasyTier; - sourceTree = ""; - }; - E0AC7EA42F18E97F00FC425C /* EasyTierHelper */ = { - isa = PBXFileSystemSynchronizedRootGroup; - path = EasyTierHelper; - sourceTree = ""; - }; - E0AC7EE22F192DD600FC425C /* EasyTierHelper */ = { - isa = PBXFileSystemSynchronizedRootGroup; - path = EasyTierHelper; - sourceTree = ""; - }; -/* End PBXFileSystemSynchronizedRootGroup section */ - -/* Begin PBXFrameworksBuildPhase section */ - E0933DC92F16A25B00C7DE59 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E0AC7EEE2F19307C00FC425C /* ServiceManagement.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E0AC7EDE2F192DD600FC425C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - E0933DC32F16A25B00C7DE59 = { - isa = PBXGroup; - children = ( - E0933DCE2F16A25B00C7DE59 /* EasyTier */, - E0AC7EA42F18E97F00FC425C /* EasyTierHelper */, - E0AC7EE22F192DD600FC425C /* EasyTierHelper */, - E0AC7EEC2F19307C00FC425C /* Frameworks */, - E0933DCD2F16A25B00C7DE59 /* Products */, - ); - sourceTree = ""; - }; - E0933DCD2F16A25B00C7DE59 /* Products */ = { - isa = PBXGroup; - children = ( - E0933DCC2F16A25B00C7DE59 /* Swiftier.app */, - E0AC7EE12F192DD600FC425C /* SwiftierHelper */, - ); - name = Products; - sourceTree = ""; - }; - E0AC7EEC2F19307C00FC425C /* Frameworks */ = { - isa = PBXGroup; - children = ( - E0AC7EED2F19307C00FC425C /* ServiceManagement.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - E0933DCB2F16A25B00C7DE59 /* Swiftier */ = { - isa = PBXNativeTarget; - buildConfigurationList = E0933DED2F16A26200C7DE59 /* Build configuration list for PBXNativeTarget "Swiftier" */; - buildPhases = ( - E0933DC82F16A25B00C7DE59 /* Sources */, - E0933DC92F16A25B00C7DE59 /* Frameworks */, - E0933DCA2F16A25B00C7DE59 /* Resources */, - E0933E002F16A42100C7DE59 /* Copy Helper Executable */, - E0AC7ED12F19208200FC425C /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - E0AC7EF62F1933C600FC425C /* PBXTargetDependency */, - ); - fileSystemSynchronizedGroups = ( - E0933DCE2F16A25B00C7DE59 /* EasyTier */, - ); - name = Swiftier; - packageProductDependencies = ( - ); - productName = EasyTier; - productReference = E0933DCC2F16A25B00C7DE59 /* Swiftier.app */; - productType = "com.apple.product-type.application"; - }; - E0AC7EE02F192DD600FC425C /* SwiftierHelper */ = { - isa = PBXNativeTarget; - buildConfigurationList = E0AC7EE52F192DD600FC425C /* Build configuration list for PBXNativeTarget "SwiftierHelper" */; - buildPhases = ( - E0AC7EDD2F192DD600FC425C /* Sources */, - E0AC7EDE2F192DD600FC425C /* Frameworks */, - E0AC7EDF2F192DD600FC425C /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - fileSystemSynchronizedGroups = ( - E0AC7EE22F192DD600FC425C /* EasyTierHelper */, - ); - name = SwiftierHelper; - packageProductDependencies = ( - ); - productName = EasyTierHelper; - productReference = E0AC7EE12F192DD600FC425C /* SwiftierHelper */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - E0933DC42F16A25B00C7DE59 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 2620; - LastUpgradeCheck = 2630; - TargetAttributes = { - E0933DCB2F16A25B00C7DE59 = { - CreatedOnToolsVersion = 26.2; - }; - E0AC7EE02F192DD600FC425C = { - CreatedOnToolsVersion = 26.2; - }; - }; - }; - buildConfigurationList = E0933DC72F16A25B00C7DE59 /* Build configuration list for PBXProject "Swiftier" */; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = E0933DC32F16A25B00C7DE59; - minimizedProjectReferenceProxies = 1; - preferredProjectObjectVersion = 77; - productRefGroup = E0933DCD2F16A25B00C7DE59 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - E0933DCB2F16A25B00C7DE59 /* Swiftier */, - E0AC7EE02F192DD600FC425C /* SwiftierHelper */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - E0933DCA2F16A25B00C7DE59 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - E0933DC82F16A25B00C7DE59 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E0AC7EDD2F192DD600FC425C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - E0AC7EF62F1933C600FC425C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = E0AC7EE02F192DD600FC425C /* SwiftierHelper */; - targetProxy = E0AC7EF52F1933C600FC425C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - E0933DEB2F16A26200C7DE59 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = J33CVYBKCZ; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 26.2; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - E0933DEC2F16A26200C7DE59 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = J33CVYBKCZ; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 26.2; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = macosx; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_COMPILATION_MODE = wholemodule; - }; - name = Release; - }; - E0933DEE2F16A26200C7DE59 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = Swiftier; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; - AUTOMATION_APPLE_EVENTS = YES; - CODE_SIGN_ENTITLEMENTS = EasyTier/EasyTier.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CREATE_INFOPLIST_SECTION_IN_BINARY = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = KLU8GF65GP; - ENABLE_APP_SANDBOX = NO; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO; - ENABLE_RESOURCE_ACCESS_CALENDARS = NO; - ENABLE_RESOURCE_ACCESS_CAMERA = NO; - ENABLE_RESOURCE_ACCESS_CONTACTS = NO; - ENABLE_RESOURCE_ACCESS_LOCATION = NO; - ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = NO; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = EasyTier/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Swiftier; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; - INFOPLIST_KEY_LSUIElement = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 13.5; - MARKETING_VERSION = 2.9.9; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = com.alick.swiftier; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - RUNTIME_EXCEPTION_ALLOW_DYLD_ENVIRONMENT_VARIABLES = NO; - RUNTIME_EXCEPTION_ALLOW_JIT = YES; - RUNTIME_EXCEPTION_ALLOW_UNSIGNED_EXECUTABLE_MEMORY = YES; - RUNTIME_EXCEPTION_DEBUGGING_TOOL = NO; - RUNTIME_EXCEPTION_DISABLE_EXECUTABLE_PAGE_PROTECTION = NO; - RUNTIME_EXCEPTION_DISABLE_LIBRARY_VALIDATION = NO; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - E0933DEF2F16A26200C7DE59 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = Swiftier; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; - AUTOMATION_APPLE_EVENTS = YES; - CODE_SIGN_ENTITLEMENTS = EasyTier/EasyTier.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CREATE_INFOPLIST_SECTION_IN_BINARY = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = KLU8GF65GP; - ENABLE_APP_SANDBOX = NO; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO; - ENABLE_RESOURCE_ACCESS_CALENDARS = NO; - ENABLE_RESOURCE_ACCESS_CAMERA = NO; - ENABLE_RESOURCE_ACCESS_CONTACTS = NO; - ENABLE_RESOURCE_ACCESS_LOCATION = NO; - ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = NO; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = EasyTier/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Swiftier; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; - INFOPLIST_KEY_LSUIElement = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - LIBRARY_SEARCH_PATHS = ""; - MACOSX_DEPLOYMENT_TARGET = 13.5; - MARKETING_VERSION = 2.9.9; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = com.alick.swiftier; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - RUNTIME_EXCEPTION_ALLOW_DYLD_ENVIRONMENT_VARIABLES = NO; - RUNTIME_EXCEPTION_ALLOW_JIT = YES; - RUNTIME_EXCEPTION_ALLOW_UNSIGNED_EXECUTABLE_MEMORY = YES; - RUNTIME_EXCEPTION_DEBUGGING_TOOL = NO; - RUNTIME_EXCEPTION_DISABLE_EXECUTABLE_PAGE_PROTECTION = NO; - RUNTIME_EXCEPTION_DISABLE_LIBRARY_VALIDATION = NO; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - E0AC7EE62F192DD600FC425C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - AUTOMATION_APPLE_EVENTS = YES; - CODE_SIGN_ENTITLEMENTS = EasyTierHelper/EasyTierHelper.entitlements; - CODE_SIGN_STYLE = Automatic; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = KLU8GF65GP; - ENABLE_CODE_COVERAGE = NO; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO; - ENABLE_RESOURCE_ACCESS_CALENDARS = NO; - ENABLE_RESOURCE_ACCESS_CAMERA = NO; - ENABLE_RESOURCE_ACCESS_CONTACTS = NO; - ENABLE_RESOURCE_ACCESS_LOCATION = NO; - ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = NO; - INFOPLIST_FILE = EasyTierHelper/Info.plist; - LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/EasyTierCore/target/release"; - MACOSX_DEPLOYMENT_TARGET = 13.5; - OTHER_LDFLAGS = ( - "-leasytier_ios", - "-lc++", - "-lresolv", - "-framework", - SystemConfiguration, - "-framework", - Security, - "-framework", - CoreFoundation, - ); - PRODUCT_BUNDLE_IDENTIFIER = com.alick.swiftier.helper; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUNTIME_EXCEPTION_ALLOW_DYLD_ENVIRONMENT_VARIABLES = NO; - RUNTIME_EXCEPTION_ALLOW_JIT = YES; - RUNTIME_EXCEPTION_ALLOW_UNSIGNED_EXECUTABLE_MEMORY = YES; - RUNTIME_EXCEPTION_DEBUGGING_TOOL = NO; - RUNTIME_EXCEPTION_DISABLE_EXECUTABLE_PAGE_PROTECTION = NO; - RUNTIME_EXCEPTION_DISABLE_LIBRARY_VALIDATION = NO; - SKIP_INSTALL = YES; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - E0AC7EE72F192DD600FC425C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - AUTOMATION_APPLE_EVENTS = YES; - CODE_SIGN_ENTITLEMENTS = EasyTierHelper/EasyTierHelper.entitlements; - CODE_SIGN_STYLE = Automatic; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = KLU8GF65GP; - ENABLE_CODE_COVERAGE = NO; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO; - ENABLE_RESOURCE_ACCESS_CALENDARS = NO; - ENABLE_RESOURCE_ACCESS_CAMERA = NO; - ENABLE_RESOURCE_ACCESS_CONTACTS = NO; - ENABLE_RESOURCE_ACCESS_LOCATION = NO; - ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = NO; - INFOPLIST_FILE = EasyTierHelper/Info.plist; - LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/EasyTierCore/target/release"; - MACOSX_DEPLOYMENT_TARGET = 13.5; - OTHER_LDFLAGS = ( - "-leasytier_ios", - "-lc++", - "-lresolv", - "-framework", - SystemConfiguration, - "-framework", - Security, - "-framework", - CoreFoundation, - ); - PRODUCT_BUNDLE_IDENTIFIER = com.alick.swiftier.helper; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUNTIME_EXCEPTION_ALLOW_DYLD_ENVIRONMENT_VARIABLES = NO; - RUNTIME_EXCEPTION_ALLOW_JIT = YES; - RUNTIME_EXCEPTION_ALLOW_UNSIGNED_EXECUTABLE_MEMORY = YES; - RUNTIME_EXCEPTION_DEBUGGING_TOOL = NO; - RUNTIME_EXCEPTION_DISABLE_EXECUTABLE_PAGE_PROTECTION = NO; - RUNTIME_EXCEPTION_DISABLE_LIBRARY_VALIDATION = NO; - SKIP_INSTALL = YES; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - E0933DC72F16A25B00C7DE59 /* Build configuration list for PBXProject "Swiftier" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E0933DEB2F16A26200C7DE59 /* Debug */, - E0933DEC2F16A26200C7DE59 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E0933DED2F16A26200C7DE59 /* Build configuration list for PBXNativeTarget "Swiftier" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E0933DEE2F16A26200C7DE59 /* Debug */, - E0933DEF2F16A26200C7DE59 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E0AC7EE52F192DD600FC425C /* Build configuration list for PBXNativeTarget "SwiftierHelper" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E0AC7EE62F192DD600FC425C /* Debug */, - E0AC7EE72F192DD600FC425C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = E0933DC42F16A25B00C7DE59 /* Project object */; -} diff --git a/Swiftier.xcodeproj/xcuserdata/alick.xcuserdatad/xcschemes/xcschememanagement.plist b/Swiftier.xcodeproj/xcuserdata/alick.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index a56dfd6..0000000 --- a/Swiftier.xcodeproj/xcuserdata/alick.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,47 +0,0 @@ - - - - - SchemeUserState - - EasyTier.xcscheme_^#shared#^_ - - orderHint - 1 - - EasyTierHelper.xcscheme_^#shared#^_ - - orderHint - 0 - - Swiftier.xcscheme_^#shared#^_ - - orderHint - 0 - - SwiftierHelper.xcscheme_^#shared#^_ - - orderHint - 1 - - - SuppressBuildableAutocreation - - E0933DCB2F16A25B00C7DE59 - - primary - - - E0933DD82F16A26200C7DE59 - - primary - - - E0933DE22F16A26200C7DE59 - - primary - - - - - diff --git a/build_rust_universal.sh b/build_rust_universal.sh deleted file mode 100755 index 2fe3156..0000000 --- a/build_rust_universal.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -set -e - -# Configuration -CRATE_DIR="EasyTierCore" -OUTPUT_LIB_NAME="libeasytier_ios.a" # Matches what Xcode expects (keeping ios name for compat) -FINAL_FAT_LIB_path="EasyTierCore/target/universal/release/$OUTPUT_LIB_NAME" - -# Ensure Environment is Loaded -if [ -f "$HOME/.cargo/env" ]; then - source "$HOME/.cargo/env" -elif [ -f "$HOME/.bash_profile" ]; then - source "$HOME/.bash_profile" -elif [ -f "$HOME/.zshrc" ]; then - source "$HOME/.zshrc" -fi - -# Fallback explicit Export -export PATH="$HOME/.cargo/bin:$PATH" - -# Set deployment target to avoid linker warnings (built for newer macOS) -export MACOSX_DEPLOYMENT_TARGET=13.0 - -echo "🚀 Starting Universal Rust Build..." -echo "Using cargo: $(which cargo)" - -# 1. Ensure Rust targets are installed -echo "Checking/Installing Rust targets..." -rustup target add aarch64-apple-darwin -rustup target add x86_64-apple-darwin - -# 2. Build for ARM64 (Apple Silicon) -echo "----------------------------------------" -echo "🛠️ Building for arm64 (aarch64-apple-darwin)..." -cd "$CRATE_DIR" -cargo build --release --target aarch64-apple-darwin -cd .. - -# 3. Build for x86_64 (Intel) -echo "----------------------------------------" -echo "🛠️ Building for x86_64 (x86_64-apple-darwin)..." -cd "$CRATE_DIR" -cargo build --release --target x86_64-apple-darwin -cd .. - -# 4. Create Directory for Universal Lib -mkdir -p "$CRATE_DIR/target/universal/release" - -# 5. Fuse architectures with lipo -echo "----------------------------------------" -echo "🔗 Creating Universal Binary (Lipo)..." -lipo -create -output "$FINAL_FAT_LIB_path" \ - "$CRATE_DIR/target/aarch64-apple-darwin/release/$OUTPUT_LIB_NAME" \ - "$CRATE_DIR/target/x86_64-apple-darwin/release/$OUTPUT_LIB_NAME" - -echo "✅ Universal Library created at: $FINAL_FAT_LIB_path" -echo "ℹ️ Architectures in library:" -lipo -info "$FINAL_FAT_LIB_path" - -# 6. Copy to the location Xcode expects linked -mkdir -p "$CRATE_DIR/target/release" -cp "$FINAL_FAT_LIB_path" "$CRATE_DIR/target/release/$OUTPUT_LIB_NAME" - -echo "🎉 Done! The fat library is ready and supports Any Mac (arm64, x86_64)." diff --git a/plans/apple_platform_entitlement_checklist.md b/plans/apple_platform_entitlement_checklist.md new file mode 100644 index 0000000..665d009 --- /dev/null +++ b/plans/apple_platform_entitlement_checklist.md @@ -0,0 +1,37 @@ +# Apple Platform Entitlement Audit + +Date: 2026-05-10 + +Scope: current `Spotier.xcodeproj` app and Network Extension targets. + +## Targets + +- `Spotier`: macOS app target with bundle ID `com.alick.spotier`. +- `SpotierNE`: macOS Network Extension target with bundle ID `com.alick.spotier.SpotierNE`. +- No iOS app target exists in the current project. +- No tvOS app target exists in the current project. + +## Entitlements + +- `Spotier/Spotier.entitlements` includes `com.apple.developer.networking.networkextension` with `packet-tunnel-provider`. +- `SpotierNE/SpotierNE.entitlements` includes `com.apple.developer.networking.networkextension` with `packet-tunnel-provider`. +- Both app and extension use App Group `group.com.alick.spotier`. +- Both app and extension use App Sandbox. +- Both app and extension allow network client and server access. +- The project no longer has a LaunchDaemon copy phase or privileged helper copy phase. +- `ServiceManagement.framework` remains linked because `SettingsView` uses `SMAppService.mainApp` for login item management, not a privileged helper. + +## Privacy Notes + +- Spotier is a user-controlled packet tunnel app. VPN packets pass through the local Network Extension provider. +- The app writes selected tunnel configuration to the shared App Group container as `config.toml`. +- The extension serves runtime status to the app through `NETunnelProviderSession.sendProviderMessage`. +- Logs are local app/runtime logs stored in the App Group log file and OSLog; no server upload path is documented in the current code. +- App Store privacy metadata still needs a final product policy review before submission because privacy labels depend on distribution behavior, analytics, and support workflows outside this source audit. + +## Apple Documentation Checked + +- Network Extension entitlement: `com.apple.developer.networking.networkextension` with packet tunnel provider capability. +- App Groups entitlement: `com.apple.security.application-groups`. +- App Sandbox network access entitlements: `com.apple.security.network.client` and `com.apple.security.network.server`. +- Privacy manifest guidance for documenting data use before App Store submission. diff --git a/plans/migration_plan.md b/plans/migration_plan.md new file mode 100644 index 0000000..0fe10f1 --- /dev/null +++ b/plans/migration_plan.md @@ -0,0 +1,69 @@ +# NetworkExtension 迁移计划 + +本计划旨在将 EasyTier 的特权 Helper 替换为 Apple 推荐的 `NetworkExtension` (Packet Tunnel Provider)。这将移除复杂的 Helper 安装流程,提升用户体验。 + +## 第一阶段:Xcode 项目配置 (需手动操作) + +由于我无法操作 Xcode UI,请你完成以下步骤: + +1. **添加 Network Extension Target**: + - 在 Xcode 中,File -> New -> Target... + - 选择 **Network Extension** (macOS)。 + - Product Name 填 `EasyTierPT` (或者你喜欢的名字,代表 Packet Tunnel)。 + - Language 选择 **Swift**。 + - Provider Type 选择 **Packet Tunnel**。 + - **重要**:Embed in Application 选择 `Swiftier`。 + +2. **配置 Entitlements (App & Extension)**: + - **主 App (`Swiftier`)**: + - 添加 `Network Extensions` 能力 (Capability)。 + - 勾选 `Packet Tunnel`。 + - 添加 `App Groups` 能力,并创建一个 group (例如 `group.com.alick.swiftier`),用于共享配置和日志文件。 + - **Extension (`EasyTierPT`)**: + - 确保 `Network Extensions` 能力已启用,且勾选 `Packet Tunnel`。 + - 添加 **相同的** `App Groups` (`group.com.alick.swiftier`)。 + - **移除 Sandbox (可选但推荐)**: + - NetworkExtension 默认必须沙盒化。如果 EasyTier core 需要访问非沙盒路径,可能需要调整。但通常我们通过 App Group 共享配置。 + +3. **链接库文件**: + - 将 `EasyTierCore` (Rust 库) 链接到新的 `EasyTierPT` target。 + - 确保 `libEasyTierCore.a` 被包含在 Extension 的 `Link Binary With Libraries` 中。 + - 确保 Bridging Header 配置正确,以便 Swift 能调用 Rust C 函数。 + +## 第二阶段:核心代码迁移 + +一旦 Target 创建完成,我将协助你: + +1. **共享 FFI 代码**: + - 将 `EasyTierCore.swift` 和 `SharedTypes.swift` 移动到 App 和 Extension 都能访问的共享目录(或添加到两个 Target)。 + - 确保 Bridging Header 在 Extension 中也能正确引用。 + +2. **实现 `PacketTunnelProvider`**: + - 重写 `PacketTunnelProvider.swift`。 + - 在 `startTunnel` 中调用 `EasyTierCore.startNetwork`。 + - 在 `stopTunnel` 中调用 `EasyTierCore.stopNetwork`。 + - 实现日志重定向:将 Rust 日志写入 App Group 下的共享文件,以便主 App 读取。 + +## 第三阶段:IPC 与控制逻辑更新 + +1. **更新 `CoreService`**: + - 移除 `SMAppService` 和 `HelperManager` 相关代码。 + - 引入 `NETunnelProviderManager` 来管理 VPN 配置和生命周期。 + - 实现 `loadAllFromPreferences` -> `saveToPreferences` 流程来安装 VPN 配置文件。 + +2. **日志与状态同步**: + - **状态**: 使用 `NEVPNStatus` (connected, disconnected, etc.)。 + - **日志**: App 改为从 App Group 共享路径读取日志文件。 + - **实时信息 (Running Info)**: 使用 `provider.sendProviderMessage` 获取实时 JSON 数据。 + +## 第四阶段:清理与测试 + +1. 移除 `EasyTierHelper` target 和相关 plist 文件。 +2. 测试 VPN 连接、断开、自启动行为。 +3. 验证日志实时显示。 + +--- + +**准备好后,请先执行“第一阶段”的 Xcode 操作。** +完成后,请告诉我 **Extension 的 Bundle Identifier** (例如 `com.alick.swiftier.EasyTierPT`) 和 **App Group ID**。 +这将用于接下来的代码编写。 diff --git a/plans/refactor_checklist_plan.md b/plans/refactor_checklist_plan.md new file mode 100644 index 0000000..f106db7 --- /dev/null +++ b/plans/refactor_checklist_plan.md @@ -0,0 +1,334 @@ +# Spotier 重构实施 Checklist Plan + +更新日期:2026-03-21 + +## 执行状态(2026-03-22) + +本计划对应的结构性改造已完成,代码侧已落地到仓库并通过自动化回归。 + +已完成: + +1. 共享运行时常量、App Group、日志等级和日志容器路径已统一到单一入口。 +2. 配置目录访问已拆成目录行为、目录访问、文件 repository、CloudKit sync coordinator,多处页面已移除直接文件写删。 +3. `SpotierRunner` 已具备显式 session 生命周期,并把 session 轮换规则抽成可测行为模块。 +4. `ContentView`、配置生成器、日志页、列表页和节点卡片已按“页面壳 + 可测行为层/原语层”拆分。 +5. 日志事件格式化、配置编解码、配置目录规则、动态表单行为、连接用例、session 行为等都已补 app 侧测试。 + +当前仅剩人工 smoke checklist 未逐项手动执行;自动化验证已完成。 + +## 1. 目标与边界 + +本计划用于把当前审查中暴露出的结构问题,落成一份可执行的重构实施清单。目标不是局部修补,而是按项目 `AGENTS.md` 的约束,把页面职责、行为逻辑、布局规则、文件访问和跨进程共享配置拆回各自的单一职责层。 + +本轮重构的核心目标: + +1. 建立单一事实来源,消除 App Group、会话状态、配置目录权限、日志等级读取的多份定义。 +2. 让页面文件只保留组合、状态绑定和事件接线,不再直接负责文件 I/O、复杂状态派生和细节布局规则。 +3. 把可复用行为提炼为纯逻辑模块,把配置文件访问、日志访问、配置生成/解析拆成可测试服务。 +4. 修复当前已确认的根因问题: + - App Group 标识不一致 + - 自定义配置目录的安全域读写/删除不完整 + - 配置生成器的动态数组索引绑定风险 + - `sessionID` 从未轮换导致的会话重建失效 +5. 为关键映射补齐自动化测试,至少覆盖配置目录访问、配置编解码、日志配置共享、会话标识轮换。 + +本轮不包含: + +1. `EasyTierCore/easytier-patched/` vendored 上游代码的深入改造。 +2. 视觉风格重设计。 +3. 与 NetworkExtension 架构无关的产品功能扩展。 + +## 2. 目标架构 + +建议把现有实现收敛为 6 个顶层关注点: + +1. 运行时共享配置层 + - 负责 App Bundle / App Group / iCloud / 日志文件名等常量与共享默认值访问 +2. 配置文件访问层 + - 负责安全域书签、目录访问、创建/读取/更新/删除配置、CloudKit 同步触发 +3. 主界面状态层 + - 负责 VPN 连接状态、运行数据快照、会话标识、主界面 overlay route +4. 配置生成器领域层 + - 负责草稿、TOML 编解码、动态数组字段模型、保存/加载工作流 +5. 日志与事件层 + - 负责日志文件路径解析、日志等级共享配置、纯解析逻辑、UI 数据源 +6. SwiftUI 页面与原子组件层 + - 负责页面组合壳、统一 Header、统一浮动按钮、可复制明细行、动态列表字段行 + +## 3. 实施阶段 Checklist + +### Phase 0: 基线与保护措施 + +- [ ] 新建分支并记录当前 `xcodebuild test -project Spotier.xcodeproj -scheme Spotier -destination 'platform=macOS'` 基线结果 +- [ ] 补一份手工 smoke checklist,至少覆盖: + - 自定义目录下创建配置 + - 自定义目录下删除配置 + - 配置生成器新增/删除监听地址、路由、出口节点 + - 修改日志等级并重启隧道 + - 重连 VPN 后节点列表动画/详情状态是否正确重置 +- [ ] 在计划执行期间禁止新增业务功能,避免把结构改造和行为变更耦合在同一批提交 + +### Phase 1: 根因修复与单一事实来源收敛 + +#### 1.1 统一 App Group / 共享配置入口 + +- [ ] 把 `APP_BUNDLE_ID` / `APP_GROUP_ID` / `ICLOUD_CONTAINER_ID` / `LOG_FILENAME` 收敛到单一共享定义 +- [ ] 清除所有硬编码 `group.com.alick.swiftier` +- [ ] 抽一个共享 `UserDefaults(suiteName: APP_GROUP_ID)` 访问入口,避免各文件重复拼接 +- [ ] 确认主 App、NE、日志解析器、日志视图、设置页都读同一份日志等级 + +#### 1.2 收敛配置目录访问 + +- [ ] 把“列目录 / 读文件 / 创建文件 / 写文件 / 删除文件”全部收进同一安全域访问入口 +- [ ] 禁止页面层直接 `write(to:)` 或 `removeItem(at:)` +- [ ] 保留 CloudKit 触发逻辑,但将其挂到 repository/service 层,而不是页面层 + +#### 1.3 修正会话标识模型 + +- [ ] 在 `SpotierRunner` 中显式定义会话开始/结束 +- [ ] 每次 VPN 新连接成功时轮换 `sessionID` +- [ ] 断开时清空与会话绑定的瞬时状态 +- [ ] `ContentView` 不再维护 runner 派生的本地镜像状态;主界面只绑定一个权威状态源 + +### Phase 2: 主界面与运行状态解耦 + +#### 2.1 拆薄 `ContentView` + +- [ ] 把 overlay route 从多个 `Bool/URL?` 收敛为单一枚举状态 +- [ ] 把布局常量和几何映射从页面文件提取到独立 layout rules +- [ ] 把“创建配置”“删除配置”“按钮中心定位”“选中配置同步”移出页面主体 +- [ ] 保留 `ContentView` 只负责: + - 页面结构 + - 绑定 state + - 分发事件 + +#### 2.2 约束 `SpotierRunner` / `VPNManager` 边界 + +- [ ] `SpotierRunner` 只负责运行信息轮询、派生快照和会话状态 +- [ ] `VPNManager` 只负责 NE 生命周期、provider message、On Demand 管理 +- [ ] 把 UI 文本、弹窗、副作用从 runner 中移出,改为错误事件/状态输出 + +### Phase 3: 配置生成器领域拆分 + +#### 3.1 把配置模型与视图拆开 + +- [ ] 把 `SpotierConfigModel`、`PortForwardRule`、`PeerMode` 拆到独立 domain 文件 +- [ ] 把 `ConfigDraftManager` 拆成草稿存储模块 +- [ ] 把 `parseTOML` / `generateTOML` 抽成 codec/service +- [ ] 把 `loadContent` / `loadFromFile` / `generateAndSave` 抽成 generator store/use case + +#### 3.2 替换索引驱动的动态列表 + +- [ ] 用 `Identifiable` 行模型替换所有 `ForEach(indices)` 驱动的可变表单 +- [ ] 把字符串数组包装成稳定行对象,避免删除时 stale binding +- [ ] 对 `listeners` / `manualRoutes` / `exitNodes` / `manualPeers` / `overrideDns` / 通用字符串列表统一使用一套行为原语 + +#### 3.3 拆分配置生成器页面 + +- [ ] `mainView` 拆成基础网络、节点、DNS、监听地址、功能开关等 section 子视图 +- [ ] `advancedView` 拆成 VPN Portal、代理网段、路由、出口节点、映射等 section 子视图 +- [ ] `portForwardingView` 拆成独立 scene shell +- [ ] `header(...)` 改为复用统一容器原语,不再重复实现页面头部 + +### Phase 4: 日志/设置/列表 UI 原语统一 + +#### 4.1 统一日志访问与解析 + +- [ ] 日志文件路径解析从 `LogView` / `LogParser` 移出 +- [ ] `LogParser` 只保留解析与缓冲逻辑,文件路径和日志等级由独立依赖注入 +- [ ] 让设置页修改日志等级后,NE 与主 App 都消费同一来源 + +#### 4.2 统一页面 Header、浮动按钮、可复制行 + +- [ ] 扩展 `UnifiedHeader` 或建立新的 scene shell primitive +- [ ] `EventListView` 和 `LogListView` 的右下角滚动按钮收敛为共享 primitive +- [ ] `PeerCard.DetailRow` 的复制行为改成可访问的可复用行组件 +- [ ] 减少 `onTapGesture` 驱动的交互,优先用 `Button` + +### Phase 5: 测试与验收补齐 + +- [ ] 新增 app 侧测试 target(建议 `SpotierTests`),不要把 UI/domain 测试继续堆到 `SpotierNETests` +- [ ] 为配置目录访问补测试 +- [ ] 为 TOML 编解码补测试 +- [ ] 为会话标识轮换补测试 +- [ ] 为 App Group / 日志等级共享补测试 +- [ ] 为动态数组字段新增/删除顺序补测试 + +## 4. 受影响文件与方法清单 + +### 4.1 现有文件影响矩阵 + +| 文件 | 受影响方法 / 属性 | 所需修改 | +| --- | --- | --- | +| `Spotier/ContentView.swift` | `body`, `headerView`, `contentArea`, `buttonCenterY(in:)`, `createConfig()`, `deleteSelectedConfig()`, `SpeedDashboard.body`, `PeerListArea.body` | 拆成页面壳;移除文件 I/O;把 overlay 状态改为单一 route;把 layout 规则提取到独立模块;改为绑定权威状态对象,不再镜像 `runner` 状态 | +| `Spotier/SpotierRunner.swift` | `sessionID`, `currentSessionID`, `handleVPNStatusChange(_:)`, `toggleService(configPath:)`, `startMonitoring()`, `resetSpeedCounters()`, `processRunningInfo(_:)` | 引入显式 session 生命周期;在连接建立时轮换 session;移除 UI 级副作用和弹窗;输出稳定运行时快照供视图消费 | +| `Spotier/VPNManager.swift` | `saveConfigToAppGroup(configContent:)`, `startVPN(configContent:)`, `disableOnDemandAndStop()`, `updateStatusSync()`, `processPendingStartIfNeeded()` | 保持 NE 生命周期职责;如有需要抽出 provider message / tunnel state adapter;避免与 `SpotierRunner` 重复承担页面语义 | +| `Spotier/ConfigManager.swift` | `refreshConfigs(skipCloudSync:)`, `readConfigContent(_:)`, `deleteConfig(_:)`, `selectCustomFolder()`, `triggerCloudSyncIfNeeded(force:)`, `directoryFromUserPreference()` | 演进为配置文件访问服务或被新 repository 包装;补齐 create/update/delete 的安全域访问;保留 CloudKit 同步但下沉到服务边界 | +| `Spotier/ConfigEditorView.swift` | `loadContent()`, `saveContent()`, `body` | 改为调用统一配置 repository;移除本地安全域访问细节;页面只保留编辑器壳层 | +| `Spotier/ConfigGeneratorView.swift` | `body`, `loadContent(forceReset:)`, `advancedView`, `mainView`, `portForwardingView`, `stringListSection(list:placeholder:)`, `safePeerBinding(at:)`, `header(...)`, `generateAndSave()`, `loadFromFile()`, `parseTOML(_:)`, `generateTOML(peers:)`, `IPv4CidrField`, `IPv4Field` | 拆出 domain model、draft store、codec、section 子视图、动态列表原语;去掉索引驱动可变绑定;保留视图层只做组合与绑定 | +| `Spotier/SettingsView.swift` | `@AppStorage("logLevel"...`, `body`, `checkLaunchAtLogin()`, `toggleLaunchAtLogin(enabled:)` | 切到统一 App Group 配置入口;如引入 `LogSettingsStore`,则改为绑定 store;设置页只负责展示与交互 | +| `Spotier/LogView.swift` | `logPath`, `body` | 移除硬编码 App Group 路径;接入日志容器解析服务;复用统一 Header primitive | +| `Spotier/LogParser.swift` | `logPath`, `quickParseLogs(_:)`, `readNewRawLines()`, `startMonitoring()`, `updateEventsFromRunningInfo(_:)` | 把文件路径解析和日志等级来源注入;保留纯解析逻辑;为 parser 增加可测试边界 | +| `Spotier/SharedComponents.swift` | `UnifiedHeader` | 扩展为真正的页面壳 primitive,统一 header/标题/左右操作区,不再让各页面重复实现相似结构 | +| `Spotier/PeerCard.swift` | `body`, `ScrollingText.body`, `DetailRow.body`, `ScrollingTextValue.body`, `localNodeSections(_:)`, `remotePeerSections(_:)` | 提取滚动文本、Tag、可复制行原语;把交互从 `onTapGesture` 改为更可访问的按钮型组件;把宽度规则集中定义 | +| `Spotier/EventListView.swift` | `body`, `FlatCircleButtonModifier.body(content:)` | 提取统一的滚动到顶部浮动按钮 primitive;收敛空态/列表态样式规则 | +| `Spotier/LogListView.swift` | `body`, `LogListRow.body`, `LogDetailView.body` | 收敛浮动按钮与行选中行为;避免页面内部重复交互原语 | +| `Spotier/SpotierControlApp.swift` | `SpotierControlApp.body`, `MenuBarIconState.handleRunningStateChange(isRunning:)`, `updateTimerState()` | 若引入统一运行状态 store,需要让菜单栏图标消费同一权威状态;删除无效或冗余状态持有 | +| `Spotier/CliClient.swift` | `PeerInfo.sessionID`, `PeerInfo.id`, `fetchPeers(sessionID:)`, `parseCLITable(_:sessionID:)`, `parseCLIJSON(_:sessionID:)` | 若保留 CLI 路径,需与新的 session 轮换语义一致;注释和 ID 生成规则要与 `SpotierRunner` 对齐 | +| `Spotier/EasyTierShared.swift` | `APP_BUNDLE_ID`, `APP_GROUP_ID`, `ICLOUD_CONTAINER_ID`, `LOG_FILENAME`, `connectWithManager(_:)` | 作为主 App 侧共享常量来源;补一个统一 defaults/container helper,禁止各处硬编码 | +| `SpotierNE/EasyTierShared.swift` | `APP_BUNDLE_ID`, `APP_GROUP_ID`, `ICLOUD_CONTAINER_ID`, `LOG_FILENAME`, `connectWithManager(_:)` | 与主 App 侧保持完全一致;必要时合并为真正共享文件,避免双份常量漂移 | +| `SpotierNE/PacketTunnelProvider.swift` | `loadConfig()`, `parseConfigHints(_:)`, `applyNetworkSettings(_:)`, `buildSettings()`, 读取 `UserDefaults(suiteName: APP_GROUP_ID)` 的相关逻辑 | 使用统一共享配置入口;确保日志等级与共享常量统一;避免主 App 与扩展配置源分叉 | +| `SpotierNE/TunnelHelper.swift` | `initRustLogger(level:)`, `fetchRunningInfo()` | 使用统一容器/日志配置常量;必要时让日志初始化走共享 helper | +| `Spotier.xcodeproj/project.pbxproj` | target/file references/build phases | 挂接新增文件;若新增 `SpotierTests` target,也需要更新 project 配置 | + +### 4.2 建议新增文件 + +以下文件名为建议命名,可按现有目录风格微调,但职责边界应保持不变。 + +| 建议新增文件 | 目的 | +| --- | --- | +| `Spotier/AppRuntimeConfig.swift` | App Group、Bundle ID、日志文件名、iCloud 容器等统一定义;提供默认值/容器访问 helper | +| `Spotier/Config/ConfigDirectoryAccess.swift` | 封装安全域书签、目录解析、`withScopedAccess` | +| `Spotier/Config/ConfigFileRepository.swift` | 统一 create/read/update/delete/list;对上层暴露 typed API | +| `Spotier/Main/MainDashboardState.swift` | 主界面权威状态,收敛 `runner`/`vpnManager` 派生值与 overlay route | +| `Spotier/Main/MainOverlayRoute.swift` | 用枚举表达日志/设置/生成器/编辑器/新建弹窗等路由 | +| `Spotier/Main/DashboardLayoutMetrics.swift` | `windowWidth`、`windowHeight`、按钮中心 Y、节点区高度等布局规则单一来源 | +| `Spotier/Main/MainDashboardHeader.swift` | 主界面顶部菜单与操作区组合 | +| `Spotier/Main/CreateConfigPrompt.swift` | 新建配置弹窗,脱离 `ContentView` | +| `Spotier/ConfigGenerator/SpotierConfigDraft.swift` | `SpotierConfigModel`、`PortForwardRule`、`PeerMode` | +| `Spotier/ConfigGenerator/SpotierConfigCodec.swift` | TOML 解析与生成 | +| `Spotier/ConfigGenerator/ConfigDraftStore.swift` | 草稿读写与生命周期 | +| `Spotier/ConfigGenerator/StringListFieldRow.swift` | 动态字符串字段行原语,替代索引驱动 `ForEach(indices)` | +| `Spotier/ConfigGenerator/ConfigGeneratorStore.swift` | 处理 load/save/generate 工作流 | +| `Spotier/Logging/LogContainerResolver.swift` | 统一日志文件路径和 App Group 解析 | +| `Spotier/Logging/LogSettingsStore.swift` | 日志等级的统一设置入口 | +| `Spotier/UI/FloatingScrollTopButton.swift` | 统一右下角滚动到顶部按钮 | +| `Spotier/UI/CopyableDetailRow.swift` | 可访问、可复制的明细行组件 | +| `SpotierTests/AppRuntimeConfigTests.swift` | 校验 App Group / defaults / log path 统一配置 | +| `SpotierTests/ConfigFileRepositoryTests.swift` | 校验安全域路径下的 list/create/update/delete 流程 | +| `SpotierTests/SpotierConfigCodecTests.swift` | 校验 TOML parse/generate | +| `SpotierTests/SpotierRunnerSessionTests.swift` | 校验 session 轮换与 reconnect 行为 | +| `SpotierTests/ConfigGeneratorCollectionTests.swift` | 校验动态列表新增删除后绑定稳定性 | + +## 5. 文件级实施清单 + +### A. 共享常量与 App Group 收敛 + +- [ ] 修改 `Spotier/EasyTierShared.swift` +- [ ] 修改 `SpotierNE/EasyTierShared.swift` +- [ ] 修改 `Spotier/SettingsView.swift` +- [ ] 修改 `Spotier/LogView.swift` +- [ ] 修改 `Spotier/LogParser.swift` +- [ ] 修改 `SpotierNE/PacketTunnelProvider.swift` +- [ ] 修改 `SpotierNE/TunnelHelper.swift` +- [ ] 全仓搜索并清零硬编码 `group.com.alick.swiftier` + +### B. 配置目录访问重构 + +- [ ] 新增 `ConfigDirectoryAccess.swift` +- [ ] 新增 `ConfigFileRepository.swift` +- [ ] 修改 `Spotier/ConfigManager.swift`,收缩为 facade 或迁移职责 +- [ ] 修改 `Spotier/ContentView.swift` 的 `createConfig()` / `deleteSelectedConfig()` +- [ ] 修改 `Spotier/ConfigEditorView.swift` 的 `saveContent()` +- [ ] 修改 `Spotier/ConfigGeneratorView.swift` 的 `generateAndSave()` / `loadFromFile()` + +### C. 主界面状态与布局规则重构 + +- [ ] 新增 `MainDashboardState.swift` +- [ ] 新增 `MainOverlayRoute.swift` +- [ ] 新增 `DashboardLayoutMetrics.swift` +- [ ] 修改 `Spotier/ContentView.swift` +- [ ] 修改 `Spotier/SpotierRunner.swift` +- [ ] 评估并修改 `Spotier/VPNManager.swift` +- [ ] 视需要修改 `Spotier/SpotierControlApp.swift` +- [ ] 视需要修改 `Spotier/CliClient.swift` + +### D. 配置生成器重构 + +- [ ] 新增 `SpotierConfigDraft.swift` +- [ ] 新增 `SpotierConfigCodec.swift` +- [ ] 新增 `ConfigDraftStore.swift` +- [ ] 新增 `ConfigGeneratorStore.swift` +- [ ] 新增动态列表字段原语文件 +- [ ] 大幅拆分 `Spotier/ConfigGeneratorView.swift` +- [ ] 校验 `IPv4Field` / `IPv4CidrField` 是否继续保留在原文件,还是提到公共字段文件 + +### E. UI 原语统一 + +- [ ] 扩展或重构 `Spotier/SharedComponents.swift` +- [ ] 新增 `FloatingScrollTopButton.swift` +- [ ] 新增 `CopyableDetailRow.swift` +- [ ] 修改 `Spotier/EventListView.swift` +- [ ] 修改 `Spotier/LogListView.swift` +- [ ] 修改 `Spotier/PeerCard.swift` +- [ ] 修改 `Spotier/LogView.swift` + +### F. 测试与工程接线 + +- [ ] 修改 `Spotier.xcodeproj/project.pbxproj` +- [ ] 新增 `SpotierTests` target 或同等 app 侧测试承载 +- [ ] 添加 4~5 个领域测试文件 +- [ ] 保留并继续运行 `SpotierNETests` + +## 6. 实施顺序建议 + +必须按以下顺序推进,避免一边拆 UI 一边改底层契约: + +1. 统一共享常量与 App Group +2. 收敛配置目录访问与安全域写删能力 +3. 修复 session 生命周期与主界面状态源 +4. 拆 `ContentView` +5. 拆 `ConfigGeneratorView` +6. 统一日志/设置/列表原语 +7. 补测试并做回归 + +原因: + +1. App Group 和配置目录访问属于底层契约,必须先固定,否则上层抽象仍会建立在错误前提上。 +2. `sessionID` 和主界面状态源会直接决定后续页面壳如何设计。 +3. `ConfigGeneratorView` 依赖文件访问和保存流程,必须在 repository 定型后再拆。 + +## 7. 验收标准 + +### 功能验收 + +- [ ] 设置页修改日志等级后,NE 和主 App 读取到同一份值 +- [ ] 日志视图能够打开正确的共享日志文件 +- [ ] 自定义目录下创建配置成功 +- [ ] 自定义目录下删除配置成功 +- [ ] 配置编辑器保存成功 +- [ ] 配置生成器新增/删除任意动态行时不崩溃、不串值 +- [ ] VPN 重连后,节点卡片按新 session 正确重建,旧详情/动画状态不泄漏 + +### 结构验收 + +- [ ] `ContentView.swift` 不再直接负责文件读写 +- [ ] `ConfigGeneratorView.swift` 不再同时承担 model/store/codec/UI +- [ ] App Group / 日志文件名 / iCloud 容器只存在一个权威定义源 +- [ ] 关键 layout 规则集中到单独模块 +- [ ] 关键行为有对应测试 + +## 8. 风险与回滚 + +主要风险: + +1. 配置生成器拆分过程中,字段映射可能出现回归。 +2. 安全域访问集中化后,如果接口设计不完整,可能影响 CloudKit 模式与自定义目录模式切换。 +3. 主界面状态整合后,菜单栏图标、节点列表、速度卡片刷新节奏可能出现联动问题。 + +回滚策略: + +1. 每个 Phase 独立提交,禁止把多个 Phase 混到一个 commit。 +2. Phase 1 完成后先做一次可运行回归,再进入 Phase 2。 +3. `ConfigGeneratorView` 拆分采用“小步迁移”:先保留原渲染结构,只替换 store/codec;再拆 section;最后替换动态列表原语。 + +## 9. 建议的提交切分 + +1. `refactor: unify runtime config and app group access` +2. `refactor: centralize scoped config file operations` +3. `fix: rotate runner session identity on reconnect` +4. `refactor: thin content view into dashboard shell` +5. `refactor: extract config generator domain and codec` +6. `refactor: replace index-based dynamic form bindings` +7. `refactor: unify log and list ui primitives` +8. `test: add app-side refactor coverage` diff --git a/plans/relay_protocol_contract.md b/plans/relay_protocol_contract.md new file mode 100644 index 0000000..8f1e2c4 --- /dev/null +++ b/plans/relay_protocol_contract.md @@ -0,0 +1,38 @@ +# Spotier Relay Protocol v1 Contract + +Spotier Swift core uses a Spotier-owned relay protocol. It does not speak the existing EasyTier relay wire protocol in this implementation pass. + +## Transport + +- `tcp://host:port` opens a plain TCP relay stream. +- `tls://host:port` opens a TLS relay stream. +- No other relay URL schemes are accepted. +- The relay connection is an explicit transport. Reconnect happens only when the caller starts a new `RelayTransport`. + +## Record Format + +Each relay stream carries length-prefixed encrypted records: + +```text +uint32_be record_length +uint64_be sequence +bytes encrypted_core_frame +``` + +- `record_length` is the number of bytes after the length field. +- `record_length` includes the 8-byte sequence and encrypted frame bytes. +- `record_length` must be greater than or equal to 8. +- A receiver waits for the complete record before decoding it. +- Multiple complete records can be decoded from one stream chunk. + +## Encryption + +- `encrypted_core_frame` is produced by `SessionCrypto`. +- The sequence number in the relay record is authenticated by `SessionCrypto` associated data. +- The decrypted plaintext is a Spotier `CoreFrame` encoded by `FrameCodec`. + +## Compatibility Decision + +- Existing EasyTier relay compatibility is intentionally out of scope. +- Spotier-owned relay v1 is the only relay protocol supported by this Swift core pass. +- A future EasyTier compatibility layer must be a separate protocol decision, not mixed into v1. diff --git a/plans/review_fix_checklist.md b/plans/review_fix_checklist.md new file mode 100644 index 0000000..e743678 --- /dev/null +++ b/plans/review_fix_checklist.md @@ -0,0 +1,12 @@ +# Review Fix Checklist + +- [x] Fix CloudKit sync conflict resolution so different contents never stall when timestamps are too close. +- [x] Remove hidden CloudKit local-only fallback when the schema is missing; surface a real failure and turn off the misleading enabled state. +- [x] Fail tunnel startup when no TUN file descriptor can be obtained instead of reporting a false success. +- [x] Persist config selection and use it for launch auto-connect instead of always picking the first config file. +- [x] Add or update tests for the changed behavior. +- [x] Remove dead CLI peer-fetching code and other unused runner methods. +- [x] Remove hardcoded log path fallback and string-path log API. +- [x] Remove redundant VPN profile second-save logic. +- [x] Simplify VPN/config state management further where duplicated branches remain. +- [x] Re-run repository tests after the broader cleanup pass. diff --git a/plans/swift_core_behavior_contract.md b/plans/swift_core_behavior_contract.md new file mode 100644 index 0000000..895edd6 --- /dev/null +++ b/plans/swift_core_behavior_contract.md @@ -0,0 +1,288 @@ +# Swift Core Behavior Contract + +This document freezes the current Spotier + Rust EasyTier integration before the 100% Swift core rewrite starts. It records only behavior found in the current repository. + +## Current Runtime Shape + +- [ ] Host app writes `config.toml` into the App Group container. +- [ ] `Spotier/VPNManager.swift` creates and starts a `NETunnelProviderManager`. +- [ ] `SpotierNE/PacketTunnelProvider.swift` reads `config.toml` from the App Group container. +- [ ] `SpotierNE/PacketTunnelProvider.swift` starts the Rust core through `SpotierNE/SwiftierCore.swift`. +- [ ] Rust core owns the current EasyTier network instance. +- [ ] Packet Tunnel network settings are derived from parsed config hints and Rust `get_running_info` JSON. +- [ ] Packet Tunnel currently obtains a TUN file descriptor and passes it into Rust through `set_tun_fd`. +- [ ] Host app polls Packet Tunnel through provider IPC for `running_info`. +- [ ] Host app decodes `running_info` into UI peer, route, speed, event, and status models. + +## Rust FFI Surface Currently Used + +Declared in `EasyTierCore/include/EasyTierCore.h`: + +- [ ] `init_logger(const char *path, const char *level, const char *subsystem, const char **err_msg)` +- [ ] `set_tun_fd(int fd, const char **err_msg)` +- [ ] `free_string(const char *s)` +- [ ] `run_network_instance(const char *cfg_str, const char **err_msg)` +- [ ] `stop_network_instance(void)` +- [ ] `register_stop_callback(VoidCallback callback, const char **err_msg)` +- [ ] `register_running_info_callback(VoidCallback callback, const char **err_msg)` +- [ ] `get_running_info(const char **json, const char **err_msg)` +- [ ] `get_latest_error_msg(const char **msg, const char **err_msg)` + +Swift wrappers in `SpotierNE/SwiftierCore.swift`: + +- [ ] `EasyTierCore.initLogger(path:level:subsystem:)` +- [ ] `EasyTierCore.runNetworkInstance(config:)` +- [ ] `EasyTierCore.stopNetworkInstance()` +- [ ] `EasyTierCore.setTunFd(_:)` +- [ ] `EasyTierCore.registerStopCallback(_:)` +- [ ] `EasyTierCore.registerRunningInfoCallback(_:)` +- [ ] `EasyTierCore.getRunningInfo()` +- [ ] `EasyTierCore.getLatestErrorMessage()` + +Additional direct C calls in `SpotierNE/TunnelHelper.swift`: + +- [ ] `init_logger` +- [ ] `free_string` +- [ ] `get_running_info` + +## Provider IPC Contract + +Actually handled by `SpotierNE/PacketTunnelProvider.swift` today: + +- [ ] Request: UTF-8 string `running_info` +- [ ] Response on success: UTF-8 JSON returned by Rust `get_running_info` +- [ ] Response on failure: `nil` +- [ ] Unknown command response: `nil` +- [ ] Non-UTF-8 message response: `nil` + +Declared but not currently handled by `PacketTunnelProvider.handleAppMessage`: + +- [ ] `export_oslog` +- [ ] `last_network_settings` + +The Swift rewrite must not treat declared-but-unhandled commands as existing behavior. They can be implemented later as explicit new work. + +## App Group Contract + +- [ ] App Group ID: `group.com.alick.spotier` +- [ ] Bundle ID: `com.alick.spotier` +- [ ] Shared config file: `config.toml` +- [ ] Shared log file: `easytier.log` +- [ ] Log trim threshold in `SpotierNE/EasyTierShared.swift`: `64 * 1024 * 1024` bytes +- [ ] Stored log level key: `logLevel` +- [ ] VPN profile description: `Spotier VPN` +- [ ] Provider bundle identifier in `Spotier/VPNManager.swift`: `com.alick.spotier.SpotierNE` + +## Config Fields The Current App Can Generate + +Generated by `Spotier/ConfigGenerator/SpotierConfigCodec.swift`: + +- [ ] Top-level `instance_name` +- [ ] Top-level `instance_id` +- [ ] Top-level `dhcp` +- [ ] Top-level `listeners` +- [ ] Top-level `mapped_listeners` +- [ ] Top-level `ipv4` +- [ ] Top-level `socks5_proxy` +- [ ] Top-level `exit_nodes` +- [ ] Top-level `routes` +- [ ] `[network_identity].network_name` +- [ ] `[network_identity].network_secret` +- [ ] `[[peer]].uri` +- [ ] `[flags].mtu` +- [ ] `[flags].latency_first` +- [ ] `[flags].disable_ipv6` +- [ ] `[flags].disable_encryption` +- [ ] `[flags].use_smoltcp` +- [ ] `[flags].no_tun` +- [ ] `[flags].disable_p2p` +- [ ] `[flags].p2p_only` +- [ ] `[flags].disable_udp_hole_punching` +- [ ] `[flags].enable_exit_node` +- [ ] `[flags].enable_kcp_proxy` +- [ ] `[flags].disable_kcp_input` +- [ ] `[flags].enable_quic_proxy` +- [ ] `[flags].disable_quic_input` +- [ ] `[flags].relay_all_peer_rpc` +- [ ] `[flags].bind_device` +- [ ] `[flags].multi_thread` +- [ ] `[flags].proxy_forward_by_system` +- [ ] `[flags].disable_sym_hole_punching` +- [ ] `[flags].enable_magic_dns` +- [ ] `[flags].enable_private_mode` +- [ ] `[flags].relay_network_whitelist` +- [ ] `[vpn_portal_config].client_cidr` +- [ ] `[vpn_portal_config].wireguard_listen` +- [ ] `[[proxy_network]].cidr` +- [ ] `[[port_forward]].proto` +- [ ] `[[port_forward]].bind_addr` +- [ ] `[[port_forward]].dst_addr` + +## Config Fields PacketTunnelProvider Currently Reads Directly + +Parsed in `SpotierNE/PacketTunnelProvider.swift` before Rust starts: + +- [ ] `ipv4` +- [ ] `ipv6` +- [ ] `mtu` +- [ ] `enable_magic_dns` +- [ ] `accept_dns` +- [ ] `tld_dns_zone` + +Important current behavior: + +- [ ] `ipv4` must be CIDR notation to produce an initial IPv4 address and subnet mask. +- [ ] `ipv6` must be CIDR notation to produce an initial IPv6 address and prefix length. +- [ ] `mtu` defaults to `1380` when absent. +- [ ] `enable_magic_dns` and `accept_dns` both enable MagicDNS when set to `true`. +- [ ] MagicDNS resolver is hard-coded to `100.100.100.101`. +- [ ] MagicDNS zone defaults to `et.net`. +- [ ] `tld_dns_zone` strips leading and trailing dots before use. + +## Packet Tunnel Network Settings Contract + +Current settings behavior in `SpotierNE/PacketTunnelProvider.swift`: + +- [ ] `NEPacketTunnelNetworkSettings.tunnelRemoteAddress` is `127.0.0.1`. +- [ ] Runtime IPv4 from `running_info.my_node_info.virtual_ipv4` overrides config-hint IPv4. +- [ ] Runtime IPv6 from `running_info.my_node_info.virtual_ipv6` overrides config-hint IPv6. +- [ ] IPv4 included routes are built from route `proxy_cidrs`. +- [ ] IPv4 included routes include the current virtual IPv4 network when runtime node info exists. +- [ ] If no runtime IPv4 route exists, one included route is built from the config-hint IPv4 and subnet mask. +- [ ] MagicDNS adds host route `100.100.100.101/32` when not already covered. +- [ ] IPv6 included route is the masked IPv6 network derived from runtime or config-hint IPv6. +- [ ] DNS settings use server `100.100.100.101` and match/search domain from MagicDNS zone. +- [ ] MTU uses config hint or defaults to `1380`. +- [ ] Settings updates are debounced by `0.5` seconds. +- [ ] Reasserting gates concurrent settings updates. +- [ ] `SettingsSnapshot` prevents reapplying identical settings. + +Swift rewrite target: + +- [ ] Keep the same visible network settings behavior. +- [ ] Remove TUN file descriptor scanning. +- [ ] Remove `set_tun_fd`. +- [ ] Use `packetFlow.readPackets` and `packetFlow.writePackets` as the only Packet Tunnel data path. + +## Running Info JSON Fields Consumed By PacketTunnelProvider + +Decoded by `SpotierNE/InfoModels.swift`: + +- [ ] `my_node_info.virtual_ipv4.address` +- [ ] `my_node_info.virtual_ipv4.network_length` +- [ ] `my_node_info.virtual_ipv6.address.part1` +- [ ] `my_node_info.virtual_ipv6.address.part2` +- [ ] `my_node_info.virtual_ipv6.address.part3` +- [ ] `my_node_info.virtual_ipv6.address.part4` +- [ ] `my_node_info.virtual_ipv6.network_length` +- [ ] `routes[].proxy_cidrs` + +## Running Info JSON Fields Consumed By Host App + +Decoded by `Spotier/Models/SpotierNodeModels.swift` and used by `Spotier/SpotierRunner.swift`: + +- [ ] `dev_name` +- [ ] `my_node_info` +- [ ] `my_node_info.virtual_ipv4` +- [ ] `my_node_info.hostname` +- [ ] `my_node_info.version` +- [ ] `my_node_info.ips` +- [ ] `my_node_info.stun_info` +- [ ] `my_node_info.listeners` +- [ ] `my_node_info.vpn_portal_cfg` +- [ ] `events` +- [ ] `routes` +- [ ] `routes[].peer_id` +- [ ] `routes[].ipv4_addr` +- [ ] `routes[].ipv6_addr` +- [ ] `routes[].next_hop_peer_id` +- [ ] `routes[].cost` +- [ ] `routes[].path_latency` +- [ ] `routes[].proxy_cidrs` +- [ ] `routes[].hostname` +- [ ] `routes[].stun_info` +- [ ] `routes[].inst_id` +- [ ] `routes[].version` +- [ ] `routes[].next_hop_peer_id_latency_first` +- [ ] `routes[].cost_latency_first` +- [ ] `routes[].path_latency_latency_first` +- [ ] `routes[].feature_flag` +- [ ] `peers` +- [ ] `peers[].peer_id` +- [ ] `peers[].conns` +- [ ] `peers[].default_conn_id` +- [ ] `peers[].directly_connected_conns` +- [ ] `peers[].conns[].conn_id` +- [ ] `peers[].conns[].my_peer_id` +- [ ] `peers[].conns[].is_client` +- [ ] `peers[].conns[].peer_id` +- [ ] `peers[].conns[].features` +- [ ] `peers[].conns[].tunnel` +- [ ] `peers[].conns[].stats` +- [ ] `peers[].conns[].loss_rate` +- [ ] `peers[].conns[].network_name` +- [ ] `peers[].conns[].is_closed` +- [ ] `peer_route_pairs` +- [ ] `peer_route_pairs[].route` +- [ ] `peer_route_pairs[].peer` +- [ ] `running` +- [ ] `error_msg` + +UI-derived behavior: + +- [ ] Local node appears first and uses cost text `本机`. +- [ ] Peer cost text is `P2P` when route cost is `1`. +- [ ] Peer cost text is `Relay()` when route cost is not `1`. +- [ ] Peer latency is displayed in milliseconds from microsecond values. +- [ ] Loss is displayed as percentage. +- [ ] Tunnel type text is uppercased and joined by `&` when multiple connection tunnel types exist. +- [ ] Download and upload speed are calculated from total peer connection rx/tx byte deltas. +- [ ] Peer list is sorted with local node first, then non-empty IPv4, then localized IPv4 ordering. +- [ ] Events are parsed from `events[]` strings and deduplicated by name, timestamp, and details. + +## Lifecycle Behavior To Preserve + +- [ ] `VPNManager` creates a `NETunnelProviderManager` if none exists. +- [ ] `VPNManager` uses provider bundle identifier `com.alick.spotier.SpotierNE`. +- [ ] `VPNManager` writes selected config content to App Group `config.toml` before starting. +- [ ] Start request is queued if manager preferences are not ready. +- [ ] Connect On Demand is controlled by user default `connectOnStart`. +- [ ] Manual stop disables On Demand before stopping the tunnel. +- [ ] `SpotierRunner` treats `NEVPNStatus.connected` as running. +- [ ] `SpotierRunner` treats `NEVPNStatus.disconnected` and `.invalid` as stopped. +- [ ] `SpotierRunner` treats connecting, disconnecting, and reasserting as processing. +- [ ] Peer polling interval is `1.0` second while subscribed. +- [ ] Peer polling interval is `5.0` seconds while running without subscribers. +- [ ] Running info processing is throttled to `0.8` seconds. + +## Logging Behavior To Preserve + +- [ ] Shared log file path is App Group `easytier.log`. +- [ ] Host app reads new log lines incrementally. +- [ ] Log parser removes ANSI escape codes. +- [ ] Log parser strips helper-style prefixes when present. +- [ ] Log parser detects timestamp at the start of a line when present. +- [ ] Log parser infers log level from line content. +- [ ] Log parser filters by stored log level. +- [ ] Log parser keeps at most `1000` log entries. +- [ ] Event list keeps at most `200` entries. +- [ ] Swift rewrite should write core logs in a format that existing `LogParser` can read. + +## Behavior To Remove + +- [ ] Remove Rust static library dependency. +- [ ] Remove Rust C header dependency. +- [ ] Remove `SpotierNE/SwiftierCore.swift`. +- [ ] Remove direct `init_logger`, `get_running_info`, and `free_string` C calls. +- [ ] Remove TUN file descriptor discovery in `SpotierNE/TunnelHelper.swift`. +- [ ] Remove `set_tun_fd` runtime path. +- [ ] Remove Cargo build inputs from Xcode. +- [ ] Remove `EasyTierCore/` runtime dependency. + +## Behavior Not Promised By This Contract + +- [ ] This contract does not promise compatibility with Linux, Windows, Android, OpenWrt, or helper-service runtime behavior. +- [ ] This contract does not promise existing EasyTier wire-protocol compatibility unless a later relay or peer compatibility contract explicitly requires it. +- [ ] This contract does not promise `export_oslog` or `last_network_settings` IPC support because current `PacketTunnelProvider.handleAppMessage` does not implement them. +- [ ] This contract does not promise WireGuard portal support in the first pure Swift core runtime. +- [ ] This contract does not promise KCP or QUIC transport in the first pure Swift core runtime. diff --git a/plans/swift_easytier_core_rewrite_checklist.md b/plans/swift_easytier_core_rewrite_checklist.md new file mode 100644 index 0000000..e813bcf --- /dev/null +++ b/plans/swift_easytier_core_rewrite_checklist.md @@ -0,0 +1,524 @@ +# Swift EasyTier Core Rewrite Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use `superpowers:subagent-driven-development` or `superpowers:executing-plans` to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Replace the Rust EasyTier core in Spotier with a 100% Swift mesh VPN core for iOS, tvOS, and macOS App Store/TestFlight distribution. + +**Architecture:** `SpotierNE` owns the Apple `NEPacketTunnelProvider` runtime and calls a pure Swift core directly. The Swift core owns identity, peer sessions, transport, control protocol, encrypted packet forwarding, routing, relay, and NAT traversal. The host app only manages configuration, status, logs, and provider IPC. + +**Tech Stack:** Swift, Swift Concurrency, Network.framework, NetworkExtension, CryptoKit, XCTest, OSLog, App Groups. + +--- + +## Non-Negotiable Rules + +- [x] Do not keep Rust, Cargo, C FFI, or `EasyTierCore` in the final runtime path. +- [x] Do not translate Rust files line by line; rebuild the core around Apple platform facts. +- [x] Do not add fallback implementations. Each feature must have one clear implementation path. +- [x] Do not preserve Linux, Windows, Android, OpenWrt, or helper-service compatibility logic. +- [x] Do not make tvOS the primary validation platform. The shared core must compile for tvOS, but macOS and iOS validate Packet Tunnel behavior first. +- [x] Do not introduce a new abstraction until at least two call sites need it or an Apple API boundary requires it. +- [x] Commit before code changes when implementation starts, per repository instruction. + +## Target File Structure + +- [x] Create `SpotierCore/Identity/NodeIdentity.swift` +- [x] Create `SpotierCore/Identity/NetworkSecret.swift` +- [x] Create `SpotierCore/Identity/PeerID.swift` +- [x] Create `SpotierCore/Crypto/SessionCrypto.swift` +- [x] Create `SpotierCore/Crypto/HandshakeState.swift` +- [x] Create `SpotierCore/Protocol/CoreFrame.swift` +- [x] Create `SpotierCore/Protocol/ControlMessage.swift` +- [x] Create `SpotierCore/Protocol/DataPacket.swift` +- [x] Create `SpotierCore/Protocol/FrameCodec.swift` +- [x] Create `SpotierCore/Transport/Transport.swift` +- [x] Create `SpotierCore/Transport/UDPTransport.swift` +- [x] Create `SpotierCore/Transport/RelayTransport.swift` +- [x] Create `SpotierCore/Transport/TransportEndpoint.swift` +- [x] Create `SpotierCore/Mesh/Peer.swift` +- [x] Create `SpotierCore/Mesh/PeerStore.swift` +- [x] Create `SpotierCore/Mesh/PeerSession.swift` +- [x] Create `SpotierCore/Mesh/PeerManager.swift` +- [x] Create `SpotierCore/Routing/VirtualRoute.swift` +- [x] Create `SpotierCore/Routing/RouteTable.swift` +- [x] Create `SpotierCore/Routing/RouteCalculator.swift` +- [x] Create `SpotierCore/Packet/IPPacket.swift` +- [x] Create `SpotierCore/Packet/PacketClassifier.swift` +- [x] Create `SpotierCore/Packet/PacketRouter.swift` +- [x] Create `SpotierCore/NAT/STUNClient.swift` +- [x] Create `SpotierCore/NAT/HolePunchCoordinator.swift` +- [x] Create `SpotierCore/Runtime/MeshEngine.swift` +- [x] Create `SpotierCore/Runtime/MeshEngineConfiguration.swift` +- [x] Create `SpotierCore/Runtime/MeshEngineEvent.swift` +- [x] Create `SpotierCore/Runtime/MeshEngineStatus.swift` +- [x] Do not create `SpotierCore/Logging/CoreLogger.swift`; runtime uses OSLog at Apple API boundaries and `MeshEngineEvent.logLine` for core events. +- [x] Modify `SpotierNE/PacketTunnelProvider.swift` +- [x] Modify `SpotierNE/TunnelHelper.swift` +- [x] Modify `SpotierNE/InfoModels.swift` +- [x] Modify `Spotier/VPNManager.swift` +- [x] Modify `Spotier/EasyTierShared.swift` +- [x] Modify `SpotierNE/EasyTierShared.swift` +- [x] Delete `SpotierNE/SwiftierCore.swift` +- [ ] Delete `EasyTierCore/`. Deferred because `EasyTierCore/easytier-patched` contains pre-existing uncommitted changes. +- [x] Delete Rust bridging references from `Spotier.xcodeproj/project.pbxproj` + +## Acceptance Checklist + +- [x] App launches without loading any Rust static library. +- [ ] Packet Tunnel starts with a pure Swift `MeshEngine`. Blocked for Debug build by existing TestFlight-created VPN profile signature requirement. +- [x] Packet Tunnel receives IP packets through `packetFlow.readPackets`. +- [x] Packet Tunnel writes routed IP packets through `packetFlow.writePackets`. +- [ ] Two Apple devices can join the same network using the same network name and secret. Requires two-device matching-signed runtime validation. +- [x] Two local mesh engines can exchange encrypted data over relay-capable transport. +- [x] Two local mesh engines attempt direct UDP transport after control-plane exchange. +- [x] Route table converges when peers join and leave. +- [x] Peer list, route list, and running status are exposed through provider IPC. +- [x] Host app no longer calls Rust FFI wrappers. +- [x] `EasyTierCore/` is no longer part of build inputs. +- [x] macOS build passes. +- [x] Swift core typechecks against the iOS SDK. +- [x] Swift core typechecks against the tvOS SDK. `NEPacketTunnelFlow` requires tvOS 17.0. +- [x] Unit tests cover identity, frame codec, route calculation, packet classification, session encryption, and peer lifecycle. + +## Execution Checklist + +### Task 1: Freeze Current Behavior Contract + +**Files:** +- Create: `plans/swift_core_behavior_contract.md` +- Read: `SpotierNE/PacketTunnelProvider.swift` +- Read: `SpotierNE/SwiftierCore.swift` +- Read: `Spotier/VPNManager.swift` +- Read: `SpotierNE/InfoModels.swift` +- Read: `EasyTierCore/include/EasyTierCore.h` + +- [x] Write down every Rust FFI function currently used by `SpotierNE/SwiftierCore.swift`. +- [x] Write down each provider IPC command currently supported by `PacketTunnelProvider`. +- [x] Write down the TOML fields currently parsed by `PacketTunnelProvider`. +- [x] Write down the running-info JSON fields consumed by the app. +- [x] Add a "must preserve" list for UI-visible behavior. +- [x] Add a "will remove" list for Rust-only behavior. +- [x] Run: `git status --short` +- [x] Commit the contract before implementation starts. + +### Task 2: Add Pure Swift Core Target Membership + +**Files:** +- Modify: `Spotier.xcodeproj/project.pbxproj` +- Create: `SpotierCore/Runtime/MeshEngine.swift` +- Create: `SpotierCore/Runtime/MeshEngineConfiguration.swift` +- Create: `SpotierCore/Runtime/MeshEngineStatus.swift` +- Create: `SpotierCore/Runtime/MeshEngineEvent.swift` +- Test: `SpotierTests/MeshEngineConfigurationTests.swift` + +- [x] Create `SpotierCore/` as the shared Swift core source group. +- [x] Add `SpotierCore/**/*.swift` files to the app target if the app needs models. +- [x] Add `SpotierCore/**/*.swift` files to the Packet Tunnel extension target. +- [x] Add `MeshEngineConfiguration` with network name, secret, virtual IPv4, virtual IPv6, peers, listeners, and MTU. +- [x] Add `MeshEngineStatus` with stopped, starting, running, stopping, failed. +- [x] Add `MeshEngineEvent` with statusChanged, peerChanged, routeChanged, logLine, fatalError. +- [x] Add `MeshEngine` with `start(configuration:)`, `stop()`, `sendProviderCommand(_:)`, and event stream. +- [x] Write tests for config validation using only fields currently accepted by Spotier. +- [x] Run the config tests and confirm they pass. +- [x] Commit. + +### Task 3: Replace TOML Parsing Boundary + +**Files:** +- Create: `SpotierCore/Runtime/CoreConfigParser.swift` +- Modify: `SpotierNE/PacketTunnelProvider.swift` +- Test: `SpotierTests/CoreConfigParserTests.swift` + +- [x] Move the config parsing currently embedded in `PacketTunnelProvider.parseConfigHints(_:)` into `CoreConfigParser`. +- [x] Parse only the TOML keys Spotier actually writes today. +- [x] Return `MeshEngineConfiguration` and `ConfigHints` from the same parse pass. +- [x] Remove duplicate string parsing from `PacketTunnelProvider`. +- [x] Test IPv4 CIDR parsing. +- [x] Test IPv6 CIDR parsing. +- [x] Test MTU parsing. +- [x] Test MagicDNS fields. +- [x] Test rejection of missing network identity. +- [x] Run parser tests. +- [x] Commit. + +### Task 4: Implement Stable Identity Types + +**Files:** +- Create: `SpotierCore/Identity/NodeIdentity.swift` +- Create: `SpotierCore/Identity/NetworkSecret.swift` +- Create: `SpotierCore/Identity/PeerID.swift` +- Test: `SpotierTests/IdentityTests.swift` + +- [x] Define `NetworkSecret` as the network name plus secret material. +- [x] Define `NodeIdentity` with stable local peer ID, hostname, virtual addresses, and public key. +- [x] Define `PeerID` as a fixed-width value suitable for dictionary keys and wire encoding. +- [x] Derive local peer identity deterministically from network name, network secret, and device-specific stored seed. +- [x] Store the device seed in the App Group container. +- [x] Do not derive device identity from hostname. +- [x] Test deterministic identity generation with fixed seed. +- [x] Test different secrets produce different identities. +- [x] Test persisted seed reuse. +- [x] Run identity tests. +- [x] Commit. + +### Task 5: Define Wire Frames + +**Files:** +- Create: `SpotierCore/Protocol/CoreFrame.swift` +- Create: `SpotierCore/Protocol/ControlMessage.swift` +- Create: `SpotierCore/Protocol/DataPacket.swift` +- Create: `SpotierCore/Protocol/FrameCodec.swift` +- Test: `SpotierTests/FrameCodecTests.swift` + +- [x] Define a compact frame header with version, type, flags, sender peer ID, receiver peer ID, sequence, and payload length. +- [x] Define control message cases for hello, sessionOffer, sessionAnswer, routeUpdate, peerPing, peerPong, relayRequest, relayResponse, endpointCandidate. +- [x] Define data packet frame carrying encrypted IP packet bytes. +- [x] Implement binary encode/decode with explicit byte order. +- [x] Reject unknown protocol versions. +- [x] Reject malformed lengths. +- [x] Test round-trip encoding for every control message. +- [x] Test rejection of truncated frames. +- [x] Test rejection of invalid payload length. +- [x] Run frame codec tests. +- [x] Commit. + +### Task 6: Implement Session Encryption + +**Files:** +- Create: `SpotierCore/Crypto/HandshakeState.swift` +- Create: `SpotierCore/Crypto/SessionCrypto.swift` +- Test: `SpotierTests/SessionCryptoTests.swift` + +- [x] Use CryptoKit primitives available on iOS, tvOS, and macOS. +- [x] Define one handshake path for Spotier peers. +- [x] Bind the handshake to network name, peer IDs, and public keys. +- [x] Produce separate send and receive keys. +- [x] Encrypt data packets with authenticated encryption. +- [x] Include sequence number in authenticated data. +- [x] Reject replayed sequence numbers. +- [x] Test two peers derive matching session keys. +- [x] Test wrong network secret fails authentication. +- [x] Test replay rejection. +- [x] Test tamper rejection. +- [x] Run session crypto tests. +- [x] Commit. + +### Task 7: Implement UDP Transport + +**Files:** +- Create: `SpotierCore/Transport/Transport.swift` +- Create: `SpotierCore/Transport/TransportEndpoint.swift` +- Create: `SpotierCore/Transport/UDPTransport.swift` +- Test: `SpotierTests/UDPTransportTests.swift` + +- [x] Define `Transport` with start, stop, send, and inbound frame stream. +- [x] Implement UDP using `NWConnection` and `NWListener`. +- [x] Bind to one local UDP listener configured by `MeshEngineConfiguration`. +- [x] Emit received datagrams as decoded `CoreFrame` plus remote endpoint. +- [x] Surface transport errors as `MeshEngineEvent.fatalError`. +- [x] Test endpoint parsing. +- [x] Test local UDP send/receive on loopback. +- [x] Test invalid frame does not crash the transport. +- [x] Run UDP transport tests. +- [x] Commit. + +### Task 8: Implement Relay Transport + +**Files:** +- Create: `SpotierCore/Transport/RelayTransport.swift` +- Modify: `SpotierCore/Transport/Transport.swift` +- Test: `SpotierTests/RelayTransportTests.swift` + +- [x] Define relay messages as the same `CoreFrame` over a persistent connection. +- [x] Use `NWConnection` over TCP/TLS when relay URL is configured as TLS. +- [x] Use one length-prefixed frame stream. +- [x] Authenticate relay session with the same network identity handshake. +- [x] Support relaying control frames. +- [x] Support relaying encrypted data frames. +- [x] Test length-prefixed frame round trip using a local listener. +- [x] Test relay reconnect is initiated only by explicit transport restart. +- [x] Run relay transport tests. +- [x] Commit. + +### Task 9: Implement Peer Store And Session Lifecycle + +**Files:** +- Create: `SpotierCore/Mesh/Peer.swift` +- Create: `SpotierCore/Mesh/PeerStore.swift` +- Create: `SpotierCore/Mesh/PeerSession.swift` +- Create: `SpotierCore/Mesh/PeerManager.swift` +- Test: `SpotierTests/PeerManagerTests.swift` + +- [x] Define `Peer` with ID, hostname, virtual addresses, known endpoints, relay availability, last seen, and route cost. +- [x] Define `PeerSession` with handshake state, crypto state, transport preference, and health state. +- [x] Implement hello exchange. +- [x] Implement session offer and answer. +- [x] Implement peer ping and pong. +- [x] Mark peers stale after a single configured timeout. +- [x] Remove stale peers through one cleanup path. +- [x] Test peer addition from hello. +- [x] Test session establishment. +- [x] Test stale peer removal. +- [x] Run peer manager tests. +- [x] Commit. + +### Task 10: Implement Routing + +**Files:** +- Create: `SpotierCore/Routing/VirtualRoute.swift` +- Create: `SpotierCore/Routing/RouteTable.swift` +- Create: `SpotierCore/Routing/RouteCalculator.swift` +- Test: `SpotierTests/RouteTableTests.swift` + +- [x] Define host routes for peer virtual IPv4 and IPv6 addresses. +- [x] Define subnet proxy routes with owner peer ID and route cost. +- [x] Implement route update control message application. +- [x] Implement best-route selection by lowest cost, then newest update. +- [x] Do not implement multiple routing algorithms. +- [x] Test direct peer host route. +- [x] Test subnet route selection. +- [x] Test route removal when peer is removed. +- [x] Run route table tests. +- [x] Commit. + +### Task 11: Implement IP Packet Classification + +**Files:** +- Create: `SpotierCore/Packet/IPPacket.swift` +- Create: `SpotierCore/Packet/PacketClassifier.swift` +- Create: `SpotierCore/Packet/PacketRouter.swift` +- Test: `SpotierTests/PacketClassifierTests.swift` + +- [x] Parse IPv4 source, destination, protocol, and payload length. +- [x] Parse IPv6 source, destination, next header, and payload length. +- [x] Reject non-IP packets. +- [x] Route destination IP through `RouteTable`. +- [x] Return local, peer, subnetProxy, or drop. +- [x] Test IPv4 classification. +- [x] Test IPv6 classification. +- [x] Test unknown route produces drop. +- [x] Run packet classifier tests. +- [x] Commit. + +### Task 12: Wire Packet Tunnel To MeshEngine + +**Files:** +- Modify: `SpotierNE/PacketTunnelProvider.swift` +- Modify: `SpotierNE/TunnelHelper.swift` +- Create: `SpotierCore/Runtime/PacketTunnelIO.swift` +- Test: `SpotierNETests/PacketTunnelIOTests.swift` + +- [x] Add `PacketTunnelIO` wrapper around `NEPacketTunnelFlow`. +- [x] Start `MeshEngine` in `startTunnel(options:completionHandler:)`. +- [x] Feed packets from `packetFlow.readPackets` into `MeshEngine`. +- [x] Write packets emitted by `MeshEngine` back through `packetFlow.writePackets`. +- [x] Remove all TUN file descriptor discovery logic. +- [x] Remove calls to `EasyTierCore.setTunFd`. +- [x] Keep `setTunnelNetworkSettings` as the only network settings path. +- [x] Test `PacketTunnelIO` with a fake packet flow abstraction if the target cannot instantiate `NEPacketTunnelFlow`. +- [x] Run packet tunnel IO tests. +- [x] Commit. + +### Task 13: Replace Running Info + +**Files:** +- Modify: `SpotierNE/InfoModels.swift` +- Create: `SpotierCore/Runtime/RunningInfoSnapshot.swift` +- Modify: `SpotierNE/PacketTunnelProvider.swift` +- Modify: `Spotier/VPNManager.swift` +- Test: `SpotierNETests/InfoModelIPv6Tests.swift` +- Test: `SpotierTests/RunningInfoSnapshotTests.swift` + +- [x] Define `RunningInfoSnapshot` from Swift core state. +- [x] Preserve existing JSON fields consumed by the app. +- [x] Generate peer list from `PeerStore`. +- [x] Generate route list from `RouteTable`. +- [x] Generate NAT and transport fields from transport state. +- [x] Serve `running_info` provider message from Swift core. +- [x] Remove `EasyTierCore.getRunningInfo`. +- [x] Update tests for the new snapshot source. +- [x] Run running info snapshot tests. +- [x] Commit. + +### Task 14: Implement NAT Discovery And Hole Punch Coordination + +**Files:** +- Create: `SpotierCore/NAT/STUNClient.swift` +- Create: `SpotierCore/NAT/HolePunchCoordinator.swift` +- Modify: `SpotierCore/Mesh/PeerManager.swift` +- Test: `SpotierTests/HolePunchCoordinatorTests.swift` + +- [x] Implement STUN binding request and response parsing. +- [x] Discover public UDP endpoint from configured STUN server. +- [x] Publish endpoint candidates through control messages. +- [x] Coordinate simultaneous UDP probes with peer endpoint candidates. +- [x] Promote direct UDP transport only after authenticated peer response. +- [x] Keep relay transport active as an explicit route until direct transport is confirmed. +- [x] Test STUN response parsing using fixture bytes. +- [x] Test endpoint candidate exchange. +- [x] Test direct transport promotion. +- [x] Run hole punch coordinator tests. +- [x] Commit. + +### Task 15: Implement Relay Server Compatibility Contract + +**Files:** +- Create: `plans/relay_protocol_contract.md` +- Modify: `SpotierCore/Transport/RelayTransport.swift` +- Test: `SpotierTests/RelayProtocolContractTests.swift` + +- [x] Decide whether Spotier Swift core speaks to existing EasyTier relay nodes or Spotier-owned relay nodes. +- [x] Existing EasyTier relay compatibility is not required for this implementation pass. +- [x] Document Spotier-owned relay protocol as Spotier protocol v1. +- [x] Add contract tests from local relay fixtures. +- [x] Do not support both relay protocols in the same implementation pass. +- [x] Run relay protocol contract tests. +- [x] Commit the relay contract before coding protocol-specific behavior. + +### Task 16: Replace Host App FFI Usage + +**Files:** +- Modify: `Spotier/VPNManager.swift` +- Modify: `Spotier/EasyTierShared.swift` +- Modify: `SpotierNE/EasyTierShared.swift` +- Delete: `SpotierNE/SwiftierCore.swift` +- Test: `SpotierTests/MainConnectionUseCaseTests.swift` + +- [x] Remove any app-side knowledge of Rust symbols. +- [x] Keep App Group config writing. +- [x] Keep `NETunnelProviderManager` lifecycle. +- [x] Keep provider IPC through `sendProviderMessage`. +- [x] Remove `SwiftierCore.swift` from project target membership. +- [x] Delete `SpotierNE/SwiftierCore.swift`. +- [x] Run app lifecycle tests. +- [x] Commit. + +### Task 17: Remove Rust Build Inputs + +**Files:** +- Delete: `EasyTierCore/` +- Modify: `Spotier.xcodeproj/project.pbxproj` +- Modify: `.gitignore` if it only exists for Rust artifacts + +- [x] Remove static library references. +- [x] Remove header search paths pointing at `EasyTierCore/include`. +- [x] Remove library search paths pointing at Rust build outputs. +- [x] Remove build phases that invoke Cargo. +- [x] Remove generated Rust artifacts from the project navigator. +- [ ] Delete `EasyTierCore/`. Deferred because `EasyTierCore/easytier-patched` contains pre-existing uncommitted changes. +- [x] Run: `rg "EasyTierCore|Cargo|libeasytier|SwiftierCore|run_network_instance|set_tun_fd|free_string"` +- [x] Confirm the search returns no runtime references. +- [x] Build `Spotier` scheme for macOS without Rust linker inputs. +- [x] Commit. + +### Task 18: Add App Store Platform Entitlement Audit + +**Files:** +- Create: `plans/apple_platform_entitlement_checklist.md` +- Modify: app and extension entitlement files if present +- Modify: `Spotier.xcodeproj/project.pbxproj` + +- [x] Confirm macOS app target has Packet Tunnel entitlement. +- [x] Confirm iOS app target has Packet Tunnel entitlement if the target exists. +- [x] Confirm tvOS app target has Packet Tunnel entitlement if the target exists. +- [x] Confirm app and extension share the same App Group. +- [x] Confirm no privileged helper entitlement remains. +- [x] Confirm VPN privacy text and data collection notes are documented. +- [x] Build `Spotier` scheme for macOS. +- [x] Commit. + +### Task 19: Add End-To-End Local Mesh Test Harness + +**Files:** +- Create: `SpotierTests/MeshIntegrationTests.swift` +- Create: `SpotierTests/TestDoubles/InMemoryTransport.swift` +- Create: `SpotierTests/TestDoubles/FakePacketFlow.swift` + +- [x] Create two `MeshEngine` instances in one test process. +- [x] Connect them with `InMemoryTransport`. +- [x] Exchange hello messages. +- [x] Establish encrypted session. +- [x] Install host routes. +- [x] Send one IPv4 packet from engine A to engine B. +- [x] Assert engine B emits the decrypted IP packet. +- [x] Send one IPv6 packet from engine B to engine A. +- [x] Assert engine A emits the decrypted IP packet. +- [x] Commit. + +### Task 20: Build And Verification Commands + +**Files:** +- Modify only files required by failing build or tests. + +- [x] Run: `xcodebuild -project Spotier.xcodeproj -scheme Spotier -destination 'platform=macOS' build` +- [x] Run: `xcodebuild -project Spotier.xcodeproj -scheme Spotier -destination 'platform=macOS' test` +- [x] Run Swift core iOS SDK typecheck: `xcrun swiftc -typecheck $(find SpotierCore -name '*.swift' -print | sort) -sdk $(xcrun --sdk iphoneos --show-sdk-path) -target arm64-apple-ios15.0 -module-name SpotierCore`. +- [x] Run Swift core tvOS SDK typecheck: `xcrun swiftc -typecheck $(find SpotierCore -name '*.swift' -print | sort) -sdk $(xcrun --sdk appletvos --show-sdk-path) -target arm64-apple-tvos17.0 -module-name SpotierCore`. +- [x] Launch the macOS app. +- [ ] Start VPN tunnel. Blocked for Debug build by existing TestFlight-created `Spotier VPN` profile signature requirement; `nesessionmanager` rejects the Development-signed Debug provider. +- [ ] Confirm Packet Tunnel logs show Swift `MeshEngine` startup. Blocked until the VPN profile is recreated by the Debug app or verified from a matching-signed install. +- [ ] Confirm no Rust symbols appear in crash logs or runtime logs. Current connected TestFlight provider logs still contain Rust; Debug provider does not pass NetworkExtension signature validation yet. +- [ ] Confirm provider IPC returns running info. Blocked until the Debug provider can stay connected. +- [ ] Confirm app dashboard renders peer and route state. Blocked until the Debug provider can stay connected. +- [x] Commit final verification fixes. + +## Completion Checklist + +- [x] Runtime scan returns no references in `Spotier`, `SpotierNE`, `SpotierCore`, tests, or `Spotier.xcodeproj`: `EasyTierCore|Cargo|libeasytier|SwiftierCore|run_network_instance|set_tun_fd|free_string`. +- [x] `SpotierNE/PacketTunnelProvider.swift` has no TUN file descriptor scanning. +- [x] `SpotierNE/PacketTunnelProvider.swift` reads and writes packets through Packet Tunnel flow only. +- [x] `SpotierCore/Runtime/MeshEngine.swift` is the only core runtime entry point. +- [x] All control-plane wire messages have encode/decode tests. +- [x] All data-plane encryption paths have positive and negative tests. +- [x] Route convergence is covered by tests. +- [x] Relay transport is covered by tests. +- [x] NAT candidate exchange is covered by tests. +- [ ] Host app can start and stop the tunnel. Blocked for Debug build by existing TestFlight-created VPN profile signature requirement. +- [ ] Host app can display running info from Swift core. Blocked until the Debug provider can stay connected. +- [x] macOS build passes. +- [x] Swift core typechecks against the iOS SDK. +- [x] Swift core typechecks against the tvOS SDK. `NEPacketTunnelFlow` requires tvOS 17.0, so the Swift Package declares tvOS 17 as the core package floor. +- [x] The app and extension contain no Rust build dependency needed for runtime. `EasyTierCore/` source still exists because `EasyTierCore/easytier-patched` has pre-existing uncommitted changes. + +## Post-Plan EasyTier Parity Hardening + +- [x] Reject data frames addressed to broadcast; only broadcast `hello` control frames are accepted. +- [x] Prefer the longest matching subnet route before route cost, matching Rust LPM route lookup behavior. +- [x] Ignore `peerPing` from unknown peers instead of creating a control-plane response outside an existing peer connection. +- [x] Keep `routeUpdate` from refreshing peer liveness before authenticated session checks. +- [x] Sort running-info route rows by IPv4 address for deterministic Rust-compatible output. +- [x] Skip invalid MagicDNS hostnames while preserving Unicode hostname records. +- [x] Drop IPv6 packets from foreign link-local sources unless the source is the configured local IPv6 address. +- [x] Forward IPv4 broadcast/multicast and IPv6 multicast packets to all known peers using the encrypted data path. +- [x] Drop IPv6 link-local destination packets instead of routing them through exit nodes. +- [x] Treat IPv4/IPv6 network last-address destinations as mesh fan-out using the configured prefix length. +- [x] Respond to ICMP echo requests sent to the MagicDNS resolver address. +- [x] Compute IPv4 UDP checksums for MagicDNS DNS responses. +- [x] Preserve IPv4 header length/options when MagicDNS rewrites DNS and ICMP responses. +- [x] Skip non-UDP bootstrap peers in the UDP-only Swift transport path instead of silently sending UDP to TCP URLs. +- [x] Generate new default configs in standalone Swift-core mode without EasyTier public server peers. +- [x] Hide unsupported EasyTier public server mode from the Swift-core config generator. +- [x] Align core config parser fixtures with Swift-core UDP bootstrap examples instead of EasyTier public server examples. +- [x] Omit unsupported Rust-only config fields from newly generated Swift-core TOML while preserving old-config parsing. +- [x] Fail Swift core startup when configured listeners exist but none are UDP-backed Swift transports. +- [x] Fail Swift core startup when configured peers exist but none use the UDP-backed Swift bootstrap path. +- [x] Add a Swift Package entry point for `SpotierCore` covering iOS, tvOS, and macOS source-level builds. +- [x] Align config generator listener examples with the UDP-only Swift transport path. +- [x] Remove the new-config port forwarding UI entry because Swift core no longer generates `[[port_forward]]`. +- [x] Hide unsupported Rust-only advanced config controls while keeping old-config parsing intact. +- [x] Delete dead SwiftUI form code for unsupported Rust-only advanced controls. +- [x] Allow `MeshEngine` bootstrap over explicitly injected Spotier relay transports without weakening UDP-only default startup validation. +- [x] Preserve remote endpoint schemes in Swift-core running-info tunnel output instead of reporting relay/TCP peers as UDP. +- [x] Remove stale localized strings for hidden Rust-only config generator controls and EasyTier public-server TCP examples. +- [x] Delete unreachable EasyTier public-server UI branch from the Swift-core config generator form. + +## Explicitly Out Of Scope + +- [x] No Linux support. +- [x] No Windows support. +- [x] No Android support. +- [x] No OpenWrt support. +- [x] No privileged helper replacement. +- [x] No QUIC transport in the first complete Swift core unless UDP and relay are already passing end-to-end tests. +- [x] No WireGuard portal until native Spotier peer-to-peer and relay data paths are complete. +- [x] No compatibility layer that keeps Rust alive behind Swift wrappers.