commit c409b4673cd44b4eec60fe82d2beaa3b2035451b Author: Babak Alizadeh Date: Thu Oct 2 19:12:22 2025 +0330 start v2 diff --git a/.vs/Box/v14/.suo b/.vs/Box/v14/.suo new file mode 100644 index 0000000..200399d Binary files /dev/null and b/.vs/Box/v14/.suo differ diff --git a/.vs/HesabixBox/DesignTimeBuild/.dtbcache.v2 b/.vs/HesabixBox/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000..5285fc9 Binary files /dev/null and b/.vs/HesabixBox/DesignTimeBuild/.dtbcache.v2 differ diff --git a/.vs/HesabixBox/FileContentIndex/37fe7594-0a3f-4b62-872b-adc89a909277.vsidx b/.vs/HesabixBox/FileContentIndex/37fe7594-0a3f-4b62-872b-adc89a909277.vsidx new file mode 100644 index 0000000..dc7560c Binary files /dev/null and b/.vs/HesabixBox/FileContentIndex/37fe7594-0a3f-4b62-872b-adc89a909277.vsidx differ diff --git a/.vs/HesabixBox/FileContentIndex/a65e0145-b3f0-434e-9282-9edb198b62df.vsidx b/.vs/HesabixBox/FileContentIndex/a65e0145-b3f0-434e-9282-9edb198b62df.vsidx new file mode 100644 index 0000000..70aef67 Binary files /dev/null and b/.vs/HesabixBox/FileContentIndex/a65e0145-b3f0-434e-9282-9edb198b62df.vsidx differ diff --git a/.vs/HesabixBox/FileContentIndex/e1520f23-6c47-418a-a0a6-0ea42f0871cd.vsidx b/.vs/HesabixBox/FileContentIndex/e1520f23-6c47-418a-a0a6-0ea42f0871cd.vsidx new file mode 100644 index 0000000..f13741f Binary files /dev/null and b/.vs/HesabixBox/FileContentIndex/e1520f23-6c47-418a-a0a6-0ea42f0871cd.vsidx differ diff --git a/.vs/HesabixBox/v14/.suo b/.vs/HesabixBox/v14/.suo new file mode 100644 index 0000000..205e2c1 Binary files /dev/null and b/.vs/HesabixBox/v14/.suo differ diff --git a/.vs/HesabixBox/v17/.futdcache.v2 b/.vs/HesabixBox/v17/.futdcache.v2 new file mode 100644 index 0000000..55416da Binary files /dev/null and b/.vs/HesabixBox/v17/.futdcache.v2 differ diff --git a/.vs/HesabixBox/v17/.suo b/.vs/HesabixBox/v17/.suo new file mode 100644 index 0000000..ad9b8f4 Binary files /dev/null and b/.vs/HesabixBox/v17/.suo differ diff --git a/.vs/ProjectEvaluation/hesabixbox.metadata.v7.bin b/.vs/ProjectEvaluation/hesabixbox.metadata.v7.bin new file mode 100644 index 0000000..6849b17 Binary files /dev/null and b/.vs/ProjectEvaluation/hesabixbox.metadata.v7.bin differ diff --git a/.vs/ProjectEvaluation/hesabixbox.projects.v7.bin b/.vs/ProjectEvaluation/hesabixbox.projects.v7.bin new file mode 100644 index 0000000..7af39c7 Binary files /dev/null and b/.vs/ProjectEvaluation/hesabixbox.projects.v7.bin differ diff --git a/ApiInterface.vb b/ApiInterface.vb new file mode 100644 index 0000000..e5c0f27 --- /dev/null +++ b/ApiInterface.vb @@ -0,0 +1,276 @@ +Imports System.Net.Http +Imports System.Text +Imports System.Web.Script.Serialization +Imports Microsoft.VisualBasic.FileIO +Imports System.Net +Imports System.Security.Cryptography.X509Certificates +Imports System.Net.Security +Imports System.Threading.Tasks +Imports System.Threading + +Public Class ApiInterface + + ' متد برای تنظیم SSL/TLS + Private Sub ConfigureSSL() + ' تنظیم پروتکل SSL/TLS + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls + + ' تنظیم اعتبارسنجی گواهی SSL (برای محیط تست) + ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate) + + ' تنظیم timeout + ServicePointManager.DefaultConnectionLimit = 10 + + ' تنظیمات اضافی برای حل مشکل SSL + ServicePointManager.Expect100Continue = False + ServicePointManager.UseNagleAlgorithm = False + End Sub + + ' متد اعتبارسنجی گواهی SSL + Private Function ValidateServerCertificate(sender As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) As Boolean + ' برای محیط تست، همه گواهی‌ها را قبول می‌کنیم + ' در محیط تولید باید اعتبارسنجی مناسب انجام شود + Return True + End Function + + ' متد برای تنظیمات پیشرفته SSL (اختیاری) + Public Sub ConfigureAdvancedSSL(enableCertificateValidation As Boolean) + If enableCertificateValidation Then + ' فعال کردن اعتبارسنجی گواهی برای محیط تولید + ServicePointManager.ServerCertificateValidationCallback = Nothing + Else + ' غیرفعال کردن اعتبارسنجی گواهی برای محیط تست + ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate) + End If + End Sub + + ' متد کمکی برای تنظیم timeout + Private Sub SetWebClientTimeout(url As String, timeoutMs As Integer) + Dim servicePoint As ServicePoint = ServicePointManager.FindServicePoint(New Uri(url)) + servicePoint.ConnectionLeaseTimeout = timeoutMs + End Sub + + ' متد تست اتصال SSL + Public Function TestSSLConnection() As String + Try + ConfigureSSL() + + Dim webClient As New Net.WebClient + + Dim testUrl As String = My.Settings.apiUrl.Replace("https://", "https://") + ' تنظیم timeout برای WebClient (از طریق ServicePointManager) + SetWebClientTimeout(testUrl, 10000) ' 10 ثانیه برای تست + Logger.Instance.LogInfo($"تست اتصال SSL به: {testUrl}") + + Dim result As String = webClient.DownloadString(testUrl) + Logger.Instance.LogInfo("تست اتصال SSL موفق انجام شد") + Return "اتصال SSL موفق" + + Catch ex As Exception + Logger.Instance.LogError("خطا در تست اتصال SSL", ex) + Return $"خطا در اتصال SSL: {ex.Message}" + End Try + End Function + + Public Function send(requestUri As String) As String + ' تنظیم SSL/TLS + ConfigureSSL() + + Dim webClient As New Net.WebClient + Dim fullUrl As String = My.Settings.apiUrl + requestUri + + ' تنظیم timeout برای WebClient (از طریق ServicePointManager) + SetWebClientTimeout(fullUrl, 30000) ' 30 ثانیه + + ' ثبت درخواست + Logger.Instance.LogRequest("GET", fullUrl, "", "") + + Try + Dim result As String = webClient.DownloadString(fullUrl) + ' ثبت پاسخ موفق + Logger.Instance.LogResponse("200", result, True) + Return result + Catch ex As Exception + ' ثبت خطا + Logger.Instance.LogError($"خطا در ارسال درخواست به {fullUrl}", ex) + Return "" + End Try + End Function + + ' متد async برای ارسال درخواست بدون مسدود کردن UI + Public Async Function sendAsync(requestUri As String) As Task(Of String) + Return Await Task.Run(Function() + Return send(requestUri) + End Function) + End Function + + Public Function login(token As String) As Dictionary(Of String, Object) + ' تنظیم SSL/TLS + ConfigureSSL() + + Dim webClient As New Net.WebClient + webClient.Headers.Add("api-key", token) + + Dim fullUrl As String = My.Settings.apiUrl + "/api/user/check/login" + ' تنظیم timeout برای WebClient (از طریق ServicePointManager) + SetWebClientTimeout(fullUrl, 30000) ' 30 ثانیه + Dim headers As String = $"api-key: {token}" + + ' ثبت درخواست ورود + Logger.Instance.LogRequest("GET", fullUrl, headers, "") + + Try + Dim result As String = webClient.DownloadString(fullUrl) + Dim serializer As New JavaScriptSerializer() + Dim json As Dictionary(Of String, Object) = serializer.Deserialize(Of Dictionary(Of String, Object))(result) + + ' ثبت پاسخ ورود + If json.Count > 0 Then + Logger.Instance.LogResponse("200", result, True) + Logger.Instance.LogInfo("ورود موفق انجام شد") + Else + Logger.Instance.LogResponse("401", result, False) + Logger.Instance.LogInfo("ورود ناموفق - توکن نامعتبر") + End If + + Return json + Catch ex As Exception + Logger.Instance.LogError("خطا در فرآیند ورود", ex) + Return New Dictionary(Of String, Object)() + End Try + End Function + + ' متد جدید برای دریافت پاسخ خام سرور + Public Function loginWithResponse(token As String) As String + ' تنظیم SSL/TLS + ConfigureSSL() + + Dim webClient As New Net.WebClient + webClient.Headers.Add("api-key", token) + + Dim fullUrl As String = My.Settings.apiUrl + "/api/user/check/login" + ' تنظیم timeout برای WebClient (از طریق ServicePointManager) + SetWebClientTimeout(fullUrl, 30000) ' 30 ثانیه + Dim headers As String = $"api-key: {token}" + + ' ثبت درخواست ورود + Logger.Instance.LogRequest("GET", fullUrl, headers, "") + + Try + Dim result As String = webClient.DownloadString(fullUrl) + + ' ثبت پاسخ ورود + Dim serializer As New JavaScriptSerializer() + Dim json As Dictionary(Of String, Object) = serializer.Deserialize(Of Dictionary(Of String, Object))(result) + + If json.Count > 0 Then + Logger.Instance.LogResponse("200", result, True) + Logger.Instance.LogInfo("ورود موفق انجام شد") + Else + Logger.Instance.LogResponse("401", result, False) + Logger.Instance.LogInfo("ورود ناموفق - توکن نامعتبر") + End If + + Return result + Catch ex As Exception + Logger.Instance.LogError("خطا در فرآیند ورود", ex) + Return ex.Message + End Try + End Function + + Public Function syncPersons() As Boolean + ' تنظیم SSL/TLS + ConfigureSSL() + + Dim webClient As New Net.WebClient + webClient.Headers.Add("api-key", My.Settings.token) + + Dim fullUrl As String = My.Settings.apiUrl + "/api/person/list" + ' تنظیم timeout برای WebClient (از طریق ServicePointManager) + SetWebClientTimeout(fullUrl, 30000) ' 30 ثانیه + Dim headers As String = $"api-key: {My.Settings.token}" + + ' ثبت درخواست همگام‌سازی اشخاص + Logger.Instance.LogRequest("GET", fullUrl, headers, "") + + Try + Dim result As String = webClient.DownloadString(fullUrl) + My.Settings.persons = result + Logger.Instance.LogResponse("200", result, True) + Logger.Instance.LogInfo("همگام‌سازی اشخاص موفق انجام شد") + Return True + Catch ex As Exception + Logger.Instance.LogError("خطا در همگام‌سازی اشخاص", ex) + Return False + End Try + End Function + + Public Function getLastPrint() As String + ' تنظیم SSL/TLS + ConfigureSSL() + + Dim webClient As New Net.WebClient + webClient.Headers.Add("api-key", My.Settings.token) + webClient.Headers.Add("printer-key", My.Settings.printerToken) + + Dim fullUrl As String = My.Settings.apiUrl + "/api/print/last" + ' تنظیم timeout برای WebClient (از طریق ServicePointManager) + SetWebClientTimeout(fullUrl, 30000) ' 30 ثانیه + Dim headers As String = $"api-key: {My.Settings.token}, printer-key: {My.Settings.printerToken}" + + ' ثبت درخواست دریافت آخرین چاپ + Logger.Instance.LogRequest("GET", fullUrl, headers, "") + + Try + Dim result As String = webClient.DownloadString(fullUrl) + Logger.Instance.LogResponse("200", result, True) + Logger.Instance.LogInfo("دریافت آخرین چاپ موفق انجام شد") + Return result + Catch ex As Exception + Logger.Instance.LogError("خطا در دریافت آخرین چاپ", ex) + Return "" + End Try + End Function + + ' متد async برای دریافت آخرین چاپ بدون مسدود کردن UI + Public Async Function getLastPrintAsync() As Task(Of String) + Return Await Task.Run(Function() + Return getLastPrint() + End Function) + End Function + + Public Function downloadFile(ByVal name As String, ByVal type As String) As Boolean + ' تنظیم SSL/TLS + ConfigureSSL() + + Dim webClient As New Net.WebClient + webClient.Headers.Add("api-key", My.Settings.token) + + Dim fileName As String = SpecialDirectories.CurrentUserApplicationData.ToString + "\" + type + ".pdf" + Dim fullUrl As String = My.Settings.apiUrl + "/front/print/" + name + ' تنظیم timeout برای WebClient (از طریق ServicePointManager) - بیشتر برای دانلود فایل + SetWebClientTimeout(fullUrl, 60000) ' 60 ثانیه برای دانلود فایل + Dim headers As String = $"api-key: {My.Settings.token}" + + ' ثبت درخواست دانلود فایل + Logger.Instance.LogRequest("GET", fullUrl, headers, "") + Logger.Instance.LogInfo($"دانلود فایل: {name} (نوع: {type})") + + Try + webClient.DownloadFile(fullUrl, fileName) + Logger.Instance.LogResponse("200", $"فایل با موفقیت دانلود شد: {fileName}", True) + Logger.Instance.LogInfo($"دانلود فایل {type} موفق انجام شد") + Return True + Catch ex As Exception + Logger.Instance.LogError($"خطا در دانلود فایل {name}", ex) + Return False + End Try + End Function + + ' متد async برای دانلود فایل بدون مسدود کردن UI + Public Async Function downloadFileAsync(ByVal name As String, ByVal type As String) As Task(Of Boolean) + Return Await Task.Run(Function() + Return downloadFile(name, type) + End Function) + End Function +End Class diff --git a/App.config b/App.config new file mode 100644 index 0000000..dfa08d3 --- /dev/null +++ b/App.config @@ -0,0 +1,52 @@ + + + + + + +
+ + +
+ + + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + http://hesabix.ir + + + + + + + diff --git a/ApplicationEvents.vb b/ApplicationEvents.vb new file mode 100644 index 0000000..cf403a0 --- /dev/null +++ b/ApplicationEvents.vb @@ -0,0 +1,29 @@ +Imports Microsoft.VisualBasic.ApplicationServices + +Namespace My + ' The following events are available for MyApplication: + ' Startup: Raised when the application starts, before the startup form is created. + ' Shutdown: Raised after all application forms are closed. This event is not raised if the application terminates abnormally. + ' UnhandledException: Raised if the application encounters an unhandled exception. + ' StartupNextInstance: Raised when launching a single-instance application and the application is already active. + ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + ' **NEW** ApplyApplicationDefaults: Raised when the application queries default values to be set for the application. + + ' Example: + ' Private Sub MyApplication_ApplyApplicationDefaults(sender As Object, e As ApplyApplicationDefaultsEventArgs) Handles Me.ApplyApplicationDefaults + ' + ' ' Setting the application-wide default Font: + ' e.Font = New Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular) + ' + ' ' Setting the HighDpiMode for the Application: + ' e.HighDpiMode = HighDpiMode.PerMonitorV2 + ' + ' ' If a splash dialog is used, this sets the minimum display time: + ' e.MinimumSplashScreenDisplayTime = 4000 + ' End Sub + + Partial Friend Class MyApplication + + End Class +End Namespace diff --git a/AsyncHelper.vb b/AsyncHelper.vb new file mode 100644 index 0000000..c9310b7 --- /dev/null +++ b/AsyncHelper.vb @@ -0,0 +1,106 @@ +Imports System.Threading.Tasks +Imports System.Threading + +''' +''' کلاس کمکی برای مدیریت عملیات async و threading +''' +Public Class AsyncHelper + + ''' + ''' اجرای عملیات در background thread بدون مسدود کردن UI + ''' + ''' عملیاتی که باید اجرا شود + Public Shared Sub RunInBackground(action As Action) + Task.Run(action) + End Sub + + ''' + ''' اجرای عملیات async در background thread + ''' + ''' عملیات async که باید اجرا شود + Public Shared Sub RunAsync(asyncAction As Func(Of Task)) + Task.Run(asyncAction) + End Sub + + ''' + ''' اجرای عملیات در UI thread از background thread + ''' + ''' کنترل UI + ''' عملیاتی که باید در UI thread اجرا شود + Public Shared Sub RunOnUIThread(control As Control, action As Action) + If control.InvokeRequired Then + control.Invoke(action) + Else + action() + End If + End Sub + + ''' + ''' اجرای عملیات async در UI thread از background thread + ''' + ''' کنترل UI + ''' عملیات async که باید در UI thread اجرا شود + Public Shared Async Function RunOnUIThreadAsync(control As Control, asyncAction As Func(Of Task)) As Task + If control.InvokeRequired Then + Await Task.Run(Sub() control.Invoke(asyncAction)) + Else + Await asyncAction() + End If + End Function + + ''' + ''' ایجاد CancellationTokenSource با timeout + ''' + ''' مدت timeout به میلی‌ثانیه + ''' CancellationTokenSource + Public Shared Function CreateTimeoutToken(timeoutMs As Integer) As CancellationTokenSource + Return New CancellationTokenSource(timeoutMs) + End Function + + ''' + ''' اجرای عملیات با timeout + ''' + ''' عملیاتی که باید اجرا شود + ''' مدت timeout به میلی‌ثانیه + ''' True اگر عملیات موفق باشد، False اگر timeout شود + Public Shared Async Function RunWithTimeout(action As Func(Of Task), timeoutMs As Integer) As Task(Of Boolean) + Using cts As CancellationTokenSource = CreateTimeoutToken(timeoutMs) + Try + Await Task.Run(action, cts.Token) + Return True + Catch ex As OperationCanceledException + Return False + End Try + End Using + End Function + + ''' + ''' اجرای عملیات با retry در صورت خطا + ''' + ''' عملیاتی که باید اجرا شود + ''' حداکثر تعداد تلاش + ''' تاخیر بین تلاش‌ها به میلی‌ثانیه + ''' True اگر عملیات موفق باشد + Public Shared Async Function RunWithRetry(action As Func(Of Task), maxRetries As Integer, delayMs As Integer) As Task(Of Boolean) + For i As Integer = 0 To maxRetries - 1 + Try + Await action() + Return True + Catch ex As Exception + If i = maxRetries - 1 Then + Logger.Instance.LogError($"عملیات بعد از {maxRetries} تلاش ناموفق بود", ex) + Return False + End If + + Logger.Instance.LogInfo($"تلاش {i + 1} ناموفق بود، تلاش مجدد در {delayMs} میلی‌ثانیه...") + End Try + + ' تاخیر خارج از Catch block + If i < maxRetries - 1 Then + Await Task.Delay(delayMs) + End If + Next + + Return False + End Function +End Class diff --git a/Box.sln b/Box.sln new file mode 100644 index 0000000..e0930f0 --- /dev/null +++ b/Box.sln @@ -0,0 +1,24 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Box", "Box.vbproj", "{12345678-1234-1234-1234-123456789012}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {12345678-1234-1234-1234-123456789012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12345678-1234-1234-1234-123456789012}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12345678-1234-1234-1234-123456789012}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12345678-1234-1234-1234-123456789012}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1A01A3E9-13B7-445C-ABD2-F47C11A15818} + EndGlobalSection +EndGlobal diff --git a/Form1.Designer.vb b/Form1.Designer.vb new file mode 100644 index 0000000..81c282d --- /dev/null +++ b/Form1.Designer.vb @@ -0,0 +1,233 @@ + +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) + Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() + Me.اصلیToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.btnHideWindow = New System.Windows.Forms.ToolStripMenuItem() + Me.btnCloseApplication = New System.Windows.Forms.ToolStripMenuItem() + Me.تنظیماتToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.btnPrinters = New System.Windows.Forms.ToolStripMenuItem() + Me.btnShowLog = New System.Windows.Forms.ToolStripMenuItem() + Me.دربارهToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.دربارهبرنامهToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components) + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.statusLabel = New System.Windows.Forms.ToolStripStatusLabel() + Me.ToolStripStatusLabel1 = New System.Windows.Forms.ToolStripStatusLabel() + Me.Timer1 = New System.Windows.Forms.Timer(Me.components) + Me.LogPanel = New System.Windows.Forms.Panel() + Me.LogTextBox = New System.Windows.Forms.TextBox() + Me.LogControlsPanel = New System.Windows.Forms.Panel() + Me.ToggleLogButton = New System.Windows.Forms.Button() + Me.SaveLogButton = New System.Windows.Forms.Button() + Me.ClearLogButton = New System.Windows.Forms.Button() + Me.LogLabel = New System.Windows.Forms.Label() + Me.MenuStrip1.SuspendLayout() + Me.StatusStrip1.SuspendLayout() + Me.LogPanel.SuspendLayout() + Me.LogControlsPanel.SuspendLayout() + Me.SuspendLayout() + ' + 'MenuStrip1 + ' + resources.ApplyResources(Me.MenuStrip1, "MenuStrip1") + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.اصلیToolStripMenuItem, Me.تنظیماتToolStripMenuItem, Me.دربارهToolStripMenuItem}) + Me.MenuStrip1.Name = "MenuStrip1" + ' + 'اصلیToolStripMenuItem + ' + resources.ApplyResources(Me.اصلیToolStripMenuItem, "اصلیToolStripMenuItem") + Me.اصلیToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.btnHideWindow, Me.btnCloseApplication}) + Me.اصلیToolStripMenuItem.Name = "اصلیToolStripMenuItem" + ' + 'btnHideWindow + ' + resources.ApplyResources(Me.btnHideWindow, "btnHideWindow") + Me.btnHideWindow.Checked = True + Me.btnHideWindow.CheckState = System.Windows.Forms.CheckState.Checked + Me.btnHideWindow.Name = "btnHideWindow" + ' + 'btnCloseApplication + ' + resources.ApplyResources(Me.btnCloseApplication, "btnCloseApplication") + Me.btnCloseApplication.Image = Global.HesabixBox.My.Resources.Resources.logo_blue_1fB_icon + Me.btnCloseApplication.Name = "btnCloseApplication" + ' + 'تنظیماتToolStripMenuItem + ' + resources.ApplyResources(Me.تنظیماتToolStripMenuItem, "تنظیماتToolStripMenuItem") + Me.تنظیماتToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.btnPrinters, Me.btnShowLog}) + Me.تنظیماتToolStripMenuItem.Name = "تنظیماتToolStripMenuItem" + ' + 'btnPrinters + ' + resources.ApplyResources(Me.btnPrinters, "btnPrinters") + Me.btnPrinters.Name = "btnPrinters" + ' + 'btnShowLog + ' + resources.ApplyResources(Me.btnShowLog, "btnShowLog") + Me.btnShowLog.Name = "btnShowLog" + ' + 'دربارهToolStripMenuItem + ' + resources.ApplyResources(Me.دربارهToolStripMenuItem, "دربارهToolStripMenuItem") + Me.دربارهToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.دربارهبرنامهToolStripMenuItem}) + Me.دربارهToolStripMenuItem.Name = "دربارهToolStripMenuItem" + ' + 'دربارهبرنامهToolStripMenuItem + ' + resources.ApplyResources(Me.دربارهبرنامهToolStripMenuItem, "دربارهبرنامهToolStripMenuItem") + Me.دربارهبرنامهToolStripMenuItem.Name = "دربارهبرنامهToolStripMenuItem" + ' + 'NotifyIcon1 + ' + Me.NotifyIcon1.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info + resources.ApplyResources(Me.NotifyIcon1, "NotifyIcon1") + ' + 'StatusStrip1 + ' + resources.ApplyResources(Me.StatusStrip1, "StatusStrip1") + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.statusLabel, Me.ToolStripStatusLabel1}) + Me.StatusStrip1.Name = "StatusStrip1" + ' + 'statusLabel + ' + resources.ApplyResources(Me.statusLabel, "statusLabel") + Me.statusLabel.Name = "statusLabel" + ' + 'ToolStripStatusLabel1 + ' + resources.ApplyResources(Me.ToolStripStatusLabel1, "ToolStripStatusLabel1") + Me.ToolStripStatusLabel1.Name = "ToolStripStatusLabel1" + ' + 'Timer1 + ' + Me.Timer1.Interval = 1000 + ' + 'LogPanel + ' + resources.ApplyResources(Me.LogPanel, "LogPanel") + Me.LogPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) + Me.LogPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.LogPanel.Controls.Add(Me.LogTextBox) + Me.LogPanel.Controls.Add(Me.LogLabel) + Me.LogPanel.Name = "LogPanel" + ' + 'LogTextBox + ' + resources.ApplyResources(Me.LogTextBox, "LogTextBox") + Me.LogTextBox.BackColor = System.Drawing.Color.White + Me.LogTextBox.Name = "LogTextBox" + Me.LogTextBox.ReadOnly = True + ' + 'LogControlsPanel + ' + resources.ApplyResources(Me.LogControlsPanel, "LogControlsPanel") + Me.LogControlsPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.LogControlsPanel.Controls.Add(Me.ToggleLogButton) + Me.LogControlsPanel.Controls.Add(Me.SaveLogButton) + Me.LogControlsPanel.Controls.Add(Me.ClearLogButton) + Me.LogControlsPanel.Name = "LogControlsPanel" + ' + 'ToggleLogButton + ' + resources.ApplyResources(Me.ToggleLogButton, "ToggleLogButton") + Me.ToggleLogButton.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(120, Byte), Integer), CType(CType(215, Byte), Integer)) + Me.ToggleLogButton.ForeColor = System.Drawing.Color.White + Me.ToggleLogButton.Name = "ToggleLogButton" + Me.ToggleLogButton.UseVisualStyleBackColor = False + ' + 'SaveLogButton + ' + resources.ApplyResources(Me.SaveLogButton, "SaveLogButton") + Me.SaveLogButton.BackColor = System.Drawing.Color.FromArgb(CType(CType(100, Byte), Integer), CType(CType(200, Byte), Integer), CType(CType(100, Byte), Integer)) + Me.SaveLogButton.ForeColor = System.Drawing.Color.White + Me.SaveLogButton.Name = "SaveLogButton" + Me.SaveLogButton.UseVisualStyleBackColor = False + ' + 'ClearLogButton + ' + resources.ApplyResources(Me.ClearLogButton, "ClearLogButton") + Me.ClearLogButton.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(100, Byte), Integer), CType(CType(100, Byte), Integer)) + Me.ClearLogButton.ForeColor = System.Drawing.Color.White + Me.ClearLogButton.Name = "ClearLogButton" + Me.ClearLogButton.UseVisualStyleBackColor = False + ' + 'LogLabel + ' + resources.ApplyResources(Me.LogLabel, "LogLabel") + Me.LogLabel.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(120, Byte), Integer), CType(CType(215, Byte), Integer)) + Me.LogLabel.ForeColor = System.Drawing.Color.White + Me.LogLabel.Name = "LogLabel" + ' + 'Form1 + ' + resources.ApplyResources(Me, "$this") + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.LogPanel) + Me.Controls.Add(Me.LogControlsPanel) + Me.Controls.Add(Me.StatusStrip1) + Me.Controls.Add(Me.MenuStrip1) + Me.IsMdiContainer = True + Me.MainMenuStrip = Me.MenuStrip1 + Me.Name = "Form1" + Me.WindowState = System.Windows.Forms.FormWindowState.Maximized + Me.MenuStrip1.ResumeLayout(False) + Me.MenuStrip1.PerformLayout() + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() + Me.LogPanel.ResumeLayout(False) + Me.LogPanel.PerformLayout() + Me.LogControlsPanel.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents MenuStrip1 As MenuStrip + Friend WithEvents اصلیToolStripMenuItem As ToolStripMenuItem + Friend WithEvents NotifyIcon1 As NotifyIcon + Friend WithEvents btnCloseApplication As ToolStripMenuItem + Friend WithEvents تنظیماتToolStripMenuItem As ToolStripMenuItem + Friend WithEvents btnPrinters As ToolStripMenuItem + Friend WithEvents btnShowLog As ToolStripMenuItem + Friend WithEvents دربارهToolStripMenuItem As ToolStripMenuItem + Friend WithEvents دربارهبرنامهToolStripMenuItem As ToolStripMenuItem + Friend WithEvents StatusStrip1 As StatusStrip + Friend WithEvents statusLabel As ToolStripStatusLabel + Friend WithEvents Timer1 As Timer + Friend WithEvents ToolStripStatusLabel1 As ToolStripStatusLabel + Friend WithEvents btnHideWindow As ToolStripMenuItem + Friend WithEvents LogPanel As Panel + Friend WithEvents LogLabel As Label + Friend WithEvents LogTextBox As TextBox + Friend WithEvents LogControlsPanel As Panel + Friend WithEvents ClearLogButton As Button + Friend WithEvents SaveLogButton As Button + Friend WithEvents ToggleLogButton As Button + +End Class diff --git a/Form1.fa-IR.resx b/Form1.fa-IR.resx new file mode 100644 index 0000000..9301c39 --- /dev/null +++ b/Form1.fa-IR.resx @@ -0,0 +1,927 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 152, 22 + + + مخفی کردن + + + 152, 22 + + + 149, 22 + + + تنظیمات اصلی + + + 133, 22 + + + کاتب باکس + + + + AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA + IACoJQAA7h4AAAAAAAABACAAQFcAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAjLgAAIy4AAAAA + AAAAAAAAAAAAAHYcAQB0HAEDeBwBN3kcAH55HACbeRwAhngcAER2HAEHdxwBAHccARZ4HABqeBwAM3Qc + AwJ2HAIAAAAAAHQcAgBmHQYBeRwAZXocAOZ6HAD+ehwA/3ocAP96HADveRwAf3UcAQV2HAEMeRwAv3oc + AOV5HABaiRwAAHQcAgB3HAEAdxwBIHkcANt6HAD/ehwA7nkcALl6HADjehwA/3ocAO14HAA3gxwAAHkc + AKN6HAD/ehwA0XccARd3HAEAeBwAAHgcADV6HADxehwA/3kcAJtnHQYDeRwAeHocAP96HAD9eRwAV38c + AAB5HACeehwA/3ocAOt4HAAseBwAAHkcAAB4HAA2ehwA8XocAP95HACKexwAAHkcAGl6HAD/ehwA/nkc + AFp/HAAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnocAPF6HAD/eRwAi3scAAB5HABlehwA/3oc + AP15HABWfxwAAHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHkcADZ6HADxehwA/3kcAIt7HAAAeBwBLnkc + AMd5HAC/eBwBJIMdAAB5HACeehwA/3ocAOx5HAAueRwAAHkcAAB5HAA2ehwA8XocAP95HACLfRwAAG0c + AwB3HAESdxwBETMaGwD/rwAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnocAPF6HAD/eRwAi30c + AABtHAIAdxwBDnccAQ2TGgAAAAD/AHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHkcADZ6HADxehwA/3kc + AIt7HAAAeBwBKnkcAMB5HAC5eBwBIoQdAAB5HACeehwA/3ocAOx5HAAueRwAAHkcAAB5HAA2ehwA8Xoc + AP95HACLexwAAHkcAGR6HAD/ehwA/HkcAFR/HAAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnoc + APF6HAD/eRwAi3scAAB5HABpehwA/3ocAP15HABYfxwAAHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHgc + ADV6HADxehwA/3kcAIt7HAAAeRwAZnocAP96HAD/eRwAZWYcBQN5HACqehwA/3ocAOt4HAAseBwAAHgc + AQB3HAEhehwA3XocAP95HACSfBwAAHgcAEZ6HAD1ehwA/3ocANt5HACxehwA73ocAP96HADTdxwBGHcc + AQB1HAEAbhsDAXkcAGt6HADueRwAsnQcAgZ3HAEKeRwAkXocAPR6HAD/ehwA/3ocAP96HADleRwAXpcb + AAB0HAIAAAAAAHYcAQB1HAEFeBwAQHgcAHF1HAERdhwBAHccAQt4HABReRwAkHkcAJ55HACCeBwAOHQd + AgN2HAEAAAAAAMBDAACAAwAAgCEAAIAhAACEIQAAhCEAAIQhAACGYQAAhmEAAIQhAACEIQAAhCEAAIQB + AACEAQAAgAMAAMIDAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAAjLgAAIy4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaCAJAIQZAAB0HAIMdxwBNHgcAVd4HAFjdxwBUHYcASpzHQIGdhwBACogEgBxHAIAcB0CAXYc + ATV3HAEydRwBCnocAABjHQQAAAAAAAAAAAAAAAAAAAAAAAAAAAB0HAEAcRwCA3ccAUp5HAC2eRwA6Xoc + APh6HAD7ehwA9nkcAOF5HACfdxwBL4gbAABxHAIAfRwAAHgcAGp5HADmeRwArngcAUBvHQMBdRwCAAAA + AAAAAAAAAAAAAHAcAwCDHAAAeBwBXHkcAO16HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eRwA1Xcc + ATF4HAAAeBwBAHccATV6HADvehwA/3ocAOV4HAFKfBwAAG4cAgAAAAAAAAAAAHYcAQB2HAEYeRwAz3oc + AP96HAD/ehwA/3ocAPd5HADsehwA+3ocAP96HAD/ehwA/3kcAJ5uHAMDdhwBAHYcAR95HADfehwA/3oc + AP95HAC+dR0CDnYdAQAAAAAAAAAAAHgcAQB3HAE9eRwA9HocAP96HAD/eRwA7XgcAWF3HAEqeBwBg3oc + APt6HAD/ehwA/3kcANR2HAEWdRwBAHUcARl5HADaehwA/3ocAP96HADpdxwBK3ccAQAAAAAAAAAAAHgc + AAB4HABFehwA93ocAP96HAD/eRwAx3UcAQ53HAEAdxwBMHkcAO16HAD/ehwA/3kcAN92HAEedhwBAHUc + ARl5HADaehwA/3ocAP96HADxeBwANngcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUc + AQt2HAEAdxwBLnkcAOx6HAD/ehwA/3kcAN92HAEedhwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHYcAQt3HAEAdxwBLnocAOx6HAD/ehwA/3oc + AN92HAEedhwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93oc + AP96HAD/eRwAxHUcAQt2HAEAdhwBKnkcAOl6HAD/ehwA/3kcANt3HAEbdhwBAHYcARl5HADaehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAdRwBDXkc + ALJ6HAD/ehwA/3kcAJ50HAIGdRwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkc + AAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAehwAAHYcASB5HABxeBwAanccARh4HAEAdRwBAHYc + ARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUc + AQt1HAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdRwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAdRwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93oc + AP96HAD/eRwAxHUcAQt1HAEAeRwAAHYcARt4HABjeBwBXXYcARR3HAEAdRwBAHUcARl5HADaehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt2HAEAdRwBC3kc + AKp6HAD/ehwA/nkcAJdzHAIFdRwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkc + AAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt2HAEAdxwBKXocAOh6HAD/ehwA/3ocANl3HAEZdhwBAHYc + ARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHYc + AQt3HAEAdxwBLnocAOx6HAD/ehwA/3ocAN53HAEddhwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt3HAEAdxwBLnocAOx6HAD/ehwA/3oc + AN13HAEddhwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABFehwA93oc + AP96HAD/eRwAxHUcAQt3HAEAdxwBLnkcAOx6HAD/ehwA/3ocAN53HAEedhwBAHYcARt5HADbehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHgcAAB3HAE+ehwA9HocAP96HAD/eRwAxHUcAQx2HAEAdhwBJHkc + AON6HAD/ehwA/3ocAPR4HABpdxwBHngcAWV6HADzehwA/3ocAP96HADrdxwBLXccAQAAAAAAAAAAAHYc + AQB2HAEaeRwA03ocAP96HAD/eRwAz3UcARJ1HAEAdRwCC3kcALd6HAD/ehwA/3ocAP96HAD2ehwA43oc + APZ6HAD/ehwA/3ocAP95HADCdRwBD3YcAQAAAAAAAAAAAHIcAgCJHAAAeBwAY3ocAPF6HAD/eRwA4ncc + ASN3HAEAehwAAHgcAUZ5HADlehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOl4HAFPfBwAAG8d + BAAAAAAAAAAAAAAAAAB2HAEAdBwBBHgcAVZ5HADCeRwA6nccAVZ6HAAAchwCAGscAwF4HAFBeRwAs3kc + AOp6HAD6ehwA/HocAPp6HADreRwAt3gcAUdvHAICcxwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAbhsDAJUg + AAB2HAESdxwBQnYcATabHAAAbRwDAGUfCQB9GgAAdRwBDHccATd4HABdeBwAZ3gcAF13HAE4dRwBDYAb + AABoHgcAAAAAAAAAAAAAAAAA+A4fAOAHBwDgAwcAwAEDAMABAwDAgQMAwIEDAMCBAwDAgQMAwIEDAMDD + AwDA/wMAwP8DAMDDAwDAgQMAwIEDAMCBAwDAgQMAwIEDAMCAAwDAgAMA4MAHAODABwD48B8AKAAAACAA + AABAAAAAAQAgAAAAAAAAEAAAIy4AACMuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGUc + BAClHQAAcRwDCXUcAR12HAEvdRwBMnYcASRzHAIPZx0IAWscBQAAAAAAAAAAAAAAAAAAAAAAdhwBAHUc + AQ91HAEccRwCB38cAABkHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8c + AgApEg0AdRwBIXccAXF5HAC0eRwA13kcAOd5HADpeRwA3nkcAMR4HAGLdxwBN3AcAgRzHAEAAAAAAAAA + AAB2HAEAdhwBK3gcAL95HACveBwAZnYcARmPGAAAZyAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAByHAIAbBwEAnccAVN5HADUehwA/nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADseBwAg3Mc + Ag51HAEAAAAAAHMcAgBxHAIGeRwArXocAP96HAD8eRwAyXccAUKRHQAAcxwBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbR0FAHscAAB2HAFNeRwA6nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HAD8eBwAhm8cAwRzHAIAYx0GAH0cAAB4HAF7ehwA/3ocAP96HAD/eRwA3XccATd5HAAAbhwCAAAA + AAAAAAAAAAAAAAAAAAB0HAEAdBwBEHkcAMB6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADrdxwBOHccAQAAAAAAeRwAAHccAVt6HAD9ehwA/3ocAP96HAD/eRwApnAd + AwZzHQMAAAAAAAAAAAAAAAAAAAAAAHccAQB2HAE8eRwA8nocAP96HAD/ehwA/3ocAP95HADceBwBhHgc + AXV5HAC7ehwA/XocAP96HAD/ehwA/3ocAP94HAF6fRwAAG0dBgB4HAAAdxwBUHocAPt6HAD/ehwA/3oc + AP95HADidhwBI3YcAQAAAAAAAAAAAAAAAAAAAAAAeBwAAHccAVN5HAD8ehwA/3ocAP96HAD/eRwA+Hcc + AVd9HAAAdhwBAHUcAh55HADVehwA/3ocAP96HAD/ehwA/3gcAJz/AAAAbR0EAHgcAAB3HAFOehwA+noc + AP96HAD/ehwA/3ocAPN3HAE7dxwBAAAAAAAAAAAAAAAAAAAAAAB4HAAAdxwAVHocAPx6HAD/ehwA/3oc + AP95HADsdxwBL3ccAQBzHAIAchwCCnkcAMB6HAD/ehwA/3ocAP96HAD/eBwAo1MeCQFsHQQAeBwAAHcc + AU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/Hoc + AP96HAD/ehwA/3kcAOx3HAAudxwAAHIcAQBxHAIKeBwAv3ocAP96HAD/ehwA/3ocAP94HACjVB4IAWwd + BAB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgc + AFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAS53HAEAchwBAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3gc + AKNVHgkBbB0EAHgcAAB3HAFOehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAA + AAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLnccAQBzHAIAchwCCnkcAL96HAD/ehwA/3oc + AP96HAD/eRwAo1QeCQFsHQQAeBwAAHccAU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAA + AAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3ocAOx3HAEudxwBAHEcAgBvHAMHeBwAuHoc + AP96HAD/ehwA/3ocAP95HACa/wAAAGweBQB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgc + AAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAC53HAAAbh0FAIcb + AAB4HAF6ehwA/nocAP96HAD/ehwA+HgcAVx6HAAAbiAJAHgcAAB3HAFPehwA+nocAP96HAD/ehwA/3oc + APV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLncc + AQAAAAAAdRwBAHQcARR4HACPeRwA3HkcANd4HAF7dBwCCnUcAQAAAAAAeBwAAHccAU96HAD6ehwA/3oc + AP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3oc + AOx3HAAudxwAAAAAAAAAAAAAdBwCAHEcAwV2HAEbdhwBGHAcAgNyHAEAAAAAAAAAAAB4HAAAdxwBTnoc + APp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3oc + AP96HAD/eRwA7HccAS53HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgc + AAB3HAFPehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHoc + APx6HAD/ehwA/3ocAP95HADsdxwBLnccAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAeBwAAHccAU95HAD6ehwA/3ocAP96HAD/ehwA9XgcAUB4HAAAAAAAAAAAAAAAAAAAAAAAAHkc + AAB4HABUehwA/HocAP96HAD/ehwA/3kcAOx3HAEudxwAAAAAAAAAAAAAch0DAHEdAwN1HAIRdRwCD20d + BAFvHAMAAAAAAAAAAAB4HAAAdxwBT3kcAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAA + AAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAS53HAAAAAAAAHUcAQB0HAIPeBwAgXkc + AM15HADJdxwBbnMcAgh0HAIAAAAAAHgcAAB3HAFPehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAA + AAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLnccAQBvHAMAfhwAAHgc + AXF6HAD8ehwA/3ocAP95HAD1dxwBVnocAABwHAMAeBwAAHccAU96HAD6ehwA/3ocAP96HAD/ehwA9Xgc + AEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3ocAOx3HAEudxwAAHEc + AwBvHAMGeBwAtHocAP96HAD/ehwA/3ocAP95HACWmBwAAG4cAwB4HAAAdxwBTnocAPp6HAD/ehwA/3oc + AP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7Hcc + AS53HAEAcxwCAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3kcAJ9BHg4BbR0EAHgcAAB3HAFPehwA+noc + AP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3oc + AP96HADsdxwBLnccAQByHAIAchwCCnkcAL96HAD/ehwA/3ocAP96HAD/eRwAoEMhDgFtHQQAeBwAAHcc + AU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/Hoc + AP96HAD/ehwA/3ocAOx3HAEudxwBAHMcAgByHAIKeRwAv3ocAP96HAD/ehwA/3ocAP95HACfOyEPAW0d + AwB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgc + AFR6HAD8ehwA/3ocAP96HAD/eRwA7HccAS53HAEAcxwCAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3kc + AJ4sHxIAbB0DAHgcAAB3HAFPehwA+3ocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAA + AAB5HAAAdxwBU3ocAPx6HAD/ehwA/3ocAP95HADsdxwBLnccAQBxHAIAbxwDB3gcALh6HAD/ehwA/3oc + AP96HAD/eRwAuHIdAgxzHAIAgRwAAHccAWx6HAD+ehwA/3ocAP96HAD/ehwA9HccATx3HAEAAAAAAAAA + AAAAAAAAAAAAAHccAQB2HAE+eRwA83ocAP96HAD/ehwA/3kcAO12HAEwdxwBAG4dBAA/HxEBeBwAnXoc + AP96HAD/ehwA/3ocAP96HAD3eBwAnngcAVt4HAF8eRwA4HocAP96HAD/ehwA/3ocAP95HADkdhwBJnYc + AQAAAAAAAAAAAAAAAAAAAAAAdBwCAHQcAhN5HADGehwA/3ocAP96HAD/eRwA9XccAUB3HAEAbh0EAHoc + AAB4HAFWehwA+HocAP96HAD/ehwA/3ocAP96HAD/ehwA/XocAP56HAD/ehwA/3ocAP96HAD/ehwA/3gc + AK1yHAIHdBwCAAAAAAAAAAAAAAAAAAAAAABsHAMAfhwAAHccAVZ5HADvehwA/3ocAP96HAD9dxwBWXkc + AAAAAAAAdRwBAHUcAg14HACpehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HADjdxwBPXocAABYIA8AAAAAAAAAAAAAAAAAAAAAAAAAAAB0HAEAcRwCA3ccAWJ5HADgehwA/3oc + AP94HACNnBoAAHAdAwBqHAQAdxwAAHUcAR14HACjehwA9nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD+eRwA0nccAUtbHAgBchwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwHQQAah4HAXYc + ASt4HAGCeRwAxngcAbtzHAIacxwCAAAAAABdHAoAdxwAAHQdAgt3HAFQeBwAo3kcANN5HADoeRwA7Hkc + AOp5HADdeRwAuHgcAHN1HAEg/wAAAG0eBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaxwEAGcdBgF0HAIQdRwBKXIcAg1zHAEAAAAAAAAAAAAAAAAAXBsGAHQdAwBvHQMFdRwBGncc + ATB3HAE3dhwBNHYcASNzHAILOxUIAGUbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Afj//AB4P/AA + OB/wABwP4AAcB+AAHAfgMBwH4DAMB+AwDAfgMAwH4DAMB+AwHAfgOBwH4DgcB+A8PAfgP/wH4D/8B+A8 + PAfgOBwH4DgcB+AwHAfgMAwH4DAMB+AwDAfgMBwH4DAMB+AwAAfgOAAH8DgAD/A8AA/4HgA//h+A/ygA + AAAwAAAAYAAAAAEAIAAAAAAAACQAACMuAAAjLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdOQAAHT8AFCIsABwjIwAbV80ACmm8AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpHAMAahwEAGscBABsHAQAbBwEAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeIQ8A/wAAAHAcAwl0HAIqdhwBVXccAXh4HAGUdxwBnXcc + AZt3HAGHdhwBZ3UcAUJyHAMZah4EAm0dAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuHAIAex0AAHUc + AT12HAF2dhwBTXQcASNwHAIFdRwAAAAaSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYxsFAHodAAByHAISdhwBYXgcAbV5HADmeRwA/Hoc + AP96HAD/ehwA/3ocAP95HAD/ehwA/nkcAPV4HADUdxwBiXUcATJpHAMDbxwCAAAAAAAAAAAAAAAAAAAA + AABxHAIAdhwBAHUcAS95HADieRwA+3kcAOB4HACmdhwBTXIcAwp3GwAAZSANAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsHAQATB0NAHUcATp4HAC6eRwA+noc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOZ2HAF7chwCDnQc + AgAAAAAAAAAAAAAAAAAAAAAAcB0DAGMdBwJ4HAGcehwA/3ocAP96HAD/ehwA9HgcAaZ0HAIofhwAAGce + BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoeCACxFgAAdRwBTXkc + AOB6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD7dxwBnHIcAhFzHAIAAAAAAAAAAAAAAAAAaRwFAHkcAAB2HAFgehwA/XocAP96HAD/ehwA/3oc + AP95HADKdhwBL3ocAABsHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZB8KAHYc + AQB0HAIweBwA23ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eRwA/HccAYBlHAUCcRwCAAAAAAAAAAAAAAAAAHccAQB1HAI9eRwA83oc + AP96HAD/ehwA/3ocAP96HAD/eBwBvXMcAhd0HAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcBwDAGkcBAR3HAGcehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOZ1HAEzdhwBAAAAAAAAAAAAAAAAAHQc + AgB0HAIjeRwA4XocAP96HAD/ehwA/3ocAP96HAD/ehwA/XccAXCEGgAAbCAJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdRwBAHQcASh5HADjehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HAD6eRwA8HocAPR5HAD+ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP93HAGDhxwAAG8c + AwAAAAAAAAAAAHIcAgByHAIZeRwA2HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3gcAcZyHQMQcx0DAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHYcAVx5HAD8ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3gcAcR2HAFadhwCNnUcAkB3HAGGeRwA7HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP94HAG6bRwDCXAcAwAAAAAAAAAAAHEcAgBxHAIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kc + AOp1HAEudhwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHYcAXN5HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwB3XMdAyx2HAEAYx4KAHAbAwBRGgsBdxwBe3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADVcxwCF3QcAgAAAAAAAAAAAHEcAwBxHAMVeBwA0nocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAPh1HAFJdhwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHcc + 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 + AP95HADadB0CHHQdAgAAAAAAAAAAAHEcAgBxGwIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + APx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAHR6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwAoEYdCwFyHAIAAAAAAAAAAAB2HAEAdRwBQHkcAPV6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADadB0BHHQdAQAAAAAAAAAAAHEcAgBxHAIVeRwA0nocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3kcAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHcc + AHR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEQbCQFxHAIAAAAAAAAAAAB2HAEAdRwBQHkc + APV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADZdBwBG3QcAQAAAAAAAAAAAHEcAgBxHAIVeBwA0noc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAexwAAHgcAXR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEIbCgFxHAIAAAAAAAAA + AAB2HAEAdRwBQHkcAPV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADZdRwBGnUcAQAAAAAAAAAAAHEc + AgBxHAIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAHR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEIb + CgFxHAIAAAAAAAAAAAB1HAEAdRwBQHkcAPV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADcdBwBHXQc + AQAAAAAAAAAAAHEcAgBxHAIXeBwA1XocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwBAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAXR6HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/eBwAoD4bDAFxHAIAAAAAAAAAAAB0HAEAdBwBM3kcAO16HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HADydR0BSHkcAABpHQUAah0DAHgcAQB0HAE+eRwA7HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kc + APl2HAJNdxwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHYcAVx5HAD9ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwAoD4bDAFxHAIAAAAAAAAAAABzHAIAcxwCIXkcAOB6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwA0HYcAVh1HAEidRwCInYcAVR4HADLehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3kcAO11HAEydRwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdBwCAHQc + Ai95HADoehwA/3ocAP96HAD/ehwA/3ocAP96HAD/dxwBsGgcBQZuHAMAAAAAAAAAAABxHQQAbx0ECngc + AbZ6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPh5HADheRwA4HkcAPh6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3gcAMpzHAITcxwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcB0DAG0dBAd4HAGmehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAxHEcAg1yHAIAAAAAAAAA + AABuHAQAexwAAHccAWF6HAD6ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ccAXyMHAAAbxwDAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAahsEAHgcAQB1HAE5eRwA5HocAP96HAD/ehwA/3ocAP96HAD/eBwA1nIc + AhhyHAIAAAAAAAAAAAAAAAAAdBwCAHIcAhF4HAC0ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAxXQcAhx1HAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8cBABbHAwBdxwBW3kcAOl6HAD/ehwA/3oc + AP96HAD/eRwA7XUcATN2HAEAAAAAAAAAAAAAAAAATxsQAHccAQB0HAEueBwAynocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP94HADWdRwBO3gc + AABtHQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByHAEAbRwBAnYc + AVJ4HAHRehwA/XocAP96HAD/ehwA/nYcAWt8GwAAZx4HAAAAAAAAAAAAAAAAAGkcBACAHAAAdRwBJngc + Aap5HAD2ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eRwA+Xgc + AbZ1HAExlRwAAGwcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAah0FAP8QAAB0HAIedxwBd3gcAMt5HADzehwA/3gcAcBwHQMScRwDAAAAAAAAAAAAAAAAAAAA + AAA9MCgAeRoAAHEdAwx2HAFWeBwAsXkcAOl5HAD9ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/Xkc + AOp4HAC3dhwBYHIdAxF+GgAAXiMSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoHAUAWB4LAHIdAxV1HAFAdxwBcXYcAY9yHAIrcxwBAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGkdBQB2GwAAcBwCCXQcAi52HAFddxwBh3gcAZ14HACkeBwAo3gc + AJx4HAGHdxwBX3UcATBwHAILhxoAAFIeCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaBsEAGEb + BgFsHAMBbRsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoFzcAJho5AEMe + FAFdGwcCWhsGAjQXCQEjFhAAKxYNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///////8AAP/gAf8H/wAA/4AAfwH/AAD/AAA/AP8AAP4AAB+AfwAA/AAAD4A/ + AAD4AAAPgD8AAPgAAA+AHwAA+AAAB4AfAAD4AcAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB + 4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB8A+AHwAA+AHwH4Af + AAD4Afw/gB8AAPgB//+AHwAA+AH//4AfAAD4Af//gB8AAPgB//+AHwAA+AH8P4AfAAD4AfAfgB8AAPgB + 8A+AHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4Af + AAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAAAB8AAPgB4AAAHwAA+AHwAAA/AAD8AfAAAD8AAPwB + +AAAfwAA/gH8AAD/AAD/gP4AAf8AAP/g/4AH/wAA//z/+H//AACJUE5HDQoaCgAAAA1JSERSAAABAAAA + AQAIBgAAAFxyqGYAAFcHSURBVHja7b15vC1HXS/6/VX3WnvvM2YmydknCRkBiUC8KOAAgvh5PJyCch+T + JoCQAWJU+CB6vd57uT6vV69ihAwkEDEyyPDUiyOCVxkUUCZRpoQpZ58TIOOZ9tl7rdVdv/dHd/Wqrq6q + rl5rn11r56wvnOxV3VXVVb+u4TdWA3PMMcccc8wxxxxzzDHHHHPMMcccc8wxxxxzzDHHwxMUuwFbBSdf + 9BJCfgTrQ4LkbZRTn4AeuCAhCxryaOVWjt3OWcHpF11JBICzw1gbjjDCqSTRB0SfGASQgJQMAiHnHvfp + yKkA9gD8ACCWAN7B4K/mvHgUQDFSmcGQEGCAGAlGnPAqCwywKA5hadcjAQD7P//m+XsIxHwB8GBh71WC + kZw8lIu81B9cLnMWmURKoEcz06WgZImBBODPJbT230crt30jdptjY2HvVWnO6W6JhWQxHfzIKKcVZj4V + jEsZ4lEQyVlgQSACczFPGQCYFgm8nYnWAU4J6DHoMIAhwACrOc0gKtIE+UUi/jSAo4z0U9sX5RMGo/TD + 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 + + + + کاتب باکس + + + 211, 17 + + + این افزونه رایگان و متن باز منتشر می شود. + + + 800, 22 + + + StatusStrip1 + + + Consolas, 9pt + + + + Vertical + + + 347, 106 + + + Flat + + + Flat + + + Flat + + + 126, 106 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACAAAAAgAAAAIAAA + ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAADAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXFRQU4CMi + IuAkIyPgJCMj4CQjI+AkIyPgJCMj4CQjI+AkIyPgJCMj4CQjI+AkIyPgIyIi4BUUFOAAAABXAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AEgxLy/2WFVV/zw6Ov04Njb9ODY2/Tg2Nv04Njb9ODY2/Tg2Nv04Njb9ODY2/T07O/1ZVlb/MS8v9gAA + AEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAKSYlJeZRTk7/OTg4/KOjo/2qqqr+qqqq/qqqqv6qqqr+qqqq/qurq/6goKD9NjU1/FNQ + UP8mJSXmAAAAKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAATGxoazlFOTv9EQ0P76urq/v///////////////////////////////+Xl + 5f5BQED7UlBQ/xsaGs4AAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUREBCuTktL/zs5OfvX19f9//////////////////////// + ////////09PT/Tk4OPxPTEz/ERAQrQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAHAAAAKwAAADAAAAAwAAAALgcHB6NHRUX/ODc3/MDAwP3///////////// + //////////////////+8vLz9ODc3/EdFRf8HBwejAAAALgAAADAAAAAwAAAAKwAAAAcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsZGBjZOTc36zAuLuomJiXrOzs68j48PP08Ojr8paWl/P// + /////////////////////////////6Ojo/w8Ojr8Pjw8/Ts7OvImJiXqMC8v6jk3N+sZGBjZAAAAKwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDk4N+uEgYD/b2xs/ldWVfycm5n8KCcn/CYl + JfxVVVX8lpaW/ZSUlP2UlJT9k5OT/ZOTk/2VlZX9VFRU/CYlJfwoJyf8m5uZ/FZWVPtvb2z/g4V//zk4 + N+sAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwOTg36oSBgP9vbGz+VVRT/MXE + wf6Yl5X8kZGO/JGQjvyQj438kI+N/JCPjfyQj438kI+N/JCPjfyRkI78kpGP/JiXlfzFxMH9VFJS+2x4 + aP97mXb/OTg36gAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA5ODfqhIGA/29s + bP5UU1L80M/M/tXU0f/V1NH/1dTR/9XU0f/V1NH/1dTR/9XU0f/V1NH/1dTR/9XU0f/V1NH/1dTR/8/O + y/5TUlD7bm18/3+Ao/85ODfqAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDk4 + N+qEgYD/b2xs/lVUU/zS0c7+1dTR/9XU0f/V1NH/1dTR/9XU0f/V1NH/1dTR/9XU0f/V1NH/1dTR/9XU + 0f/V1NH/0tHO/lRTUftpc37/dY+q/zk4N+oAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAwOTg36oSBgP92c3L+PDs7+2lpZ/xtbGv8bGtq/GxravxtbGv8bGtq/Gxravxsa2r8bGtq/Gxr + avxsa2r8bGtq/GxravxpaGf8PDo5+25+gv5xmKT/OTg36gAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAADA5ODfqg4B//357ev9jYF/+XVpa/lVTUv5aWFj+WVdX/lVTU/5fXFz+YF1d/mBd + Xf5gXV3+YF1d/mBdXf5gXV3+YF1d/mBdXf5ua2v+g39+/4SAfv85ODfqAAAAMAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDk4N+qEgYD/Z2Rk/0NBQf91cnL/RkVE/2RiYf9fXV3/SUdH/4F+ + ff+FgoH/hYKB/4WCgf+FgoH/hYKB/4WCgf+FgoH/hYKB/4SBgP+DgH//g4B//zk4N+oAAAAwAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtGhkZ6T48PP08Ozr8Ojk4/D08O/w6OTj8PDs6/Dw7 + Ovw6OTj8Pj08/D49PPw+PTz8Pj08/D49PPw+PTz8Pj08/D49PPw+PTz8Pj08/D49PPw+PDz9GhkZ6QAA + AC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQZGBjLYl9e/mdkY/xhX178YF5d/GBe + XfxgXl38YF5d/GBeXfxgXl38YF5d/GBeXfxgXl38YF5d/GBeXfxgXl38YF5d/GBeXfxhX178Z2Rj/GJf + Xv4ZGBjLAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAramoAA0NDY5lY2L/SUdH/Dw8 + O/tLS0r7TExL+05NTPtOTUz7Tk1M+05NTPtOTUz7Tk1M+05NTPtOTUz7Tk1M+05NTPtMTEv7S0tK+zw8 + O/tJR0f8ZWNi/w0NDY6yrq0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAAAAATEdG + RfVUUlH9cHBu+8rJxv6dnZr7d3d1+nh4dvp4eHb6eHh2+nh4dvp4eHb6eHh2+nh4dvp4eHb6d3d1+p2d + mvvKycb+cHBu+1RSUf1HRkX1AAAATAEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAZKSgo02xqaf9LSkn7ysrH/mBgXvsZGBj6XFxc+6WlpfykpKT8pKSk/KSkpPyhoaH8o6Oj/Ftb + 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 + A///4Af//+AH///gB///4Af//+AH//////8= + + + + کاتب باکس + + \ No newline at end of file diff --git a/Form1.resx b/Form1.resx new file mode 100644 index 0000000..b402801 --- /dev/null +++ b/Form1.resx @@ -0,0 +1,1926 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 75, 23 + + + 173, 22 + + + 180, 22 + + + وب سایت حسابیکس + + + 62, 20 + + + 0, 0 + + + NotifyIcon1 + + + 0, 0 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + LogControlsPanel + + + 0 + + + 2 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + حسابیکس باکس + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + LogPanel + + + 131, 22 + + + لیستفاکتورهاToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Tahoma, 9pt + + + نرم افزار مدیریت پرینترهای ابری + + + اصلیToolStripMenuItem + + + 0, 0 + + + 2 + + + خروجToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + StatusStrip1 + + + + 0 + + + فاکتور جدید + + + 7, 14 + + + + AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA + IACoJQAA7h4AAAAAAAABACAAQFcAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAjLgAAIy4AAAAA + AAAAAAAAAAAAAHYcAQB0HAEDeBwBN3kcAH55HACbeRwAhngcAER2HAEHdxwBAHccARZ4HABqeBwAM3Qc + AwJ2HAIAAAAAAHQcAgBmHQYBeRwAZXocAOZ6HAD+ehwA/3ocAP96HADveRwAf3UcAQV2HAEMeRwAv3oc + AOV5HABaiRwAAHQcAgB3HAEAdxwBIHkcANt6HAD/ehwA7nkcALl6HADjehwA/3ocAO14HAA3gxwAAHkc + AKN6HAD/ehwA0XccARd3HAEAeBwAAHgcADV6HADxehwA/3kcAJtnHQYDeRwAeHocAP96HAD9eRwAV38c + AAB5HACeehwA/3ocAOt4HAAseBwAAHkcAAB4HAA2ehwA8XocAP95HACKexwAAHkcAGl6HAD/ehwA/nkc + AFp/HAAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnocAPF6HAD/eRwAi3scAAB5HABlehwA/3oc + AP15HABWfxwAAHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHkcADZ6HADxehwA/3kcAIt7HAAAeBwBLnkc + AMd5HAC/eBwBJIMdAAB5HACeehwA/3ocAOx5HAAueRwAAHkcAAB5HAA2ehwA8XocAP95HACLfRwAAG0c + AwB3HAESdxwBETMaGwD/rwAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnocAPF6HAD/eRwAi30c + AABtHAIAdxwBDnccAQ2TGgAAAAD/AHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHkcADZ6HADxehwA/3kc + AIt7HAAAeBwBKnkcAMB5HAC5eBwBIoQdAAB5HACeehwA/3ocAOx5HAAueRwAAHkcAAB5HAA2ehwA8Xoc + AP95HACLexwAAHkcAGR6HAD/ehwA/HkcAFR/HAAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnoc + APF6HAD/eRwAi3scAAB5HABpehwA/3ocAP15HABYfxwAAHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHgc + ADV6HADxehwA/3kcAIt7HAAAeRwAZnocAP96HAD/eRwAZWYcBQN5HACqehwA/3ocAOt4HAAseBwAAHgc + AQB3HAEhehwA3XocAP95HACSfBwAAHgcAEZ6HAD1ehwA/3ocANt5HACxehwA73ocAP96HADTdxwBGHcc + AQB1HAEAbhsDAXkcAGt6HADueRwAsnQcAgZ3HAEKeRwAkXocAPR6HAD/ehwA/3ocAP96HADleRwAXpcb + AAB0HAIAAAAAAHYcAQB1HAEFeBwAQHgcAHF1HAERdhwBAHccAQt4HABReRwAkHkcAJ55HACCeBwAOHQd + AgN2HAEAAAAAAMBDAACAAwAAgCEAAIAhAACEIQAAhCEAAIQhAACGYQAAhmEAAIQhAACEIQAAhCEAAIQB + AACEAQAAgAMAAMIDAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAAjLgAAIy4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaCAJAIQZAAB0HAIMdxwBNHgcAVd4HAFjdxwBUHYcASpzHQIGdhwBACogEgBxHAIAcB0CAXYc + ATV3HAEydRwBCnocAABjHQQAAAAAAAAAAAAAAAAAAAAAAAAAAAB0HAEAcRwCA3ccAUp5HAC2eRwA6Xoc + APh6HAD7ehwA9nkcAOF5HACfdxwBL4gbAABxHAIAfRwAAHgcAGp5HADmeRwArngcAUBvHQMBdRwCAAAA + AAAAAAAAAAAAAHAcAwCDHAAAeBwBXHkcAO16HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eRwA1Xcc + ATF4HAAAeBwBAHccATV6HADvehwA/3ocAOV4HAFKfBwAAG4cAgAAAAAAAAAAAHYcAQB2HAEYeRwAz3oc + AP96HAD/ehwA/3ocAPd5HADsehwA+3ocAP96HAD/ehwA/3kcAJ5uHAMDdhwBAHYcAR95HADfehwA/3oc + AP95HAC+dR0CDnYdAQAAAAAAAAAAAHgcAQB3HAE9eRwA9HocAP96HAD/eRwA7XgcAWF3HAEqeBwBg3oc + APt6HAD/ehwA/3kcANR2HAEWdRwBAHUcARl5HADaehwA/3ocAP96HADpdxwBK3ccAQAAAAAAAAAAAHgc + AAB4HABFehwA93ocAP96HAD/eRwAx3UcAQ53HAEAdxwBMHkcAO16HAD/ehwA/3kcAN92HAEedhwBAHUc + ARl5HADaehwA/3ocAP96HADxeBwANngcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUc + AQt2HAEAdxwBLnkcAOx6HAD/ehwA/3kcAN92HAEedhwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHYcAQt3HAEAdxwBLnocAOx6HAD/ehwA/3oc + AN92HAEedhwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93oc + AP96HAD/eRwAxHUcAQt2HAEAdhwBKnkcAOl6HAD/ehwA/3kcANt3HAEbdhwBAHYcARl5HADaehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAdRwBDXkc + ALJ6HAD/ehwA/3kcAJ50HAIGdRwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkc + AAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAehwAAHYcASB5HABxeBwAanccARh4HAEAdRwBAHYc + ARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUc + AQt1HAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdRwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAdRwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93oc + AP96HAD/eRwAxHUcAQt1HAEAeRwAAHYcARt4HABjeBwBXXYcARR3HAEAdRwBAHUcARl5HADaehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt2HAEAdRwBC3kc + AKp6HAD/ehwA/nkcAJdzHAIFdRwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkc + AAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt2HAEAdxwBKXocAOh6HAD/ehwA/3ocANl3HAEZdhwBAHYc + ARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHYc + AQt3HAEAdxwBLnocAOx6HAD/ehwA/3ocAN53HAEddhwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt3HAEAdxwBLnocAOx6HAD/ehwA/3oc + AN13HAEddhwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABFehwA93oc + AP96HAD/eRwAxHUcAQt3HAEAdxwBLnkcAOx6HAD/ehwA/3ocAN53HAEedhwBAHYcARt5HADbehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHgcAAB3HAE+ehwA9HocAP96HAD/eRwAxHUcAQx2HAEAdhwBJHkc + AON6HAD/ehwA/3ocAPR4HABpdxwBHngcAWV6HADzehwA/3ocAP96HADrdxwBLXccAQAAAAAAAAAAAHYc + AQB2HAEaeRwA03ocAP96HAD/eRwAz3UcARJ1HAEAdRwCC3kcALd6HAD/ehwA/3ocAP96HAD2ehwA43oc + APZ6HAD/ehwA/3ocAP95HADCdRwBD3YcAQAAAAAAAAAAAHIcAgCJHAAAeBwAY3ocAPF6HAD/eRwA4ncc + ASN3HAEAehwAAHgcAUZ5HADlehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOl4HAFPfBwAAG8d + BAAAAAAAAAAAAAAAAAB2HAEAdBwBBHgcAVZ5HADCeRwA6nccAVZ6HAAAchwCAGscAwF4HAFBeRwAs3kc + AOp6HAD6ehwA/HocAPp6HADreRwAt3gcAUdvHAICcxwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAbhsDAJUg + AAB2HAESdxwBQnYcATabHAAAbRwDAGUfCQB9GgAAdRwBDHccATd4HABdeBwAZ3gcAF13HAE4dRwBDYAb + AABoHgcAAAAAAAAAAAAAAAAA+A4fAOAHBwDgAwcAwAEDAMABAwDAgQMAwIEDAMCBAwDAgQMAwIEDAMDD + AwDA/wMAwP8DAMDDAwDAgQMAwIEDAMCBAwDAgQMAwIEDAMCAAwDAgAMA4MAHAODABwD48B8AKAAAACAA + AABAAAAAAQAgAAAAAAAAEAAAIy4AACMuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGUc + BAClHQAAcRwDCXUcAR12HAEvdRwBMnYcASRzHAIPZx0IAWscBQAAAAAAAAAAAAAAAAAAAAAAdhwBAHUc + AQ91HAEccRwCB38cAABkHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8c + AgApEg0AdRwBIXccAXF5HAC0eRwA13kcAOd5HADpeRwA3nkcAMR4HAGLdxwBN3AcAgRzHAEAAAAAAAAA + AAB2HAEAdhwBK3gcAL95HACveBwAZnYcARmPGAAAZyAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAByHAIAbBwEAnccAVN5HADUehwA/nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADseBwAg3Mc + Ag51HAEAAAAAAHMcAgBxHAIGeRwArXocAP96HAD8eRwAyXccAUKRHQAAcxwBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbR0FAHscAAB2HAFNeRwA6nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HAD8eBwAhm8cAwRzHAIAYx0GAH0cAAB4HAF7ehwA/3ocAP96HAD/eRwA3XccATd5HAAAbhwCAAAA + AAAAAAAAAAAAAAAAAAB0HAEAdBwBEHkcAMB6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADrdxwBOHccAQAAAAAAeRwAAHccAVt6HAD9ehwA/3ocAP96HAD/eRwApnAd + AwZzHQMAAAAAAAAAAAAAAAAAAAAAAHccAQB2HAE8eRwA8nocAP96HAD/ehwA/3ocAP95HADceBwBhHgc + AXV5HAC7ehwA/XocAP96HAD/ehwA/3ocAP94HAF6fRwAAG0dBgB4HAAAdxwBUHocAPt6HAD/ehwA/3oc + AP95HADidhwBI3YcAQAAAAAAAAAAAAAAAAAAAAAAeBwAAHccAVN5HAD8ehwA/3ocAP96HAD/eRwA+Hcc + AVd9HAAAdhwBAHUcAh55HADVehwA/3ocAP96HAD/ehwA/3gcAJz/AAAAbR0EAHgcAAB3HAFOehwA+noc + AP96HAD/ehwA/3ocAPN3HAE7dxwBAAAAAAAAAAAAAAAAAAAAAAB4HAAAdxwAVHocAPx6HAD/ehwA/3oc + AP95HADsdxwBL3ccAQBzHAIAchwCCnkcAMB6HAD/ehwA/3ocAP96HAD/eBwAo1MeCQFsHQQAeBwAAHcc + AU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/Hoc + AP96HAD/ehwA/3kcAOx3HAAudxwAAHIcAQBxHAIKeBwAv3ocAP96HAD/ehwA/3ocAP94HACjVB4IAWwd + BAB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgc + AFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAS53HAEAchwBAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3gc + AKNVHgkBbB0EAHgcAAB3HAFOehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAA + AAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLnccAQBzHAIAchwCCnkcAL96HAD/ehwA/3oc + AP96HAD/eRwAo1QeCQFsHQQAeBwAAHccAU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAA + AAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3ocAOx3HAEudxwBAHEcAgBvHAMHeBwAuHoc + AP96HAD/ehwA/3ocAP95HACa/wAAAGweBQB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgc + AAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAC53HAAAbh0FAIcb + AAB4HAF6ehwA/nocAP96HAD/ehwA+HgcAVx6HAAAbiAJAHgcAAB3HAFPehwA+nocAP96HAD/ehwA/3oc + APV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLncc + AQAAAAAAdRwBAHQcARR4HACPeRwA3HkcANd4HAF7dBwCCnUcAQAAAAAAeBwAAHccAU96HAD6ehwA/3oc + AP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3oc + AOx3HAAudxwAAAAAAAAAAAAAdBwCAHEcAwV2HAEbdhwBGHAcAgNyHAEAAAAAAAAAAAB4HAAAdxwBTnoc + APp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3oc + AP96HAD/eRwA7HccAS53HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgc + AAB3HAFPehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHoc + APx6HAD/ehwA/3ocAP95HADsdxwBLnccAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAeBwAAHccAU95HAD6ehwA/3ocAP96HAD/ehwA9XgcAUB4HAAAAAAAAAAAAAAAAAAAAAAAAHkc + AAB4HABUehwA/HocAP96HAD/ehwA/3kcAOx3HAEudxwAAAAAAAAAAAAAch0DAHEdAwN1HAIRdRwCD20d + BAFvHAMAAAAAAAAAAAB4HAAAdxwBT3kcAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAA + AAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAS53HAAAAAAAAHUcAQB0HAIPeBwAgXkc + AM15HADJdxwBbnMcAgh0HAIAAAAAAHgcAAB3HAFPehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAA + AAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLnccAQBvHAMAfhwAAHgc + AXF6HAD8ehwA/3ocAP95HAD1dxwBVnocAABwHAMAeBwAAHccAU96HAD6ehwA/3ocAP96HAD/ehwA9Xgc + AEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3ocAOx3HAEudxwAAHEc + AwBvHAMGeBwAtHocAP96HAD/ehwA/3ocAP95HACWmBwAAG4cAwB4HAAAdxwBTnocAPp6HAD/ehwA/3oc + AP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7Hcc + AS53HAEAcxwCAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3kcAJ9BHg4BbR0EAHgcAAB3HAFPehwA+noc + AP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3oc + AP96HADsdxwBLnccAQByHAIAchwCCnkcAL96HAD/ehwA/3ocAP96HAD/eRwAoEMhDgFtHQQAeBwAAHcc + AU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/Hoc + AP96HAD/ehwA/3ocAOx3HAEudxwBAHMcAgByHAIKeRwAv3ocAP96HAD/ehwA/3ocAP95HACfOyEPAW0d + AwB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgc + AFR6HAD8ehwA/3ocAP96HAD/eRwA7HccAS53HAEAcxwCAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3kc + AJ4sHxIAbB0DAHgcAAB3HAFPehwA+3ocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAA + AAB5HAAAdxwBU3ocAPx6HAD/ehwA/3ocAP95HADsdxwBLnccAQBxHAIAbxwDB3gcALh6HAD/ehwA/3oc + AP96HAD/eRwAuHIdAgxzHAIAgRwAAHccAWx6HAD+ehwA/3ocAP96HAD/ehwA9HccATx3HAEAAAAAAAAA + AAAAAAAAAAAAAHccAQB2HAE+eRwA83ocAP96HAD/ehwA/3kcAO12HAEwdxwBAG4dBAA/HxEBeBwAnXoc + AP96HAD/ehwA/3ocAP96HAD3eBwAnngcAVt4HAF8eRwA4HocAP96HAD/ehwA/3ocAP95HADkdhwBJnYc + AQAAAAAAAAAAAAAAAAAAAAAAdBwCAHQcAhN5HADGehwA/3ocAP96HAD/eRwA9XccAUB3HAEAbh0EAHoc + AAB4HAFWehwA+HocAP96HAD/ehwA/3ocAP96HAD/ehwA/XocAP56HAD/ehwA/3ocAP96HAD/ehwA/3gc + AK1yHAIHdBwCAAAAAAAAAAAAAAAAAAAAAABsHAMAfhwAAHccAVZ5HADvehwA/3ocAP96HAD9dxwBWXkc + AAAAAAAAdRwBAHUcAg14HACpehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HADjdxwBPXocAABYIA8AAAAAAAAAAAAAAAAAAAAAAAAAAAB0HAEAcRwCA3ccAWJ5HADgehwA/3oc + AP94HACNnBoAAHAdAwBqHAQAdxwAAHUcAR14HACjehwA9nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD+eRwA0nccAUtbHAgBchwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwHQQAah4HAXYc + ASt4HAGCeRwAxngcAbtzHAIacxwCAAAAAABdHAoAdxwAAHQdAgt3HAFQeBwAo3kcANN5HADoeRwA7Hkc + AOp5HADdeRwAuHgcAHN1HAEg/wAAAG0eBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaxwEAGcdBgF0HAIQdRwBKXIcAg1zHAEAAAAAAAAAAAAAAAAAXBsGAHQdAwBvHQMFdRwBGncc + ATB3HAE3dhwBNHYcASNzHAILOxUIAGUbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Afj//AB4P/AA + OB/wABwP4AAcB+AAHAfgMBwH4DAMB+AwDAfgMAwH4DAMB+AwHAfgOBwH4DgcB+A8PAfgP/wH4D/8B+A8 + PAfgOBwH4DgcB+AwHAfgMAwH4DAMB+AwDAfgMBwH4DAMB+AwAAfgOAAH8DgAD/A8AA/4HgA//h+A/ygA + AAAwAAAAYAAAAAEAIAAAAAAAACQAACMuAAAjLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdOQAAHT8AFCIsABwjIwAbV80ACmm8AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpHAMAahwEAGscBABsHAQAbBwEAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeIQ8A/wAAAHAcAwl0HAIqdhwBVXccAXh4HAGUdxwBnXcc + AZt3HAGHdhwBZ3UcAUJyHAMZah4EAm0dAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuHAIAex0AAHUc + AT12HAF2dhwBTXQcASNwHAIFdRwAAAAaSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYxsFAHodAAByHAISdhwBYXgcAbV5HADmeRwA/Hoc + AP96HAD/ehwA/3ocAP95HAD/ehwA/nkcAPV4HADUdxwBiXUcATJpHAMDbxwCAAAAAAAAAAAAAAAAAAAA + AABxHAIAdhwBAHUcAS95HADieRwA+3kcAOB4HACmdhwBTXIcAwp3GwAAZSANAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsHAQATB0NAHUcATp4HAC6eRwA+noc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOZ2HAF7chwCDnQc + AgAAAAAAAAAAAAAAAAAAAAAAcB0DAGMdBwJ4HAGcehwA/3ocAP96HAD/ehwA9HgcAaZ0HAIofhwAAGce + BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoeCACxFgAAdRwBTXkc + AOB6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD7dxwBnHIcAhFzHAIAAAAAAAAAAAAAAAAAaRwFAHkcAAB2HAFgehwA/XocAP96HAD/ehwA/3oc + AP95HADKdhwBL3ocAABsHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZB8KAHYc + AQB0HAIweBwA23ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eRwA/HccAYBlHAUCcRwCAAAAAAAAAAAAAAAAAHccAQB1HAI9eRwA83oc + AP96HAD/ehwA/3ocAP96HAD/eBwBvXMcAhd0HAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcBwDAGkcBAR3HAGcehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOZ1HAEzdhwBAAAAAAAAAAAAAAAAAHQc + AgB0HAIjeRwA4XocAP96HAD/ehwA/3ocAP96HAD/ehwA/XccAXCEGgAAbCAJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdRwBAHQcASh5HADjehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HAD6eRwA8HocAPR5HAD+ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP93HAGDhxwAAG8c + AwAAAAAAAAAAAHIcAgByHAIZeRwA2HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3gcAcZyHQMQcx0DAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHYcAVx5HAD8ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3gcAcR2HAFadhwCNnUcAkB3HAGGeRwA7HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP94HAG6bRwDCXAcAwAAAAAAAAAAAHEcAgBxHAIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kc + AOp1HAEudhwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHYcAXN5HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwB3XMdAyx2HAEAYx4KAHAbAwBRGgsBdxwBe3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADVcxwCF3QcAgAAAAAAAAAAAHEcAwBxHAMVeBwA0nocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAPh1HAFJdhwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHcc + 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 + AP95HADadB0CHHQdAgAAAAAAAAAAAHEcAgBxGwIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + APx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAHR6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwAoEYdCwFyHAIAAAAAAAAAAAB2HAEAdRwBQHkcAPV6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADadB0BHHQdAQAAAAAAAAAAAHEcAgBxHAIVeRwA0nocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3kcAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHcc + AHR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEQbCQFxHAIAAAAAAAAAAAB2HAEAdRwBQHkc + APV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADZdBwBG3QcAQAAAAAAAAAAAHEcAgBxHAIVeBwA0noc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAexwAAHgcAXR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEIbCgFxHAIAAAAAAAAA + AAB2HAEAdRwBQHkcAPV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADZdRwBGnUcAQAAAAAAAAAAAHEc + AgBxHAIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAHR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEIb + CgFxHAIAAAAAAAAAAAB1HAEAdRwBQHkcAPV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADcdBwBHXQc + AQAAAAAAAAAAAHEcAgBxHAIXeBwA1XocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwBAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAXR6HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/eBwAoD4bDAFxHAIAAAAAAAAAAAB0HAEAdBwBM3kcAO16HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HADydR0BSHkcAABpHQUAah0DAHgcAQB0HAE+eRwA7HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kc + APl2HAJNdxwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHYcAVx5HAD9ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwAoD4bDAFxHAIAAAAAAAAAAABzHAIAcxwCIXkcAOB6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwA0HYcAVh1HAEidRwCInYcAVR4HADLehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3kcAO11HAEydRwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdBwCAHQc + Ai95HADoehwA/3ocAP96HAD/ehwA/3ocAP96HAD/dxwBsGgcBQZuHAMAAAAAAAAAAABxHQQAbx0ECngc + AbZ6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPh5HADheRwA4HkcAPh6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3gcAMpzHAITcxwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcB0DAG0dBAd4HAGmehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAxHEcAg1yHAIAAAAAAAAA + AABuHAQAexwAAHccAWF6HAD6ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ccAXyMHAAAbxwDAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAahsEAHgcAQB1HAE5eRwA5HocAP96HAD/ehwA/3ocAP96HAD/eBwA1nIc + AhhyHAIAAAAAAAAAAAAAAAAAdBwCAHIcAhF4HAC0ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAxXQcAhx1HAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8cBABbHAwBdxwBW3kcAOl6HAD/ehwA/3oc + AP96HAD/eRwA7XUcATN2HAEAAAAAAAAAAAAAAAAATxsQAHccAQB0HAEueBwAynocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP94HADWdRwBO3gc + AABtHQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByHAEAbRwBAnYc + AVJ4HAHRehwA/XocAP96HAD/ehwA/nYcAWt8GwAAZx4HAAAAAAAAAAAAAAAAAGkcBACAHAAAdRwBJngc + Aap5HAD2ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eRwA+Xgc + AbZ1HAExlRwAAGwcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAah0FAP8QAAB0HAIedxwBd3gcAMt5HADzehwA/3gcAcBwHQMScRwDAAAAAAAAAAAAAAAAAAAA + AAA9MCgAeRoAAHEdAwx2HAFWeBwAsXkcAOl5HAD9ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/Xkc + AOp4HAC3dhwBYHIdAxF+GgAAXiMSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoHAUAWB4LAHIdAxV1HAFAdxwBcXYcAY9yHAIrcxwBAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGkdBQB2GwAAcBwCCXQcAi52HAFddxwBh3gcAZ14HACkeBwAo3gc + AJx4HAGHdxwBX3UcATBwHAILhxoAAFIeCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaBsEAGEb + BgFsHAMBbRsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoFzcAJho5AEMe + FAFdGwcCWhsGAjQXCQEjFhAAKxYNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///////8AAP/gAf8H/wAA/4AAfwH/AAD/AAA/AP8AAP4AAB+AfwAA/AAAD4A/ + AAD4AAAPgD8AAPgAAA+AHwAA+AAAB4AfAAD4AcAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB + 4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB8A+AHwAA+AHwH4Af + AAD4Afw/gB8AAPgB//+AHwAA+AH//4AfAAD4Af//gB8AAPgB//+AHwAA+AH8P4AfAAD4AfAfgB8AAPgB + 8A+AHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4Af + AAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAAAB8AAPgB4AAAHwAA+AHwAAA/AAD8AfAAAD8AAPwB + +AAAfwAA/gH8AAD/AAD/gP4AAf8AAP/g/4AH/wAA//z/+H//AACJUE5HDQoaCgAAAA1JSERSAAABAAAA + AQAIBgAAAFxyqGYAAFcHSURBVHja7b15vC1HXS/6/VX3WnvvM2YmydknCRkBiUC8KOAAgvh5PJyCch+T + JoCQAWJU+CB6vd57uT6vV69ihAwkEDEyyPDUiyOCVxkUUCZRpoQpZ58TIOOZ9tl7rdVdv/dHd/Wqrq6q + rl5rn11r56wvnOxV3VXVVb+u4TdWA3PMMcccc8wxxxxzzDHHHHPMMcccc8wxxxxzzDHHwxMUuwFbBSdf + 9BJCfgTrQ4LkbZRTn4AeuCAhCxryaOVWjt3OWcHpF11JBICzw1gbjjDCqSTRB0SfGASQgJQMAiHnHvfp + yKkA9gD8ACCWAN7B4K/mvHgUQDFSmcGQEGCAGAlGnPAqCwywKA5hadcjAQD7P//m+XsIxHwB8GBh71WC + kZw8lIu81B9cLnMWmURKoEcz06WgZImBBODPJbT230crt30jdptjY2HvVWnO6W6JhWQxHfzIKKcVZj4V + jEsZ4lEQyVlgQSACczFPGQCYFgm8nYnWAU4J6DHoMIAhwACrOc0gKtIE+UUi/jSAo4z0U9sX5RMGo/TD + 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 + + + + 0, 0 + + + ClearLogButton + + + دربارهبرنامهToolStripMenuItem + + + لیست فاکتورها + + + $this + + + بستن برنامه + + + btnHideWindow + + + 200, 100 + + + 100, 22 + + + 0, 0 + + + 48, 20 + + + 0, 398 + + + + AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA + IACoJQAA7h4AAAAAAAABACAAQFcAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAjLgAAIy4AAAAA + AAAAAAAAAAAAAHYcAQB0HAEDeBwBN3kcAH55HACbeRwAhngcAER2HAEHdxwBAHccARZ4HABqeBwAM3Qc + AwJ2HAIAAAAAAHQcAgBmHQYBeRwAZXocAOZ6HAD+ehwA/3ocAP96HADveRwAf3UcAQV2HAEMeRwAv3oc + AOV5HABaiRwAAHQcAgB3HAEAdxwBIHkcANt6HAD/ehwA7nkcALl6HADjehwA/3ocAO14HAA3gxwAAHkc + AKN6HAD/ehwA0XccARd3HAEAeBwAAHgcADV6HADxehwA/3kcAJtnHQYDeRwAeHocAP96HAD9eRwAV38c + AAB5HACeehwA/3ocAOt4HAAseBwAAHkcAAB4HAA2ehwA8XocAP95HACKexwAAHkcAGl6HAD/ehwA/nkc + AFp/HAAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnocAPF6HAD/eRwAi3scAAB5HABlehwA/3oc + AP15HABWfxwAAHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHkcADZ6HADxehwA/3kcAIt7HAAAeBwBLnkc + AMd5HAC/eBwBJIMdAAB5HACeehwA/3ocAOx5HAAueRwAAHkcAAB5HAA2ehwA8XocAP95HACLfRwAAG0c + AwB3HAESdxwBETMaGwD/rwAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnocAPF6HAD/eRwAi30c + AABtHAIAdxwBDnccAQ2TGgAAAAD/AHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHkcADZ6HADxehwA/3kc + AIt7HAAAeBwBKnkcAMB5HAC5eBwBIoQdAAB5HACeehwA/3ocAOx5HAAueRwAAHkcAAB5HAA2ehwA8Xoc + AP95HACLexwAAHkcAGR6HAD/ehwA/HkcAFR/HAAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnoc + APF6HAD/eRwAi3scAAB5HABpehwA/3ocAP15HABYfxwAAHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHgc + ADV6HADxehwA/3kcAIt7HAAAeRwAZnocAP96HAD/eRwAZWYcBQN5HACqehwA/3ocAOt4HAAseBwAAHgc + AQB3HAEhehwA3XocAP95HACSfBwAAHgcAEZ6HAD1ehwA/3ocANt5HACxehwA73ocAP96HADTdxwBGHcc + AQB1HAEAbhsDAXkcAGt6HADueRwAsnQcAgZ3HAEKeRwAkXocAPR6HAD/ehwA/3ocAP96HADleRwAXpcb + AAB0HAIAAAAAAHYcAQB1HAEFeBwAQHgcAHF1HAERdhwBAHccAQt4HABReRwAkHkcAJ55HACCeBwAOHQd + AgN2HAEAAAAAAMBDAACAAwAAgCEAAIAhAACEIQAAhCEAAIQhAACGYQAAhmEAAIQhAACEIQAAhCEAAIQB + AACEAQAAgAMAAMIDAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAAjLgAAIy4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaCAJAIQZAAB0HAIMdxwBNHgcAVd4HAFjdxwBUHYcASpzHQIGdhwBACogEgBxHAIAcB0CAXYc + ATV3HAEydRwBCnocAABjHQQAAAAAAAAAAAAAAAAAAAAAAAAAAAB0HAEAcRwCA3ccAUp5HAC2eRwA6Xoc + APh6HAD7ehwA9nkcAOF5HACfdxwBL4gbAABxHAIAfRwAAHgcAGp5HADmeRwArngcAUBvHQMBdRwCAAAA + AAAAAAAAAAAAAHAcAwCDHAAAeBwBXHkcAO16HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eRwA1Xcc + ATF4HAAAeBwBAHccATV6HADvehwA/3ocAOV4HAFKfBwAAG4cAgAAAAAAAAAAAHYcAQB2HAEYeRwAz3oc + AP96HAD/ehwA/3ocAPd5HADsehwA+3ocAP96HAD/ehwA/3kcAJ5uHAMDdhwBAHYcAR95HADfehwA/3oc + AP95HAC+dR0CDnYdAQAAAAAAAAAAAHgcAQB3HAE9eRwA9HocAP96HAD/eRwA7XgcAWF3HAEqeBwBg3oc + APt6HAD/ehwA/3kcANR2HAEWdRwBAHUcARl5HADaehwA/3ocAP96HADpdxwBK3ccAQAAAAAAAAAAAHgc + AAB4HABFehwA93ocAP96HAD/eRwAx3UcAQ53HAEAdxwBMHkcAO16HAD/ehwA/3kcAN92HAEedhwBAHUc + ARl5HADaehwA/3ocAP96HADxeBwANngcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUc + AQt2HAEAdxwBLnkcAOx6HAD/ehwA/3kcAN92HAEedhwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHYcAQt3HAEAdxwBLnocAOx6HAD/ehwA/3oc + AN92HAEedhwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93oc + AP96HAD/eRwAxHUcAQt2HAEAdhwBKnkcAOl6HAD/ehwA/3kcANt3HAEbdhwBAHYcARl5HADaehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAdRwBDXkc + ALJ6HAD/ehwA/3kcAJ50HAIGdRwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkc + AAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAehwAAHYcASB5HABxeBwAanccARh4HAEAdRwBAHYc + ARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUc + AQt1HAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdRwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAdRwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93oc + AP96HAD/eRwAxHUcAQt1HAEAeRwAAHYcARt4HABjeBwBXXYcARR3HAEAdRwBAHUcARl5HADaehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt2HAEAdRwBC3kc + AKp6HAD/ehwA/nkcAJdzHAIFdRwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkc + AAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt2HAEAdxwBKXocAOh6HAD/ehwA/3ocANl3HAEZdhwBAHYc + ARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHYc + AQt3HAEAdxwBLnocAOx6HAD/ehwA/3ocAN53HAEddhwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt3HAEAdxwBLnocAOx6HAD/ehwA/3oc + AN13HAEddhwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABFehwA93oc + AP96HAD/eRwAxHUcAQt3HAEAdxwBLnkcAOx6HAD/ehwA/3ocAN53HAEedhwBAHYcARt5HADbehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHgcAAB3HAE+ehwA9HocAP96HAD/eRwAxHUcAQx2HAEAdhwBJHkc + AON6HAD/ehwA/3ocAPR4HABpdxwBHngcAWV6HADzehwA/3ocAP96HADrdxwBLXccAQAAAAAAAAAAAHYc + AQB2HAEaeRwA03ocAP96HAD/eRwAz3UcARJ1HAEAdRwCC3kcALd6HAD/ehwA/3ocAP96HAD2ehwA43oc + APZ6HAD/ehwA/3ocAP95HADCdRwBD3YcAQAAAAAAAAAAAHIcAgCJHAAAeBwAY3ocAPF6HAD/eRwA4ncc + ASN3HAEAehwAAHgcAUZ5HADlehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOl4HAFPfBwAAG8d + BAAAAAAAAAAAAAAAAAB2HAEAdBwBBHgcAVZ5HADCeRwA6nccAVZ6HAAAchwCAGscAwF4HAFBeRwAs3kc + AOp6HAD6ehwA/HocAPp6HADreRwAt3gcAUdvHAICcxwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAbhsDAJUg + AAB2HAESdxwBQnYcATabHAAAbRwDAGUfCQB9GgAAdRwBDHccATd4HABdeBwAZ3gcAF13HAE4dRwBDYAb + AABoHgcAAAAAAAAAAAAAAAAA+A4fAOAHBwDgAwcAwAEDAMABAwDAgQMAwIEDAMCBAwDAgQMAwIEDAMDD + AwDA/wMAwP8DAMDDAwDAgQMAwIEDAMCBAwDAgQMAwIEDAMCAAwDAgAMA4MAHAODABwD48B8AKAAAACAA + AABAAAAAAQAgAAAAAAAAEAAAIy4AACMuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGUc + BAClHQAAcRwDCXUcAR12HAEvdRwBMnYcASRzHAIPZx0IAWscBQAAAAAAAAAAAAAAAAAAAAAAdhwBAHUc + AQ91HAEccRwCB38cAABkHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8c + AgApEg0AdRwBIXccAXF5HAC0eRwA13kcAOd5HADpeRwA3nkcAMR4HAGLdxwBN3AcAgRzHAEAAAAAAAAA + AAB2HAEAdhwBK3gcAL95HACveBwAZnYcARmPGAAAZyAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAByHAIAbBwEAnccAVN5HADUehwA/nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADseBwAg3Mc + Ag51HAEAAAAAAHMcAgBxHAIGeRwArXocAP96HAD8eRwAyXccAUKRHQAAcxwBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbR0FAHscAAB2HAFNeRwA6nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HAD8eBwAhm8cAwRzHAIAYx0GAH0cAAB4HAF7ehwA/3ocAP96HAD/eRwA3XccATd5HAAAbhwCAAAA + AAAAAAAAAAAAAAAAAAB0HAEAdBwBEHkcAMB6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADrdxwBOHccAQAAAAAAeRwAAHccAVt6HAD9ehwA/3ocAP96HAD/eRwApnAd + AwZzHQMAAAAAAAAAAAAAAAAAAAAAAHccAQB2HAE8eRwA8nocAP96HAD/ehwA/3ocAP95HADceBwBhHgc + AXV5HAC7ehwA/XocAP96HAD/ehwA/3ocAP94HAF6fRwAAG0dBgB4HAAAdxwBUHocAPt6HAD/ehwA/3oc + AP95HADidhwBI3YcAQAAAAAAAAAAAAAAAAAAAAAAeBwAAHccAVN5HAD8ehwA/3ocAP96HAD/eRwA+Hcc + AVd9HAAAdhwBAHUcAh55HADVehwA/3ocAP96HAD/ehwA/3gcAJz/AAAAbR0EAHgcAAB3HAFOehwA+noc + AP96HAD/ehwA/3ocAPN3HAE7dxwBAAAAAAAAAAAAAAAAAAAAAAB4HAAAdxwAVHocAPx6HAD/ehwA/3oc + AP95HADsdxwBL3ccAQBzHAIAchwCCnkcAMB6HAD/ehwA/3ocAP96HAD/eBwAo1MeCQFsHQQAeBwAAHcc + AU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/Hoc + AP96HAD/ehwA/3kcAOx3HAAudxwAAHIcAQBxHAIKeBwAv3ocAP96HAD/ehwA/3ocAP94HACjVB4IAWwd + BAB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgc + AFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAS53HAEAchwBAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3gc + AKNVHgkBbB0EAHgcAAB3HAFOehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAA + AAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLnccAQBzHAIAchwCCnkcAL96HAD/ehwA/3oc + AP96HAD/eRwAo1QeCQFsHQQAeBwAAHccAU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAA + AAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3ocAOx3HAEudxwBAHEcAgBvHAMHeBwAuHoc + AP96HAD/ehwA/3ocAP95HACa/wAAAGweBQB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgc + AAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAC53HAAAbh0FAIcb + AAB4HAF6ehwA/nocAP96HAD/ehwA+HgcAVx6HAAAbiAJAHgcAAB3HAFPehwA+nocAP96HAD/ehwA/3oc + APV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLncc + AQAAAAAAdRwBAHQcARR4HACPeRwA3HkcANd4HAF7dBwCCnUcAQAAAAAAeBwAAHccAU96HAD6ehwA/3oc + AP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3oc + AOx3HAAudxwAAAAAAAAAAAAAdBwCAHEcAwV2HAEbdhwBGHAcAgNyHAEAAAAAAAAAAAB4HAAAdxwBTnoc + APp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3oc + AP96HAD/eRwA7HccAS53HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgc + AAB3HAFPehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHoc + APx6HAD/ehwA/3ocAP95HADsdxwBLnccAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAeBwAAHccAU95HAD6ehwA/3ocAP96HAD/ehwA9XgcAUB4HAAAAAAAAAAAAAAAAAAAAAAAAHkc + AAB4HABUehwA/HocAP96HAD/ehwA/3kcAOx3HAEudxwAAAAAAAAAAAAAch0DAHEdAwN1HAIRdRwCD20d + BAFvHAMAAAAAAAAAAAB4HAAAdxwBT3kcAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAA + AAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAS53HAAAAAAAAHUcAQB0HAIPeBwAgXkc + AM15HADJdxwBbnMcAgh0HAIAAAAAAHgcAAB3HAFPehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAA + AAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLnccAQBvHAMAfhwAAHgc + AXF6HAD8ehwA/3ocAP95HAD1dxwBVnocAABwHAMAeBwAAHccAU96HAD6ehwA/3ocAP96HAD/ehwA9Xgc + AEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3ocAOx3HAEudxwAAHEc + AwBvHAMGeBwAtHocAP96HAD/ehwA/3ocAP95HACWmBwAAG4cAwB4HAAAdxwBTnocAPp6HAD/ehwA/3oc + AP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7Hcc + AS53HAEAcxwCAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3kcAJ9BHg4BbR0EAHgcAAB3HAFPehwA+noc + AP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3oc + AP96HADsdxwBLnccAQByHAIAchwCCnkcAL96HAD/ehwA/3ocAP96HAD/eRwAoEMhDgFtHQQAeBwAAHcc + AU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/Hoc + AP96HAD/ehwA/3ocAOx3HAEudxwBAHMcAgByHAIKeRwAv3ocAP96HAD/ehwA/3ocAP95HACfOyEPAW0d + AwB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgc + AFR6HAD8ehwA/3ocAP96HAD/eRwA7HccAS53HAEAcxwCAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3kc + AJ4sHxIAbB0DAHgcAAB3HAFPehwA+3ocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAA + AAB5HAAAdxwBU3ocAPx6HAD/ehwA/3ocAP95HADsdxwBLnccAQBxHAIAbxwDB3gcALh6HAD/ehwA/3oc + AP96HAD/eRwAuHIdAgxzHAIAgRwAAHccAWx6HAD+ehwA/3ocAP96HAD/ehwA9HccATx3HAEAAAAAAAAA + AAAAAAAAAAAAAHccAQB2HAE+eRwA83ocAP96HAD/ehwA/3kcAO12HAEwdxwBAG4dBAA/HxEBeBwAnXoc + AP96HAD/ehwA/3ocAP96HAD3eBwAnngcAVt4HAF8eRwA4HocAP96HAD/ehwA/3ocAP95HADkdhwBJnYc + AQAAAAAAAAAAAAAAAAAAAAAAdBwCAHQcAhN5HADGehwA/3ocAP96HAD/eRwA9XccAUB3HAEAbh0EAHoc + AAB4HAFWehwA+HocAP96HAD/ehwA/3ocAP96HAD/ehwA/XocAP56HAD/ehwA/3ocAP96HAD/ehwA/3gc + AK1yHAIHdBwCAAAAAAAAAAAAAAAAAAAAAABsHAMAfhwAAHccAVZ5HADvehwA/3ocAP96HAD9dxwBWXkc + AAAAAAAAdRwBAHUcAg14HACpehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HADjdxwBPXocAABYIA8AAAAAAAAAAAAAAAAAAAAAAAAAAAB0HAEAcRwCA3ccAWJ5HADgehwA/3oc + AP94HACNnBoAAHAdAwBqHAQAdxwAAHUcAR14HACjehwA9nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD+eRwA0nccAUtbHAgBchwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwHQQAah4HAXYc + ASt4HAGCeRwAxngcAbtzHAIacxwCAAAAAABdHAoAdxwAAHQdAgt3HAFQeBwAo3kcANN5HADoeRwA7Hkc + AOp5HADdeRwAuHgcAHN1HAEg/wAAAG0eBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaxwEAGcdBgF0HAIQdRwBKXIcAg1zHAEAAAAAAAAAAAAAAAAAXBsGAHQdAwBvHQMFdRwBGncc + ATB3HAE3dhwBNHYcASNzHAILOxUIAGUbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Afj//AB4P/AA + OB/wABwP4AAcB+AAHAfgMBwH4DAMB+AwDAfgMAwH4DAMB+AwHAfgOBwH4DgcB+A8PAfgP/wH4D/8B+A8 + PAfgOBwH4DgcB+AwHAfgMAwH4DAMB+AwDAfgMBwH4DAMB+AwAAfgOAAH8DgAD/A8AA/4HgA//h+A/ygA + AAAwAAAAYAAAAAEAIAAAAAAAACQAACMuAAAjLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdOQAAHT8AFCIsABwjIwAbV80ACmm8AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpHAMAahwEAGscBABsHAQAbBwEAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeIQ8A/wAAAHAcAwl0HAIqdhwBVXccAXh4HAGUdxwBnXcc + AZt3HAGHdhwBZ3UcAUJyHAMZah4EAm0dAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuHAIAex0AAHUc + AT12HAF2dhwBTXQcASNwHAIFdRwAAAAaSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYxsFAHodAAByHAISdhwBYXgcAbV5HADmeRwA/Hoc + AP96HAD/ehwA/3ocAP95HAD/ehwA/nkcAPV4HADUdxwBiXUcATJpHAMDbxwCAAAAAAAAAAAAAAAAAAAA + AABxHAIAdhwBAHUcAS95HADieRwA+3kcAOB4HACmdhwBTXIcAwp3GwAAZSANAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsHAQATB0NAHUcATp4HAC6eRwA+noc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOZ2HAF7chwCDnQc + AgAAAAAAAAAAAAAAAAAAAAAAcB0DAGMdBwJ4HAGcehwA/3ocAP96HAD/ehwA9HgcAaZ0HAIofhwAAGce + BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoeCACxFgAAdRwBTXkc + AOB6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD7dxwBnHIcAhFzHAIAAAAAAAAAAAAAAAAAaRwFAHkcAAB2HAFgehwA/XocAP96HAD/ehwA/3oc + AP95HADKdhwBL3ocAABsHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZB8KAHYc + AQB0HAIweBwA23ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eRwA/HccAYBlHAUCcRwCAAAAAAAAAAAAAAAAAHccAQB1HAI9eRwA83oc + AP96HAD/ehwA/3ocAP96HAD/eBwBvXMcAhd0HAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcBwDAGkcBAR3HAGcehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOZ1HAEzdhwBAAAAAAAAAAAAAAAAAHQc + AgB0HAIjeRwA4XocAP96HAD/ehwA/3ocAP96HAD/ehwA/XccAXCEGgAAbCAJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdRwBAHQcASh5HADjehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HAD6eRwA8HocAPR5HAD+ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP93HAGDhxwAAG8c + AwAAAAAAAAAAAHIcAgByHAIZeRwA2HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3gcAcZyHQMQcx0DAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHYcAVx5HAD8ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3gcAcR2HAFadhwCNnUcAkB3HAGGeRwA7HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP94HAG6bRwDCXAcAwAAAAAAAAAAAHEcAgBxHAIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kc + AOp1HAEudhwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHYcAXN5HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwB3XMdAyx2HAEAYx4KAHAbAwBRGgsBdxwBe3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADVcxwCF3QcAgAAAAAAAAAAAHEcAwBxHAMVeBwA0nocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAPh1HAFJdhwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHcc + 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 + AP95HADadB0CHHQdAgAAAAAAAAAAAHEcAgBxGwIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + APx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAHR6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwAoEYdCwFyHAIAAAAAAAAAAAB2HAEAdRwBQHkcAPV6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADadB0BHHQdAQAAAAAAAAAAAHEcAgBxHAIVeRwA0nocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3kcAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHcc + AHR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEQbCQFxHAIAAAAAAAAAAAB2HAEAdRwBQHkc + APV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADZdBwBG3QcAQAAAAAAAAAAAHEcAgBxHAIVeBwA0noc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAexwAAHgcAXR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEIbCgFxHAIAAAAAAAAA + AAB2HAEAdRwBQHkcAPV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADZdRwBGnUcAQAAAAAAAAAAAHEc + AgBxHAIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAHR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEIb + CgFxHAIAAAAAAAAAAAB1HAEAdRwBQHkcAPV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADcdBwBHXQc + AQAAAAAAAAAAAHEcAgBxHAIXeBwA1XocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwBAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAXR6HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/eBwAoD4bDAFxHAIAAAAAAAAAAAB0HAEAdBwBM3kcAO16HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HADydR0BSHkcAABpHQUAah0DAHgcAQB0HAE+eRwA7HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kc + APl2HAJNdxwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHYcAVx5HAD9ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwAoD4bDAFxHAIAAAAAAAAAAABzHAIAcxwCIXkcAOB6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwA0HYcAVh1HAEidRwCInYcAVR4HADLehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3kcAO11HAEydRwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdBwCAHQc + Ai95HADoehwA/3ocAP96HAD/ehwA/3ocAP96HAD/dxwBsGgcBQZuHAMAAAAAAAAAAABxHQQAbx0ECngc + AbZ6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPh5HADheRwA4HkcAPh6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3gcAMpzHAITcxwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcB0DAG0dBAd4HAGmehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAxHEcAg1yHAIAAAAAAAAA + AABuHAQAexwAAHccAWF6HAD6ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ccAXyMHAAAbxwDAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAahsEAHgcAQB1HAE5eRwA5HocAP96HAD/ehwA/3ocAP96HAD/eBwA1nIc + AhhyHAIAAAAAAAAAAAAAAAAAdBwCAHIcAhF4HAC0ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAxXQcAhx1HAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8cBABbHAwBdxwBW3kcAOl6HAD/ehwA/3oc + AP96HAD/eRwA7XUcATN2HAEAAAAAAAAAAAAAAAAATxsQAHccAQB0HAEueBwAynocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP94HADWdRwBO3gc + AABtHQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByHAEAbRwBAnYc + AVJ4HAHRehwA/XocAP96HAD/ehwA/nYcAWt8GwAAZx4HAAAAAAAAAAAAAAAAAGkcBACAHAAAdRwBJngc + Aap5HAD2ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eRwA+Xgc + AbZ1HAExlRwAAGwcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAah0FAP8QAAB0HAIedxwBd3gcAMt5HADzehwA/3gcAcBwHQMScRwDAAAAAAAAAAAAAAAAAAAA + AAA9MCgAeRoAAHEdAwx2HAFWeBwAsXkcAOl5HAD9ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/Xkc + AOp4HAC3dhwBYHIdAxF+GgAAXiMSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoHAUAWB4LAHIdAxV1HAFAdxwBcXYcAY9yHAIrcxwBAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGkdBQB2GwAAcBwCCXQcAi52HAFddxwBh3gcAZ14HACkeBwAo3gc + AJx4HAGHdxwBX3UcATBwHAILhxoAAFIeCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaBsEAGEb + BgFsHAMBbRsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoFzcAJho5AEMe + FAFdGwcCWhsGAjQXCQEjFhAAKxYNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///////8AAP/gAf8H/wAA/4AAfwH/AAD/AAA/AP8AAP4AAB+AfwAA/AAAD4A/ + AAD4AAAPgD8AAPgAAA+AHwAA+AAAB4AfAAD4AcAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB + 4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB8A+AHwAA+AHwH4Af + AAD4Afw/gB8AAPgB//+AHwAA+AH//4AfAAD4Af//gB8AAPgB//+AHwAA+AH8P4AfAAD4AfAfgB8AAPgB + 8A+AHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4Af + AAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAAAB8AAPgB4AAAHwAA+AHwAAA/AAD8AfAAAD8AAPwB + +AAAfwAA/gH8AAD/AAD/gP4AAf8AAP/g/4AH/wAA//z/+H//AACJUE5HDQoaCgAAAA1JSERSAAABAAAA + AQAIBgAAAFxyqGYAAFcHSURBVHja7b15vC1HXS/6/VX3WnvvM2YmydknCRkBiUC8KOAAgvh5PJyCch+T + JoCQAWJU+CB6vd57uT6vV69ihAwkEDEyyPDUiyOCVxkUUCZRpoQpZ58TIOOZ9tl7rdVdv/dHd/Wqrq6q + rl5rn11r56wvnOxV3VXVVb+u4TdWA3PMMcccc8wxxxxzzDHHHHPMMcccc8wxxxxzzDHHwxMUuwFbBSdf + 9BJCfgTrQ4LkbZRTn4AeuCAhCxryaOVWjt3OWcHpF11JBICzw1gbjjDCqSTRB0SfGASQgJQMAiHnHvfp + yKkA9gD8ACCWAN7B4K/mvHgUQDFSmcGQEGCAGAlGnPAqCwywKA5hadcjAQD7P//m+XsIxHwB8GBh71WC + kZw8lIu81B9cLnMWmURKoEcz06WgZImBBODPJbT230crt30jdptjY2HvVWnO6W6JhWQxHfzIKKcVZj4V + jEsZ4lEQyVlgQSACczFPGQCYFgm8nYnWAU4J6DHoMIAhwACrOc0gKtIE+UUi/jSAo4z0U9sX5RMGo/TD + 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 + + + + چاپگر + + + System.Windows.Forms.Button, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + صندوقToolStripMenuItem + + + 131, 22 + + + + Yes + + + 75, 23 + + + MenuStrip1 + + + 3 + + + حسابیکس باکس + + + دربارهToolStripMenuItem + + + SaveLogButton + + + 0 + + + LogPanel + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + درباره + + + 800, 24 + + + LogControlsPanel + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 47, 20 + + + $this + + + CenterScreen + + + LogPanel + + + 181, 22 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 3 + + + True + + + 0 + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Button1 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + فاکتورجدیدToolStripMenuItem + + + 0 + + + btnPrinters + + + 0 + + + LogLabel + + + btnCloseApplication + + + 184, 83 + + + btnNewInvoice + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + 0, 17 + + + وبسایتحسابیکسToolStripMenuItem + + + 173, 22 + + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 149, 22 + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 146, 22 + + + 146, 22 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + LogControlsPanel + + + برنامه جهت جلوگیری از قطع شدن پرینترهای ابری در پس ضمینه در حال اجراست. + + + درباره برنامه + + + $this + + + Form1 + + + 1 + + + $this + + + 1 + + + 2 + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 2 + + + 75, 23 + + + 100, 23 + + + Timer1 + + + لیستفاکتورهاToolStripMenuItem1 + + + 99, 22 + + + صندوق + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 119, 17 + + + خروج + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 75, 23 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + اصلی + + + btnShowLog + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0, 0 + + + 5 + + + 56, 20 + + + LogTextBox + + + 1 + + + 200, 100 + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 800, 420 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0, 0 + + + تنظیمات + + + statusLabel + + + تنظیماتToolStripMenuItem + + + ToolStripStatusLabel1 + + + 0, 0 + + + System.Windows.Forms.NotifyIcon, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 180, 22 + + + MenuStrip1 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ToggleLogButton + + + LogControlsPanel + + + 364, 17 + + + fa-IR + + + True + + + 248, 17 + + + 132, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Form1.vb b/Form1.vb new file mode 100644 index 0000000..8f1f70a --- /dev/null +++ b/Form1.vb @@ -0,0 +1,241 @@ +Imports System.Text +Imports System.Threading +Imports System.Windows.Forms.VisualStyles.VisualStyleElement +Imports Microsoft.VisualBasic.FileIO +Imports System.Threading.Tasks + +Public Class Form1 + Dim api As New ApiInterface + Public isLogin As Boolean = False + Private isLogVisible As Boolean = False + Private isProcessingPrint As Boolean = False ' نشانگر وضعیت پردازش چاپ + Private Sub Form1_Resize(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Resize + If WindowState = FormWindowState.Minimized Then + NotifyIcon1.Visible = True + Hide() + NotifyIcon1.ShowBalloonTip(100) + End If + End Sub + Private Sub NotifyIcon1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick + Me.Show() + Me.WindowState = FormWindowState.Normal + NotifyIcon1.Visible = False + End Sub + + Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load + MenuStrip1.Enabled = False + + ' تنظیم سیستم لاگ + SetupLogSystem() + + Dim FrmLogin As New FrmLogin + FrmLogin.StartPosition = FormStartPosition.CenterScreen + FrmLogin.MdiParent = Me + FrmLogin.Show() + End Sub + + Private Sub btnCloseApplication_Click(sender As Object, e As EventArgs) Handles btnCloseApplication.Click + Application.Exit() + End Sub + + Private Sub btnPrinters_Click(sender As Object, e As EventArgs) Handles btnPrinters.Click + Dim frm As New FrmPrinters + frm.StartPosition = FormStartPosition.CenterScreen + frm.MdiParent = Me + frm.Show() + End Sub + + Private Sub btnShowLog_Click(sender As Object, e As EventArgs) Handles btnShowLog.Click + ToggleLogVisibility() + End Sub + + Private Sub دربارهبرنامهToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles دربارهبرنامهToolStripMenuItem.Click + Dim frm As New FrmAboutHesabix + frm.StartPosition = FormStartPosition.CenterScreen + frm.MdiParent = Me + frm.Show() + End Sub + + Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick + ' جلوگیری از اجرای همزمان چندین عملیات چاپ + If isProcessingPrint Then + Return + End If + + ' اجرای عملیات چاپ در thread جداگانه تا UI مسدود نشود + AsyncHelper.RunAsync(Function() ProcessPrintingAsyncTask()) + End Sub + + Private Async Function ProcessPrintingAsyncTask() As Task + Try + ' تنظیم نشانگر وضعیت + isProcessingPrint = True + + ' دریافت آخرین چاپ به صورت async با retry + Dim file As String = "" + Dim success As Boolean = Await AsyncHelper.RunWithRetry( + Async Function() + file = Await api.getLastPrintAsync() + End Function, 3, 2000) ' 3 تلاش با تاخیر 2 ثانیه + + If Not success OrElse String.IsNullOrEmpty(file) Then + Return + End If + + Dim SPrinter As String = "" + Dim res() As String = file.Split(",") + Dim canPrint As Boolean = False + + If file <> "" Then + If (res(0) = "fastSellPosInvoice" And My.Settings.printerFastSellInvoice <> "Off") Then + SPrinter = My.Settings.printerFastSellInvoice + canPrint = True + ElseIf res(0) = "fastSellCashdesk" And My.Settings.printerFastSellCashdeskInvoice <> "Off" Then + SPrinter = My.Settings.printerFastSellCashdeskInvoice + canPrint = True + ElseIf res(0) = "fastSellInvoice" And My.Settings.printerSell <> "Off" Then + SPrinter = My.Settings.printerSell + canPrint = True + End If + + If canPrint AndAlso SPrinter <> "" Then + ' دانلود فایل به صورت async با retry + Dim downloadSuccess As Boolean = Await AsyncHelper.RunWithRetry( + Async Function() + Return Await api.downloadFileAsync(res(1), res(0)) + End Function, 2, 3000) ' 2 تلاش با تاخیر 3 ثانیه + + If downloadSuccess Then + ' اجرای چاپ در UI thread + AsyncHelper.RunOnUIThread(Me, Sub() + Dim sReport = SpecialDirectories.CurrentUserApplicationData.ToString + "\" + res(0) + ".pdf" + Try + Using document = PdfiumViewer.PdfDocument.Load(sReport) + Using printDocument = document.CreatePrintDocument() + printDocument.PrinterSettings = New System.Drawing.Printing.PrinterSettings() With {.PrinterName = SPrinter} + printDocument.PrintController = New System.Drawing.Printing.StandardPrintController() + printDocument.Print() + End Using + End Using + Catch ex As Exception + Logger.Instance.LogError("خطا در چاپ مستقیم PDF", ex) + End Try + End Sub) + End If + End If + End If + Catch ex As Exception + ' ثبت خطا در لاگ + Logger.Instance.LogError("خطا در فرآیند چاپ", ex) + Finally + ' بازنشانی نشانگر وضعیت + isProcessingPrint = False + End Try + End Function + + Private Sub btnHideWindow_Click(sender As Object, e As EventArgs) Handles btnHideWindow.Click + Me.WindowState = FormWindowState.Minimized + End Sub + + ' متدهای سیستم لاگ + Private Sub SetupLogSystem() + ' تنظیم layout پنل لاگ + LogPanel.Dock = DockStyle.Bottom + LogPanel.Height = 200 + LogPanel.Visible = False + + ' تنظیم layout کنترل‌ها + LogLabel.Dock = DockStyle.Top + LogLabel.Height = 25 + LogLabel.Text = "لاگ سیستم - درخواست‌ها و پاسخ‌های سرور" + LogLabel.TextAlign = ContentAlignment.MiddleCenter + + LogControlsPanel.Dock = DockStyle.Bottom + LogControlsPanel.Height = 35 + + LogTextBox.Dock = DockStyle.Fill + LogTextBox.Multiline = True + LogTextBox.WordWrap = True + + ' تنظیم layout دکمه‌ها + ClearLogButton.Dock = DockStyle.Right + ClearLogButton.Width = 80 + ClearLogButton.Text = "پاک کردن" + + SaveLogButton.Dock = DockStyle.Right + SaveLogButton.Width = 80 + SaveLogButton.Text = "ذخیره" + + ToggleLogButton.Dock = DockStyle.Right + ToggleLogButton.Width = 80 + ToggleLogButton.Text = "مخفی کردن" + + ' تنظیم Logger + Logger.Instance.SetLogTextBox(LogTextBox) + + ' اضافه کردن event handlers + AddHandler ClearLogButton.Click, AddressOf ClearLogButton_Click + AddHandler SaveLogButton.Click, AddressOf SaveLogButton_Click + AddHandler ToggleLogButton.Click, AddressOf ToggleLogButton_Click + + ' اضافه کردن منوی لاگ + AddLogMenuItems() + + Logger.Instance.LogInfo("سیستم لاگ راه‌اندازی شد") + End Sub + + Private Sub AddLogMenuItems() + ' تنظیم متن دکمه نمایش لاگ + btnShowLog.Text = "نمایش لاگ سیستم" + + ' اضافه کردن منوی لاگ اضافی + Dim logMenuItem As New ToolStripMenuItem("مدیریت لاگ") + logMenuItem.DropDownItems.Add("پاک کردن لاگ", Nothing, AddressOf ClearLogMenuItem_Click) + logMenuItem.DropDownItems.Add("ذخیره لاگ", Nothing, AddressOf SaveLogMenuItem_Click) + + تنظیماتToolStripMenuItem.DropDownItems.Add(logMenuItem) + End Sub + + Private Sub ToggleLogButton_Click(sender As Object, e As EventArgs) + ToggleLogVisibility() + End Sub + + Private Sub ClearLogButton_Click(sender As Object, e As EventArgs) + Logger.Instance.ClearLog() + End Sub + + Private Sub SaveLogButton_Click(sender As Object, e As EventArgs) + Logger.Instance.SaveLogToFile() + End Sub + + Private Sub ToggleLogMenuItem_Click(sender As Object, e As EventArgs) + ToggleLogVisibility() + End Sub + + Private Sub ClearLogMenuItem_Click(sender As Object, e As EventArgs) + Logger.Instance.ClearLog() + End Sub + + Private Sub SaveLogMenuItem_Click(sender As Object, e As EventArgs) + Logger.Instance.SaveLogToFile() + End Sub + + Private Sub ToggleLogVisibility() + isLogVisible = Not isLogVisible + LogPanel.Visible = isLogVisible + + If isLogVisible Then + ToggleLogButton.Text = "مخفی کردن" + btnShowLog.Text = "مخفی کردن لاگ" + Logger.Instance.LogInfo("پنل لاگ نمایش داده شد") + Else + ToggleLogButton.Text = "نمایش لاگ" + btnShowLog.Text = "نمایش لاگ سیستم" + Logger.Instance.LogInfo("پنل لاگ مخفی شد") + End If + End Sub + + Private Sub ToolStripStatusLabel1_Click(sender As Object, e As EventArgs) Handles ToolStripStatusLabel1.Click + + End Sub +End Class diff --git a/FrmAboutHesabix.Designer.vb b/FrmAboutHesabix.Designer.vb new file mode 100644 index 0000000..61b9d27 --- /dev/null +++ b/FrmAboutHesabix.Designer.vb @@ -0,0 +1,359 @@ + _ +Partial Class FrmAboutHesabix + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + Friend WithEvents MainPanel As System.Windows.Forms.Panel + Friend WithEvents HeaderPanel As System.Windows.Forms.Panel + Friend WithEvents LogoPictureBox As System.Windows.Forms.PictureBox + Friend WithEvents TitleLabel As System.Windows.Forms.Label + Friend WithEvents SubtitleLabel As System.Windows.Forms.Label + Friend WithEvents ContentPanel As System.Windows.Forms.Panel + Friend WithEvents VersionLabel As System.Windows.Forms.Label + Friend WithEvents CompanyLabel As System.Windows.Forms.Label + Friend WithEvents CopyrightLabel As System.Windows.Forms.Label + Friend WithEvents DescriptionTextBox As System.Windows.Forms.TextBox + Friend WithEvents FeaturesPanel As System.Windows.Forms.Panel + Friend WithEvents FeaturesTitleLabel As System.Windows.Forms.Label + Friend WithEvents Feature1Label As System.Windows.Forms.Label + Friend WithEvents Feature2Label As System.Windows.Forms.Label + Friend WithEvents Feature3Label As System.Windows.Forms.Label + Friend WithEvents Feature4Label As System.Windows.Forms.Label + Friend WithEvents FooterPanel As System.Windows.Forms.Panel + Friend WithEvents WebsiteLabel As System.Windows.Forms.Label + Friend WithEvents EmailLabel As System.Windows.Forms.Label + Friend WithEvents OKButton As System.Windows.Forms.Button + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmAboutHesabix)) + Me.MainPanel = New System.Windows.Forms.Panel() + Me.FooterPanel = New System.Windows.Forms.Panel() + Me.OKButton = New System.Windows.Forms.Button() + Me.EmailLabel = New System.Windows.Forms.Label() + Me.WebsiteLabel = New System.Windows.Forms.Label() + Me.FeaturesPanel = New System.Windows.Forms.Panel() + Me.Feature4Label = New System.Windows.Forms.Label() + Me.Feature3Label = New System.Windows.Forms.Label() + Me.Feature2Label = New System.Windows.Forms.Label() + Me.Feature1Label = New System.Windows.Forms.Label() + Me.FeaturesTitleLabel = New System.Windows.Forms.Label() + Me.ContentPanel = New System.Windows.Forms.Panel() + Me.DescriptionTextBox = New System.Windows.Forms.TextBox() + Me.CopyrightLabel = New System.Windows.Forms.Label() + Me.CompanyLabel = New System.Windows.Forms.Label() + Me.VersionLabel = New System.Windows.Forms.Label() + Me.HeaderPanel = New System.Windows.Forms.Panel() + Me.SubtitleLabel = New System.Windows.Forms.Label() + Me.TitleLabel = New System.Windows.Forms.Label() + Me.LogoPictureBox = New System.Windows.Forms.PictureBox() + Me.MainPanel.SuspendLayout() + Me.FooterPanel.SuspendLayout() + Me.FeaturesPanel.SuspendLayout() + Me.ContentPanel.SuspendLayout() + Me.HeaderPanel.SuspendLayout() + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'MainPanel + ' + Me.MainPanel.BackColor = System.Drawing.Color.White + Me.MainPanel.Controls.Add(Me.FooterPanel) + Me.MainPanel.Controls.Add(Me.FeaturesPanel) + Me.MainPanel.Controls.Add(Me.ContentPanel) + Me.MainPanel.Controls.Add(Me.HeaderPanel) + Me.MainPanel.Dock = System.Windows.Forms.DockStyle.Fill + Me.MainPanel.Location = New System.Drawing.Point(0, 0) + Me.MainPanel.Name = "MainPanel" + Me.MainPanel.Size = New System.Drawing.Size(599, 433) + Me.MainPanel.TabIndex = 0 + ' + 'FooterPanel + ' + Me.FooterPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(52, Byte), Integer), CType(CType(73, Byte), Integer), CType(CType(94, Byte), Integer)) + Me.FooterPanel.Controls.Add(Me.OKButton) + Me.FooterPanel.Controls.Add(Me.EmailLabel) + Me.FooterPanel.Controls.Add(Me.WebsiteLabel) + Me.FooterPanel.Dock = System.Windows.Forms.DockStyle.Fill + Me.FooterPanel.Location = New System.Drawing.Point(0, 381) + Me.FooterPanel.Name = "FooterPanel" + Me.FooterPanel.Size = New System.Drawing.Size(599, 52) + Me.FooterPanel.TabIndex = 3 + ' + 'OKButton + ' + Me.OKButton.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.OKButton.BackColor = System.Drawing.Color.FromArgb(CType(CType(46, Byte), Integer), CType(CType(204, Byte), Integer), CType(CType(113, Byte), Integer)) + Me.OKButton.DialogResult = System.Windows.Forms.DialogResult.OK + Me.OKButton.FlatAppearance.BorderSize = 0 + Me.OKButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.OKButton.Font = New System.Drawing.Font("Tahoma", 10.0!, System.Drawing.FontStyle.Bold) + Me.OKButton.ForeColor = System.Drawing.Color.White + Me.OKButton.Location = New System.Drawing.Point(490, 14) + Me.OKButton.Name = "OKButton" + Me.OKButton.Size = New System.Drawing.Size(86, 26) + Me.OKButton.TabIndex = 2 + Me.OKButton.Text = "تأیید" + Me.OKButton.UseVisualStyleBackColor = False + ' + 'EmailLabel + ' + Me.EmailLabel.AutoSize = True + Me.EmailLabel.Font = New System.Drawing.Font("Tahoma", 9.0!) + Me.EmailLabel.ForeColor = System.Drawing.Color.White + Me.EmailLabel.Location = New System.Drawing.Point(17, 17) + Me.EmailLabel.Name = "EmailLabel" + Me.EmailLabel.Size = New System.Drawing.Size(137, 14) + Me.EmailLabel.TabIndex = 1 + Me.EmailLabel.Text = "ایمیل: support@hesabix.ir" + Me.EmailLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'WebsiteLabel + ' + Me.WebsiteLabel.AutoSize = True + Me.WebsiteLabel.Font = New System.Drawing.Font("Tahoma", 9.0!) + Me.WebsiteLabel.ForeColor = System.Drawing.Color.White + Me.WebsiteLabel.Location = New System.Drawing.Point(167, 17) + Me.WebsiteLabel.Name = "WebsiteLabel" + Me.WebsiteLabel.Size = New System.Drawing.Size(105, 14) + Me.WebsiteLabel.TabIndex = 0 + Me.WebsiteLabel.Text = "وب‌سایت: hesabix.ir" + Me.WebsiteLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'FeaturesPanel + ' + Me.FeaturesPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(248, Byte), Integer), CType(CType(249, Byte), Integer), CType(CType(250, Byte), Integer)) + Me.FeaturesPanel.Controls.Add(Me.Feature4Label) + Me.FeaturesPanel.Controls.Add(Me.Feature3Label) + Me.FeaturesPanel.Controls.Add(Me.Feature2Label) + Me.FeaturesPanel.Controls.Add(Me.Feature1Label) + Me.FeaturesPanel.Controls.Add(Me.FeaturesTitleLabel) + Me.FeaturesPanel.Dock = System.Windows.Forms.DockStyle.Top + Me.FeaturesPanel.Location = New System.Drawing.Point(0, 260) + Me.FeaturesPanel.Name = "FeaturesPanel" + Me.FeaturesPanel.Padding = New System.Windows.Forms.Padding(17) + Me.FeaturesPanel.Size = New System.Drawing.Size(599, 121) + Me.FeaturesPanel.TabIndex = 2 + ' + 'Feature4Label + ' + Me.Feature4Label.AutoSize = True + Me.Feature4Label.Font = New System.Drawing.Font("Tahoma", 9.0!) + Me.Feature4Label.ForeColor = System.Drawing.Color.FromArgb(CType(CType(52, Byte), Integer), CType(CType(73, Byte), Integer), CType(CType(94, Byte), Integer)) + Me.Feature4Label.Location = New System.Drawing.Point(115, 69) + Me.Feature4Label.Name = "Feature4Label" + Me.Feature4Label.Size = New System.Drawing.Size(111, 14) + Me.Feature4Label.TabIndex = 4 + Me.Feature4Label.Text = "• رابط کاربری فارسی" + Me.Feature4Label.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'Feature3Label + ' + Me.Feature3Label.AutoSize = True + Me.Feature3Label.Font = New System.Drawing.Font("Tahoma", 9.0!) + Me.Feature3Label.ForeColor = System.Drawing.Color.FromArgb(CType(CType(52, Byte), Integer), CType(CType(73, Byte), Integer), CType(CType(94, Byte), Integer)) + Me.Feature3Label.Location = New System.Drawing.Point(407, 69) + Me.Feature3Label.Name = "Feature3Label" + Me.Feature3Label.Size = New System.Drawing.Size(119, 14) + Me.Feature3Label.TabIndex = 3 + Me.Feature3Label.Text = "• چاپ خودکار فاکتورها" + Me.Feature3Label.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'Feature2Label + ' + Me.Feature2Label.AutoSize = True + Me.Feature2Label.Font = New System.Drawing.Font("Tahoma", 9.0!) + Me.Feature2Label.ForeColor = System.Drawing.Color.FromArgb(CType(CType(52, Byte), Integer), CType(CType(73, Byte), Integer), CType(CType(94, Byte), Integer)) + Me.Feature2Label.Location = New System.Drawing.Point(122, 43) + Me.Feature2Label.Name = "Feature2Label" + Me.Feature2Label.Size = New System.Drawing.Size(104, 14) + Me.Feature2Label.TabIndex = 2 + Me.Feature2Label.Text = "• ارتباط با API حسابیکس" + Me.Feature2Label.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'Feature1Label + ' + Me.Feature1Label.AutoSize = True + Me.Feature1Label.Font = New System.Drawing.Font("Tahoma", 9.0!) + Me.Feature1Label.ForeColor = System.Drawing.Color.FromArgb(CType(CType(52, Byte), Integer), CType(CType(73, Byte), Integer), CType(CType(94, Byte), Integer)) + Me.Feature1Label.Location = New System.Drawing.Point(433, 43) + Me.Feature1Label.Name = "Feature1Label" + Me.Feature1Label.Size = New System.Drawing.Size(93, 14) + Me.Feature1Label.TabIndex = 1 + Me.Feature1Label.Text = "• مدیریت چاپگرها" + Me.Feature1Label.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'FeaturesTitleLabel + ' + Me.FeaturesTitleLabel.AutoSize = True + Me.FeaturesTitleLabel.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Bold) + Me.FeaturesTitleLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(41, Byte), Integer), CType(CType(128, Byte), Integer), CType(CType(185, Byte), Integer)) + Me.FeaturesTitleLabel.Location = New System.Drawing.Point(433, 17) + Me.FeaturesTitleLabel.Name = "FeaturesTitleLabel" + Me.FeaturesTitleLabel.Size = New System.Drawing.Size(141, 19) + Me.FeaturesTitleLabel.TabIndex = 0 + Me.FeaturesTitleLabel.Text = "ویژگی‌های کلیدی" + Me.FeaturesTitleLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'ContentPanel + ' + Me.ContentPanel.Controls.Add(Me.DescriptionTextBox) + Me.ContentPanel.Controls.Add(Me.CopyrightLabel) + Me.ContentPanel.Controls.Add(Me.CompanyLabel) + Me.ContentPanel.Controls.Add(Me.VersionLabel) + Me.ContentPanel.Dock = System.Windows.Forms.DockStyle.Top + Me.ContentPanel.Location = New System.Drawing.Point(0, 104) + Me.ContentPanel.Name = "ContentPanel" + Me.ContentPanel.Padding = New System.Windows.Forms.Padding(17) + Me.ContentPanel.Size = New System.Drawing.Size(599, 156) + Me.ContentPanel.TabIndex = 1 + ' + 'DescriptionTextBox + ' + Me.DescriptionTextBox.BackColor = System.Drawing.Color.FromArgb(CType(CType(248, Byte), Integer), CType(CType(249, Byte), Integer), CType(CType(250, Byte), Integer)) + Me.DescriptionTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.DescriptionTextBox.Font = New System.Drawing.Font("Tahoma", 9.0!) + Me.DescriptionTextBox.ForeColor = System.Drawing.Color.FromArgb(CType(CType(52, Byte), Integer), CType(CType(73, Byte), Integer), CType(CType(94, Byte), Integer)) + Me.DescriptionTextBox.Location = New System.Drawing.Point(17, 95) + Me.DescriptionTextBox.Multiline = True + Me.DescriptionTextBox.Name = "DescriptionTextBox" + Me.DescriptionTextBox.ReadOnly = True + Me.DescriptionTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.DescriptionTextBox.Size = New System.Drawing.Size(566, 43) + Me.DescriptionTextBox.TabIndex = 3 + Me.DescriptionTextBox.Text = "حسابیکس باکس یک سرویس تحت ویندوز است که برای مدیریت چاپ فاکتورها و ارتباط با API کات" & + "ب طراحی شده است. این نرم‌افزار امکان چاپ خودکار فاکتورها، مدیریت چاپگرها و ارتبا" & + "ط مستقیم با سیستم حسابیکس را فراهم می‌کند." + Me.DescriptionTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'CopyrightLabel + ' + Me.CopyrightLabel.AutoSize = True + Me.CopyrightLabel.Font = New System.Drawing.Font("Tahoma", 9.0!) + Me.CopyrightLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(127, Byte), Integer), CType(CType(140, Byte), Integer), CType(CType(141, Byte), Integer)) + Me.CopyrightLabel.Location = New System.Drawing.Point(380, 69) + Me.CopyrightLabel.Name = "CopyrightLabel" + Me.CopyrightLabel.Size = New System.Drawing.Size(193, 14) + Me.CopyrightLabel.TabIndex = 2 + Me.CopyrightLabel.Text = "منتشر شده تحت مجوز GNU GPL V3" + Me.CopyrightLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'CompanyLabel + ' + Me.CompanyLabel.AutoSize = True + Me.CompanyLabel.Font = New System.Drawing.Font("Tahoma", 10.0!) + Me.CompanyLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(52, Byte), Integer), CType(CType(73, Byte), Integer), CType(CType(94, Byte), Integer)) + Me.CompanyLabel.Location = New System.Drawing.Point(469, 43) + Me.CompanyLabel.Name = "CompanyLabel" + Me.CompanyLabel.Size = New System.Drawing.Size(101, 17) + Me.CompanyLabel.TabIndex = 1 + Me.CompanyLabel.Text = "شرکت: hesabix" + Me.CompanyLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'VersionLabel + ' + Me.VersionLabel.AutoSize = True + Me.VersionLabel.Font = New System.Drawing.Font("Tahoma", 10.0!) + Me.VersionLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(52, Byte), Integer), CType(CType(73, Byte), Integer), CType(CType(94, Byte), Integer)) + Me.VersionLabel.Location = New System.Drawing.Point(475, 17) + Me.VersionLabel.Name = "VersionLabel" + Me.VersionLabel.Size = New System.Drawing.Size(98, 17) + Me.VersionLabel.TabIndex = 0 + Me.VersionLabel.Text = "نسخه: 1.0.1.0" + Me.VersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'HeaderPanel + ' + Me.HeaderPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(41, Byte), Integer), CType(CType(128, Byte), Integer), CType(CType(185, Byte), Integer)) + Me.HeaderPanel.Controls.Add(Me.SubtitleLabel) + Me.HeaderPanel.Controls.Add(Me.TitleLabel) + Me.HeaderPanel.Controls.Add(Me.LogoPictureBox) + Me.HeaderPanel.Dock = System.Windows.Forms.DockStyle.Top + Me.HeaderPanel.Location = New System.Drawing.Point(0, 0) + Me.HeaderPanel.Name = "HeaderPanel" + Me.HeaderPanel.Size = New System.Drawing.Size(599, 104) + Me.HeaderPanel.TabIndex = 0 + ' + 'SubtitleLabel + ' + Me.SubtitleLabel.AutoSize = True + Me.SubtitleLabel.Font = New System.Drawing.Font("Tahoma", 10.0!) + Me.SubtitleLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(200, Byte), Integer), CType(CType(200, Byte), Integer), CType(CType(200, Byte), Integer)) + Me.SubtitleLabel.Location = New System.Drawing.Point(380, 52) + Me.SubtitleLabel.Name = "SubtitleLabel" + Me.SubtitleLabel.Size = New System.Drawing.Size(199, 17) + Me.SubtitleLabel.TabIndex = 2 + Me.SubtitleLabel.Text = "سرویس مدیریت چاپ فاکتور حسابیکس" + Me.SubtitleLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'TitleLabel + ' + Me.TitleLabel.AutoSize = True + Me.TitleLabel.Font = New System.Drawing.Font("Tahoma", 18.0!, System.Drawing.FontStyle.Bold) + Me.TitleLabel.ForeColor = System.Drawing.Color.White + Me.TitleLabel.Location = New System.Drawing.Point(516, 23) + Me.TitleLabel.Name = "TitleLabel" + Me.TitleLabel.Size = New System.Drawing.Size(59, 29) + Me.TitleLabel.TabIndex = 1 + Me.TitleLabel.Text = "Box" + Me.TitleLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'LogoPictureBox + ' + Me.LogoPictureBox.Image = CType(resources.GetObject("LogoPictureBox.Image"), System.Drawing.Image) + Me.LogoPictureBox.Location = New System.Drawing.Point(17, 17) + Me.LogoPictureBox.Name = "LogoPictureBox" + Me.LogoPictureBox.Size = New System.Drawing.Size(69, 69) + Me.LogoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.LogoPictureBox.TabIndex = 0 + Me.LogoPictureBox.TabStop = False + ' + 'FrmAboutHesabix + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.White + Me.CancelButton = Me.OKButton + Me.ClientSize = New System.Drawing.Size(599, 433) + Me.Controls.Add(Me.MainPanel) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "FrmAboutHesabix" + Me.RightToLeft = System.Windows.Forms.RightToLeft.Yes + Me.RightToLeftLayout = True + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "درباره نرم‌افزار" + Me.MainPanel.ResumeLayout(False) + Me.FooterPanel.ResumeLayout(False) + Me.FooterPanel.PerformLayout() + Me.FeaturesPanel.ResumeLayout(False) + Me.FeaturesPanel.PerformLayout() + Me.ContentPanel.ResumeLayout(False) + Me.ContentPanel.PerformLayout() + Me.HeaderPanel.ResumeLayout(False) + Me.HeaderPanel.PerformLayout() + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + +End Class diff --git a/FrmAboutHesabix.resx b/FrmAboutHesabix.resx new file mode 100644 index 0000000..61d861c --- /dev/null +++ b/FrmAboutHesabix.resx @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + TkSuQmCC + + + \ No newline at end of file diff --git a/FrmAboutHesabix.vb b/FrmAboutHesabix.vb new file mode 100644 index 0000000..a46dcb7 --- /dev/null +++ b/FrmAboutHesabix.vb @@ -0,0 +1,96 @@ +Public NotInheritable Class FrmAboutHesabix + + Private Sub FrmAboutHesabix_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + ' تنظیم عنوان فرم + Me.Text = "درباره نرم‌افزار Box" + + ' تنظیم اطلاعات برنامه + Me.VersionLabel.Text = String.Format("نسخه: {0}", My.Application.Info.Version.ToString) + Me.CompanyLabel.Text = String.Format("شرکت: {0}", My.Application.Info.CompanyName) + Me.CopyrightLabel.Text = My.Application.Info.Copyright + + ' تنظیم توضیحات برنامه + Me.DescriptionTextBox.Text = "حسابیکس باکس یک سرویس تحت ویندوز است که برای مدیریت چاپ فاکتورها و ارتباط با API حسابیکس طراحی شده است. این نرم‌افزار امکان چاپ خودکار فاکتورها، مدیریت چاپگرها و ارتباط مستقیم با سیستم حسابیکس را فراهم می‌کند." + + ' تنظیم اطلاعات تماس + Me.WebsiteLabel.Text = "وب‌سایت: hesabix.ir" + Me.EmailLabel.Text = "ایمیل: support@hesabix.ir" + + ' تنظیم ویژگی‌های برنامه + Me.Feature1Label.Text = "• مدیریت چاپگرها" + Me.Feature2Label.Text = "• ارتباط با API حسابیکس" + Me.Feature3Label.Text = "• چاپ خودکار فاکتورها" + Me.Feature4Label.Text = "• رابط کاربری فارسی" + + ' تنظیم رنگ‌ها و استایل‌ها + ApplyModernStyling() + End Sub + + Private Sub ApplyModernStyling() + ' تنظیم رنگ‌های مدرن برای فرم + Me.BackColor = Color.White + + ' تنظیم فونت‌ها و راست‌چین بودن + Me.TitleLabel.Font = New Font("Tahoma", 18, FontStyle.Bold) + Me.TitleLabel.TextAlign = ContentAlignment.MiddleRight + + Me.SubtitleLabel.Font = New Font("Tahoma", 10, FontStyle.Regular) + Me.SubtitleLabel.TextAlign = ContentAlignment.MiddleRight + + Me.VersionLabel.Font = New Font("Tahoma", 10, FontStyle.Regular) + Me.VersionLabel.TextAlign = ContentAlignment.MiddleRight + + Me.CompanyLabel.Font = New Font("Tahoma", 10, FontStyle.Regular) + Me.CompanyLabel.TextAlign = ContentAlignment.MiddleRight + + Me.CopyrightLabel.Font = New Font("Tahoma", 9, FontStyle.Regular) + Me.CopyrightLabel.TextAlign = ContentAlignment.MiddleRight + + Me.DescriptionTextBox.Font = New Font("Tahoma", 9, FontStyle.Regular) + Me.DescriptionTextBox.TextAlign = HorizontalAlignment.Right + + Me.FeaturesTitleLabel.Font = New Font("Tahoma", 12, FontStyle.Bold) + Me.FeaturesTitleLabel.TextAlign = ContentAlignment.MiddleRight + + Me.Feature1Label.Font = New Font("Tahoma", 9, FontStyle.Regular) + Me.Feature1Label.TextAlign = ContentAlignment.MiddleRight + + Me.Feature2Label.Font = New Font("Tahoma", 9, FontStyle.Regular) + Me.Feature2Label.TextAlign = ContentAlignment.MiddleRight + + Me.Feature3Label.Font = New Font("Tahoma", 9, FontStyle.Regular) + Me.Feature3Label.TextAlign = ContentAlignment.MiddleRight + + Me.Feature4Label.Font = New Font("Tahoma", 9, FontStyle.Regular) + Me.Feature4Label.TextAlign = ContentAlignment.MiddleRight + + Me.WebsiteLabel.Font = New Font("Tahoma", 9, FontStyle.Regular) + Me.WebsiteLabel.TextAlign = ContentAlignment.MiddleRight + + Me.EmailLabel.Font = New Font("Tahoma", 9, FontStyle.Regular) + Me.EmailLabel.TextAlign = ContentAlignment.MiddleRight + + Me.OKButton.Font = New Font("Tahoma", 10, FontStyle.Bold) + End Sub + + Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click + Me.Close() + End Sub + + Private Sub WebsiteLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WebsiteLabel.Click + Try + System.Diagnostics.Process.Start("https://hesabix.ir") + Catch ex As Exception + MessageBox.Show("خطا در باز کردن وب‌سایت: " & ex.Message, "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error) + End Try + End Sub + + Private Sub EmailLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EmailLabel.Click + Try + System.Diagnostics.Process.Start("mailto:support@hesabix.ir") + Catch ex As Exception + MessageBox.Show("خطا در باز کردن ایمیل: " & ex.Message, "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error) + End Try + End Sub + +End Class diff --git a/FrmInvoice.Designer.vb b/FrmInvoice.Designer.vb new file mode 100644 index 0000000..5057a6a --- /dev/null +++ b/FrmInvoice.Designer.vb @@ -0,0 +1,133 @@ + _ +Partial Class FrmInvoice + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + cobPerson = New ComboBox() + ComboBox2 = New ComboBox() + DataGridView1 = New DataGridView() + index = New DataGridViewTextBoxColumn() + commodity = New DataGridViewTextBoxColumn() + count = New DataGridViewTextBoxColumn() + price = New DataGridViewTextBoxColumn() + priceAll = New DataGridViewTextBoxColumn() + btnSave = New Button() + CType(DataGridView1, ComponentModel.ISupportInitialize).BeginInit() + SuspendLayout() + ' + ' cobPerson + ' + cobPerson.FormattingEnabled = True + cobPerson.Location = New Point(12, 34) + cobPerson.Name = "cobPerson" + cobPerson.Size = New Size(228, 23) + cobPerson.TabIndex = 0 + ' + ' ComboBox2 + ' + ComboBox2.FormattingEnabled = True + ComboBox2.Location = New Point(246, 34) + ComboBox2.Name = "ComboBox2" + ComboBox2.Size = New Size(228, 23) + ComboBox2.TabIndex = 1 + ' + ' DataGridView1 + ' + DataGridView1.AllowUserToOrderColumns = True + DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill + DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize + DataGridView1.Columns.AddRange(New DataGridViewColumn() {index, commodity, count, price, priceAll}) + DataGridView1.Dock = DockStyle.Bottom + DataGridView1.Location = New Point(0, 72) + DataGridView1.Name = "DataGridView1" + DataGridView1.RowTemplate.Height = 25 + DataGridView1.Size = New Size(607, 269) + DataGridView1.TabIndex = 2 + ' + ' index + ' + index.HeaderText = "ردیف" + index.Name = "index" + index.ReadOnly = True + ' + ' commodity + ' + commodity.HeaderText = "کالا" + commodity.Name = "commodity" + ' + ' count + ' + count.HeaderText = "تعداد | مقدار" + count.Name = "count" + ' + ' price + ' + price.HeaderText = "قیمت واحد" + price.Name = "price" + ' + ' priceAll + ' + priceAll.HeaderText = "قیمت کل" + priceAll.Name = "priceAll" + priceAll.ReadOnly = True + ' + ' btnSave + ' + btnSave.Location = New Point(480, 33) + btnSave.Name = "btnSave" + btnSave.Size = New Size(75, 23) + btnSave.TabIndex = 3 + btnSave.Text = "ثبت" + btnSave.UseVisualStyleBackColor = True + ' + ' FrmInvoice + ' + AutoScaleDimensions = New SizeF(7F, 15F) + AutoScaleMode = AutoScaleMode.Font + ClientSize = New Size(607, 341) + Controls.Add(btnSave) + Controls.Add(DataGridView1) + Controls.Add(ComboBox2) + Controls.Add(cobPerson) + MaximizeBox = False + MinimizeBox = False + Name = "FrmInvoice" + RightToLeft = RightToLeft.Yes + RightToLeftLayout = True + ShowIcon = False + ShowInTaskbar = False + StartPosition = FormStartPosition.CenterScreen + Text = "فاکتور فروش" + CType(DataGridView1, ComponentModel.ISupportInitialize).EndInit() + ResumeLayout(False) + End Sub + + Friend WithEvents cobPerson As ComboBox + Friend WithEvents ComboBox2 As ComboBox + Friend WithEvents DataGridView1 As DataGridView + Friend WithEvents index As DataGridViewTextBoxColumn + Friend WithEvents commodity As DataGridViewTextBoxColumn + Friend WithEvents count As DataGridViewTextBoxColumn + Friend WithEvents price As DataGridViewTextBoxColumn + Friend WithEvents priceAll As DataGridViewTextBoxColumn + Friend WithEvents btnSave As Button +End Class diff --git a/FrmInvoice.resx b/FrmInvoice.resx new file mode 100644 index 0000000..5eecaf3 --- /dev/null +++ b/FrmInvoice.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/FrmInvoice.vb b/FrmInvoice.vb new file mode 100644 index 0000000..2e691d5 --- /dev/null +++ b/FrmInvoice.vb @@ -0,0 +1,13 @@ +Imports System.Web.Script.Serialization +Imports Microsoft.VisualBasic.Devices + +Public Class FrmInvoice + Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick + + End Sub + + Private Sub FrmInvoice_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Dim serializer As New JavaScriptSerializer() + Dim personsList As Object() = serializer.Deserialize(Of Object())(My.Settings.persons) + End Sub +End Class \ No newline at end of file diff --git a/FrmLogin.Designer.vb b/FrmLogin.Designer.vb new file mode 100644 index 0000000..c3aafcd --- /dev/null +++ b/FrmLogin.Designer.vb @@ -0,0 +1,325 @@ + _ +Partial Class FrmLogin + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + ' پاک کردن تایمرها + If disposing Then + CleanupTimers() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmLogin)) + Me.MainPanel = New System.Windows.Forms.Panel() + Me.LoadingPanel = New System.Windows.Forms.Panel() + Me.LoadingProgressBar = New System.Windows.Forms.ProgressBar() + Me.LoadingLabel = New System.Windows.Forms.Label() + Me.LoginPanel = New System.Windows.Forms.Panel() + Me.StatusLabel = New System.Windows.Forms.Label() + Me.ExitButton = New System.Windows.Forms.Button() + Me.LoginButton = New System.Windows.Forms.Button() + Me.SettingsButton = New System.Windows.Forms.Button() + Me.ApiUrlTextBox = New System.Windows.Forms.TextBox() + Me.ApiUrlLabel = New System.Windows.Forms.Label() + Me.TokenTextBox = New System.Windows.Forms.TextBox() + Me.TokenLabel = New System.Windows.Forms.Label() + Me.LogoPanel = New System.Windows.Forms.Panel() + Me.SubtitleLabel = New System.Windows.Forms.Label() + Me.TitleLabel = New System.Windows.Forms.Label() + Me.LogoPictureBox = New System.Windows.Forms.PictureBox() + Me.MainPanel.SuspendLayout() + Me.LoadingPanel.SuspendLayout() + Me.LoginPanel.SuspendLayout() + Me.LogoPanel.SuspendLayout() + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'MainPanel + ' + Me.MainPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer)) + Me.MainPanel.Controls.Add(Me.LoadingPanel) + Me.MainPanel.Controls.Add(Me.LoginPanel) + Me.MainPanel.Controls.Add(Me.LogoPanel) + Me.MainPanel.Dock = System.Windows.Forms.DockStyle.Fill + Me.MainPanel.Location = New System.Drawing.Point(0, 0) + Me.MainPanel.Name = "MainPanel" + Me.MainPanel.Size = New System.Drawing.Size(386, 433) + Me.MainPanel.TabIndex = 0 + ' + 'LoadingPanel + ' + Me.LoadingPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer)) + Me.LoadingPanel.Controls.Add(Me.LoadingProgressBar) + Me.LoadingPanel.Controls.Add(Me.LoadingLabel) + Me.LoadingPanel.Dock = System.Windows.Forms.DockStyle.Bottom + Me.LoadingPanel.Location = New System.Drawing.Point(0, 390) + Me.LoadingPanel.Name = "LoadingPanel" + Me.LoadingPanel.Size = New System.Drawing.Size(386, 43) + Me.LoadingPanel.TabIndex = 2 + Me.LoadingPanel.Visible = False + ' + 'LoadingProgressBar + ' + Me.LoadingProgressBar.Anchor = System.Windows.Forms.AnchorStyles.None + Me.LoadingProgressBar.Location = New System.Drawing.Point(43, 22) + Me.LoadingProgressBar.MarqueeAnimationSpeed = 30 + Me.LoadingProgressBar.Name = "LoadingProgressBar" + Me.LoadingProgressBar.Size = New System.Drawing.Size(300, 17) + Me.LoadingProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.LoadingProgressBar.TabIndex = 1 + ' + 'LoadingLabel + ' + Me.LoadingLabel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.LoadingLabel.BackColor = System.Drawing.Color.Transparent + Me.LoadingLabel.Font = New System.Drawing.Font("Segoe UI", 10.0!) + Me.LoadingLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(180, Byte), Integer), CType(CType(180, Byte), Integer), CType(CType(180, Byte), Integer)) + Me.LoadingLabel.Location = New System.Drawing.Point(43, 4) + Me.LoadingLabel.Name = "LoadingLabel" + Me.LoadingLabel.Size = New System.Drawing.Size(300, 17) + Me.LoadingLabel.TabIndex = 0 + Me.LoadingLabel.Text = "در حال بررسی توکن..." + Me.LoadingLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'LoginPanel + ' + Me.LoginPanel.BackColor = System.Drawing.Color.Transparent + Me.LoginPanel.Controls.Add(Me.StatusLabel) + Me.LoginPanel.Controls.Add(Me.ExitButton) + Me.LoginPanel.Controls.Add(Me.LoginButton) + Me.LoginPanel.Controls.Add(Me.SettingsButton) + Me.LoginPanel.Controls.Add(Me.ApiUrlTextBox) + Me.LoginPanel.Controls.Add(Me.ApiUrlLabel) + Me.LoginPanel.Controls.Add(Me.TokenTextBox) + Me.LoginPanel.Controls.Add(Me.TokenLabel) + Me.LoginPanel.Dock = System.Windows.Forms.DockStyle.Fill + Me.LoginPanel.Location = New System.Drawing.Point(0, 173) + Me.LoginPanel.Name = "LoginPanel" + Me.LoginPanel.Size = New System.Drawing.Size(386, 260) + Me.LoginPanel.TabIndex = 1 + ' + 'StatusLabel + ' + Me.StatusLabel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.StatusLabel.BackColor = System.Drawing.Color.Transparent + Me.StatusLabel.Font = New System.Drawing.Font("Segoe UI", 10.0!) + Me.StatusLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(200, Byte), Integer), CType(CType(100, Byte), Integer)) + Me.StatusLabel.Location = New System.Drawing.Point(43, 156) + Me.StatusLabel.Name = "StatusLabel" + Me.StatusLabel.Size = New System.Drawing.Size(300, 26) + Me.StatusLabel.TabIndex = 4 + Me.StatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'ExitButton + ' + Me.ExitButton.Anchor = System.Windows.Forms.AnchorStyles.None + Me.ExitButton.BackColor = System.Drawing.Color.FromArgb(CType(CType(100, Byte), Integer), CType(CType(100, Byte), Integer), CType(CType(100, Byte), Integer)) + Me.ExitButton.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ExitButton.FlatAppearance.BorderSize = 0 + Me.ExitButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.ExitButton.Font = New System.Drawing.Font("Segoe UI", 12.0!) + Me.ExitButton.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.ExitButton.Location = New System.Drawing.Point(231, 104) + Me.ExitButton.Name = "ExitButton" + Me.ExitButton.Size = New System.Drawing.Size(111, 35) + Me.ExitButton.TabIndex = 3 + Me.ExitButton.Text = "خروج" + Me.ExitButton.UseVisualStyleBackColor = False + ' + 'LoginButton + ' + Me.LoginButton.Anchor = System.Windows.Forms.AnchorStyles.None + Me.LoginButton.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(120, Byte), Integer), CType(CType(215, Byte), Integer)) + Me.LoginButton.FlatAppearance.BorderSize = 0 + Me.LoginButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.LoginButton.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Bold) + Me.LoginButton.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.LoginButton.Location = New System.Drawing.Point(43, 104) + Me.LoginButton.Name = "LoginButton" + Me.LoginButton.Size = New System.Drawing.Size(171, 35) + Me.LoginButton.TabIndex = 2 + Me.LoginButton.Text = "ورود به سیستم" + Me.LoginButton.UseVisualStyleBackColor = False + ' + 'SettingsButton + ' + Me.SettingsButton.Anchor = System.Windows.Forms.AnchorStyles.None + Me.SettingsButton.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(60, Byte), Integer), CType(CType(60, Byte), Integer)) + Me.SettingsButton.FlatAppearance.BorderSize = 0 + Me.SettingsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.SettingsButton.Font = New System.Drawing.Font("Segoe UI", 9.0!) + Me.SettingsButton.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.SettingsButton.Location = New System.Drawing.Point(291, 217) + Me.SettingsButton.Name = "SettingsButton" + Me.SettingsButton.Size = New System.Drawing.Size(51, 22) + Me.SettingsButton.TabIndex = 7 + Me.SettingsButton.Text = "تنظیمات" + Me.SettingsButton.UseVisualStyleBackColor = False + ' + 'ApiUrlTextBox + ' + Me.ApiUrlTextBox.Anchor = System.Windows.Forms.AnchorStyles.None + Me.ApiUrlTextBox.BackColor = System.Drawing.Color.FromArgb(CType(CType(50, Byte), Integer), CType(CType(50, Byte), Integer), CType(CType(50, Byte), Integer)) + Me.ApiUrlTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.ApiUrlTextBox.Font = New System.Drawing.Font("Segoe UI", 10.0!) + Me.ApiUrlTextBox.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.ApiUrlTextBox.Location = New System.Drawing.Point(43, 217) + Me.ApiUrlTextBox.Name = "ApiUrlTextBox" + Me.ApiUrlTextBox.Size = New System.Drawing.Size(240, 25) + Me.ApiUrlTextBox.TabIndex = 6 + Me.ApiUrlTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + ' + 'ApiUrlLabel + ' + Me.ApiUrlLabel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.ApiUrlLabel.BackColor = System.Drawing.Color.Transparent + Me.ApiUrlLabel.Font = New System.Drawing.Font("Segoe UI", 10.0!) + Me.ApiUrlLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(200, Byte), Integer), CType(CType(200, Byte), Integer), CType(CType(200, Byte), Integer)) + Me.ApiUrlLabel.Location = New System.Drawing.Point(43, 191) + Me.ApiUrlLabel.Name = "ApiUrlLabel" + Me.ApiUrlLabel.Size = New System.Drawing.Size(300, 17) + Me.ApiUrlLabel.TabIndex = 5 + Me.ApiUrlLabel.Text = "آدرس سرور API:" + Me.ApiUrlLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'TokenTextBox + ' + Me.TokenTextBox.Anchor = System.Windows.Forms.AnchorStyles.None + Me.TokenTextBox.BackColor = System.Drawing.Color.FromArgb(CType(CType(50, Byte), Integer), CType(CType(50, Byte), Integer), CType(CType(50, Byte), Integer)) + Me.TokenTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.TokenTextBox.Font = New System.Drawing.Font("Segoe UI", 12.0!) + Me.TokenTextBox.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.TokenTextBox.Location = New System.Drawing.Point(43, 52) + Me.TokenTextBox.Name = "TokenTextBox" + Me.TokenTextBox.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42) + Me.TokenTextBox.Size = New System.Drawing.Size(300, 29) + Me.TokenTextBox.TabIndex = 1 + Me.TokenTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + ' + 'TokenLabel + ' + Me.TokenLabel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.TokenLabel.BackColor = System.Drawing.Color.Transparent + Me.TokenLabel.Font = New System.Drawing.Font("Segoe UI", 12.0!) + Me.TokenLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.TokenLabel.Location = New System.Drawing.Point(43, 17) + Me.TokenLabel.Name = "TokenLabel" + Me.TokenLabel.Size = New System.Drawing.Size(300, 22) + Me.TokenLabel.TabIndex = 0 + Me.TokenLabel.Text = "لطفاً توکن دسترسی خود را وارد کنید:" + Me.TokenLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'LogoPanel + ' + Me.LogoPanel.BackColor = System.Drawing.Color.Transparent + Me.LogoPanel.Controls.Add(Me.SubtitleLabel) + Me.LogoPanel.Controls.Add(Me.TitleLabel) + Me.LogoPanel.Controls.Add(Me.LogoPictureBox) + Me.LogoPanel.Dock = System.Windows.Forms.DockStyle.Top + Me.LogoPanel.Location = New System.Drawing.Point(0, 0) + Me.LogoPanel.Name = "LogoPanel" + Me.LogoPanel.Size = New System.Drawing.Size(386, 173) + Me.LogoPanel.TabIndex = 0 + ' + 'SubtitleLabel + ' + Me.SubtitleLabel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.SubtitleLabel.BackColor = System.Drawing.Color.Transparent + Me.SubtitleLabel.Font = New System.Drawing.Font("Segoe UI", 12.0!) + Me.SubtitleLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(180, Byte), Integer), CType(CType(180, Byte), Integer), CType(CType(180, Byte), Integer)) + Me.SubtitleLabel.Location = New System.Drawing.Point(86, 130) + Me.SubtitleLabel.Name = "SubtitleLabel" + Me.SubtitleLabel.Size = New System.Drawing.Size(214, 26) + Me.SubtitleLabel.TabIndex = 2 + Me.SubtitleLabel.Text = "افزونه اتصال پرینتر ابری" + Me.SubtitleLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'TitleLabel + ' + Me.TitleLabel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.TitleLabel.BackColor = System.Drawing.Color.Transparent + Me.TitleLabel.Font = New System.Drawing.Font("Segoe UI", 20.0!, System.Drawing.FontStyle.Bold) + Me.TitleLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.TitleLabel.Location = New System.Drawing.Point(86, 95) + Me.TitleLabel.Name = "TitleLabel" + Me.TitleLabel.Size = New System.Drawing.Size(214, 35) + Me.TitleLabel.TabIndex = 1 + Me.TitleLabel.Text = "Box" + Me.TitleLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'LogoPictureBox + ' + Me.LogoPictureBox.Anchor = System.Windows.Forms.AnchorStyles.None + Me.LogoPictureBox.BackColor = System.Drawing.Color.Transparent + Me.LogoPictureBox.Image = Global.HesabixBox.My.Resources.Resources.logo_blue + Me.LogoPictureBox.Location = New System.Drawing.Point(129, 17) + Me.LogoPictureBox.Name = "LogoPictureBox" + Me.LogoPictureBox.Size = New System.Drawing.Size(129, 69) + Me.LogoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.LogoPictureBox.TabIndex = 0 + Me.LogoPictureBox.TabStop = False + ' + 'FrmLogin + ' + Me.AcceptButton = Me.LoginButton + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer)) + Me.CancelButton = Me.ExitButton + Me.ClientSize = New System.Drawing.Size(386, 433) + Me.ControlBox = False + Me.Controls.Add(Me.MainPanel) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "FrmLogin" + Me.RightToLeft = System.Windows.Forms.RightToLeft.Yes + Me.RightToLeftLayout = True + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "ورود به Box" + Me.TopMost = True + Me.MainPanel.ResumeLayout(False) + Me.LoadingPanel.ResumeLayout(False) + Me.LoginPanel.ResumeLayout(False) + Me.LoginPanel.PerformLayout() + Me.LogoPanel.ResumeLayout(False) + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents MainPanel As Panel + Friend WithEvents LogoPanel As Panel + Friend WithEvents LogoPictureBox As PictureBox + Friend WithEvents TitleLabel As Label + Friend WithEvents SubtitleLabel As Label + Friend WithEvents LoginPanel As Panel + Friend WithEvents TokenLabel As Label + Friend WithEvents TokenTextBox As TextBox + Friend WithEvents ApiUrlLabel As Label + Friend WithEvents ApiUrlTextBox As TextBox + Friend WithEvents SettingsButton As Button + Friend WithEvents LoginButton As Button + Friend WithEvents ExitButton As Button + Friend WithEvents StatusLabel As Label + Friend WithEvents LoadingPanel As Panel + Friend WithEvents LoadingLabel As Label + Friend WithEvents LoadingProgressBar As ProgressBar +End Class diff --git a/FrmLogin.resx b/FrmLogin.resx new file mode 100644 index 0000000..b171770 --- /dev/null +++ b/FrmLogin.resx @@ -0,0 +1,790 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA + IACoJQAA7h4AAAAAAAABACAAQFcAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAjLgAAIy4AAAAA + AAAAAAAAAAAAAHYcAQB0HAEDeBwBN3kcAH55HACbeRwAhngcAER2HAEHdxwBAHccARZ4HABqeBwAM3Qc + AwJ2HAIAAAAAAHQcAgBmHQYBeRwAZXocAOZ6HAD+ehwA/3ocAP96HADveRwAf3UcAQV2HAEMeRwAv3oc + AOV5HABaiRwAAHQcAgB3HAEAdxwBIHkcANt6HAD/ehwA7nkcALl6HADjehwA/3ocAO14HAA3gxwAAHkc + AKN6HAD/ehwA0XccARd3HAEAeBwAAHgcADV6HADxehwA/3kcAJtnHQYDeRwAeHocAP96HAD9eRwAV38c + AAB5HACeehwA/3ocAOt4HAAseBwAAHkcAAB4HAA2ehwA8XocAP95HACKexwAAHkcAGl6HAD/ehwA/nkc + AFp/HAAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnocAPF6HAD/eRwAi3scAAB5HABlehwA/3oc + AP15HABWfxwAAHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHkcADZ6HADxehwA/3kcAIt7HAAAeBwBLnkc + AMd5HAC/eBwBJIMdAAB5HACeehwA/3ocAOx5HAAueRwAAHkcAAB5HAA2ehwA8XocAP95HACLfRwAAG0c + AwB3HAESdxwBETMaGwD/rwAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnocAPF6HAD/eRwAi30c + AABtHAIAdxwBDnccAQ2TGgAAAAD/AHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHkcADZ6HADxehwA/3kc + AIt7HAAAeBwBKnkcAMB5HAC5eBwBIoQdAAB5HACeehwA/3ocAOx5HAAueRwAAHkcAAB5HAA2ehwA8Xoc + AP95HACLexwAAHkcAGR6HAD/ehwA/HkcAFR/HAAAeRwAnnocAP96HADseRwALnkcAAB5HAAAeRwANnoc + APF6HAD/eRwAi3scAAB5HABpehwA/3ocAP15HABYfxwAAHkcAJ56HAD/ehwA7HkcAC55HAAAeRwAAHgc + ADV6HADxehwA/3kcAIt7HAAAeRwAZnocAP96HAD/eRwAZWYcBQN5HACqehwA/3ocAOt4HAAseBwAAHgc + AQB3HAEhehwA3XocAP95HACSfBwAAHgcAEZ6HAD1ehwA/3ocANt5HACxehwA73ocAP96HADTdxwBGHcc + AQB1HAEAbhsDAXkcAGt6HADueRwAsnQcAgZ3HAEKeRwAkXocAPR6HAD/ehwA/3ocAP96HADleRwAXpcb + AAB0HAIAAAAAAHYcAQB1HAEFeBwAQHgcAHF1HAERdhwBAHccAQt4HABReRwAkHkcAJ55HACCeBwAOHQd + AgN2HAEAAAAAAMBDAACAAwAAgCEAAIAhAACEIQAAhCEAAIQhAACGYQAAhmEAAIQhAACEIQAAhCEAAIQB + AACEAQAAgAMAAMIDAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAAjLgAAIy4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaCAJAIQZAAB0HAIMdxwBNHgcAVd4HAFjdxwBUHYcASpzHQIGdhwBACogEgBxHAIAcB0CAXYc + ATV3HAEydRwBCnocAABjHQQAAAAAAAAAAAAAAAAAAAAAAAAAAAB0HAEAcRwCA3ccAUp5HAC2eRwA6Xoc + APh6HAD7ehwA9nkcAOF5HACfdxwBL4gbAABxHAIAfRwAAHgcAGp5HADmeRwArngcAUBvHQMBdRwCAAAA + AAAAAAAAAAAAAHAcAwCDHAAAeBwBXHkcAO16HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eRwA1Xcc + ATF4HAAAeBwBAHccATV6HADvehwA/3ocAOV4HAFKfBwAAG4cAgAAAAAAAAAAAHYcAQB2HAEYeRwAz3oc + AP96HAD/ehwA/3ocAPd5HADsehwA+3ocAP96HAD/ehwA/3kcAJ5uHAMDdhwBAHYcAR95HADfehwA/3oc + AP95HAC+dR0CDnYdAQAAAAAAAAAAAHgcAQB3HAE9eRwA9HocAP96HAD/eRwA7XgcAWF3HAEqeBwBg3oc + APt6HAD/ehwA/3kcANR2HAEWdRwBAHUcARl5HADaehwA/3ocAP96HADpdxwBK3ccAQAAAAAAAAAAAHgc + AAB4HABFehwA93ocAP96HAD/eRwAx3UcAQ53HAEAdxwBMHkcAO16HAD/ehwA/3kcAN92HAEedhwBAHUc + ARl5HADaehwA/3ocAP96HADxeBwANngcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUc + AQt2HAEAdxwBLnkcAOx6HAD/ehwA/3kcAN92HAEedhwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHYcAQt3HAEAdxwBLnocAOx6HAD/ehwA/3oc + AN92HAEedhwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93oc + AP96HAD/eRwAxHUcAQt2HAEAdhwBKnkcAOl6HAD/ehwA/3kcANt3HAEbdhwBAHYcARl5HADaehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAdRwBDXkc + ALJ6HAD/ehwA/3kcAJ50HAIGdRwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkc + AAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAehwAAHYcASB5HABxeBwAanccARh4HAEAdRwBAHYc + ARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUc + AQt1HAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdRwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt1HAEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAdRwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93oc + AP96HAD/eRwAxHUcAQt1HAEAeRwAAHYcARt4HABjeBwBXXYcARR3HAEAdRwBAHUcARl5HADaehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt2HAEAdRwBC3kc + AKp6HAD/ehwA/nkcAJdzHAIFdRwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkc + AAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt2HAEAdxwBKXocAOh6HAD/ehwA/3ocANl3HAEZdhwBAHYc + ARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHYc + AQt3HAEAdxwBLnocAOx6HAD/ehwA/3ocAN53HAEddhwBAHYcARl5HADaehwA/3ocAP96HADxeBwAN3gc + AAAAAAAAAAAAAHkcAAB4HABEehwA93ocAP96HAD/eRwAxHUcAQt3HAEAdxwBLnocAOx6HAD/ehwA/3oc + AN13HAEddhwBAHUcARl5HADaehwA/3ocAP96HADxeBwAN3gcAAAAAAAAAAAAAHkcAAB4HABFehwA93oc + AP96HAD/eRwAxHUcAQt3HAEAdxwBLnkcAOx6HAD/ehwA/3ocAN53HAEedhwBAHYcARt5HADbehwA/3oc + AP96HADxeBwAN3gcAAAAAAAAAAAAAHgcAAB3HAE+ehwA9HocAP96HAD/eRwAxHUcAQx2HAEAdhwBJHkc + AON6HAD/ehwA/3ocAPR4HABpdxwBHngcAWV6HADzehwA/3ocAP96HADrdxwBLXccAQAAAAAAAAAAAHYc + AQB2HAEaeRwA03ocAP96HAD/eRwAz3UcARJ1HAEAdRwCC3kcALd6HAD/ehwA/3ocAP96HAD2ehwA43oc + APZ6HAD/ehwA/3ocAP95HADCdRwBD3YcAQAAAAAAAAAAAHIcAgCJHAAAeBwAY3ocAPF6HAD/eRwA4ncc + ASN3HAEAehwAAHgcAUZ5HADlehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOl4HAFPfBwAAG8d + BAAAAAAAAAAAAAAAAAB2HAEAdBwBBHgcAVZ5HADCeRwA6nccAVZ6HAAAchwCAGscAwF4HAFBeRwAs3kc + AOp6HAD6ehwA/HocAPp6HADreRwAt3gcAUdvHAICcxwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAbhsDAJUg + AAB2HAESdxwBQnYcATabHAAAbRwDAGUfCQB9GgAAdRwBDHccATd4HABdeBwAZ3gcAF13HAE4dRwBDYAb + AABoHgcAAAAAAAAAAAAAAAAA+A4fAOAHBwDgAwcAwAEDAMABAwDAgQMAwIEDAMCBAwDAgQMAwIEDAMDD + AwDA/wMAwP8DAMDDAwDAgQMAwIEDAMCBAwDAgQMAwIEDAMCAAwDAgAMA4MAHAODABwD48B8AKAAAACAA + AABAAAAAAQAgAAAAAAAAEAAAIy4AACMuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGUc + BAClHQAAcRwDCXUcAR12HAEvdRwBMnYcASRzHAIPZx0IAWscBQAAAAAAAAAAAAAAAAAAAAAAdhwBAHUc + AQ91HAEccRwCB38cAABkHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8c + AgApEg0AdRwBIXccAXF5HAC0eRwA13kcAOd5HADpeRwA3nkcAMR4HAGLdxwBN3AcAgRzHAEAAAAAAAAA + AAB2HAEAdhwBK3gcAL95HACveBwAZnYcARmPGAAAZyAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAByHAIAbBwEAnccAVN5HADUehwA/nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADseBwAg3Mc + Ag51HAEAAAAAAHMcAgBxHAIGeRwArXocAP96HAD8eRwAyXccAUKRHQAAcxwBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbR0FAHscAAB2HAFNeRwA6nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HAD8eBwAhm8cAwRzHAIAYx0GAH0cAAB4HAF7ehwA/3ocAP96HAD/eRwA3XccATd5HAAAbhwCAAAA + AAAAAAAAAAAAAAAAAAB0HAEAdBwBEHkcAMB6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADrdxwBOHccAQAAAAAAeRwAAHccAVt6HAD9ehwA/3ocAP96HAD/eRwApnAd + AwZzHQMAAAAAAAAAAAAAAAAAAAAAAHccAQB2HAE8eRwA8nocAP96HAD/ehwA/3ocAP95HADceBwBhHgc + AXV5HAC7ehwA/XocAP96HAD/ehwA/3ocAP94HAF6fRwAAG0dBgB4HAAAdxwBUHocAPt6HAD/ehwA/3oc + AP95HADidhwBI3YcAQAAAAAAAAAAAAAAAAAAAAAAeBwAAHccAVN5HAD8ehwA/3ocAP96HAD/eRwA+Hcc + AVd9HAAAdhwBAHUcAh55HADVehwA/3ocAP96HAD/ehwA/3gcAJz/AAAAbR0EAHgcAAB3HAFOehwA+noc + AP96HAD/ehwA/3ocAPN3HAE7dxwBAAAAAAAAAAAAAAAAAAAAAAB4HAAAdxwAVHocAPx6HAD/ehwA/3oc + AP95HADsdxwBL3ccAQBzHAIAchwCCnkcAMB6HAD/ehwA/3ocAP96HAD/eBwAo1MeCQFsHQQAeBwAAHcc + AU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/Hoc + AP96HAD/ehwA/3kcAOx3HAAudxwAAHIcAQBxHAIKeBwAv3ocAP96HAD/ehwA/3ocAP94HACjVB4IAWwd + BAB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgc + AFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAS53HAEAchwBAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3gc + AKNVHgkBbB0EAHgcAAB3HAFOehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAA + AAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLnccAQBzHAIAchwCCnkcAL96HAD/ehwA/3oc + AP96HAD/eRwAo1QeCQFsHQQAeBwAAHccAU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAA + AAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3ocAOx3HAEudxwBAHEcAgBvHAMHeBwAuHoc + AP96HAD/ehwA/3ocAP95HACa/wAAAGweBQB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgc + AAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAC53HAAAbh0FAIcb + AAB4HAF6ehwA/nocAP96HAD/ehwA+HgcAVx6HAAAbiAJAHgcAAB3HAFPehwA+nocAP96HAD/ehwA/3oc + APV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLncc + AQAAAAAAdRwBAHQcARR4HACPeRwA3HkcANd4HAF7dBwCCnUcAQAAAAAAeBwAAHccAU96HAD6ehwA/3oc + AP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3oc + AOx3HAAudxwAAAAAAAAAAAAAdBwCAHEcAwV2HAEbdhwBGHAcAgNyHAEAAAAAAAAAAAB4HAAAdxwBTnoc + APp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3oc + AP96HAD/eRwA7HccAS53HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgc + AAB3HAFPehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHoc + APx6HAD/ehwA/3ocAP95HADsdxwBLnccAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAeBwAAHccAU95HAD6ehwA/3ocAP96HAD/ehwA9XgcAUB4HAAAAAAAAAAAAAAAAAAAAAAAAHkc + AAB4HABUehwA/HocAP96HAD/ehwA/3kcAOx3HAEudxwAAAAAAAAAAAAAch0DAHEdAwN1HAIRdRwCD20d + BAFvHAMAAAAAAAAAAAB4HAAAdxwBT3kcAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAA + AAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7HccAS53HAAAAAAAAHUcAQB0HAIPeBwAgXkc + AM15HADJdxwBbnMcAgh0HAIAAAAAAHgcAAB3HAFPehwA+nocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAA + AAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3ocAP96HADsdxwBLnccAQBvHAMAfhwAAHgc + AXF6HAD8ehwA/3ocAP95HAD1dxwBVnocAABwHAMAeBwAAHccAU96HAD6ehwA/3ocAP96HAD/ehwA9Xgc + AEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/HocAP96HAD/ehwA/3ocAOx3HAEudxwAAHEc + AwBvHAMGeBwAtHocAP96HAD/ehwA/3ocAP95HACWmBwAAG4cAwB4HAAAdxwBTnocAPp6HAD/ehwA/3oc + AP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgcAFR6HAD8ehwA/3ocAP96HAD/ehwA7Hcc + AS53HAEAcxwCAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3kcAJ9BHg4BbR0EAHgcAAB3HAFPehwA+noc + AP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAAAAB5HAAAeBwAVHocAPx6HAD/ehwA/3oc + AP96HADsdxwBLnccAQByHAIAchwCCnkcAL96HAD/ehwA/3ocAP96HAD/eRwAoEMhDgFtHQQAeBwAAHcc + AU96HAD6ehwA/3ocAP96HAD/ehwA9XgcAEB4HAAAAAAAAAAAAAAAAAAAAAAAAHkcAAB4HABUehwA/Hoc + AP96HAD/ehwA/3ocAOx3HAEudxwBAHMcAgByHAIKeRwAv3ocAP96HAD/ehwA/3ocAP95HACfOyEPAW0d + AwB4HAAAdxwBT3ocAPp6HAD/ehwA/3ocAP96HAD1eBwAQHgcAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHgc + AFR6HAD8ehwA/3ocAP96HAD/eRwA7HccAS53HAEAcxwCAHIcAgp5HAC/ehwA/3ocAP96HAD/ehwA/3kc + AJ4sHxIAbB0DAHgcAAB3HAFPehwA+3ocAP96HAD/ehwA/3ocAPV4HABAeBwAAAAAAAAAAAAAAAAAAAAA + AAB5HAAAdxwBU3ocAPx6HAD/ehwA/3ocAP95HADsdxwBLnccAQBxHAIAbxwDB3gcALh6HAD/ehwA/3oc + AP96HAD/eRwAuHIdAgxzHAIAgRwAAHccAWx6HAD+ehwA/3ocAP96HAD/ehwA9HccATx3HAEAAAAAAAAA + AAAAAAAAAAAAAHccAQB2HAE+eRwA83ocAP96HAD/ehwA/3kcAO12HAEwdxwBAG4dBAA/HxEBeBwAnXoc + AP96HAD/ehwA/3ocAP96HAD3eBwAnngcAVt4HAF8eRwA4HocAP96HAD/ehwA/3ocAP95HADkdhwBJnYc + AQAAAAAAAAAAAAAAAAAAAAAAdBwCAHQcAhN5HADGehwA/3ocAP96HAD/eRwA9XccAUB3HAEAbh0EAHoc + AAB4HAFWehwA+HocAP96HAD/ehwA/3ocAP96HAD/ehwA/XocAP56HAD/ehwA/3ocAP96HAD/ehwA/3gc + AK1yHAIHdBwCAAAAAAAAAAAAAAAAAAAAAABsHAMAfhwAAHccAVZ5HADvehwA/3ocAP96HAD9dxwBWXkc + AAAAAAAAdRwBAHUcAg14HACpehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HADjdxwBPXocAABYIA8AAAAAAAAAAAAAAAAAAAAAAAAAAAB0HAEAcRwCA3ccAWJ5HADgehwA/3oc + AP94HACNnBoAAHAdAwBqHAQAdxwAAHUcAR14HACjehwA9nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD+eRwA0nccAUtbHAgBchwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwHQQAah4HAXYc + ASt4HAGCeRwAxngcAbtzHAIacxwCAAAAAABdHAoAdxwAAHQdAgt3HAFQeBwAo3kcANN5HADoeRwA7Hkc + AOp5HADdeRwAuHgcAHN1HAEg/wAAAG0eBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaxwEAGcdBgF0HAIQdRwBKXIcAg1zHAEAAAAAAAAAAAAAAAAAXBsGAHQdAwBvHQMFdRwBGncc + ATB3HAE3dhwBNHYcASNzHAILOxUIAGUbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Afj//AB4P/AA + OB/wABwP4AAcB+AAHAfgMBwH4DAMB+AwDAfgMAwH4DAMB+AwHAfgOBwH4DgcB+A8PAfgP/wH4D/8B+A8 + PAfgOBwH4DgcB+AwHAfgMAwH4DAMB+AwDAfgMBwH4DAMB+AwAAfgOAAH8DgAD/A8AA/4HgA//h+A/ygA + AAAwAAAAYAAAAAEAIAAAAAAAACQAACMuAAAjLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdOQAAHT8AFCIsABwjIwAbV80ACmm8AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpHAMAahwEAGscBABsHAQAbBwEAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeIQ8A/wAAAHAcAwl0HAIqdhwBVXccAXh4HAGUdxwBnXcc + AZt3HAGHdhwBZ3UcAUJyHAMZah4EAm0dAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuHAIAex0AAHUc + AT12HAF2dhwBTXQcASNwHAIFdRwAAAAaSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYxsFAHodAAByHAISdhwBYXgcAbV5HADmeRwA/Hoc + AP96HAD/ehwA/3ocAP95HAD/ehwA/nkcAPV4HADUdxwBiXUcATJpHAMDbxwCAAAAAAAAAAAAAAAAAAAA + AABxHAIAdhwBAHUcAS95HADieRwA+3kcAOB4HACmdhwBTXIcAwp3GwAAZSANAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsHAQATB0NAHUcATp4HAC6eRwA+noc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOZ2HAF7chwCDnQc + AgAAAAAAAAAAAAAAAAAAAAAAcB0DAGMdBwJ4HAGcehwA/3ocAP96HAD/ehwA9HgcAaZ0HAIofhwAAGce + BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoeCACxFgAAdRwBTXkc + AOB6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD7dxwBnHIcAhFzHAIAAAAAAAAAAAAAAAAAaRwFAHkcAAB2HAFgehwA/XocAP96HAD/ehwA/3oc + AP95HADKdhwBL3ocAABsHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZB8KAHYc + AQB0HAIweBwA23ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eRwA/HccAYBlHAUCcRwCAAAAAAAAAAAAAAAAAHccAQB1HAI9eRwA83oc + AP96HAD/ehwA/3ocAP96HAD/eBwBvXMcAhd0HAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcBwDAGkcBAR3HAGcehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kcAOZ1HAEzdhwBAAAAAAAAAAAAAAAAAHQc + AgB0HAIjeRwA4XocAP96HAD/ehwA/3ocAP96HAD/ehwA/XccAXCEGgAAbCAJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdRwBAHQcASh5HADjehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HAD6eRwA8HocAPR5HAD+ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP93HAGDhxwAAG8c + AwAAAAAAAAAAAHIcAgByHAIZeRwA2HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3gcAcZyHQMQcx0DAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHYcAVx5HAD8ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3gcAcR2HAFadhwCNnUcAkB3HAGGeRwA7HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP94HAG6bRwDCXAcAwAAAAAAAAAAAHEcAgBxHAIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kc + AOp1HAEudhwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHYcAXN5HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwB3XMdAyx2HAEAYx4KAHAbAwBRGgsBdxwBe3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADVcxwCF3QcAgAAAAAAAAAAAHEcAwBxHAMVeBwA0nocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAPh1HAFJdhwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHcc + 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 + AP95HADadB0CHHQdAgAAAAAAAAAAAHEcAgBxGwIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + APx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAHR6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwAoEYdCwFyHAIAAAAAAAAAAAB2HAEAdRwBQHkcAPV6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP95HADadB0BHHQdAQAAAAAAAAAAAHEcAgBxHAIVeRwA0nocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3kcAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHcc + AHR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEQbCQFxHAIAAAAAAAAAAAB2HAEAdRwBQHkc + APV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADZdBwBG3QcAQAAAAAAAAAAAHEcAgBxHAIVeBwA0noc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAexwAAHgcAXR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEIbCgFxHAIAAAAAAAAA + AAB2HAEAdRwBQHkcAPV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADZdRwBGnUcAQAAAAAAAAAAAHEc + AgBxHAIVeRwA0nocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAHR6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAoEIb + CgFxHAIAAAAAAAAAAAB1HAEAdRwBQHkcAPV6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP95HADcdBwBHXQc + AQAAAAAAAAAAAHEcAgBxHAIXeBwA1XocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPx3HAFUeBwBAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAexwAAHccAXR6HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/eBwAoD4bDAFxHAIAAAAAAAAAAAB0HAEAdBwBM3kcAO16HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP95HADydR0BSHkcAABpHQUAah0DAHgcAQB0HAE+eRwA7HocAP96HAD/ehwA/3ocAP96HAD/ehwA/3kc + APl2HAJNdxwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeRwAAHYcAVx5HAD9ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwAoD4bDAFxHAIAAAAAAAAAAABzHAIAcxwCIXkcAOB6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/eBwA0HYcAVh1HAEidRwCInYcAVR4HADLehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3kcAO11HAEydRwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdBwCAHQc + Ai95HADoehwA/3ocAP96HAD/ehwA/3ocAP96HAD/dxwBsGgcBQZuHAMAAAAAAAAAAABxHQQAbx0ECngc + AbZ6HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAPh5HADheRwA4HkcAPh6HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3gcAMpzHAITcxwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcB0DAG0dBAd4HAGmehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAxHEcAg1yHAIAAAAAAAAA + AABuHAQAexwAAHccAWF6HAD6ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ccAXyMHAAAbxwDAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAahsEAHgcAQB1HAE5eRwA5HocAP96HAD/ehwA/3ocAP96HAD/eBwA1nIc + AhhyHAIAAAAAAAAAAAAAAAAAdBwCAHIcAhF4HAC0ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eBwAxXQcAhx1HAEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8cBABbHAwBdxwBW3kcAOl6HAD/ehwA/3oc + AP96HAD/eRwA7XUcATN2HAEAAAAAAAAAAAAAAAAATxsQAHccAQB0HAEueBwAynocAP96HAD/ehwA/3oc + AP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP94HADWdRwBO3gc + AABtHQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByHAEAbRwBAnYc + AVJ4HAHRehwA/XocAP96HAD/ehwA/nYcAWt8GwAAZx4HAAAAAAAAAAAAAAAAAGkcBACAHAAAdRwBJngc + Aap5HAD2ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/eRwA+Xgc + AbZ1HAExlRwAAGwcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAah0FAP8QAAB0HAIedxwBd3gcAMt5HADzehwA/3gcAcBwHQMScRwDAAAAAAAAAAAAAAAAAAAA + AAA9MCgAeRoAAHEdAwx2HAFWeBwAsXkcAOl5HAD9ehwA/3ocAP96HAD/ehwA/3ocAP96HAD/ehwA/Xkc + AOp4HAC3dhwBYHIdAxF+GgAAXiMSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoHAUAWB4LAHIdAxV1HAFAdxwBcXYcAY9yHAIrcxwBAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGkdBQB2GwAAcBwCCXQcAi52HAFddxwBh3gcAZ14HACkeBwAo3gc + AJx4HAGHdxwBX3UcATBwHAILhxoAAFIeCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaBsEAGEb + BgFsHAMBbRsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoFzcAJho5AEMe + FAFdGwcCWhsGAjQXCQEjFhAAKxYNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///////8AAP/gAf8H/wAA/4AAfwH/AAD/AAA/AP8AAP4AAB+AfwAA/AAAD4A/ + AAD4AAAPgD8AAPgAAA+AHwAA+AAAB4AfAAD4AcAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB + 4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB8A+AHwAA+AHwH4Af + AAD4Afw/gB8AAPgB//+AHwAA+AH//4AfAAD4Af//gB8AAPgB//+AHwAA+AH8P4AfAAD4AfAfgB8AAPgB + 8A+AHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAHgB8AAPgB4AeAHwAA+AHgB4Af + AAD4AeAHgB8AAPgB4AeAHwAA+AHgB4AfAAD4AeAAAB8AAPgB4AAAHwAA+AHwAAA/AAD8AfAAAD8AAPwB + +AAAfwAA/gH8AAD/AAD/gP4AAf8AAP/g/4AH/wAA//z/+H//AACJUE5HDQoaCgAAAA1JSERSAAABAAAA + AQAIBgAAAFxyqGYAAFcHSURBVHja7b15vC1HXS/6/VX3WnvvM2YmydknCRkBiUC8KOAAgvh5PJyCch+T + JoCQAWJU+CB6vd57uT6vV69ihAwkEDEyyPDUiyOCVxkUUCZRpoQpZ58TIOOZ9tl7rdVdv/dHd/Wqrq6q + rl5rn11r56wvnOxV3VXVVb+u4TdWA3PMMcccc8wxxxxzzDHHHHPMMcccc8wxxxxzzDHHwxMUuwFbBSdf + 9BJCfgTrQ4LkbZRTn4AeuCAhCxryaOVWjt3OWcHpF11JBICzw1gbjjDCqSTRB0SfGASQgJQMAiHnHvfp + yKkA9gD8ACCWAN7B4K/mvHgUQDFSmcGQEGCAGAlGnPAqCwywKA5hadcjAQD7P//m+XsIxHwB8GBh71WC + kZw8lIu81B9cLnMWmURKoEcz06WgZImBBODPJbT230crt30jdptjY2HvVWnO6W6JhWQxHfzIKKcVZj4V + jEsZ4lEQyVlgQSACczFPGQCYFgm8nYnWAU4J6DHoMIAhwACrOc0gKtIE+UUi/jSAo4z0U9sX5RMGo/TD + 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 + + + \ No newline at end of file diff --git a/FrmLogin.vb b/FrmLogin.vb new file mode 100644 index 0000000..9d27726 --- /dev/null +++ b/FrmLogin.vb @@ -0,0 +1,476 @@ +Imports System.Drawing.Drawing2D +Imports System.Threading + +Public Class FrmLogin + Dim api As New ApiInterface + Private loginTimer As System.Windows.Forms.Timer + Private isLoggingIn As Boolean = False + Private lastServerResponse As String = "" + + Private Sub FrmLogin_Load(sender As Object, e As EventArgs) Handles MyBase.Load + ' تنظیم متن توکن از تنظیمات + TokenTextBox.Text = My.Settings.token.ToString + + ' تنظیم آدرس API از تنظیمات + ApiUrlTextBox.Text = My.Settings.apiUrl.ToString + + ' تنظیم فوکوس روی فیلد توکن + TokenTextBox.Focus() + TokenTextBox.SelectAll() + + ' تنظیم انیمیشن‌های دکمه‌ها + SetupButtonAnimations() + + ' اضافه کردن event handlers + AddHandler SettingsButton.Click, AddressOf SettingsButton_Click + AddHandler ApiUrlTextBox.TextChanged, AddressOf ApiUrlTextBox_TextChanged + End Sub + + Private Sub SetupButtonAnimations() + ' تنظیم افکت hover برای دکمه ورود + AddHandler LoginButton.MouseEnter, Sub(sender, e) + LoginButton.BackColor = Color.FromArgb(0, 100, 200) + End Sub + + AddHandler LoginButton.MouseLeave, Sub(sender, e) + LoginButton.BackColor = Color.FromArgb(0, 120, 215) + End Sub + + ' تنظیم افکت hover برای دکمه خروج + AddHandler ExitButton.MouseEnter, Sub(sender, e) + ExitButton.BackColor = Color.FromArgb(120, 120, 120) + End Sub + + AddHandler ExitButton.MouseLeave, Sub(sender, e) + ExitButton.BackColor = Color.FromArgb(100, 100, 100) + End Sub + End Sub + + Private Sub LoginButton_Click(sender As Object, e As EventArgs) Handles LoginButton.Click + If isLoggingIn Then Return + + ' بررسی خالی نبودن فیلد توکن + If String.IsNullOrWhiteSpace(TokenTextBox.Text) Then + ShowStatus("لطفاً توکن خود را وارد کنید", True) + TokenTextBox.Focus() + Return + End If + + ' شروع فرآیند ورود + StartLoginProcess() + End Sub + + Private Sub StartLoginProcess() + isLoggingIn = True + + ' نمایش پنل بارگذاری + LoadingPanel.Visible = True + LoginPanel.Enabled = False + + ' تنظیم متن بارگذاری + LoadingLabel.Text = "در حال بررسی توکن..." + + ' شروع تایمر برای شبیه‌سازی بارگذاری + loginTimer = New System.Windows.Forms.Timer() + loginTimer.Interval = 2000 ' 2 ثانیه + AddHandler loginTimer.Tick, AddressOf LoginTimer_Tick + loginTimer.Start() + + ' شروع فرآیند ورود در thread جداگانه + Dim loginThread As New Thread(AddressOf PerformLogin) + loginThread.IsBackground = True + loginThread.Start() + End Sub + + Private Sub LoginTimer_Tick(sender As Object, e As EventArgs) + loginTimer.Stop() + loginTimer.Dispose() + + ' تغییر متن بارگذاری + LoadingLabel.Text = "در حال اتصال به سرور..." + End Sub + + Private Sub PerformLogin() + Try + ' ذخیره توکن در تنظیمات + My.Settings.token = TokenTextBox.Text.Trim + + ' فراخوانی API و دریافت پاسخ خام سرور + Dim serverResponse As String = api.loginWithResponse(TokenTextBox.Text.Trim) + lastServerResponse = serverResponse ' ذخیره آخرین پاسخ سرور + + ' بازگشت به UI thread + Me.Invoke(Sub() + ' نمایش پاسخ سرور + ShowServerResponse(serverResponse) + + ' بررسی نتیجه ورود + Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer() + Try + Dim result As Dictionary(Of String, Object) = serializer.Deserialize(Of Dictionary(Of String, Object))(serverResponse) + If result.Count = 0 Then + ' ورود ناموفق + LoginFailed(serverResponse) + Else + ' ورود موفق + LoginSuccessful(serverResponse) + End If + Catch + ' اگر JSON نباشد، احتمالاً خطا است + LoginFailed(serverResponse) + End Try + End Sub) + Catch ex As Exception + ' خطا در فرآیند ورود + Me.Invoke(Sub() + LoginFailed("خطا در اتصال به سرور: " & ex.Message) + ShowStatus("خطا در اتصال به سرور: " & ex.Message, True) + End Sub) + End Try + End Sub + + Private Sub LoginSuccessful(serverResponse As String) + ' پنهان کردن پنل بارگذاری + LoadingPanel.Visible = False + LoginPanel.Enabled = True + + ' نمایش پیام موفقیت + ShowStatus("ورود موفق! در حال انتقال...", False) + + ' فعال کردن منو و تایمر اصلی + My.Forms.Form1.MenuStrip1.Enabled = True + My.Forms.Form1.Timer1.Enabled = True + Form1.isLogin = True + + ' بستن فرم ورود بعد از 1 ثانیه + Dim closeTimer As New System.Windows.Forms.Timer() + closeTimer.Interval = 1000 + AddHandler closeTimer.Tick, Sub(sender, e) + closeTimer.Stop() + closeTimer.Dispose() + Me.Close() + End Sub + closeTimer.Start() + End Sub + + Private Sub LoginFailed(serverResponse As String) + ' پنهان کردن پنل بارگذاری + LoadingPanel.Visible = False + LoginPanel.Enabled = True + + ' پاک کردن فیلد توکن + TokenTextBox.Text = "" + TokenTextBox.Focus() + + ' نمایش پیام خطا + ShowStatus("توکن وارد شده صحیح نیست", True) + + ' نمایش MessageBox با پاسخ سرور + Dim message As String = "توکن وارد شده صحیح نیست" & vbCrLf & vbCrLf & "پاسخ سرور:" & vbCrLf & serverResponse + MessageBox.Show(message, "خطا در ورود", MessageBoxButtons.OK, MessageBoxIcon.Warning) + + ' نمایش پاسخ سرور در فرم جداگانه برای خوانایی بهتر + ShowServerResponseDialog(serverResponse) + + isLoggingIn = False + End Sub + + Private Sub ShowServerResponseDialog(serverResponse As String) + ' ایجاد فرم برای نمایش پاسخ سرور + Dim responseForm As New Form() + responseForm.Text = "پاسخ سرور" + responseForm.Size = New Size(600, 400) + responseForm.StartPosition = FormStartPosition.CenterParent + responseForm.FormBorderStyle = FormBorderStyle.FixedDialog + responseForm.MaximizeBox = False + responseForm.MinimizeBox = False + + ' ایجاد TextBox برای نمایش پاسخ + Dim responseTextBox As New TextBox() + responseTextBox.Multiline = True + responseTextBox.ScrollBars = ScrollBars.Vertical + responseTextBox.ReadOnly = True + responseTextBox.Font = New Font("Consolas", 9) + responseTextBox.Text = serverResponse + responseTextBox.Dock = DockStyle.Fill + + ' ایجاد دکمه بستن + Dim closeButton As New Button() + closeButton.Text = "بستن" + closeButton.Dock = DockStyle.Bottom + closeButton.Height = 30 + AddHandler closeButton.Click, Sub(sender, e) responseForm.Close() + + ' اضافه کردن کنترل‌ها به فرم + responseForm.Controls.Add(responseTextBox) + responseForm.Controls.Add(closeButton) + + ' نمایش فرم + responseForm.ShowDialog(Me) + End Sub + + Private Sub ShowServerResponse(serverResponse As String) + ' نمایش پاسخ سرور در StatusLabel + StatusLabel.Text = "پاسخ سرور: " & serverResponse + StatusLabel.ForeColor = Color.FromArgb(255, 255, 100) ' رنگ زرد برای پاسخ سرور + + ' پاک کردن پیام بعد از 5 ثانیه (بیشتر از معمول) + Dim clearTimer As New System.Windows.Forms.Timer() + clearTimer.Interval = 5000 + AddHandler clearTimer.Tick, Sub(sender, e) + StatusLabel.Text = "" + clearTimer.Stop() + clearTimer.Dispose() + End Sub + clearTimer.Start() + End Sub + + Private Sub ShowStatus(message As String, isError As Boolean) + StatusLabel.Text = message + If isError Then + StatusLabel.ForeColor = Color.FromArgb(255, 100, 100) + Else + StatusLabel.ForeColor = Color.FromArgb(100, 255, 100) + End If + + ' پاک کردن پیام بعد از 3 ثانیه + Dim clearTimer As New System.Windows.Forms.Timer() + clearTimer.Interval = 3000 + AddHandler clearTimer.Tick, Sub(sender, e) + StatusLabel.Text = "" + clearTimer.Stop() + clearTimer.Dispose() + End Sub + clearTimer.Start() + End Sub + + Private Sub ExitButton_Click(sender As Object, e As EventArgs) Handles ExitButton.Click + Application.Exit() + End Sub + + Private Sub TokenTextBox_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TokenTextBox.KeyPress + ' اجازه ورود فقط کاراکترهای مجاز + If e.KeyChar = ChrW(Keys.Enter) Then + LoginButton_Click(sender, e) + End If + End Sub + + Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean + ' کلید میانبر Ctrl+R برای نمایش آخرین پاسخ سرور + If keyData = (Keys.Control Or Keys.R) Then + ShowLastServerResponse() + Return True + End If + + ' کلید میانبر Ctrl+S برای باز کردن تنظیمات API + If keyData = (Keys.Control Or Keys.S) Then + ShowApiUrlSettings() + Return True + End If + + Return MyBase.ProcessCmdKey(msg, keyData) + End Function + + ' متد برای نمایش آخرین پاسخ سرور (می‌تواند از خارج فراخوانی شود) + Public Sub ShowLastServerResponse() + If Not String.IsNullOrEmpty(lastServerResponse) Then + ShowServerResponseDialog(lastServerResponse) + Else + MessageBox.Show("هنوز هیچ پاسخی از سرور دریافت نشده است.", "اطلاع", MessageBoxButtons.OK, MessageBoxIcon.Information) + End If + End Sub + + ' متدهای مربوط به تنظیمات API URL + Private Sub SettingsButton_Click(sender As Object, e As EventArgs) + ShowApiUrlSettings() + End Sub + + Private Sub ApiUrlTextBox_TextChanged(sender As Object, e As EventArgs) + ' ذخیره تغییرات در تنظیمات + My.Settings.apiUrl = ApiUrlTextBox.Text.Trim + My.Settings.Save() + End Sub + + Private Sub ShowApiUrlSettings() + Dim settingsForm As New Form() + settingsForm.Text = "تنظیمات API" + settingsForm.Size = New Size(500, 350) + settingsForm.StartPosition = FormStartPosition.CenterParent + settingsForm.FormBorderStyle = FormBorderStyle.FixedDialog + settingsForm.MaximizeBox = False + settingsForm.MinimizeBox = False + + ' ایجاد کنترل‌ها + Dim titleLabel As New Label() + titleLabel.Text = "تنظیمات آدرس سرور API" + titleLabel.Font = New Font("Segoe UI", 14, FontStyle.Bold) + titleLabel.Location = New Point(20, 20) + titleLabel.Size = New Size(450, 30) + titleLabel.TextAlign = ContentAlignment.MiddleCenter + + Dim urlLabel As New Label() + urlLabel.Text = "آدرس سرور API:" + urlLabel.Font = New Font("Segoe UI", 10) + urlLabel.Location = New Point(20, 70) + urlLabel.Size = New Size(450, 25) + + Dim urlTextBox As New TextBox() + urlTextBox.Text = My.Settings.apiUrl.ToString + urlTextBox.Font = New Font("Consolas", 10) + urlTextBox.Location = New Point(20, 100) + urlTextBox.Size = New Size(450, 25) + urlTextBox.Multiline = False + + Dim infoLabel As New Label() + infoLabel.Text = "مثال: https://hesabix.ir" & vbCrLf & "یا: http://localhost:8080" + infoLabel.Font = New Font("Segoe UI", 9) + infoLabel.ForeColor = Color.Gray + infoLabel.Location = New Point(20, 135) + infoLabel.Size = New Size(450, 40) + + Dim presetLabel As New Label() + presetLabel.Text = "URL های پیش‌فرض:" + presetLabel.Font = New Font("Segoe UI", 9, FontStyle.Bold) + presetLabel.Location = New Point(20, 180) + presetLabel.Size = New Size(100, 20) + + Dim presetComboBox As New ComboBox() + presetComboBox.DropDownStyle = ComboBoxStyle.DropDownList + presetComboBox.Items.AddRange({"https://hesabix.ir", "https://ac.hunamick.com", "https://app.hesabix.ir", "http://localhost:8080", "http://127.0.0.1:8080", "https://rc.hesabix.ir"}) + presetComboBox.Location = New Point(130, 180) + presetComboBox.Size = New Size(200, 25) + presetComboBox.Font = New Font("Consolas", 9) + + Dim usePresetButton As New Button() + usePresetButton.Text = "استفاده" + usePresetButton.Font = New Font("Segoe UI", 9) + usePresetButton.Location = New Point(340, 180) + usePresetButton.Size = New Size(60, 25) + usePresetButton.BackColor = Color.FromArgb(100, 150, 200) + usePresetButton.ForeColor = Color.White + usePresetButton.FlatStyle = FlatStyle.Flat + + Dim testButton As New Button() + testButton.Text = "تست اتصال" + testButton.Font = New Font("Segoe UI", 10) + testButton.Location = New Point(20, 220) + testButton.Size = New Size(100, 30) + testButton.BackColor = Color.FromArgb(0, 120, 215) + testButton.ForeColor = Color.White + testButton.FlatStyle = FlatStyle.Flat + + Dim saveButton As New Button() + saveButton.Text = "ذخیره" + saveButton.Font = New Font("Segoe UI", 10) + saveButton.Location = New Point(300, 220) + saveButton.Size = New Size(80, 30) + saveButton.BackColor = Color.FromArgb(100, 200, 100) + saveButton.ForeColor = Color.White + saveButton.FlatStyle = FlatStyle.Flat + + Dim cancelButton As New Button() + cancelButton.Text = "لغو" + cancelButton.Font = New Font("Segoe UI", 10) + cancelButton.Location = New Point(390, 220) + cancelButton.Size = New Size(80, 30) + cancelButton.BackColor = Color.FromArgb(200, 100, 100) + cancelButton.ForeColor = Color.White + cancelButton.FlatStyle = FlatStyle.Flat + + ' اضافه کردن کنترل‌ها به فرم + settingsForm.Controls.AddRange({titleLabel, urlLabel, urlTextBox, infoLabel, presetLabel, presetComboBox, usePresetButton, testButton, saveButton, cancelButton}) + + ' Event handlers + AddHandler usePresetButton.Click, Sub(sender, e) + If presetComboBox.SelectedItem IsNot Nothing Then + urlTextBox.Text = presetComboBox.SelectedItem.ToString() + End If + End Sub + + AddHandler testButton.Click, Sub(sender, e) + TestApiConnection(urlTextBox.Text) + End Sub + + AddHandler saveButton.Click, Sub(sender, e) + My.Settings.apiUrl = urlTextBox.Text.Trim + My.Settings.Save() + ApiUrlTextBox.Text = urlTextBox.Text.Trim + settingsForm.Close() + ShowStatus("آدرس API با موفقیت ذخیره شد", False) + End Sub + + AddHandler cancelButton.Click, Sub(sender, e) + settingsForm.Close() + End Sub + + ' نمایش فرم + settingsForm.ShowDialog(Me) + End Sub + + Private Sub TestApiConnection(testUrl As String) + Try + ' اعتبارسنجی URL + If Not IsValidUrl(testUrl) Then + MessageBox.Show("آدرس وارد شده صحیح نیست. لطفاً آدرس کامل را وارد کنید (مثال: https://api.hesabix.ir)", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning) + Return + End If + + ' ذخیره موقت URL برای تست + Dim originalUrl As String = My.Settings.apiUrl + My.Settings.apiUrl = testUrl.Trim + + Dim testApi As New ApiInterface() + Dim result As String = testApi.TestSSLConnection() + + ' بازگرداندن URL اصلی + My.Settings.apiUrl = originalUrl + + MessageBox.Show($"نتیجه تست اتصال:" & vbCrLf & result, "تست اتصال", MessageBoxButtons.OK, MessageBoxIcon.Information) + Catch ex As Exception + MessageBox.Show($"خطا در تست اتصال:" & vbCrLf & ex.Message, "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error) + End Try + End Sub + + Private Function IsValidUrl(url As String) As Boolean + Try + If String.IsNullOrWhiteSpace(url) Then Return False + + ' بررسی وجود http یا https + If Not url.StartsWith("http://") AndAlso Not url.StartsWith("https://") Then + Return False + End If + + ' بررسی با Uri.TryCreate + Dim uri As Uri = Nothing + Return Uri.TryCreate(url, UriKind.Absolute, uri) AndAlso (uri.Scheme = Uri.UriSchemeHttp OrElse uri.Scheme = Uri.UriSchemeHttps) + Catch + Return False + End Try + End Function + + Protected Overrides Sub OnPaint(e As PaintEventArgs) + MyBase.OnPaint(e) + + ' رسم گرادیانت پس‌زمینه + Dim rect As New Rectangle(0, 0, Me.Width, Me.Height) + Using brush As New LinearGradientBrush(rect, + Color.FromArgb(30, 30, 30), + Color.FromArgb(50, 50, 50), + 135.0F) + e.Graphics.FillRectangle(brush, rect) + End Using + + ' رسم خط تزئینی در پایین + Using pen As New Pen(Color.FromArgb(0, 120, 215), 2) + e.Graphics.DrawLine(pen, 0, Me.Height - 2, Me.Width, Me.Height - 2) + End Using + End Sub + + Private Sub CleanupTimers() + If loginTimer IsNot Nothing Then + loginTimer.Stop() + loginTimer.Dispose() + loginTimer = Nothing + End If + End Sub +End Class \ No newline at end of file diff --git a/FrmPrinters.Designer.vb b/FrmPrinters.Designer.vb new file mode 100644 index 0000000..2cd6efe --- /dev/null +++ b/FrmPrinters.Designer.vb @@ -0,0 +1,151 @@ + _ +Partial Class FrmPrinters + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + btnSave = New Button() + Label1 = New Label() + ComboBox1 = New ComboBox() + ComboBox2 = New ComboBox() + Label2 = New Label() + Label3 = New Label() + TxtToken = New TextBox() + Label5 = New Label() + cobSell = New ComboBox() + SuspendLayout() + ' + ' btnSave + ' + btnSave.Location = New Point(141, 250) + btnSave.Name = "btnSave" + btnSave.Size = New Size(102, 23) + btnSave.TabIndex = 1 + btnSave.Text = "ذخیره تنظیمات" + btnSave.UseVisualStyleBackColor = True + ' + ' Label1 + ' + Label1.AutoSize = True + Label1.Location = New Point(12, 148) + Label1.Name = "Label1" + Label1.Size = New Size(101, 15) + Label1.TabIndex = 2 + Label1.Text = "فیش صورت حساب" + ' + ' ComboBox1 + ' + ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList + ComboBox1.FormattingEnabled = True + ComboBox1.Location = New Point(12, 166) + ComboBox1.Name = "ComboBox1" + ComboBox1.Size = New Size(231, 23) + ComboBox1.TabIndex = 3 + ' + ' ComboBox2 + ' + ComboBox2.DropDownStyle = ComboBoxStyle.DropDownList + ComboBox2.FormattingEnabled = True + ComboBox2.Location = New Point(12, 210) + ComboBox2.Name = "ComboBox2" + ComboBox2.Size = New Size(231, 23) + ComboBox2.TabIndex = 5 + ' + ' Label2 + ' + Label2.AutoSize = True + Label2.Location = New Point(12, 192) + Label2.Name = "Label2" + Label2.Size = New Size(106, 15) + Label2.TabIndex = 4 + Label2.Text = "فیش وصول صندوق" + ' + ' Label3 + ' + Label3.AutoSize = True + Label3.Location = New Point(12, 15) + Label3.Name = "Label3" + Label3.Size = New Size(84, 15) + Label3.TabIndex = 6 + Label3.Text = "توکن پرینتر ابری" + ' + ' TxtToken + ' + TxtToken.Location = New Point(12, 33) + TxtToken.Name = "TxtToken" + TxtToken.Size = New Size(229, 23) + TxtToken.TabIndex = 7 + ' + ' Label5 + ' + Label5.AutoSize = True + Label5.Location = New Point(12, 103) + Label5.Name = "Label5" + Label5.Size = New Size(70, 15) + Label5.TabIndex = 10 + Label5.Text = "فاکتور فروش" + ' + ' cobSell + ' + cobSell.DropDownStyle = ComboBoxStyle.DropDownList + cobSell.FormattingEnabled = True + cobSell.Location = New Point(12, 122) + cobSell.Name = "cobSell" + cobSell.Size = New Size(231, 23) + cobSell.TabIndex = 13 + ' + ' FrmPrinters + ' + AutoScaleDimensions = New SizeF(7F, 15F) + AutoScaleMode = AutoScaleMode.Font + ClientSize = New Size(252, 286) + Controls.Add(cobSell) + Controls.Add(Label5) + Controls.Add(TxtToken) + Controls.Add(Label3) + Controls.Add(ComboBox2) + Controls.Add(Label2) + Controls.Add(ComboBox1) + Controls.Add(Label1) + Controls.Add(btnSave) + FormBorderStyle = FormBorderStyle.FixedSingle + MaximizeBox = False + MinimizeBox = False + Name = "FrmPrinters" + RightToLeft = RightToLeft.Yes + RightToLeftLayout = True + ShowIcon = False + Text = "تنظیمات چاپگرها" + ResumeLayout(False) + PerformLayout() + End Sub + Friend WithEvents btnSave As Button + Friend WithEvents Label1 As Label + Friend WithEvents ComboBox1 As ComboBox + Friend WithEvents ComboBox2 As ComboBox + Friend WithEvents Label2 As Label + Friend WithEvents Label3 As Label + Friend WithEvents TxtToken As TextBox + + Friend WithEvents Label5 As Label + + Friend WithEvents cobSell As ComboBox +End Class diff --git a/FrmPrinters.resx b/FrmPrinters.resx new file mode 100644 index 0000000..ecbad9d --- /dev/null +++ b/FrmPrinters.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/FrmPrinters.vb b/FrmPrinters.vb new file mode 100644 index 0000000..4896f59 --- /dev/null +++ b/FrmPrinters.vb @@ -0,0 +1,37 @@ +Public Class FrmPrinters + Private Sub FrmPrinters_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Dim InstalledPrinters As String + + ' Find all printers installed + For Each InstalledPrinters In System.Drawing.Printing.PrinterSettings.InstalledPrinters + Me.ComboBox1.Items.Add(InstalledPrinters) + Me.ComboBox2.Items.Add(InstalledPrinters) + Me.cobSell.Items.Add(InstalledPrinters) + Next InstalledPrinters + Me.ComboBox1.Items.Add("Off") + Me.ComboBox1.Text = "Off" + Me.ComboBox2.Items.Add("Off") + Me.ComboBox2.Text = "Off" + Me.cobSell.Items.Add("Off") + Me.cobSell.Text = "Off" + + ' Set the combo to the first printer in the list + Me.ComboBox1.SelectedItem = My.Settings.printerFastSellInvoice + Me.ComboBox2.SelectedItem = My.Settings.printerFastSellCashdeskInvoice + Me.cobSell.SelectedItem = My.Settings.printerSell + Me.TxtToken.Text = My.Settings.printerToken + End Sub + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + My.Settings.printerFastSellInvoice = ComboBox1.SelectedItem.ToString + My.Settings.printerFastSellCashdeskInvoice = ComboBox2.SelectedItem.ToString + My.Settings.printerSell = cobSell.SelectedItem.ToString + My.Settings.printerToken = TxtToken.Text.ToString + My.Settings.Save() + MsgBox("تنظیمات ذخیره شد", MsgBoxStyle.OkOnly, "حسابیکس") + + End Sub + + + ' حذف کنترل انتخاب مسیر Acrobat +End Class \ No newline at end of file diff --git a/HesabixBox.sln b/HesabixBox.sln new file mode 100644 index 0000000..6c517cb --- /dev/null +++ b/HesabixBox.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34330.188 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "HesabixBox", "HesabixBox.vbproj", "{B4AE442F-9160-44B5-8E86-148CB4D3863F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B4AE442F-9160-44B5-8E86-148CB4D3863F}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {B4AE442F-9160-44B5-8E86-148CB4D3863F}.Debug|Any CPU.Build.0 = Release|Any CPU + {B4AE442F-9160-44B5-8E86-148CB4D3863F}.Release|Any CPU.ActiveCfg = Debug|Any CPU + {B4AE442F-9160-44B5-8E86-148CB4D3863F}.Release|Any CPU.Build.0 = Debug|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1A01A3E9-13B7-445C-ABD2-F47C11A15818} + EndGlobalSection +EndGlobal diff --git a/HesabixBox.vbproj b/HesabixBox.vbproj new file mode 100644 index 0000000..141d325 --- /dev/null +++ b/HesabixBox.vbproj @@ -0,0 +1,228 @@ + + + + + Debug + AnyCPU + {12345678-1234-1234-1234-123456789012} + WinExe + Sub Main + HesabixBox + HesabixBox + 512 + WindowsForms + v4.5.2 + favicon.ico + Published Under the GNU GPL V3 + کاتب باکس سرویس تحت ویندوز سرویس های کاتب است. + 1.0.1 + Hesabix Box + HesabixBox + Hesabix + HesabixBox + https://app.hesabix.ir + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + x64 + true + full + true + true + bin\Debug\ + HesabixBox.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + x64 + pdbonly + false + true + true + bin\Release\ + HesabixBox.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + + packages\PdfiumViewer.2.13.0.0\lib\net20\PdfiumViewer.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + + + Form + + + FrmAboutHesabix.vb + + + Form + + + FrmInvoice.vb + + + Form + + + FrmLogin.vb + + + Form + + + FrmPrinters.vb + + + + + True + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + Form + + + SplashScreen1.vb + + + + + Form1.vb + + + Form1.vb + + + FrmAboutHesabix.vb + + + FrmInvoice.vb + + + FrmLogin.vb + + + FrmPrinters.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + SplashScreen1.vb + + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + + PreserveNewest + pdfium.dll + + + + + False + Microsoft .NET Framework 4.5.2 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + \ No newline at end of file diff --git a/HesabixBox.vbproj.user b/HesabixBox.vbproj.user new file mode 100644 index 0000000..5e81598 --- /dev/null +++ b/HesabixBox.vbproj.user @@ -0,0 +1,13 @@ + + + + + + + + + + en-US + false + + \ No newline at end of file diff --git a/Logger.vb b/Logger.vb new file mode 100644 index 0000000..4d187bc --- /dev/null +++ b/Logger.vb @@ -0,0 +1,152 @@ +Imports System.Text +Imports System.IO +Imports Microsoft.VisualBasic.FileIO + +Public Class Logger + Private Shared _instance As Logger + Private _logTextBox As TextBox + Private _maxLogEntries As Integer = 1000 + + Private Sub New() + ' Private constructor for singleton pattern + End Sub + + Public Shared ReadOnly Property Instance As Logger + Get + If _instance Is Nothing Then + _instance = New Logger() + End If + Return _instance + End Get + End Property + + Public Sub SetLogTextBox(textBox As TextBox) + _logTextBox = textBox + End Sub + + Public Sub LogRequest(method As String, url As String, headers As String, requestBody As String) + Dim logEntry As New StringBuilder() + logEntry.AppendLine("=== درخواست ارسالی ===") + logEntry.AppendLine($"زمان: {DateTime.Now:yyyy-MM-dd HH:mm:ss}") + logEntry.AppendLine($"متد: {method}") + logEntry.AppendLine($"آدرس: {url}") + + If Not String.IsNullOrEmpty(headers) Then + logEntry.AppendLine($"هدرها: {headers}") + End If + + If Not String.IsNullOrEmpty(requestBody) Then + logEntry.AppendLine($"بدنه درخواست: {requestBody}") + End If + + logEntry.AppendLine("") + + AddToLog(logEntry.ToString()) + End Sub + + Public Sub LogResponse(statusCode As String, responseBody As String, isSuccess As Boolean) + Dim logEntry As New StringBuilder() + logEntry.AppendLine("=== پاسخ دریافتی ===") + logEntry.AppendLine($"زمان: {DateTime.Now:yyyy-MM-dd HH:mm:ss}") + logEntry.AppendLine($"وضعیت: {If(isSuccess, "موفق", "ناموفق")}") + + If Not String.IsNullOrEmpty(statusCode) Then + logEntry.AppendLine($"کد وضعیت: {statusCode}") + End If + + If Not String.IsNullOrEmpty(responseBody) Then + ' محدود کردن طول پاسخ برای نمایش بهتر + Dim displayResponse As String = responseBody + If displayResponse.Length > 500 Then + displayResponse = displayResponse.Substring(0, 500) & "..." + End If + logEntry.AppendLine($"پاسخ: {displayResponse}") + End If + + logEntry.AppendLine("==========================================") + logEntry.AppendLine("") + + AddToLog(logEntry.ToString()) + End Sub + + Public Sub LogError(errorMessage As String, exception As Exception) + Dim logEntry As New StringBuilder() + logEntry.AppendLine("=== خطا ===") + logEntry.AppendLine($"زمان: {DateTime.Now:yyyy-MM-dd HH:mm:ss}") + logEntry.AppendLine($"پیام خطا: {errorMessage}") + + If exception IsNot Nothing Then + logEntry.AppendLine($"جزئیات خطا: {exception.Message}") + End If + + logEntry.AppendLine("==========================================") + logEntry.AppendLine("") + + AddToLog(logEntry.ToString()) + End Sub + + Public Sub LogInfo(message As String) + Dim logEntry As New StringBuilder() + logEntry.AppendLine($"زمان: {DateTime.Now:yyyy-MM-dd HH:mm:ss} - {message}") + logEntry.AppendLine("") + + AddToLog(logEntry.ToString()) + End Sub + + Private Sub AddToLog(logText As String) + If _logTextBox IsNot Nothing Then + ' استفاده از Invoke برای thread-safe بودن + If _logTextBox.InvokeRequired Then + _logTextBox.Invoke(Sub() AddLogText(logText)) + Else + AddLogText(logText) + End If + End If + End Sub + + Private Sub AddLogText(logText As String) + Try + ' اضافه کردن متن جدید به ابتدای TextBox + _logTextBox.Text = logText & _logTextBox.Text + + ' محدود کردن تعداد ورودی‌های لاگ + Dim lines As String() = _logTextBox.Text.Split(vbCrLf) + If lines.Length > _maxLogEntries Then + Dim newLines As String() = lines.Take(_maxLogEntries).ToArray() + _logTextBox.Text = String.Join(vbCrLf, newLines) + End If + + ' اسکرول به بالا برای نمایش آخرین لاگ + _logTextBox.SelectionStart = 0 + _logTextBox.ScrollToCaret() + Catch ex As Exception + ' در صورت خطا، لاگ را در فایل ذخیره کن + Try + Dim logPath As String = Path.Combine(SpecialDirectories.CurrentUserApplicationData, "hesabix_log.txt") + File.AppendAllText(logPath, logText) + Catch + ' اگر حتی ذخیره فایل هم خطا داد، کاری نکن + End Try + End Try + End Sub + + Public Sub ClearLog() + If _logTextBox IsNot Nothing Then + If _logTextBox.InvokeRequired Then + _logTextBox.Invoke(Sub() _logTextBox.Clear()) + Else + _logTextBox.Clear() + End If + End If + End Sub + + Public Sub SaveLogToFile() + Try + Dim logPath As String = Path.Combine(SpecialDirectories.CurrentUserApplicationData, $"hesabix_log_{DateTime.Now:yyyyMMdd_HHmmss}.txt") + File.WriteAllText(logPath, _logTextBox.Text) + LogInfo($"لاگ با موفقیت در فایل ذخیره شد: {logPath}") + Catch ex As Exception + LogError("خطا در ذخیره لاگ", ex) + End Try + End Sub +End Class diff --git a/My Project/Application.Designer.vb b/My Project/Application.Designer.vb new file mode 100644 index 0000000..d0362d4 --- /dev/null +++ b/My Project/Application.Designer.vb @@ -0,0 +1,43 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = true + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.HesabixBox.Form1 + End Sub + + _ + Protected Overrides Sub OnCreateSplashScreen() + Me.SplashScreen = Global.HesabixBox.SplashScreen1 + End Sub + End Class +End Namespace diff --git a/My Project/Application.myapp b/My Project/Application.myapp new file mode 100644 index 0000000..07734f2 --- /dev/null +++ b/My Project/Application.myapp @@ -0,0 +1,12 @@ + + + true + Form1 + true + 0 + true + 0 + true + SplashScreen1 + 3000 + \ No newline at end of file diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..142dca2 --- /dev/null +++ b/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/My Project/Resources.Designer.vb b/My Project/Resources.Designer.vb new file mode 100644 index 0000000..ea193b1 --- /dev/null +++ b/My Project/Resources.Designer.vb @@ -0,0 +1,83 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("HesabixBox.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property logo_blue() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("logo_blue", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property logo_blue_1fB_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("logo_blue_1fB_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/My Project/Resources.resx b/My Project/Resources.resx new file mode 100644 index 0000000..05c0352 --- /dev/null +++ b/My Project/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\logo_blue_1fB_icon.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\logo-blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/My Project/Settings.Designer.vb b/My Project/Settings.Designer.vb new file mode 100644 index 0000000..4b558d7 --- /dev/null +++ b/My Project/Settings.Designer.vb @@ -0,0 +1,183 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + + _ + Public Property activePrinter() As String + Get + Return CType(Me("activePrinter"),String) + End Get + Set + Me("activePrinter") = value + End Set + End Property + + _ + Public Property apiUrl() As String + Get + Return CType(Me("apiUrl"),String) + End Get + Set + Me("apiUrl") = value + End Set + End Property + + _ + Public Property token() As String + Get + Return CType(Me("token"),String) + End Get + Set + Me("token") = value + End Set + End Property + + _ + Public Property printerToken() As String + Get + Return CType(Me("printerToken"),String) + End Get + Set + Me("printerToken") = value + End Set + End Property + + _ + Public Property persons() As String + Get + Return CType(Me("persons"),String) + End Get + Set + Me("persons") = value + End Set + End Property + + _ + Public Property commodities() As String + Get + Return CType(Me("commodities"),String) + End Get + Set + Me("commodities") = value + End Set + End Property + + _ + Public Property printerFastSellInvoice() As String + Get + Return CType(Me("printerFastSellInvoice"),String) + End Get + Set + Me("printerFastSellInvoice") = value + End Set + End Property + + _ + Public Property printerFastSellCashdeskInvoice() As String + Get + Return CType(Me("printerFastSellCashdeskInvoice"),String) + End Get + Set + Me("printerFastSellCashdeskInvoice") = value + End Set + End Property + + _ + Public Property printerSell() As String + Get + Return CType(Me("printerSell"),String) + End Get + Set + Me("printerSell") = value + End Set + End Property + + + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.HesabixBox.My.MySettings + Get + Return Global.HesabixBox.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/My Project/Settings.settings b/My Project/Settings.settings new file mode 100644 index 0000000..703e15a --- /dev/null +++ b/My Project/Settings.settings @@ -0,0 +1,34 @@ + + + + + + 0 + + + http://hesabix.ir + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PDFIUM_DLL_FIX_GUIDE.md b/PDFIUM_DLL_FIX_GUIDE.md new file mode 100644 index 0000000..ec2add2 --- /dev/null +++ b/PDFIUM_DLL_FIX_GUIDE.md @@ -0,0 +1,45 @@ +# راهنمای حل مشکل PdfiumViewer.dll + +## مشکل ۱: DllNotFoundException +خطای `System.DllNotFoundException` با پیام "Unable to load DLL 'pdfium.dll': The specified module could not be found" + +## مشکل ۲: BadImageFormatException +خطای `System.BadImageFormatException` با پیام "An attempt was made to load a program with an incorrect format" + +## علت مشکلات +1. فایل `pdfium.dll` در مسیر صحیح قرار ندارد +2. تضاد معماری (Architecture) بین برنامه و فایل DLL + +## راه حل‌های کامل + +### مرحله ۱: حل مشکل DllNotFoundException +```powershell +# کپی به پوشه Release +Copy-Item "bin\Release\packages\PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256\content\x64\pdfium.dll" "bin\Release\pdfium.dll" -Force + +# کپی به پوشه Debug +Copy-Item "bin\Release\packages\PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256\content\x64\pdfium.dll" "bin\Debug\pdfium.dll" -Force +``` + +### مرحله ۲: حل مشکل BadImageFormatException +فایل `HesabixBox.vbproj` بروزرسانی شده تا: +- `PlatformTarget` از `AnyCPU` به `x64` تغییر یافته +- این تضمین می‌کند که برنامه با معماری 64-bit کامپایل شود + +### مرحله ۳: استفاده از اسکریپت خودکار +فایل `copy_pdfium_dll.ps1` را اجرا کنید: +```powershell +powershell -ExecutionPolicy Bypass -File copy_pdfium_dll.ps1 +``` + +## بررسی حل مشکل +پس از اجرای راه حل، موارد زیر باید درست باشند: +- فایل `pdfium.dll` در `bin\Release\pdfium.dll` موجود باشد +- فایل `pdfium.dll` در `bin\Debug\pdfium.dll` موجود باشد +- پروژه با `PlatformTarget=x64` کامپایل شود + +## نکات مهم +- این مشکلات معمولاً بعد از build مجدد پروژه رخ می‌دهد +- اگر مشکل ادامه داشت، مطمئن شوید که فایل‌های کپی شده حذف نشده‌اند +- برای پروژه‌های جدید، از تنظیمات بروزرسانی شده در `HesabixBox.vbproj` استفاده کنید +- برنامه حالا فقط روی سیستم‌های 64-bit اجرا خواهد شد diff --git a/README.md b/README.md new file mode 100644 index 0000000..970782d --- /dev/null +++ b/README.md @@ -0,0 +1,82 @@ +# HesabixBox - Windows Service + +## توضیحات پروژه +حسابیکس باکس یک سرویس تحت ویندوز است که برای مدیریت چاپ فاکتورها و ارتباط با API حسابیکس طراحی شده است. + +## مشخصات فنی +- **Framework**: .NET Framework 4.5.2 +- **زبان**: Visual Basic .NET +- **IDE**: Visual Studio 2015+ +- **نوع پروژه**: Windows Forms Application + +## ویژگی‌ها +- مدیریت چاپگرها +- ارتباط با API حسابیکس +- چاپ خودکار فاکتورها +- رابط کاربری فارسی +- پشتیبانی از چندین نوع فاکتور + +## پیش‌نیازها +- Visual Studio 2015 یا بالاتر +- .NET Framework 4.5.2 +- Adobe Acrobat Reader (برای چاپ PDF) + +## نحوه نصب و راه‌اندازی + +### 1. نصب Visual Studio +- Visual Studio 2015 یا بالاتر را نصب کنید +- اطمینان حاصل کنید که .NET Framework 4.5.2 نصب است + +### 2. باز کردن پروژه +- فایل `HesabixBox.sln` را در Visual Studio باز کنید +- NuGet packages را restore کنید: + ``` + Tools > NuGet Package Manager > Package Manager Console + Update-Package -reinstall + ``` + +### 3. Build پروژه +- `Build > Clean Solution` +- `Build > Rebuild Solution` + +## تنظیمات اولیه + +### 1. تنظیم چاپگرها +- در منوی اصلی روی "چاپگرها" کلیک کنید +- چاپگرهای مورد نظر را انتخاب کنید +- مسیر Adobe Acrobat Reader را مشخص کنید + +### 2. تنظیم API +- توکن API خود را از حسابیکس دریافت کنید +- در فرم لاگین توکن را وارد کنید + +## ساختار پروژه + +### فایل‌های اصلی +- `Form1.vb` - فرم اصلی برنامه +- `ApiInterface.vb` - کلاس ارتباط با API +- `FrmLogin.vb` - فرم ورود +- `FrmPrinters.vb` - تنظیمات چاپگر +- `clsMsg.vb` - کلاس پیام‌ها + +### تنظیمات +- `App.config` - تنظیمات برنامه +- `packages.config` - NuGet packages +- `My Project/Settings.settings` - تنظیمات کاربر + +## عیب‌یابی + +### مشکلات رایج +1. **خطای Build**: اطمینان حاصل کنید که .NET Framework 4.5.2 نصب است +2. **خطای NuGet**: packages را دوباره restore کنید +3. **خطای چاپ**: مسیر Adobe Acrobat را بررسی کنید + +### لاگ‌ها +- لاگ‌های برنامه در `%AppData%\HesabixBox\` ذخیره می‌شوند + +## پشتیبانی +- وب‌سایت: https://hesabix.ir +- ایمیل: support@hesabix.ir + +## مجوز +این پروژه تحت مجوز GNU GPL V3 منتشر شده است. \ No newline at end of file diff --git a/Resources/logo-blue.png b/Resources/logo-blue.png new file mode 100644 index 0000000..c569aa9 Binary files /dev/null and b/Resources/logo-blue.png differ diff --git a/Resources/logo_blue_1fB_icon.ico b/Resources/logo_blue_1fB_icon.ico new file mode 100644 index 0000000..e29c02b Binary files /dev/null and b/Resources/logo_blue_1fB_icon.ico differ diff --git a/SOLUTION_GUIDE.md b/SOLUTION_GUIDE.md new file mode 100644 index 0000000..e5b2320 --- /dev/null +++ b/SOLUTION_GUIDE.md @@ -0,0 +1,83 @@ +# راهنمای حل مشکلات پروژه HesabixBox + +## ✅ مشکلات حل شده: + +### 1. **خطای JObject و JsonObject** +- **مشکل**: `Type 'JObject' is not defined` +- **راه‌حل**: جایگزینی `Newtonsoft.Json` با `System.Web.Script.Serialization` +- **تغییرات**: + - `ApiInterface.vb`: استفاده از `Dictionary(Of String, Object)` به جای `JObject` + - `FrmLogin.vb`: تغییر نوع بازگشتی متد `login` + - `FrmInvoice.vb`: استفاده از `JavaScriptSerializer` به جای `JsonConvert` + +### 2. **خطای PlaceholderText** +- **مشکل**: `'PlaceholderText' is not a member of 'TextBox'` +- **راه‌حل**: حذف `PlaceholderText` از `FrmLogin.Designer.vb` (در .NET Framework 4.5.2 موجود نیست) + +### 3. **خطای متد downloadFile** +- **مشکل**: `Function 'downloadFile' doesn't return a value on all code paths` +- **راه‌حل**: تغییر نوع بازگشتی به `Boolean` و اضافه کردن `Return` statements + +### 4. **خطای متغیر SPrinter** +- **مشکل**: `Variable 'SPrinter' is used before it has been assigned a value` +- **راه‌حل**: مقداردهی اولیه `SPrinter = ""` و اضافه کردن بررسی `SPrinter <> ""` + +### 5. **خطای Newtonsoft.Json Reference** +- **مشکل**: `The referenced component 'Newtonsoft.Json' could not be found` +- **راه‌حل**: حذف وابستگی به `Newtonsoft.Json` و استفاده از `System.Web.Extensions` + +## 🔧 تغییرات فنی: + +### فایل‌های تغییر یافته: +1. **ApiInterface.vb**: + - `Imports System.Web.Script.Serialization` + - `Dictionary(Of String, Object)` به جای `JObject` + - `JavaScriptSerializer` به جای `JsonObject.Parse` + +2. **FrmLogin.vb**: + - حذف `Imports Newtonsoft.Json.Linq` + - تغییر نوع متغیر `result` + +3. **FrmInvoice.vb**: + - `Imports System.Web.Script.Serialization` + - `JavaScriptSerializer` به جای `JsonConvert` + +4. **Form1.vb**: + - مقداردهی اولیه `SPrinter = ""` + - اضافه کردن بررسی `SPrinter <> ""` + +5. **FrmLogin.Designer.vb**: + - حذف `TextBox1.PlaceholderText` + +6. **HesabixBox.vbproj**: + - اضافه کردن `` + - حذف reference به `Newtonsoft.Json` + +7. **packages.config**: + - حذف package `Newtonsoft.Json` + +## 🎯 مزایای راه‌حل: + +- ✅ **عدم وابستگی به NuGet packages خارجی** +- ✅ **استفاده از کتابخانه‌های داخلی .NET Framework** +- ✅ **سازگاری کامل با Visual Studio 2015** +- ✅ **عملکرد بهتر و سریع‌تر** +- ✅ **عدم نیاز به دانلود فایل‌های اضافی** + +## 📋 مراحل نهایی: + +1. **باز کردن پروژه در Visual Studio 2015** +2. **Clean Solution**: `Build > Clean Solution` +3. **Rebuild Solution**: `Build > Rebuild Solution` +4. **تست اجرای برنامه** + +## ⚠️ نکات مهم: + +- پروژه حالا کاملاً با **.NET Framework 4.5.2** سازگار است +- از **System.Web.Script.Serialization** برای JSON استفاده می‌کند +- همه خطاهای کامپایل برطرف شده‌اند +- نیازی به NuGet packages خارجی نیست + +## 🚀 آماده برای استفاده! + +پروژه شما حالا کاملاً آماده است و باید بدون خطا در Visual Studio 2015 کامپایل شود. diff --git a/SplashScreen1.Designer.vb b/SplashScreen1.Designer.vb new file mode 100644 index 0000000..16f8f49 --- /dev/null +++ b/SplashScreen1.Designer.vb @@ -0,0 +1,185 @@ + _ +Partial Class SplashScreen1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + ' پاک کردن تایمرها + If disposing Then + CleanupTimers() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + Friend WithEvents ApplicationTitle As System.Windows.Forms.Label + Friend WithEvents Copyright As System.Windows.Forms.Label + Friend WithEvents MainLayoutPanel As System.Windows.Forms.TableLayoutPanel + Friend WithEvents DetailsLayoutPanel As System.Windows.Forms.TableLayoutPanel + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.MainLayoutPanel = New System.Windows.Forms.TableLayoutPanel() + Me.LogoPictureBox = New System.Windows.Forms.PictureBox() + Me.ApplicationTitle = New System.Windows.Forms.Label() + Me.VersionLabel = New System.Windows.Forms.Label() + Me.LoadingProgressBar = New System.Windows.Forms.ProgressBar() + Me.LoadingLabel = New System.Windows.Forms.Label() + Me.DetailsLayoutPanel = New System.Windows.Forms.TableLayoutPanel() + Me.Copyright = New System.Windows.Forms.Label() + Me.MainLayoutPanel.SuspendLayout() + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.DetailsLayoutPanel.SuspendLayout() + Me.SuspendLayout() + ' + 'MainLayoutPanel + ' + Me.MainLayoutPanel.BackColor = System.Drawing.Color.FromArgb(CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer)) + Me.MainLayoutPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.MainLayoutPanel.ColumnCount = 1 + Me.MainLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.MainLayoutPanel.Controls.Add(Me.LogoPictureBox, 0, 0) + Me.MainLayoutPanel.Controls.Add(Me.ApplicationTitle, 0, 1) + Me.MainLayoutPanel.Controls.Add(Me.VersionLabel, 0, 2) + Me.MainLayoutPanel.Controls.Add(Me.LoadingProgressBar, 0, 3) + Me.MainLayoutPanel.Controls.Add(Me.LoadingLabel, 0, 4) + Me.MainLayoutPanel.Controls.Add(Me.DetailsLayoutPanel, 0, 5) + Me.MainLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill + Me.MainLayoutPanel.Location = New System.Drawing.Point(0, 0) + Me.MainLayoutPanel.Name = "MainLayoutPanel" + Me.MainLayoutPanel.RowCount = 6 + Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30.0!)) + Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 15.0!)) + Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!)) + Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!)) + Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!)) + Me.MainLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!)) + Me.MainLayoutPanel.Size = New System.Drawing.Size(514, 347) + Me.MainLayoutPanel.TabIndex = 0 + ' + 'LogoPictureBox + ' + Me.LogoPictureBox.Anchor = System.Windows.Forms.AnchorStyles.None + Me.LogoPictureBox.BackColor = System.Drawing.Color.Transparent + Me.LogoPictureBox.Image = Global.HesabixBox.My.Resources.Resources.logo_blue + Me.LogoPictureBox.Location = New System.Drawing.Point(171, 8) + Me.LogoPictureBox.Name = "LogoPictureBox" + Me.LogoPictureBox.Size = New System.Drawing.Size(171, 87) + Me.LogoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.LogoPictureBox.TabIndex = 2 + Me.LogoPictureBox.TabStop = False + ' + 'ApplicationTitle + ' + Me.ApplicationTitle.Anchor = System.Windows.Forms.AnchorStyles.None + Me.ApplicationTitle.BackColor = System.Drawing.Color.Transparent + Me.ApplicationTitle.Font = New System.Drawing.Font("Segoe UI", 24.0!, System.Drawing.FontStyle.Bold) + Me.ApplicationTitle.ForeColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.ApplicationTitle.Location = New System.Drawing.Point(128, 112) + Me.ApplicationTitle.Name = "ApplicationTitle" + Me.ApplicationTitle.Size = New System.Drawing.Size(257, 35) + Me.ApplicationTitle.TabIndex = 0 + Me.ApplicationTitle.Text = "HesabixBox" + Me.ApplicationTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'VersionLabel + ' + Me.VersionLabel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.VersionLabel.BackColor = System.Drawing.Color.Transparent + Me.VersionLabel.Font = New System.Drawing.Font("Segoe UI", 12.0!) + Me.VersionLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(200, Byte), Integer), CType(CType(200, Byte), Integer), CType(CType(200, Byte), Integer)) + Me.VersionLabel.Location = New System.Drawing.Point(171, 164) + Me.VersionLabel.Name = "VersionLabel" + Me.VersionLabel.Size = New System.Drawing.Size(171, 17) + Me.VersionLabel.TabIndex = 3 + Me.VersionLabel.Text = "نسخه 1.0.0" + Me.VersionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'LoadingProgressBar + ' + Me.LoadingProgressBar.Anchor = System.Windows.Forms.AnchorStyles.None + Me.LoadingProgressBar.Location = New System.Drawing.Point(128, 198) + Me.LoadingProgressBar.MarqueeAnimationSpeed = 30 + Me.LoadingProgressBar.Name = "LoadingProgressBar" + Me.LoadingProgressBar.Size = New System.Drawing.Size(257, 17) + Me.LoadingProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.LoadingProgressBar.TabIndex = 4 + ' + 'LoadingLabel + ' + Me.LoadingLabel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.LoadingLabel.BackColor = System.Drawing.Color.Transparent + Me.LoadingLabel.Font = New System.Drawing.Font("Segoe UI", 10.0!) + Me.LoadingLabel.ForeColor = System.Drawing.Color.FromArgb(CType(CType(180, Byte), Integer), CType(CType(180, Byte), Integer), CType(CType(180, Byte), Integer)) + Me.LoadingLabel.Location = New System.Drawing.Point(171, 232) + Me.LoadingLabel.Name = "LoadingLabel" + Me.LoadingLabel.Size = New System.Drawing.Size(171, 17) + Me.LoadingLabel.TabIndex = 5 + Me.LoadingLabel.Text = "در حال بارگذاری..." + Me.LoadingLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'DetailsLayoutPanel + ' + Me.DetailsLayoutPanel.Anchor = System.Windows.Forms.AnchorStyles.None + Me.DetailsLayoutPanel.BackColor = System.Drawing.Color.Transparent + Me.DetailsLayoutPanel.ColumnCount = 1 + Me.DetailsLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.DetailsLayoutPanel.Controls.Add(Me.Copyright, 0, 0) + Me.DetailsLayoutPanel.Location = New System.Drawing.Point(128, 261) + Me.DetailsLayoutPanel.Name = "DetailsLayoutPanel" + Me.DetailsLayoutPanel.RowCount = 1 + Me.DetailsLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.DetailsLayoutPanel.Size = New System.Drawing.Size(257, 83) + Me.DetailsLayoutPanel.TabIndex = 1 + ' + 'Copyright + ' + Me.Copyright.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Copyright.BackColor = System.Drawing.Color.Transparent + Me.Copyright.Font = New System.Drawing.Font("Segoe UI", 9.0!) + Me.Copyright.ForeColor = System.Drawing.Color.FromArgb(CType(CType(150, Byte), Integer), CType(CType(150, Byte), Integer), CType(CType(150, Byte), Integer)) + Me.Copyright.Location = New System.Drawing.Point(43, 24) + Me.Copyright.Name = "Copyright" + Me.Copyright.Size = New System.Drawing.Size(171, 35) + Me.Copyright.TabIndex = 2 + Me.Copyright.Text = "© 2024 HesabixBox. تمامی حقوق محفوظ است." + Me.Copyright.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'SplashScreen1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer), CType(CType(30, Byte), Integer)) + Me.ClientSize = New System.Drawing.Size(514, 347) + Me.ControlBox = False + Me.Controls.Add(Me.MainLayoutPanel) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "SplashScreen1" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.MainLayoutPanel.ResumeLayout(False) + CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.DetailsLayoutPanel.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents LogoPictureBox As PictureBox + Friend WithEvents LoadingProgressBar As ProgressBar + Friend WithEvents LoadingLabel As Label + Friend WithEvents VersionLabel As Label + +End Class diff --git a/SplashScreen1.resx b/SplashScreen1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/SplashScreen1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SplashScreen1.vb b/SplashScreen1.vb new file mode 100644 index 0000000..d1728c7 --- /dev/null +++ b/SplashScreen1.vb @@ -0,0 +1,108 @@ +Imports System.Drawing.Drawing2D + +Public NotInheritable Class SplashScreen1 + Private loadingTimer As Timer + Private fadeTimer As Timer + Private fadeOpacity As Double = 0.0 + Private fadeDirection As Integer = 1 + + Private Sub SplashScreen1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load + ' تنظیم متن‌ها بر اساس اطلاعات assembly + If My.Application.Info.Title <> "" Then + ApplicationTitle.Text = My.Application.Info.Title + Else + ApplicationTitle.Text = "Box" + End If + + ' تنظیم نسخه + VersionLabel.Text = String.Format("نسخه {0}.{1}.{2}", + My.Application.Info.Version.Major, + My.Application.Info.Version.Minor, + My.Application.Info.Version.Build) + + ' تنظیم کپی‌رایت + If My.Application.Info.Copyright <> "" Then + Copyright.Text = My.Application.Info.Copyright + Else + Copyright.Text = "© 2024 Box. تمامی حقوق محفوظ است." + End If + + ' تنظیم انیمیشن بارگذاری + SetupLoadingAnimation() + + ' تنظیم تایمر برای نمایش splash screen + SetupSplashTimer() + End Sub + + Private Sub SetupLoadingAnimation() + ' تنظیم progress bar + LoadingProgressBar.Style = ProgressBarStyle.Marquee + LoadingProgressBar.MarqueeAnimationSpeed = 30 + + ' تنظیم تایمر برای تغییر متن بارگذاری + loadingTimer = New Timer() + loadingTimer.Interval = 2000 ' هر 2 ثانیه + AddHandler loadingTimer.Tick, AddressOf LoadingTimer_Tick + loadingTimer.Start() + End Sub + + Private Sub SetupSplashTimer() + ' تایمر برای بستن splash screen بعد از 4 ثانیه + Dim splashTimer As New Timer() + splashTimer.Interval = 4000 + AddHandler splashTimer.Tick, Sub(sender, e) + splashTimer.Stop() + splashTimer.Dispose() + Me.Close() + End Sub + splashTimer.Start() + End Sub + + Private Sub LoadingTimer_Tick(sender As Object, e As EventArgs) + Dim loadingMessages() As String = { + "در حال بارگذاری...", + "آماده‌سازی رابط کاربری...", + "بارگذاری تنظیمات...", + "تقریباً آماده است..." + } + + Static messageIndex As Integer = 0 + LoadingLabel.Text = loadingMessages(messageIndex) + messageIndex = (messageIndex + 1) Mod loadingMessages.Length + End Sub + + Protected Overrides Sub OnPaint(e As PaintEventArgs) + MyBase.OnPaint(e) + + ' رسم گرادیانت پس‌زمینه + Dim rect As New Rectangle(0, 0, Me.Width, Me.Height) + Using brush As New LinearGradientBrush(rect, + Color.FromArgb(30, 30, 30), + Color.FromArgb(50, 50, 50), + 45.0F) + e.Graphics.FillRectangle(brush, rect) + End Using + + ' رسم خط تزئینی در پایین + Using pen As New Pen(Color.FromArgb(0, 120, 215), 3) + e.Graphics.DrawLine(pen, 0, Me.Height - 3, Me.Width, Me.Height - 3) + End Using + End Sub + + Private Sub CleanupTimers() + If loadingTimer IsNot Nothing Then + loadingTimer.Stop() + loadingTimer.Dispose() + loadingTimer = Nothing + End If + If fadeTimer IsNot Nothing Then + fadeTimer.Stop() + fadeTimer.Dispose() + fadeTimer = Nothing + End If + End Sub + + Private Sub MainLayoutPanel_Paint(sender As Object, e As PaintEventArgs) Handles MainLayoutPanel.Paint + + End Sub +End Class diff --git a/THREADING_IMPROVEMENTS.md b/THREADING_IMPROVEMENTS.md new file mode 100644 index 0000000..f2457c2 --- /dev/null +++ b/THREADING_IMPROVEMENTS.md @@ -0,0 +1,109 @@ +# بهبودهای Threading و عملکرد + +## خلاصه تغییرات + +این فایل شامل بهبودهای انجام شده برای حل مشکل کندی رابط کاربری بعد از ارسال درخواست‌ها به سرور است. + +## مشکلات شناسایی شده + +1. **مسدود شدن UI**: فراخوانی‌های `WebClient.DownloadString()` در تایمر اصلی باعث مسدود شدن رابط کاربری می‌شد +2. **عدم مدیریت خطا**: خطاهای شبکه باعث crash شدن برنامه می‌شد +3. **عدم retry**: درخواست‌های ناموفق دوباره تلاش نمی‌شدند + +## راه‌حل‌های پیاده‌سازی شده + +### 1. کلاس AsyncHelper.vb +کلاس کمکی جدید برای مدیریت عملیات async و threading: + +- `RunInBackground()`: اجرای عملیات در background thread +- `RunAsync()`: اجرای عملیات async در background thread +- `RunOnUIThread()`: اجرای عملیات در UI thread از background thread +- `RunWithRetry()`: اجرای عملیات با retry در صورت خطا +- `RunWithTimeout()`: اجرای عملیات با timeout + +### 2. بهبودهای ApiInterface.vb +اضافه شدن متدهای async برای تمام عملیات شبکه: + +- `sendAsync()`: نسخه async از `send()` +- `getLastPrintAsync()`: نسخه async از `getLastPrint()` +- `downloadFileAsync()`: نسخه async از `downloadFile()` + +### 3. بهبودهای Form1.vb +- تبدیل `Timer1_Tick` به async +- اضافه شدن `ProcessPrintingAsync()` برای پردازش چاپ +- استفاده از نشانگر وضعیت `isProcessingPrint` برای جلوگیری از اجرای همزمان +- پیاده‌سازی retry و error handling بهتر + +## مزایای پیاده‌سازی + +### 1. عملکرد بهتر +- **عدم مسدود شدن UI**: تمام عملیات شبکه در background thread اجرا می‌شوند +- **پاسخگویی بهتر**: رابط کاربری همیشه responsive است +- **مدیریت منابع**: جلوگیری از اجرای همزمان چندین عملیات + +### 2. قابلیت اطمینان بیشتر +- **Retry mechanism**: درخواست‌های ناموفق دوباره تلاش می‌شوند +- **Error handling**: مدیریت بهتر خطاها +- **Timeout management**: جلوگیری از hang شدن برنامه + +### 3. تجربه کاربری بهتر +- **عدم freeze**: رابط کاربری دیگر freeze نمی‌شود +- **نمایش وضعیت**: امکان نمایش وضعیت عملیات در حال انجام +- **لاگ بهتر**: ثبت بهتر خطاها و وضعیت عملیات + +## نحوه استفاده + +### اجرای عملیات async +```vb +' اجرای عملیات در background +AsyncHelper.RunAsync(AddressOf MyAsyncMethod) + +' اجرای عملیات با retry +Dim success As Boolean = Await AsyncHelper.RunWithRetry( + Async Function() + Return Await api.getLastPrintAsync() + End Function, 3, 2000) ' 3 تلاش با تاخیر 2 ثانیه +``` + +### اجرای عملیات در UI thread +```vb +' از background thread به UI thread +AsyncHelper.RunOnUIThread(Me, Sub() + ' عملیات UI +End Sub) +``` + +## تنظیمات پیشنهادی + +### Timeout ها +- دریافت آخرین چاپ: 30 ثانیه +- دانلود فایل: 60 ثانیه +- تست اتصال: 10 ثانیه + +### Retry Policy +- دریافت آخرین چاپ: 3 تلاش با تاخیر 2 ثانیه +- دانلود فایل: 2 تلاش با تاخیر 3 ثانیه + +## نکات مهم + +1. **Thread Safety**: تمام عملیات UI باید در UI thread اجرا شوند +2. **Resource Management**: استفاده از `Using` برای مدیریت منابع +3. **Error Logging**: ثبت تمام خطاها در Logger +4. **Performance Monitoring**: نظارت بر عملکرد و زمان پاسخ + +## تست و اعتبارسنجی + +برای تست عملکرد: + +1. اجرای برنامه و بررسی عدم freeze شدن UI +2. قطع اتصال اینترنت و بررسی retry mechanism +3. تست با سرور کند و بررسی timeout handling +4. بررسی لاگ‌ها برای خطاها و عملکرد + +## نتیجه‌گیری + +این بهبودها باعث شده‌اند که: +- رابط کاربری همیشه responsive باشد +- عملیات شبکه در background اجرا شوند +- خطاها بهتر مدیریت شوند +- تجربه کاربری بهبود یابد diff --git a/bin/Debug/Box.exe.config b/bin/Debug/Box.exe.config new file mode 100644 index 0000000..a57ebb0 --- /dev/null +++ b/bin/Debug/Box.exe.config @@ -0,0 +1,54 @@ + + + + + + +
+ + +
+ + + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + http://hesabix.ir + + + + + + + diff --git a/bin/Debug/Box.vshost.exe b/bin/Debug/Box.vshost.exe new file mode 100644 index 0000000..681ab77 Binary files /dev/null and b/bin/Debug/Box.vshost.exe differ diff --git a/bin/Debug/Box.vshost.exe.config b/bin/Debug/Box.vshost.exe.config new file mode 100644 index 0000000..a57ebb0 --- /dev/null +++ b/bin/Debug/Box.vshost.exe.config @@ -0,0 +1,54 @@ + + + + + + +
+ + +
+ + + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + http://hesabix.ir + + + + + + + diff --git a/bin/Debug/Box.vshost.exe.manifest b/bin/Debug/Box.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/bin/Debug/Box.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/bin/Debug/HesabixBox.exe b/bin/Debug/HesabixBox.exe new file mode 100644 index 0000000..f6372f9 Binary files /dev/null and b/bin/Debug/HesabixBox.exe differ diff --git a/bin/Debug/HesabixBox.exe.config b/bin/Debug/HesabixBox.exe.config new file mode 100644 index 0000000..dfa08d3 --- /dev/null +++ b/bin/Debug/HesabixBox.exe.config @@ -0,0 +1,52 @@ + + + + + + +
+ + +
+ + + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + http://hesabix.ir + + + + + + + diff --git a/bin/Debug/HesabixBox.pdb b/bin/Debug/HesabixBox.pdb new file mode 100644 index 0000000..7b4717d Binary files /dev/null and b/bin/Debug/HesabixBox.pdb differ diff --git a/bin/Debug/HesabixBox.xml b/bin/Debug/HesabixBox.xml new file mode 100644 index 0000000..84a04a0 --- /dev/null +++ b/bin/Debug/HesabixBox.xml @@ -0,0 +1,91 @@ + + + + +HesabixBox + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + کلاس کمکی برای مدیریت عملیات async و threading + + + + + اجرای عملیات در background thread بدون مسدود کردن UI + + عملیاتی که باید اجرا شود + + + + اجرای عملیات async در background thread + + عملیات async که باید اجرا شود + + + + اجرای عملیات در UI thread از background thread + + کنترل UI + عملیاتی که باید در UI thread اجرا شود + + + + اجرای عملیات async در UI thread از background thread + + کنترل UI + عملیات async که باید در UI thread اجرا شود + + + + ایجاد CancellationTokenSource با timeout + + مدت timeout به میلی‌ثانیه + CancellationTokenSource + + + + اجرای عملیات با timeout + + عملیاتی که باید اجرا شود + مدت timeout به میلی‌ثانیه + True اگر عملیات موفق باشد، False اگر timeout شود + + + + اجرای عملیات با retry در صورت خطا + + عملیاتی که باید اجرا شود + حداکثر تعداد تلاش + تاخیر بین تلاش‌ها به میلی‌ثانیه + True اگر عملیات موفق باشد + + + diff --git a/bin/Debug/PdfiumViewer.dll b/bin/Debug/PdfiumViewer.dll new file mode 100644 index 0000000..9fa37fd Binary files /dev/null and b/bin/Debug/PdfiumViewer.dll differ diff --git a/bin/Debug/PdfiumViewer.xml b/bin/Debug/PdfiumViewer.xml new file mode 100644 index 0000000..3cc17e5 --- /dev/null +++ b/bin/Debug/PdfiumViewer.xml @@ -0,0 +1,1275 @@ + + + + PdfiumViewer + + + + + Determines whether the specified key is a regular input key or a special key that requires preprocessing. + + + true if the specified key is a regular input key; otherwise, false. + + One of the values. + + + + Represents a PDF document. + + + + + Number of pages in the PDF document. + + + + + Bookmarks stored in this PdfFile + + + + + Size of each page in the PDF document. + + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Render the page for printing. + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Flags used to influence the rendering. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Rotation. + Flags used to influence the rendering. + The rendered image. + + + + Save the PDF document to the specified location. + + Path to save the PDF document to. + + + + Save the PDF document to the specified location. + + Stream to save the PDF document to. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to search on. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to start searching. + The page to end searching. + All matches. + + + + Creates a for the PDF document. + + + + + + Creates a for the PDF document. + + Specifies the mode for printing. The default + value for this parameter is CutMargin. + + + + + Creates a for the PDF document. + + The settings used to configure the print document. + + + + + Returns all links on the PDF page. + + The page to get the links for. + The size of the page. + A collection with the links on the page. + + + + Delete the page from the PDF document. + + The page to delete. + + + + Rotate the page. + + The page to rotate. + How to rotate the page. + + + + Get metadata information from the PDF document. + + The PDF metadata. + + + + Get all text on the page. + + The page to get the text for. + The text on the page. + + + + Get all text matching the text span. + + The span to get the text for. + The text matching the span. + + + + Get all bounding rectangles for the text span. + + + The algorithm used to get the bounding rectangles tries to join + adjacent character bounds into larger rectangles. + + The span to get the bounding rectangles for. + The bounding rectangles. + + + + Convert a point from device coordinates to page coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a point from page coordinates to device coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a rectangle from device coordinates to page coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Convert a rectangle from page coordinates to device coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Represents a marker on a PDF page. + + + + + The page where the marker is drawn on. + + + + + Draw the marker. + + The PdfRenderer to draw the marker with. + The Graphics to draw the marker with. + + + + Gets the link that was clicked. + + + + + Opens a document using a .NET Stream. Allows opening huge + PDFs without loading them into memory first. + + The input Stream. Don't dispose prior to closing the pdf. + Password, if the PDF is protected. Can be null. + Retrieves an IntPtr to the COM object for the Stream. The caller must release this with Marshal.Release prior to Disposing the Stream. + An IntPtr to the FPDF_DOCUMENT object. + + + + Gets or sets the current zoom level. + + + + + Zooms the PDF document in one step. + + + + + Zooms the PDF document out one step. + + + + + Raises the event. + + A that contains the event data. + + + + Determines whether the specified key is a regular input key or a special key that requires preprocessing. + + + true if the specified key is a regular input key; otherwise, false. + + One of the values. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Configuration for printing multiple PDF pages on a single page. + + + + + Gets the number of pages to print horizontally. + + + + + Gets the number of pages to print vertically. + + + + + Gets the orientation in which PDF pages are layed out on the + physical page. + + + + + Gets the margin between PDF pages in device units. + + + + + Creates a new instance of the PdfPrintMultiplePages class. + + The number of pages to print horizontally. + The number of pages to print vertically. + The orientation in which PDF pages are layed out on + the physical page. + The margin between PDF pages in device units. + + + + Configures the print document. + + + + + Gets the mode used to print margins. + + + + + Gets configuration for printing multiple PDF pages on a single page. + + + + + Creates a new instance of the PdfPrintSettings class. + + The mode used to print margins. + Configuration for printing multiple PDF + pages on a single page. + + + + Provides functionality to render a PDF document. + + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Path to the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Path to the PDF document. + Password for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Window to show any UI for. + Path to the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Window to show any UI for. + Stream for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided stream. + + Stream for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided stream. + + Stream for the PDF document. + Password for the PDF document. + + + + Number of pages in the PDF document. + + + + + Bookmarks stored in this PdfFile + + + + + Size of each page in the PDF document. + + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Render the page for printing. + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Flags used to influence the rendering. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Rotation. + Flags used to influence the rendering. + The rendered image. + + + + Save the PDF document to the specified location. + + Path to save the PDF document to. + + + + Save the PDF document to the specified location. + + Stream to save the PDF document to. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to search on. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to start searching. + The page to end searching. + All matches. + + + + Get all text on the page. + + The page to get the text for. + The text on the page. + + + + Get all text matching the text span. + + The span to get the text for. + The text matching the span. + + + + Get all bounding rectangles for the text span. + + + The algorithm used to get the bounding rectangles tries to join + adjacent character bounds into larger rectangles. + + The span to get the bounding rectangles for. + The bounding rectangles. + + + + Convert a point from device coordinates to page coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a point from page coordinates to device coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a rectangle from device coordinates to page coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Convert a rectangle from page coordinates to device coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Creates a for the PDF document. + + + + + + Creates a for the PDF document. + + Specifies the mode for printing. The default + value for this parameter is CutMargin. + + + + + Creates a for the PDF document. + + The settings used to configure the print document. + + + + + Returns all links on the PDF page. + + The page to get the links for. + The size of the page. + A collection with the links on the page. + + + + Delete the page from the PDF document. + + The page to delete. + + + + Rotate the page. + + The page to rotate. + How to rotate the page. + + + + Get metadata information from the PDF document. + + The PDF metadata. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + 2 + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + Whether this method is called from Dispose. + + + + Contains text from metadata of the document. + + + + + Helper class for searching through PDF documents. + + + + + The renderer associated with the search manager. + + + + + Gets or sets whether to match case. + + + + + Gets or sets whether to match whole words. + + + + + Gets or sets the color of matched search terms. + + + + + Gets or sets the border color of matched search terms. + + + + + Gets or sets the border width of matched search terms. + + + + + Gets or sets the color of the current match. + + + + + Gets or sets the border color of the current match. + + + + + Gets or sets the border width of the current match. + + + + + Gets or sets whether all matches should be highlighted. + + + + + Creates a new instance of the search manager. + + The renderer to create the search manager for. + + + + Searches for the specified text. + + The text to search. + Whether any matches were found. + + + + Find the next matched term. + + Whether or not to search forward. + False when the first match was found again; otherwise true. + + + + Resets the search manager. + + + + + Describes a link on a page. + + + + + The location of the link. + + + + + The target of the link. + + + + + The target URI of the link. + + + + + Creates a new instance of the PdfPageLink class. + + The location of the link + The target page of the link + The target URI of the link + + + + Describes all links on a page. + + + + + All links of the page. + + + + + Creates a new instance of the PdfPageLinks class. + + The links on the PDF page. + + + + Specifies the mode in which the document should be printed. + + + Printers have a hard margin. This is a (small) margin on which it is not + possible to print. PdfPrintMode specifies whether the page should be + scaled to fit into this margin, or that the margin should be cut off of + the page. + + + + + Shrink the print area to fall within the hard printer margin. + + + + + Cut the hard printer margin from the output. + + + + + Flags that influence the page rendering process. + + + + + No flags. + + + + + Render for printing. + + + + + Set if annotations are to be rendered. + + + + + Set if using text rendering optimized for LCD display. + + + + + Don't use the native text output available on some platforms. + + + + + Grayscale output. + + + + + Limit image cache size. + + + + + Always use halftone for image stretching. + + + + + Render with a transparent background. + + + + + Correct height/width for DPI. + + + + + Control to render PDF documents. + + + + + The associated PDF document. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + + + + true if the user can give the focus to the control using the TAB key; otherwise, false. The default is true.Note:This property will always return true for an instance of the class. + + 1 + + + + Gets or sets the currently focused page. + + + + + Get the outer bounds of the page. + + The page to get the bounds for. + The bounds of the page. + + + + Gets or sets the way the document should be zoomed initially. + + + + + Gets or sets the current rotation of the PDF document. + + + + + Gets a collection with all markers. + + + + + Initializes a new instance of the PdfRenderer class. + + + + + Converts client coordinates to PDF coordinates. + + Client coordinates to get the PDF location for. + The location in a PDF page or a PdfPoint with IsValid false when the coordinates do not match a PDF page. + + + + Converts a PDF point to a client point. + + The PDF point to convert. + The location of the point in client coordinates. + + + + Converts client coordinates to PDF bounds. + + The client coordinates to convert. + The PDF bounds. + + + + Converts PDF bounds to client bounds. + + The PDF bounds to convert. + The bounds of the PDF bounds in client coordinates. + + + + Raises the event. + + A that contains the event data. + + + + Called when the zoom level changes. + + The event args. + + + + Load a into the control. + + Document to load. + + + + Raises the event. + + A that contains the event data. + + + + Gets the document bounds. + + The document bounds. + + + + Called whent he cursor changes. + + The event args. + + + Raises the event. + A that contains the event data. + + + Raises the event. + A that contains the event data. + + + + Occurs when a link in the pdf document is clicked. + + + + + Called when a link is clicked. + + The event args. + + + + Rotate the PDF document left. + + + + + Rotate the PDF document right. + + + + + Called when the zoom level changes. + + The new zoom level. + The location to focus on. + + + + Scroll the PDF bounds into view. + + The PDF bounds to scroll into view. + + + + Scroll the client rectangle into view. + + The client rectangle to scroll into view. + + + + Releases the unmanaged resources used by the and its child controls and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Specifies the rotation of pages shown in the PDF renderer. + + + + + Rotates the output 0 degrees. + + + + + Rotates the output 90 degrees. + + + + + Rotates the output 180 degrees. + + + + + Rotates the output 270 degrees. + + + + + Control to host PDF documents with support for printing. + + + + + Gets or sets the PDF document. + + + + + Get the that renders the PDF document. + + + + + Gets or sets the default document name used when saving the document. + + + + + Gets or sets the default print mode. + + + + + Gets or sets the way the document should be zoomed initially. + + + + + Gets or sets whether the toolbar should be shown. + + + + + Gets or sets whether the bookmarks panel should be shown. + + + + + Gets or sets the pre-selected printer to be used when the print + dialog shows up. + + + + + Occurs when a link in the pdf document is clicked. + + + + + Called when a link is clicked. + + + + + + Initializes a new instance of the PdfViewer class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Page {0}. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Could not save the PDF file to the specified location.. + + + + + Looks up a localized string similar to Could not save file. + + + + + Looks up a localized string similar to PDF Files (*.pdf)|*.pdf|All Files (*.*)|*.*. + + + + + Looks up a localized string similar to Save As. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + diff --git a/bin/Debug/fa-IR/HesabixBox.resources.dll b/bin/Debug/fa-IR/HesabixBox.resources.dll new file mode 100644 index 0000000..0b06a43 Binary files /dev/null and b/bin/Debug/fa-IR/HesabixBox.resources.dll differ diff --git a/bin/Debug/nl/PdfiumViewer.resources.dll b/bin/Debug/nl/PdfiumViewer.resources.dll new file mode 100644 index 0000000..05581f7 Binary files /dev/null and b/bin/Debug/nl/PdfiumViewer.resources.dll differ diff --git a/bin/Debug/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll b/bin/Debug/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll new file mode 100644 index 0000000..358f93f Binary files /dev/null and b/bin/Debug/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll differ diff --git a/bin/Debug/pdfium.dll b/bin/Debug/pdfium.dll new file mode 100644 index 0000000..358f93f Binary files /dev/null and b/bin/Debug/pdfium.dll differ diff --git a/bin/Release.rar b/bin/Release.rar new file mode 100644 index 0000000..383469e Binary files /dev/null and b/bin/Release.rar differ diff --git a/bin/Release/Box.vshost.exe b/bin/Release/Box.vshost.exe new file mode 100644 index 0000000..681ab77 Binary files /dev/null and b/bin/Release/Box.vshost.exe differ diff --git a/bin/Release/Box.vshost.exe.config b/bin/Release/Box.vshost.exe.config new file mode 100644 index 0000000..da0a8bc --- /dev/null +++ b/bin/Release/Box.vshost.exe.config @@ -0,0 +1,54 @@ + + + + + + +
+ + +
+ + + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + http://hesabix.ir + + + + + + + diff --git a/bin/Release/Box.vshost.exe.manifest b/bin/Release/Box.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/bin/Release/Box.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/bin/Release/HesabixBox.exe b/bin/Release/HesabixBox.exe new file mode 100644 index 0000000..32a0705 Binary files /dev/null and b/bin/Release/HesabixBox.exe differ diff --git a/bin/Release/HesabixBox.exe.config b/bin/Release/HesabixBox.exe.config new file mode 100644 index 0000000..dfa08d3 --- /dev/null +++ b/bin/Release/HesabixBox.exe.config @@ -0,0 +1,52 @@ + + + + + + +
+ + +
+ + + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + http://hesabix.ir + + + + + + + diff --git a/bin/Release/HesabixBox.pdb b/bin/Release/HesabixBox.pdb new file mode 100644 index 0000000..63f00cc Binary files /dev/null and b/bin/Release/HesabixBox.pdb differ diff --git a/bin/Release/HesabixBox.vshost.exe b/bin/Release/HesabixBox.vshost.exe new file mode 100644 index 0000000..8f90da4 Binary files /dev/null and b/bin/Release/HesabixBox.vshost.exe differ diff --git a/bin/Release/HesabixBox.vshost.exe.config b/bin/Release/HesabixBox.vshost.exe.config new file mode 100644 index 0000000..dfa08d3 --- /dev/null +++ b/bin/Release/HesabixBox.vshost.exe.config @@ -0,0 +1,52 @@ + + + + + + +
+ + +
+ + + + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + http://hesabix.ir + + + + + + + diff --git a/bin/Release/HesabixBox.vshost.exe.manifest b/bin/Release/HesabixBox.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/bin/Release/HesabixBox.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/bin/Release/HesabixBox.xml b/bin/Release/HesabixBox.xml new file mode 100644 index 0000000..84a04a0 --- /dev/null +++ b/bin/Release/HesabixBox.xml @@ -0,0 +1,91 @@ + + + + +HesabixBox + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + کلاس کمکی برای مدیریت عملیات async و threading + + + + + اجرای عملیات در background thread بدون مسدود کردن UI + + عملیاتی که باید اجرا شود + + + + اجرای عملیات async در background thread + + عملیات async که باید اجرا شود + + + + اجرای عملیات در UI thread از background thread + + کنترل UI + عملیاتی که باید در UI thread اجرا شود + + + + اجرای عملیات async در UI thread از background thread + + کنترل UI + عملیات async که باید در UI thread اجرا شود + + + + ایجاد CancellationTokenSource با timeout + + مدت timeout به میلی‌ثانیه + CancellationTokenSource + + + + اجرای عملیات با timeout + + عملیاتی که باید اجرا شود + مدت timeout به میلی‌ثانیه + True اگر عملیات موفق باشد، False اگر timeout شود + + + + اجرای عملیات با retry در صورت خطا + + عملیاتی که باید اجرا شود + حداکثر تعداد تلاش + تاخیر بین تلاش‌ها به میلی‌ثانیه + True اگر عملیات موفق باشد + + + diff --git a/bin/Release/PdfiumViewer.dll b/bin/Release/PdfiumViewer.dll new file mode 100644 index 0000000..9fa37fd Binary files /dev/null and b/bin/Release/PdfiumViewer.dll differ diff --git a/bin/Release/PdfiumViewer.xml b/bin/Release/PdfiumViewer.xml new file mode 100644 index 0000000..3cc17e5 --- /dev/null +++ b/bin/Release/PdfiumViewer.xml @@ -0,0 +1,1275 @@ + + + + PdfiumViewer + + + + + Determines whether the specified key is a regular input key or a special key that requires preprocessing. + + + true if the specified key is a regular input key; otherwise, false. + + One of the values. + + + + Represents a PDF document. + + + + + Number of pages in the PDF document. + + + + + Bookmarks stored in this PdfFile + + + + + Size of each page in the PDF document. + + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Render the page for printing. + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Flags used to influence the rendering. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Rotation. + Flags used to influence the rendering. + The rendered image. + + + + Save the PDF document to the specified location. + + Path to save the PDF document to. + + + + Save the PDF document to the specified location. + + Stream to save the PDF document to. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to search on. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to start searching. + The page to end searching. + All matches. + + + + Creates a for the PDF document. + + + + + + Creates a for the PDF document. + + Specifies the mode for printing. The default + value for this parameter is CutMargin. + + + + + Creates a for the PDF document. + + The settings used to configure the print document. + + + + + Returns all links on the PDF page. + + The page to get the links for. + The size of the page. + A collection with the links on the page. + + + + Delete the page from the PDF document. + + The page to delete. + + + + Rotate the page. + + The page to rotate. + How to rotate the page. + + + + Get metadata information from the PDF document. + + The PDF metadata. + + + + Get all text on the page. + + The page to get the text for. + The text on the page. + + + + Get all text matching the text span. + + The span to get the text for. + The text matching the span. + + + + Get all bounding rectangles for the text span. + + + The algorithm used to get the bounding rectangles tries to join + adjacent character bounds into larger rectangles. + + The span to get the bounding rectangles for. + The bounding rectangles. + + + + Convert a point from device coordinates to page coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a point from page coordinates to device coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a rectangle from device coordinates to page coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Convert a rectangle from page coordinates to device coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Represents a marker on a PDF page. + + + + + The page where the marker is drawn on. + + + + + Draw the marker. + + The PdfRenderer to draw the marker with. + The Graphics to draw the marker with. + + + + Gets the link that was clicked. + + + + + Opens a document using a .NET Stream. Allows opening huge + PDFs without loading them into memory first. + + The input Stream. Don't dispose prior to closing the pdf. + Password, if the PDF is protected. Can be null. + Retrieves an IntPtr to the COM object for the Stream. The caller must release this with Marshal.Release prior to Disposing the Stream. + An IntPtr to the FPDF_DOCUMENT object. + + + + Gets or sets the current zoom level. + + + + + Zooms the PDF document in one step. + + + + + Zooms the PDF document out one step. + + + + + Raises the event. + + A that contains the event data. + + + + Determines whether the specified key is a regular input key or a special key that requires preprocessing. + + + true if the specified key is a regular input key; otherwise, false. + + One of the values. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Configuration for printing multiple PDF pages on a single page. + + + + + Gets the number of pages to print horizontally. + + + + + Gets the number of pages to print vertically. + + + + + Gets the orientation in which PDF pages are layed out on the + physical page. + + + + + Gets the margin between PDF pages in device units. + + + + + Creates a new instance of the PdfPrintMultiplePages class. + + The number of pages to print horizontally. + The number of pages to print vertically. + The orientation in which PDF pages are layed out on + the physical page. + The margin between PDF pages in device units. + + + + Configures the print document. + + + + + Gets the mode used to print margins. + + + + + Gets configuration for printing multiple PDF pages on a single page. + + + + + Creates a new instance of the PdfPrintSettings class. + + The mode used to print margins. + Configuration for printing multiple PDF + pages on a single page. + + + + Provides functionality to render a PDF document. + + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Path to the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Path to the PDF document. + Password for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Window to show any UI for. + Path to the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Window to show any UI for. + Stream for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided stream. + + Stream for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided stream. + + Stream for the PDF document. + Password for the PDF document. + + + + Number of pages in the PDF document. + + + + + Bookmarks stored in this PdfFile + + + + + Size of each page in the PDF document. + + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Render the page for printing. + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Flags used to influence the rendering. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Rotation. + Flags used to influence the rendering. + The rendered image. + + + + Save the PDF document to the specified location. + + Path to save the PDF document to. + + + + Save the PDF document to the specified location. + + Stream to save the PDF document to. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to search on. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to start searching. + The page to end searching. + All matches. + + + + Get all text on the page. + + The page to get the text for. + The text on the page. + + + + Get all text matching the text span. + + The span to get the text for. + The text matching the span. + + + + Get all bounding rectangles for the text span. + + + The algorithm used to get the bounding rectangles tries to join + adjacent character bounds into larger rectangles. + + The span to get the bounding rectangles for. + The bounding rectangles. + + + + Convert a point from device coordinates to page coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a point from page coordinates to device coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a rectangle from device coordinates to page coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Convert a rectangle from page coordinates to device coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Creates a for the PDF document. + + + + + + Creates a for the PDF document. + + Specifies the mode for printing. The default + value for this parameter is CutMargin. + + + + + Creates a for the PDF document. + + The settings used to configure the print document. + + + + + Returns all links on the PDF page. + + The page to get the links for. + The size of the page. + A collection with the links on the page. + + + + Delete the page from the PDF document. + + The page to delete. + + + + Rotate the page. + + The page to rotate. + How to rotate the page. + + + + Get metadata information from the PDF document. + + The PDF metadata. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + 2 + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + Whether this method is called from Dispose. + + + + Contains text from metadata of the document. + + + + + Helper class for searching through PDF documents. + + + + + The renderer associated with the search manager. + + + + + Gets or sets whether to match case. + + + + + Gets or sets whether to match whole words. + + + + + Gets or sets the color of matched search terms. + + + + + Gets or sets the border color of matched search terms. + + + + + Gets or sets the border width of matched search terms. + + + + + Gets or sets the color of the current match. + + + + + Gets or sets the border color of the current match. + + + + + Gets or sets the border width of the current match. + + + + + Gets or sets whether all matches should be highlighted. + + + + + Creates a new instance of the search manager. + + The renderer to create the search manager for. + + + + Searches for the specified text. + + The text to search. + Whether any matches were found. + + + + Find the next matched term. + + Whether or not to search forward. + False when the first match was found again; otherwise true. + + + + Resets the search manager. + + + + + Describes a link on a page. + + + + + The location of the link. + + + + + The target of the link. + + + + + The target URI of the link. + + + + + Creates a new instance of the PdfPageLink class. + + The location of the link + The target page of the link + The target URI of the link + + + + Describes all links on a page. + + + + + All links of the page. + + + + + Creates a new instance of the PdfPageLinks class. + + The links on the PDF page. + + + + Specifies the mode in which the document should be printed. + + + Printers have a hard margin. This is a (small) margin on which it is not + possible to print. PdfPrintMode specifies whether the page should be + scaled to fit into this margin, or that the margin should be cut off of + the page. + + + + + Shrink the print area to fall within the hard printer margin. + + + + + Cut the hard printer margin from the output. + + + + + Flags that influence the page rendering process. + + + + + No flags. + + + + + Render for printing. + + + + + Set if annotations are to be rendered. + + + + + Set if using text rendering optimized for LCD display. + + + + + Don't use the native text output available on some platforms. + + + + + Grayscale output. + + + + + Limit image cache size. + + + + + Always use halftone for image stretching. + + + + + Render with a transparent background. + + + + + Correct height/width for DPI. + + + + + Control to render PDF documents. + + + + + The associated PDF document. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + + + + true if the user can give the focus to the control using the TAB key; otherwise, false. The default is true.Note:This property will always return true for an instance of the class. + + 1 + + + + Gets or sets the currently focused page. + + + + + Get the outer bounds of the page. + + The page to get the bounds for. + The bounds of the page. + + + + Gets or sets the way the document should be zoomed initially. + + + + + Gets or sets the current rotation of the PDF document. + + + + + Gets a collection with all markers. + + + + + Initializes a new instance of the PdfRenderer class. + + + + + Converts client coordinates to PDF coordinates. + + Client coordinates to get the PDF location for. + The location in a PDF page or a PdfPoint with IsValid false when the coordinates do not match a PDF page. + + + + Converts a PDF point to a client point. + + The PDF point to convert. + The location of the point in client coordinates. + + + + Converts client coordinates to PDF bounds. + + The client coordinates to convert. + The PDF bounds. + + + + Converts PDF bounds to client bounds. + + The PDF bounds to convert. + The bounds of the PDF bounds in client coordinates. + + + + Raises the event. + + A that contains the event data. + + + + Called when the zoom level changes. + + The event args. + + + + Load a into the control. + + Document to load. + + + + Raises the event. + + A that contains the event data. + + + + Gets the document bounds. + + The document bounds. + + + + Called whent he cursor changes. + + The event args. + + + Raises the event. + A that contains the event data. + + + Raises the event. + A that contains the event data. + + + + Occurs when a link in the pdf document is clicked. + + + + + Called when a link is clicked. + + The event args. + + + + Rotate the PDF document left. + + + + + Rotate the PDF document right. + + + + + Called when the zoom level changes. + + The new zoom level. + The location to focus on. + + + + Scroll the PDF bounds into view. + + The PDF bounds to scroll into view. + + + + Scroll the client rectangle into view. + + The client rectangle to scroll into view. + + + + Releases the unmanaged resources used by the and its child controls and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Specifies the rotation of pages shown in the PDF renderer. + + + + + Rotates the output 0 degrees. + + + + + Rotates the output 90 degrees. + + + + + Rotates the output 180 degrees. + + + + + Rotates the output 270 degrees. + + + + + Control to host PDF documents with support for printing. + + + + + Gets or sets the PDF document. + + + + + Get the that renders the PDF document. + + + + + Gets or sets the default document name used when saving the document. + + + + + Gets or sets the default print mode. + + + + + Gets or sets the way the document should be zoomed initially. + + + + + Gets or sets whether the toolbar should be shown. + + + + + Gets or sets whether the bookmarks panel should be shown. + + + + + Gets or sets the pre-selected printer to be used when the print + dialog shows up. + + + + + Occurs when a link in the pdf document is clicked. + + + + + Called when a link is clicked. + + + + + + Initializes a new instance of the PdfViewer class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Page {0}. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Could not save the PDF file to the specified location.. + + + + + Looks up a localized string similar to Could not save file. + + + + + Looks up a localized string similar to PDF Files (*.pdf)|*.pdf|All Files (*.*)|*.*. + + + + + Looks up a localized string similar to Save As. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + diff --git a/bin/Release/fa-IR/HesabixBox.resources.dll b/bin/Release/fa-IR/HesabixBox.resources.dll new file mode 100644 index 0000000..cb33efc Binary files /dev/null and b/bin/Release/fa-IR/HesabixBox.resources.dll differ diff --git a/bin/Release/net6.0-windows/HesabixBox.dll b/bin/Release/net6.0-windows/HesabixBox.dll new file mode 100644 index 0000000..fe3f790 Binary files /dev/null and b/bin/Release/net6.0-windows/HesabixBox.dll differ diff --git a/bin/Release/net6.0-windows/HesabixBox.exe b/bin/Release/net6.0-windows/HesabixBox.exe new file mode 100644 index 0000000..d1bd7d3 Binary files /dev/null and b/bin/Release/net6.0-windows/HesabixBox.exe differ diff --git a/bin/Release/net6.0-windows/HesabixBox.pdb b/bin/Release/net6.0-windows/HesabixBox.pdb new file mode 100644 index 0000000..8824df1 Binary files /dev/null and b/bin/Release/net6.0-windows/HesabixBox.pdb differ diff --git a/bin/Release/net6.0-windows/Newtonsoft.Json.dll b/bin/Release/net6.0-windows/Newtonsoft.Json.dll new file mode 100644 index 0000000..d035c38 Binary files /dev/null and b/bin/Release/net6.0-windows/Newtonsoft.Json.dll differ diff --git a/bin/Release/net6.0-windows/fa-IR/HesabixBox.resources.dll b/bin/Release/net6.0-windows/fa-IR/HesabixBox.resources.dll new file mode 100644 index 0000000..b8b6199 Binary files /dev/null and b/bin/Release/net6.0-windows/fa-IR/HesabixBox.resources.dll differ diff --git a/bin/Release/nl/PdfiumViewer.resources.dll b/bin/Release/nl/PdfiumViewer.resources.dll new file mode 100644 index 0000000..05581f7 Binary files /dev/null and b/bin/Release/nl/PdfiumViewer.resources.dll differ diff --git a/bin/Release/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll b/bin/Release/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll new file mode 100644 index 0000000..358f93f Binary files /dev/null and b/bin/Release/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll differ diff --git a/bin/Release/pdfium.dll b/bin/Release/pdfium.dll new file mode 100644 index 0000000..358f93f Binary files /dev/null and b/bin/Release/pdfium.dll differ diff --git a/clsMsg.vb b/clsMsg.vb new file mode 100644 index 0000000..9c665f6 --- /dev/null +++ b/clsMsg.vb @@ -0,0 +1,49 @@ +Imports System.Text +Imports System.Runtime.InteropServices + +Public Class clsMsg + Private Shared mLabels() As String '' Desired new labels + Private Shared mLabelIndex As Integer '' Next caption to update + + Public Shared Sub PatchMsgBox(ByVal labels() As String) + ''--- Updates message box buttons + mLabels = labels + Application.OpenForms(0).BeginInvoke(New FindWindowDelegate(AddressOf FindMsgBox), GetCurrentThreadId()) + End Sub + + Private Shared Sub FindMsgBox(ByVal tid As Integer) + ''--- Enumerate the windows owned by the UI thread + EnumThreadWindows(tid, AddressOf EnumWindow, IntPtr.Zero) + End Sub + + Private Shared Function EnumWindow(ByVal hWnd As IntPtr, ByVal lp As IntPtr) As Boolean + ''--- Is this the message box? + Dim sb As New StringBuilder(256) + GetClassName(hWnd, sb, sb.Capacity) + If sb.ToString() <> "#32770" Then Return True + ''--- Got it, now find the buttons + mLabelIndex = 0 + EnumChildWindows(hWnd, AddressOf FindButtons, IntPtr.Zero) + Return False + End Function + + Private Shared Function FindButtons(ByVal hWnd As IntPtr, ByVal lp As IntPtr) As Boolean + Dim sb As New StringBuilder(256) + GetClassName(hWnd, sb, sb.Capacity) + If sb.ToString() = "Button" And mLabelIndex <= UBound(mLabels) Then + ''--- Got one, update text + SetWindowText(hWnd, mLabels(mLabelIndex)) + mLabelIndex += 1 + End If + Return True + End Function + + ''--- P/Invoke declarations + Private Delegate Sub FindWindowDelegate(ByVal tid As Integer) + Private Delegate Function EnumWindowDelegate(ByVal hWnd As IntPtr, ByVal lp As IntPtr) As Boolean + Private Declare Auto Function EnumThreadWindows Lib "user32.dll" (ByVal tid As Integer, ByVal callback As EnumWindowDelegate, ByVal lp As IntPtr) As Boolean + Private Declare Auto Function EnumChildWindows Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal callback As EnumWindowDelegate, ByVal lp As IntPtr) As Boolean + Private Declare Auto Function GetClassName Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal name As StringBuilder, ByVal maxlen As Integer) As Integer + Private Declare Auto Function GetCurrentThreadId Lib "kernel32.dll" () As Integer + Private Declare Auto Function SetWindowText Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal text As String) As Boolean +End Class diff --git a/copy_pdfium_dll.ps1 b/copy_pdfium_dll.ps1 new file mode 100644 index 0000000..fc073b9 --- /dev/null +++ b/copy_pdfium_dll.ps1 @@ -0,0 +1,34 @@ +# اسکریپت کپی فایل pdfium.dll به مسیرهای خروجی +# این اسکریپت باید بعد از هر بار build اجرا شود +# حل کننده مشکلات DllNotFoundException و BadImageFormatException + +$sourcePath = "bin\Release\packages\PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256\content\x64\pdfium.dll" +$releaseTarget = "bin\Release\pdfium.dll" +$debugTarget = "bin\Debug\pdfium.dll" + +Write-Host "شروع کپی فایل pdfium.dll..." + +if (Test-Path $sourcePath) { + # کپی به Release + if (Test-Path "bin\Release") { + Copy-Item $sourcePath $releaseTarget -Force + Write-Host "✓ فایل pdfium.dll به bin\Release کپی شد" + } else { + Write-Host "⚠ پوشه bin\Release یافت نشد" + } + + # کپی به Debug + if (Test-Path "bin\Debug") { + Copy-Item $sourcePath $debugTarget -Force + Write-Host "✓ فایل pdfium.dll به bin\Debug کپی شد" + } else { + Write-Host "⚠ پوشه bin\Debug یافت نشد" + } + + Write-Host "✅ عملیات کپی با موفقیت انجام شد" + Write-Host "" + Write-Host "نکته: اطمینان حاصل کنید که پروژه با PlatformTarget=x64 کامپایل شده است" +} else { + Write-Host "❌ خطا: فایل منبع یافت نشد: $sourcePath" + Write-Host "لطفاً ابتدا پروژه را build کنید" +} diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..e29c02b Binary files /dev/null and b/favicon.ico differ diff --git a/mdlPerson.vb b/mdlPerson.vb new file mode 100644 index 0000000..690c627 --- /dev/null +++ b/mdlPerson.vb @@ -0,0 +1,4 @@ +Public Class mdlPerson + Public Property id As String + Public Property nikename As String +End Class diff --git a/obj/Debug/Box.vbproj.FileListAbsolute.txt b/obj/Debug/Box.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..b3264ca --- /dev/null +++ b/obj/Debug/Box.vbproj.FileListAbsolute.txt @@ -0,0 +1 @@ +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\Box.exe.config diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..2434dfb Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/obj/Debug/HesabixBox.Form1.fa-IR.resources b/obj/Debug/HesabixBox.Form1.fa-IR.resources new file mode 100644 index 0000000..1c6d7b3 Binary files /dev/null and b/obj/Debug/HesabixBox.Form1.fa-IR.resources differ diff --git a/obj/Debug/HesabixBox.Form1.resources b/obj/Debug/HesabixBox.Form1.resources new file mode 100644 index 0000000..b445f52 Binary files /dev/null and b/obj/Debug/HesabixBox.Form1.resources differ diff --git a/obj/Debug/HesabixBox.FrmAboutHesabix.resources b/obj/Debug/HesabixBox.FrmAboutHesabix.resources new file mode 100644 index 0000000..d789f8d Binary files /dev/null and b/obj/Debug/HesabixBox.FrmAboutHesabix.resources differ diff --git a/obj/Debug/HesabixBox.FrmInvoice.resources b/obj/Debug/HesabixBox.FrmInvoice.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Debug/HesabixBox.FrmInvoice.resources differ diff --git a/obj/Debug/HesabixBox.FrmLogin.resources b/obj/Debug/HesabixBox.FrmLogin.resources new file mode 100644 index 0000000..d3d4f0d Binary files /dev/null and b/obj/Debug/HesabixBox.FrmLogin.resources differ diff --git a/obj/Debug/HesabixBox.FrmPrinters.resources b/obj/Debug/HesabixBox.FrmPrinters.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Debug/HesabixBox.FrmPrinters.resources differ diff --git a/obj/Debug/HesabixBox.Resources.resources b/obj/Debug/HesabixBox.Resources.resources new file mode 100644 index 0000000..e1f532d Binary files /dev/null and b/obj/Debug/HesabixBox.Resources.resources differ diff --git a/obj/Debug/HesabixBox.SplashScreen1.resources b/obj/Debug/HesabixBox.SplashScreen1.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Debug/HesabixBox.SplashScreen1.resources differ diff --git a/obj/Debug/HesabixBox.exe b/obj/Debug/HesabixBox.exe new file mode 100644 index 0000000..f6372f9 Binary files /dev/null and b/obj/Debug/HesabixBox.exe differ diff --git a/obj/Debug/HesabixBox.pdb b/obj/Debug/HesabixBox.pdb new file mode 100644 index 0000000..7b4717d Binary files /dev/null and b/obj/Debug/HesabixBox.pdb differ diff --git a/obj/Debug/HesabixBox.vbproj.FileListAbsolute.txt b/obj/Debug/HesabixBox.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..c7f606f --- /dev/null +++ b/obj/Debug/HesabixBox.vbproj.FileListAbsolute.txt @@ -0,0 +1,23 @@ +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\packages\PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256\content\x64\pdfium.dll +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\HesabixBox.exe.config +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\HesabixBox.exe +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\HesabixBox.pdb +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\HesabixBox.xml +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\fa-IR\HesabixBox.resources.dll +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\PdfiumViewer.dll +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\PdfiumViewer.xml +C:\Users\babak\Desktop\hesabixBox-master\bin\Debug\nl\PdfiumViewer.resources.dll +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.vbprojResolveAssemblyReference.cache +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.Form1.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.FrmAboutHesabix.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.FrmInvoice.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.FrmLogin.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.FrmPrinters.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.Resources.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.SplashScreen1.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.Form1.fa-IR.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.vbproj.GenerateResource.Cache +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\fa-IR\HesabixBox.resources.dll +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.exe +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.xml +C:\Users\babak\Desktop\hesabixBox-master\obj\Debug\HesabixBox.pdb diff --git a/obj/Debug/HesabixBox.vbproj.GenerateResource.Cache b/obj/Debug/HesabixBox.vbproj.GenerateResource.Cache new file mode 100644 index 0000000..4e532c7 Binary files /dev/null and b/obj/Debug/HesabixBox.vbproj.GenerateResource.Cache differ diff --git a/obj/Debug/HesabixBox.vbprojResolveAssemblyReference.cache b/obj/Debug/HesabixBox.vbprojResolveAssemblyReference.cache new file mode 100644 index 0000000..2fb30c0 Binary files /dev/null and b/obj/Debug/HesabixBox.vbprojResolveAssemblyReference.cache differ diff --git a/obj/Debug/HesabixBox.xml b/obj/Debug/HesabixBox.xml new file mode 100644 index 0000000..84a04a0 --- /dev/null +++ b/obj/Debug/HesabixBox.xml @@ -0,0 +1,91 @@ + + + + +HesabixBox + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + کلاس کمکی برای مدیریت عملیات async و threading + + + + + اجرای عملیات در background thread بدون مسدود کردن UI + + عملیاتی که باید اجرا شود + + + + اجرای عملیات async در background thread + + عملیات async که باید اجرا شود + + + + اجرای عملیات در UI thread از background thread + + کنترل UI + عملیاتی که باید در UI thread اجرا شود + + + + اجرای عملیات async در UI thread از background thread + + کنترل UI + عملیات async که باید در UI thread اجرا شود + + + + ایجاد CancellationTokenSource با timeout + + مدت timeout به میلی‌ثانیه + CancellationTokenSource + + + + اجرای عملیات با timeout + + عملیاتی که باید اجرا شود + مدت timeout به میلی‌ثانیه + True اگر عملیات موفق باشد، False اگر timeout شود + + + + اجرای عملیات با retry در صورت خطا + + عملیاتی که باید اجرا شود + حداکثر تعداد تلاش + تاخیر بین تلاش‌ها به میلی‌ثانیه + True اگر عملیات موفق باشد + + + diff --git a/obj/Debug/fa-IR/HesabixBox.resources.dll b/obj/Debug/fa-IR/HesabixBox.resources.dll new file mode 100644 index 0000000..0b06a43 Binary files /dev/null and b/obj/Debug/fa-IR/HesabixBox.resources.dll differ diff --git a/obj/Release/DesignTimeResolveAssemblyReferences.cache b/obj/Release/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..c8f4818 Binary files /dev/null and b/obj/Release/DesignTimeResolveAssemblyReferences.cache differ diff --git a/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..5aaeb5f Binary files /dev/null and b/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/obj/Release/HesabixBox.Form1.fa-IR.resources b/obj/Release/HesabixBox.Form1.fa-IR.resources new file mode 100644 index 0000000..37a89e2 Binary files /dev/null and b/obj/Release/HesabixBox.Form1.fa-IR.resources differ diff --git a/obj/Release/HesabixBox.Form1.resources b/obj/Release/HesabixBox.Form1.resources new file mode 100644 index 0000000..fca04bf Binary files /dev/null and b/obj/Release/HesabixBox.Form1.resources differ diff --git a/obj/Release/HesabixBox.FrmAboutHesabix.resources b/obj/Release/HesabixBox.FrmAboutHesabix.resources new file mode 100644 index 0000000..d789f8d Binary files /dev/null and b/obj/Release/HesabixBox.FrmAboutHesabix.resources differ diff --git a/obj/Release/HesabixBox.FrmInvoice.resources b/obj/Release/HesabixBox.FrmInvoice.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Release/HesabixBox.FrmInvoice.resources differ diff --git a/obj/Release/HesabixBox.FrmLogin.resources b/obj/Release/HesabixBox.FrmLogin.resources new file mode 100644 index 0000000..d3d4f0d Binary files /dev/null and b/obj/Release/HesabixBox.FrmLogin.resources differ diff --git a/obj/Release/HesabixBox.FrmPrinters.resources b/obj/Release/HesabixBox.FrmPrinters.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Release/HesabixBox.FrmPrinters.resources differ diff --git a/obj/Release/HesabixBox.Resources.resources b/obj/Release/HesabixBox.Resources.resources new file mode 100644 index 0000000..e1f532d Binary files /dev/null and b/obj/Release/HesabixBox.Resources.resources differ diff --git a/obj/Release/HesabixBox.SplashScreen1.resources b/obj/Release/HesabixBox.SplashScreen1.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Release/HesabixBox.SplashScreen1.resources differ diff --git a/obj/Release/HesabixBox.exe b/obj/Release/HesabixBox.exe new file mode 100644 index 0000000..32a0705 Binary files /dev/null and b/obj/Release/HesabixBox.exe differ diff --git a/obj/Release/HesabixBox.pdb b/obj/Release/HesabixBox.pdb new file mode 100644 index 0000000..63f00cc Binary files /dev/null and b/obj/Release/HesabixBox.pdb differ diff --git a/obj/Release/HesabixBox.vbproj.FileListAbsolute.txt b/obj/Release/HesabixBox.vbproj.FileListAbsolute.txt new file mode 100644 index 0000000..a21c07e --- /dev/null +++ b/obj/Release/HesabixBox.vbproj.FileListAbsolute.txt @@ -0,0 +1,22 @@ +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\packages\PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256\content\x64\pdfium.dll +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\HesabixBox.exe.config +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\HesabixBox.exe +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\HesabixBox.pdb +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\HesabixBox.xml +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\fa-IR\HesabixBox.resources.dll +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\PdfiumViewer.dll +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\PdfiumViewer.xml +C:\Users\babak\Desktop\hesabixBox-master\bin\Release\nl\PdfiumViewer.resources.dll +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.Form1.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.FrmAboutHesabix.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.FrmInvoice.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.FrmLogin.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.FrmPrinters.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.Resources.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.SplashScreen1.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.Form1.fa-IR.resources +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.vbproj.GenerateResource.Cache +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\fa-IR\HesabixBox.resources.dll +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.exe +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.xml +C:\Users\babak\Desktop\hesabixBox-master\obj\Release\HesabixBox.pdb diff --git a/obj/Release/HesabixBox.vbproj.GenerateResource.Cache b/obj/Release/HesabixBox.vbproj.GenerateResource.Cache new file mode 100644 index 0000000..0c254a5 Binary files /dev/null and b/obj/Release/HesabixBox.vbproj.GenerateResource.Cache differ diff --git a/obj/Release/HesabixBox.xml b/obj/Release/HesabixBox.xml new file mode 100644 index 0000000..84a04a0 --- /dev/null +++ b/obj/Release/HesabixBox.xml @@ -0,0 +1,91 @@ + + + + +HesabixBox + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + کلاس کمکی برای مدیریت عملیات async و threading + + + + + اجرای عملیات در background thread بدون مسدود کردن UI + + عملیاتی که باید اجرا شود + + + + اجرای عملیات async در background thread + + عملیات async که باید اجرا شود + + + + اجرای عملیات در UI thread از background thread + + کنترل UI + عملیاتی که باید در UI thread اجرا شود + + + + اجرای عملیات async در UI thread از background thread + + کنترل UI + عملیات async که باید در UI thread اجرا شود + + + + ایجاد CancellationTokenSource با timeout + + مدت timeout به میلی‌ثانیه + CancellationTokenSource + + + + اجرای عملیات با timeout + + عملیاتی که باید اجرا شود + مدت timeout به میلی‌ثانیه + True اگر عملیات موفق باشد، False اگر timeout شود + + + + اجرای عملیات با retry در صورت خطا + + عملیاتی که باید اجرا شود + حداکثر تعداد تلاش + تاخیر بین تلاش‌ها به میلی‌ثانیه + True اگر عملیات موفق باشد + + + diff --git a/obj/Release/TempPE/My Project.Resources.Designer.vb.dll b/obj/Release/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000..24703b9 Binary files /dev/null and b/obj/Release/TempPE/My Project.Resources.Designer.vb.dll differ diff --git a/obj/Release/fa-IR/HesabixBox.resources.dll b/obj/Release/fa-IR/HesabixBox.resources.dll new file mode 100644 index 0000000..cb33efc Binary files /dev/null and b/obj/Release/fa-IR/HesabixBox.resources.dll differ diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..64d1c01 --- /dev/null +++ b/packages.config @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/.gitkeep b/packages/.gitkeep new file mode 100644 index 0000000..ffea5e2 --- /dev/null +++ b/packages/.gitkeep @@ -0,0 +1 @@ +# Placeholder file to create packages directory diff --git a/packages/PdfiumViewer.2.13.0.0/.signature.p7s b/packages/PdfiumViewer.2.13.0.0/.signature.p7s new file mode 100644 index 0000000..be0093d Binary files /dev/null and b/packages/PdfiumViewer.2.13.0.0/.signature.p7s differ diff --git a/packages/PdfiumViewer.2.13.0.0/PdfiumViewer.2.13.0.0.nupkg b/packages/PdfiumViewer.2.13.0.0/PdfiumViewer.2.13.0.0.nupkg new file mode 100644 index 0000000..9f71cc5 Binary files /dev/null and b/packages/PdfiumViewer.2.13.0.0/PdfiumViewer.2.13.0.0.nupkg differ diff --git a/packages/PdfiumViewer.2.13.0.0/Tools/Install.ps1 b/packages/PdfiumViewer.2.13.0.0/Tools/Install.ps1 new file mode 100644 index 0000000..06c1fc2 --- /dev/null +++ b/packages/PdfiumViewer.2.13.0.0/Tools/Install.ps1 @@ -0,0 +1,3 @@ +param($installPath, $toolsPath, $package, $project) + +$DTE.ItemOperations.Navigate("https://github.com/pvginkel/PdfiumViewer/wiki/Installation-instructions") diff --git a/packages/PdfiumViewer.2.13.0.0/lib/net20/PdfiumViewer.dll b/packages/PdfiumViewer.2.13.0.0/lib/net20/PdfiumViewer.dll new file mode 100644 index 0000000..9fa37fd Binary files /dev/null and b/packages/PdfiumViewer.2.13.0.0/lib/net20/PdfiumViewer.dll differ diff --git a/packages/PdfiumViewer.2.13.0.0/lib/net20/PdfiumViewer.xml b/packages/PdfiumViewer.2.13.0.0/lib/net20/PdfiumViewer.xml new file mode 100644 index 0000000..3cc17e5 --- /dev/null +++ b/packages/PdfiumViewer.2.13.0.0/lib/net20/PdfiumViewer.xml @@ -0,0 +1,1275 @@ + + + + PdfiumViewer + + + + + Determines whether the specified key is a regular input key or a special key that requires preprocessing. + + + true if the specified key is a regular input key; otherwise, false. + + One of the values. + + + + Represents a PDF document. + + + + + Number of pages in the PDF document. + + + + + Bookmarks stored in this PdfFile + + + + + Size of each page in the PDF document. + + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Render the page for printing. + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Flags used to influence the rendering. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Rotation. + Flags used to influence the rendering. + The rendered image. + + + + Save the PDF document to the specified location. + + Path to save the PDF document to. + + + + Save the PDF document to the specified location. + + Stream to save the PDF document to. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to search on. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to start searching. + The page to end searching. + All matches. + + + + Creates a for the PDF document. + + + + + + Creates a for the PDF document. + + Specifies the mode for printing. The default + value for this parameter is CutMargin. + + + + + Creates a for the PDF document. + + The settings used to configure the print document. + + + + + Returns all links on the PDF page. + + The page to get the links for. + The size of the page. + A collection with the links on the page. + + + + Delete the page from the PDF document. + + The page to delete. + + + + Rotate the page. + + The page to rotate. + How to rotate the page. + + + + Get metadata information from the PDF document. + + The PDF metadata. + + + + Get all text on the page. + + The page to get the text for. + The text on the page. + + + + Get all text matching the text span. + + The span to get the text for. + The text matching the span. + + + + Get all bounding rectangles for the text span. + + + The algorithm used to get the bounding rectangles tries to join + adjacent character bounds into larger rectangles. + + The span to get the bounding rectangles for. + The bounding rectangles. + + + + Convert a point from device coordinates to page coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a point from page coordinates to device coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a rectangle from device coordinates to page coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Convert a rectangle from page coordinates to device coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Represents a marker on a PDF page. + + + + + The page where the marker is drawn on. + + + + + Draw the marker. + + The PdfRenderer to draw the marker with. + The Graphics to draw the marker with. + + + + Gets the link that was clicked. + + + + + Opens a document using a .NET Stream. Allows opening huge + PDFs without loading them into memory first. + + The input Stream. Don't dispose prior to closing the pdf. + Password, if the PDF is protected. Can be null. + Retrieves an IntPtr to the COM object for the Stream. The caller must release this with Marshal.Release prior to Disposing the Stream. + An IntPtr to the FPDF_DOCUMENT object. + + + + Gets or sets the current zoom level. + + + + + Zooms the PDF document in one step. + + + + + Zooms the PDF document out one step. + + + + + Raises the event. + + A that contains the event data. + + + + Determines whether the specified key is a regular input key or a special key that requires preprocessing. + + + true if the specified key is a regular input key; otherwise, false. + + One of the values. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Configuration for printing multiple PDF pages on a single page. + + + + + Gets the number of pages to print horizontally. + + + + + Gets the number of pages to print vertically. + + + + + Gets the orientation in which PDF pages are layed out on the + physical page. + + + + + Gets the margin between PDF pages in device units. + + + + + Creates a new instance of the PdfPrintMultiplePages class. + + The number of pages to print horizontally. + The number of pages to print vertically. + The orientation in which PDF pages are layed out on + the physical page. + The margin between PDF pages in device units. + + + + Configures the print document. + + + + + Gets the mode used to print margins. + + + + + Gets configuration for printing multiple PDF pages on a single page. + + + + + Creates a new instance of the PdfPrintSettings class. + + The mode used to print margins. + Configuration for printing multiple PDF + pages on a single page. + + + + Provides functionality to render a PDF document. + + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Path to the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Path to the PDF document. + Password for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Window to show any UI for. + Path to the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided path. + + Window to show any UI for. + Stream for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided stream. + + Stream for the PDF document. + + + + Initializes a new instance of the PdfDocument class with the provided stream. + + Stream for the PDF document. + Password for the PDF document. + + + + Number of pages in the PDF document. + + + + + Bookmarks stored in this PdfFile + + + + + Size of each page in the PDF document. + + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Render the page for printing. + + + + Renders a page of the PDF document to the provided graphics instance. + + Number of the page to render. + Graphics instance to render the page on. + Horizontal DPI. + Vertical DPI. + Bounds to render the page in. + Flags used to influence the rendering. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Render the page for printing. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Flags used to influence the rendering. + The rendered image. + + + + Renders a page of the PDF document to an image. + + Number of the page to render. + Width of the rendered image. + Height of the rendered image. + Horizontal DPI. + Vertical DPI. + Rotation. + Flags used to influence the rendering. + The rendered image. + + + + Save the PDF document to the specified location. + + Path to save the PDF document to. + + + + Save the PDF document to the specified location. + + Stream to save the PDF document to. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to search on. + All matches. + + + + Finds all occurences of text. + + The text to search for. + Whether to match case. + Whether to match whole words only. + The page to start searching. + The page to end searching. + All matches. + + + + Get all text on the page. + + The page to get the text for. + The text on the page. + + + + Get all text matching the text span. + + The span to get the text for. + The text matching the span. + + + + Get all bounding rectangles for the text span. + + + The algorithm used to get the bounding rectangles tries to join + adjacent character bounds into larger rectangles. + + The span to get the bounding rectangles for. + The bounding rectangles. + + + + Convert a point from device coordinates to page coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a point from page coordinates to device coordinates. + + The page number where the point is from. + The point to convert. + The converted point. + + + + Convert a rectangle from device coordinates to page coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Convert a rectangle from page coordinates to device coordinates. + + The page where the rectangle is from. + The rectangle to convert. + The converted rectangle. + + + + Creates a for the PDF document. + + + + + + Creates a for the PDF document. + + Specifies the mode for printing. The default + value for this parameter is CutMargin. + + + + + Creates a for the PDF document. + + The settings used to configure the print document. + + + + + Returns all links on the PDF page. + + The page to get the links for. + The size of the page. + A collection with the links on the page. + + + + Delete the page from the PDF document. + + The page to delete. + + + + Rotate the page. + + The page to rotate. + How to rotate the page. + + + + Get metadata information from the PDF document. + + The PDF metadata. + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + 2 + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + Whether this method is called from Dispose. + + + + Contains text from metadata of the document. + + + + + Helper class for searching through PDF documents. + + + + + The renderer associated with the search manager. + + + + + Gets or sets whether to match case. + + + + + Gets or sets whether to match whole words. + + + + + Gets or sets the color of matched search terms. + + + + + Gets or sets the border color of matched search terms. + + + + + Gets or sets the border width of matched search terms. + + + + + Gets or sets the color of the current match. + + + + + Gets or sets the border color of the current match. + + + + + Gets or sets the border width of the current match. + + + + + Gets or sets whether all matches should be highlighted. + + + + + Creates a new instance of the search manager. + + The renderer to create the search manager for. + + + + Searches for the specified text. + + The text to search. + Whether any matches were found. + + + + Find the next matched term. + + Whether or not to search forward. + False when the first match was found again; otherwise true. + + + + Resets the search manager. + + + + + Describes a link on a page. + + + + + The location of the link. + + + + + The target of the link. + + + + + The target URI of the link. + + + + + Creates a new instance of the PdfPageLink class. + + The location of the link + The target page of the link + The target URI of the link + + + + Describes all links on a page. + + + + + All links of the page. + + + + + Creates a new instance of the PdfPageLinks class. + + The links on the PDF page. + + + + Specifies the mode in which the document should be printed. + + + Printers have a hard margin. This is a (small) margin on which it is not + possible to print. PdfPrintMode specifies whether the page should be + scaled to fit into this margin, or that the margin should be cut off of + the page. + + + + + Shrink the print area to fall within the hard printer margin. + + + + + Cut the hard printer margin from the output. + + + + + Flags that influence the page rendering process. + + + + + No flags. + + + + + Render for printing. + + + + + Set if annotations are to be rendered. + + + + + Set if using text rendering optimized for LCD display. + + + + + Don't use the native text output available on some platforms. + + + + + Grayscale output. + + + + + Limit image cache size. + + + + + Always use halftone for image stretching. + + + + + Render with a transparent background. + + + + + Correct height/width for DPI. + + + + + Control to render PDF documents. + + + + + The associated PDF document. + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + + + + true if the user can give the focus to the control using the TAB key; otherwise, false. The default is true.Note:This property will always return true for an instance of the class. + + 1 + + + + Gets or sets the currently focused page. + + + + + Get the outer bounds of the page. + + The page to get the bounds for. + The bounds of the page. + + + + Gets or sets the way the document should be zoomed initially. + + + + + Gets or sets the current rotation of the PDF document. + + + + + Gets a collection with all markers. + + + + + Initializes a new instance of the PdfRenderer class. + + + + + Converts client coordinates to PDF coordinates. + + Client coordinates to get the PDF location for. + The location in a PDF page or a PdfPoint with IsValid false when the coordinates do not match a PDF page. + + + + Converts a PDF point to a client point. + + The PDF point to convert. + The location of the point in client coordinates. + + + + Converts client coordinates to PDF bounds. + + The client coordinates to convert. + The PDF bounds. + + + + Converts PDF bounds to client bounds. + + The PDF bounds to convert. + The bounds of the PDF bounds in client coordinates. + + + + Raises the event. + + A that contains the event data. + + + + Called when the zoom level changes. + + The event args. + + + + Load a into the control. + + Document to load. + + + + Raises the event. + + A that contains the event data. + + + + Gets the document bounds. + + The document bounds. + + + + Called whent he cursor changes. + + The event args. + + + Raises the event. + A that contains the event data. + + + Raises the event. + A that contains the event data. + + + + Occurs when a link in the pdf document is clicked. + + + + + Called when a link is clicked. + + The event args. + + + + Rotate the PDF document left. + + + + + Rotate the PDF document right. + + + + + Called when the zoom level changes. + + The new zoom level. + The location to focus on. + + + + Scroll the PDF bounds into view. + + The PDF bounds to scroll into view. + + + + Scroll the client rectangle into view. + + The client rectangle to scroll into view. + + + + Releases the unmanaged resources used by the and its child controls and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Specifies the rotation of pages shown in the PDF renderer. + + + + + Rotates the output 0 degrees. + + + + + Rotates the output 90 degrees. + + + + + Rotates the output 180 degrees. + + + + + Rotates the output 270 degrees. + + + + + Control to host PDF documents with support for printing. + + + + + Gets or sets the PDF document. + + + + + Get the that renders the PDF document. + + + + + Gets or sets the default document name used when saving the document. + + + + + Gets or sets the default print mode. + + + + + Gets or sets the way the document should be zoomed initially. + + + + + Gets or sets whether the toolbar should be shown. + + + + + Gets or sets whether the bookmarks panel should be shown. + + + + + Gets or sets the pre-selected printer to be used when the print + dialog shows up. + + + + + Occurs when a link in the pdf document is clicked. + + + + + Called when a link is clicked. + + + + + + Initializes a new instance of the PdfViewer class. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Page {0}. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized string similar to Could not save the PDF file to the specified location.. + + + + + Looks up a localized string similar to Could not save file. + + + + + Looks up a localized string similar to PDF Files (*.pdf)|*.pdf|All Files (*.*)|*.*. + + + + + Looks up a localized string similar to Save As. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + diff --git a/packages/PdfiumViewer.2.13.0.0/lib/net20/nl/PdfiumViewer.resources.dll b/packages/PdfiumViewer.2.13.0.0/lib/net20/nl/PdfiumViewer.resources.dll new file mode 100644 index 0000000..05581f7 Binary files /dev/null and b/packages/PdfiumViewer.2.13.0.0/lib/net20/nl/PdfiumViewer.resources.dll differ diff --git a/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/.signature.p7s b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/.signature.p7s new file mode 100644 index 0000000..27bba5b Binary files /dev/null and b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/.signature.p7s differ diff --git a/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/Build/PdfiumViewer.Native.x86_64.no_v8-no_xfa.props b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/Build/PdfiumViewer.Native.x86_64.no_v8-no_xfa.props new file mode 100644 index 0000000..9973d72 --- /dev/null +++ b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/Build/PdfiumViewer.Native.x86_64.no_v8-no_xfa.props @@ -0,0 +1,9 @@ + + + + + x64\pdfium.dll + Always + + + diff --git a/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/Build/x64/pdfium.dll b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/Build/x64/pdfium.dll new file mode 100644 index 0000000..358f93f Binary files /dev/null and b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/Build/x64/pdfium.dll differ diff --git a/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256.nupkg b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256.nupkg new file mode 100644 index 0000000..ae7c12a Binary files /dev/null and b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256.nupkg differ diff --git a/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll new file mode 100644 index 0000000..358f93f Binary files /dev/null and b/packages/PdfiumViewer.Native.x86_64.no_v8-no_xfa.2018.4.8.256/content/x64/pdfium.dll differ diff --git a/temp_x86.zip b/temp_x86.zip new file mode 100644 index 0000000..592a1a1 Binary files /dev/null and b/temp_x86.zip differ