From d275ed52e4ec09d713b10c553ebd82a57a09d669 Mon Sep 17 00:00:00 2001
From: abv <abv@opencascade.com>
Date: Tue, 3 Jan 2017 14:15:03 +0300
Subject: [PATCH] 0028329: Samples - add sample for use of OCCT from Visual
 Basic app

WinForms-based VB sample is added as copy of CSharp sample in samples/CSharp/WinFormsVB
---
 .gitattributes                                |    6 +
 samples/CSharp/CSharp.sln                     |   24 +
 .../CSharp/WinFormsVB/AboutDialog.Designer.vb |  114 ++
 samples/CSharp/WinFormsVB/AboutDialog.resx    | 1100 +++++++++++++++++
 samples/CSharp/WinFormsVB/AboutDialog.vb      |    3 +
 samples/CSharp/WinFormsVB/App.config          |   29 +
 samples/CSharp/WinFormsVB/Form1.Designer.vb   |   20 +
 samples/CSharp/WinFormsVB/Form1.resx          |  238 ++++
 samples/CSharp/WinFormsVB/Form1.vb            |  995 +++++++++++++++
 samples/CSharp/WinFormsVB/Form2.Designer.vb   |    7 +
 samples/CSharp/WinFormsVB/Form2.resx          |  120 ++
 samples/CSharp/WinFormsVB/Form2.vb            |  859 +++++++++++++
 .../CSharp/WinFormsVB/IE_WinFormsVB.vbproj    |  197 +++
 .../WinFormsVB/MaterialDialog.Designer.vb     |    5 +
 samples/CSharp/WinFormsVB/MaterialDialog.resx |  120 ++
 samples/CSharp/WinFormsVB/MaterialDialog.vb   |  229 ++++
 .../My Project/Application.Designer.vb        |   38 +
 .../WinFormsVB/My Project/Application.myapp   |   10 +
 .../WinFormsVB/My Project/AssemblyInfo.vb     |   35 +
 .../My Project/Resources.Designer.vb          |   63 +
 .../WinFormsVB/My Project/Resources.resx      |  117 ++
 .../My Project/Settings.Designer.vb           |   73 ++
 .../WinFormsVB/My Project/Settings.settings   |    7 +
 .../CSharp/WinFormsVB/My Project/app.manifest |   48 +
 .../WinFormsVB/TransparencyDialog.Designer.vb |    5 +
 .../CSharp/WinFormsVB/TransparencyDialog.resx |  120 ++
 .../CSharp/WinFormsVB/TransparencyDialog.vb   |   97 ++
 samples/CSharp/run_winformsvb.bat             |    3 +
 28 files changed, 4682 insertions(+)
 create mode 100644 samples/CSharp/WinFormsVB/AboutDialog.Designer.vb
 create mode 100644 samples/CSharp/WinFormsVB/AboutDialog.resx
 create mode 100644 samples/CSharp/WinFormsVB/AboutDialog.vb
 create mode 100644 samples/CSharp/WinFormsVB/App.config
 create mode 100644 samples/CSharp/WinFormsVB/Form1.Designer.vb
 create mode 100644 samples/CSharp/WinFormsVB/Form1.resx
 create mode 100644 samples/CSharp/WinFormsVB/Form1.vb
 create mode 100644 samples/CSharp/WinFormsVB/Form2.Designer.vb
 create mode 100644 samples/CSharp/WinFormsVB/Form2.resx
 create mode 100644 samples/CSharp/WinFormsVB/Form2.vb
 create mode 100644 samples/CSharp/WinFormsVB/IE_WinFormsVB.vbproj
 create mode 100644 samples/CSharp/WinFormsVB/MaterialDialog.Designer.vb
 create mode 100644 samples/CSharp/WinFormsVB/MaterialDialog.resx
 create mode 100644 samples/CSharp/WinFormsVB/MaterialDialog.vb
 create mode 100644 samples/CSharp/WinFormsVB/My Project/Application.Designer.vb
 create mode 100644 samples/CSharp/WinFormsVB/My Project/Application.myapp
 create mode 100644 samples/CSharp/WinFormsVB/My Project/AssemblyInfo.vb
 create mode 100644 samples/CSharp/WinFormsVB/My Project/Resources.Designer.vb
 create mode 100644 samples/CSharp/WinFormsVB/My Project/Resources.resx
 create mode 100644 samples/CSharp/WinFormsVB/My Project/Settings.Designer.vb
 create mode 100644 samples/CSharp/WinFormsVB/My Project/Settings.settings
 create mode 100644 samples/CSharp/WinFormsVB/My Project/app.manifest
 create mode 100644 samples/CSharp/WinFormsVB/TransparencyDialog.Designer.vb
 create mode 100644 samples/CSharp/WinFormsVB/TransparencyDialog.resx
 create mode 100644 samples/CSharp/WinFormsVB/TransparencyDialog.vb
 create mode 100644 samples/CSharp/run_winformsvb.bat

diff --git a/.gitattributes b/.gitattributes
index ee61c69baf..9b9a06f2b5 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -53,13 +53,19 @@ adm/upgrade.dat eol=lf
 *.cmd       eol=crlf
 *.rc        eol=crlf
 *.cs        eol=crlf
+*.vb        eol=crlf
 *.def       eol=crlf
 *.iss       eol=crlf
 *.ini       eol=crlf
 *.lng       eol=crlf
+*.myapp     eol=crlf
 *.vcproj    eol=crlf
+*.vbproj    eol=crlf
 *.csproj    eol=crlf
 *.vcxproj*  eol=crlf
+*.config    eol=crlf
+*.settings  eol=crlf
+*.manifest  eol=crlf
 *.sln       eol=crlf
 *.res       eol=crlf
 *.resx      eol=crlf
diff --git a/samples/CSharp/CSharp.sln b/samples/CSharp/CSharp.sln
index e67bae1fa2..318de37b2f 100644
--- a/samples/CSharp/CSharp.sln
+++ b/samples/CSharp/CSharp.sln
@@ -6,38 +6,62 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IE_WinForms", "WinForms\IE_
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OCCTProxy", "OCCTProxy\OCCTProxy.vcxproj", "{969912D9-78E7-4AB8-B4FF-6B52B4F03991}"
 EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "IE_WinFormsVB", "WinFormsVB\IE_WinFormsVB.vbproj", "{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
 		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
 		Release|Win32 = Release|Win32
 		Release|x64 = Release|x64
+		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|Win32.ActiveCfg = Debug|x86
 		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|Win32.Build.0 = Debug|x86
 		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|x64.ActiveCfg = Debug|x64
 		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|x64.Build.0 = Debug|x64
+		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|x86.ActiveCfg = Debug|x86
+		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|x86.Build.0 = Debug|x86
 		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|Win32.ActiveCfg = Release|x86
 		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|Win32.Build.0 = Release|x86
 		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|x64.ActiveCfg = Release|x64
 		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|x64.Build.0 = Release|x64
+		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|x86.ActiveCfg = Release|x86
+		{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|x86.Build.0 = Release|x86
 		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|Win32.ActiveCfg = Debug|x86
 		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|Win32.Build.0 = Debug|x86
 		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|x64.ActiveCfg = Debug|x64
 		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|x64.Build.0 = Debug|x64
+		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|x86.ActiveCfg = Debug|x86
+		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|x86.Build.0 = Debug|x86
 		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|Win32.ActiveCfg = Release|x86
 		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|Win32.Build.0 = Release|x86
 		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|x64.ActiveCfg = Release|x64
 		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|x64.Build.0 = Release|x64
+		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|x86.ActiveCfg = Release|x86
+		{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|x86.Build.0 = Release|x86
 		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|Win32.ActiveCfg = Debug|Win32
 		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|Win32.Build.0 = Debug|Win32
 		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|x64.ActiveCfg = Debug|x64
 		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|x64.Build.0 = Debug|x64
+		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|x86.ActiveCfg = Debug|x64
 		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|Win32.ActiveCfg = Release|Win32
 		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|Win32.Build.0 = Release|Win32
 		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|x64.ActiveCfg = Release|x64
 		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|x64.Build.0 = Release|x64
+		{969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|x86.ActiveCfg = Release|x64
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Debug|Win32.ActiveCfg = Debug|x64
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Debug|x64.ActiveCfg = Debug|x64
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Debug|x64.Build.0 = Debug|x64
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Debug|x86.ActiveCfg = Debug|x86
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Debug|x86.Build.0 = Debug|x86
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Release|Win32.ActiveCfg = Release|x64
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Release|x64.ActiveCfg = Release|x64
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Release|x64.Build.0 = Release|x64
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Release|x86.ActiveCfg = Release|x86
+		{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/samples/CSharp/WinFormsVB/AboutDialog.Designer.vb b/samples/CSharp/WinFormsVB/AboutDialog.Designer.vb
new file mode 100644
index 0000000000..3b7bbae8f9
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/AboutDialog.Designer.vb
@@ -0,0 +1,114 @@
+﻿<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class AboutDialog
+    Inherits System.Windows.Forms.Form
+
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    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.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(AboutDialog))
+        Me.label4 = New System.Windows.Forms.Label()
+        Me.label3 = New System.Windows.Forms.Label()
+        Me.myVersion = New System.Windows.Forms.Label()
+        Me.label1 = New System.Windows.Forms.Label()
+        Me.button1 = New System.Windows.Forms.Button()
+        Me.pictureBox1 = New System.Windows.Forms.PictureBox()
+        CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
+        Me.SuspendLayout()
+        '
+        'label4
+        '
+        Me.label4.Location = New System.Drawing.Point(-6, 191)
+        Me.label4.Name = "label4"
+        Me.label4.Size = New System.Drawing.Size(296, 24)
+        Me.label4.TabIndex = 11
+        Me.label4.Text = "http://www.opencascade.com"
+        Me.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+        '
+        'label3
+        '
+        Me.label3.Location = New System.Drawing.Point(10, 159)
+        Me.label3.Name = "label3"
+        Me.label3.Size = New System.Drawing.Size(280, 23)
+        Me.label3.TabIndex = 10
+        Me.label3.Text = "Copyright (C) 2004-2013, Open CASCADE S.A.S"
+        Me.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+        '
+        'myVersion
+        '
+        Me.myVersion.Location = New System.Drawing.Point(2, 23)
+        Me.myVersion.Name = "myVersion"
+        Me.myVersion.Size = New System.Drawing.Size(288, 16)
+        Me.myVersion.TabIndex = 9
+        Me.myVersion.Text = "Open CASCADE Technology "
+        Me.myVersion.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+        '
+        'label1
+        '
+        Me.label1.Location = New System.Drawing.Point(2, 0)
+        Me.label1.Name = "label1"
+        Me.label1.Size = New System.Drawing.Size(288, 24)
+        Me.label1.TabIndex = 8
+        Me.label1.Text = "Import/Export Sample,"
+        Me.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+        '
+        'button1
+        '
+        Me.button1.Location = New System.Drawing.Point(82, 239)
+        Me.button1.Name = "button1"
+        Me.button1.Size = New System.Drawing.Size(128, 24)
+        Me.button1.TabIndex = 7
+        Me.button1.Text = "OK"
+        '
+        'pictureBox1
+        '
+        Me.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+        Me.pictureBox1.Image = CType(resources.GetObject("pictureBox1.Image"), System.Drawing.Image)
+        Me.pictureBox1.Location = New System.Drawing.Point(45, 55)
+        Me.pictureBox1.Name = "pictureBox1"
+        Me.pictureBox1.Size = New System.Drawing.Size(196, 102)
+        Me.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
+        Me.pictureBox1.TabIndex = 6
+        Me.pictureBox1.TabStop = False
+        '
+        'AboutDialog
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 262)
+        Me.Controls.Add(Me.label4)
+        Me.Controls.Add(Me.label3)
+        Me.Controls.Add(Me.myVersion)
+        Me.Controls.Add(Me.label1)
+        Me.Controls.Add(Me.button1)
+        Me.Controls.Add(Me.pictureBox1)
+        Me.Name = "AboutDialog"
+        Me.Text = "About Import/Export Sample"
+        CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+
+    End Sub
+    Private WithEvents label4 As System.Windows.Forms.Label
+    Private WithEvents label3 As System.Windows.Forms.Label
+    Private WithEvents myVersion As System.Windows.Forms.Label
+    Private WithEvents label1 As System.Windows.Forms.Label
+    Private WithEvents button1 As System.Windows.Forms.Button
+    Private WithEvents pictureBox1 As System.Windows.Forms.PictureBox
+End Class
diff --git a/samples/CSharp/WinFormsVB/AboutDialog.resx b/samples/CSharp/WinFormsVB/AboutDialog.resx
new file mode 100644
index 0000000000..5a54757217
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/AboutDialog.resx
@@ -0,0 +1,1100 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        Qk1W5AAAAAAAADYAAAAoAAAAwgAAAGQAAAABABgAAAAAAAAAAAAgLgAAIC4AAAAAAAAAAAAA////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////AAD/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////8AAP//////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////wAA////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////AAD/////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////8AAP//////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////wAA////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        AAD/////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////8AAP//////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////wAA////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////AAD/////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////////////8AAP//
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////wAA////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////AAD/////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////8AAP//////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////////////wAA////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////AAD/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////8AAP//////////////////////////////////////////////////
+        /////////////////9Px9szm7P/8/PT19fr7+/////////7///7/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////wAA////////////////////////////////////////////////////////////////////qerz
+        NZam19ve5ebn5ufp+Pn5/////////////v//////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////AAD/////////////
+        ///////////////////////////////////////////////////////k/v9FpbGAoKnh3d/R1dfp6ev+
+        /f7////////9////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////8AAP//////////////////////////////////
+        //////////////////////////////////z//37U3zx8is7M0c7O0Nvc3vf3+P7///7/////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////wAA////////////////////////////////////////////////////////
+        ///////////+////v/P7KIqYjaar0M7Rzc/U6err////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        AAD///////////////////////////////////////////////////////////////////////7j//9L
+        tcNMeoTJy83FyMva2t35+fn////+////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////////////7/////
+        /v////7///////////////////////////////////////////////////7////+/v//////////////
+        /////////////////////v/+//7//v////////////////////////////////7/////////////////
+        //7////////////////+//7+///////+///////////////////+//79///+/////v//////////////
+        /////////////////////v/////////////////////////////////////////////////////+//7+
+        //7///7////////////////////////////////+///+///+///+/v7+/v7/////////////////////
+        /////////////////////v/9/v/+/////////////v7//v7////////////////+//7+/v7/////////
+        //////////////////////////////////////////////////////////8AAP//////////////////
+        ///////////////////////////////////////////////////+/vn+/5bm8Cd4h52pssjHysnNz+zs
+        7f7///7/////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////9ve36uvsa+ytenr7P///////////////+vr7bO1t7CytbCz
+        t6+ytbCztrCztrCzt7Cztq2ws7y/w/j6+/////7//v////39/c3O0pmcoISHjIyPla+yturs7f////7+
+        /v7+/////87R06uusLW3uvT19f///////////////87R1Kyvsba5u/Dy8////9zg4qyvsLW4ue7u8P//
+        //////7//////8nMza2usLG0ue7w8v////3+//////////T19r7CxZSXnIOGjIyPlK6xtebn6f//////
+        /v///////////8THyq2wtK+zt7G0t6+zt7CytrCztrCzt6yws8/R0v////3+/////////9/h4qmssIqN
+        koWHjZaan8THyfn5+f////////////7+/v7+/v////////Hy8r2/wZOXmoOIjIyQlamtsd3e4P//////
+        //7////+///+/v///////////8zQ0KqusLW3u/X09v//////////////////////////////////////
+        /////////////////////////////////////wAA////////////////////////////////////////
+        //////////////////////////////////7/1P3/PaOzU3uEwsXIv8TI29zf+/r6////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////o6erKjAzMjc7x8nL////////////////x8rOOj9DMzg8MzY6LjI3LzM4LjM3LjM3LzQ4
+        KCwwTlFV8PPz////////7O3tfoSHPUFFLzQ3LTE1LjM2NDg7WFphvcDD////////////f4OHKC0xQ0ZM
+        4OHj////////////////gISIKS4xQ0dM293f////p6quLDA0QERI0NLV///////+////3uDiRkxQMDQ4
+        NzxC1tnb///////+////z9DSZ2lvOD5BLzM4LjI2LjM2Mzk6U1dcr7G1/////////////v7+Z2twLzQ3
+        NDk9MDQ4LzQ3LzQ4LzM3MDU4JiwvfoKG/////////Pz9n6KlSk9TMjY6LjM2LTI1LjM3OT5BcHd73t/g
+        ///////////////+////v8LEXGNmNjxALzM3LjE2LTQ2Mzk8SU1RgoaK2Nrc///////+/////v7+////
+        ////f4OFJy0xQERJ4uPk///////+////////////////////////////////////////////////////
+        ////////////////AAD/////////////////////////////////////////////////////////////
+        ///////+//////7v//951uMoa3mnsbS9wcTMztHt7+/+////////////////////////////////////
+        //////////////////////////////////////////////////////////////////////+pq64zODw7
+        P0PKzc7////////+/v7////KzM9CRko6P0JLT1NbX2NYXGFXXF9ZXWFZXWFSVltydXrz9fX////w8fJr
+        bnMxNjo2PD5PVVhpbnJbYGU6PkMzODxBREnJy83///////+Gio4wNTlKTlPg4+X////+/v7///////+E
+        iI0xNjlLUFXe3+D///+srbIzODtHTE/U1dj////////8/P16foE0OTw7P0NARUrY2tv////////MztBI
+        TFAyNzo3O0BTV1pscHReY2c9QUc0ODw2Oz6ipqf////////+//9ucXc2Oj1CR0lXXF9aXWBYXWFYXGFY
+        XWBQVVqYnJ/////7/PyQk5Y0OD00OT1AREhhZWdrbnNPVVc2Oz4zNztVWV3g4uP///////////+0uLk+
+        QkcxNjk8P0JaX2Jpb3JbYGQ+QkY0OTwyNzpNUVbS1Nb///////////////////+EiIowNThITlDj5eX/
+        ///+/v7///////////////////////////////////////////////////////////////////8AAP//
+        //////////////////////////////////////////////////////////////////3//v/+//7//7j0
+        /iuOnmqIj8XEyMLFyODi4/39/P//////////////////////////////////////////////////////
+        /////////////////////////////////////////////////6mqrzM3PDo/RMrMzv////7///7+/v//
+        /8rMz0BFSTY6Ppean/Hy8+3u8O3v8O3v8e3u8O3t7/Dx8v3+/v///5OWmjE0Ozc8P36DiOHi5P////Hx
+        86Smqj9DRjA1N2Fma/P09P///4SIjDE0OUtPU+Dj5f/////+/v///////4OIjjI2OUtQVd7f4P///6uu
+        sTM5PEhNUNPV2P///////7q9wDg+QTxAQzw/Q0BESdra3P////L09GFlajM4Ojg8P46RleXl6P////T0
+        97C0uEVLTjQ4PENHTNbY2v///////29yeTE1OlxgZt/i5u/w8uzu8O3u8e7v8ezu7/X19v///8HDxTk9
+        QTU6PVFWWb7Cxvb2+f///+Hi5IGFiTg8PzA1OXl7f/z7/P///+Hh5EhPUjQ6PkZJTq2wtPDw8v////Dx
+        88LEx2RpbDk8Pjo+Qra6vf////7+/v///////////4SIijI1OUlNUeTl5///////////////////////
+        /////////////////////////////////////////////////////wAA////////////////////////
+        /////////////////////////////////////////v///v/+/v7/////6P3/Zs/bJWtzprK0wsLI0dPX
+        8vT0/////////v//////////////////////////////////////////////////////////////////
+        ////////////////////////////p6uuMzc7Oz9EysvO//////////7+////yszRQUVLNTk9oKSm////
+        ////////////////////////////6OnrVFdcMjc6WV5k9vb2/////v//////////f4KGKzE1UVZb3N3f
+        ////hYmNMTU6S05S4ePl////////////////hIiNMTY4Sk9U3t/h////q66xNDg8SExQ1NXY////8PLz
+        Wl9kNjs+Oz9CPD9EQEVJ2drb////v8PENjs+Njo/eXyA/f7+////////////////q6yvNjxAMTc7kJOY
+        ////////bnJ2MTU4X2Rn8fL0////////////////////////////dXh+Mzg8PUFGv8HE/////////v//
+        ////+fr6ZGhsMzg8QUdM1tnb////lpmdMjc7OT5BpKir////////////////////tbe6Njs/PEFGvL7B
+        /////v7+/v//////////hIiLMTU6SU1S4+Pn///////+////////////////////////////////////
+        ////////////////////////////////AAD/////////////////////////////////////////////
+        /////////////////////////v79///////5//+t9PsiiZVui5LEw8bCxMff4uP8/f3+///9///+///+
+        ////////////////////////////////////////////////////////////////////////////////
+        //////+nq64zODs6P0PKzM7////////////////LzNFBRko1Oj2ipqj////////////////////////+
+        ///////O0NE6P0MzOTyQk5n////////////+/v7////X2dqtr7Lg4eL7/P3///+EiYwwNTlMUFTo6+z/
+        //////////////+IjJExNjhMT1Td3uH///+qrbI1OTxGS1DU1tn///+WmZw0OD0+Q0VgZGk+QkVARUnZ
+        29z///+QlJc0ODs7P0PDxcf////////////////////u7u9OU1c0OTxkaW33+Pn///9ucnYwNThdYmfu
+        7vH//////////////////v/////y8vNRVFkzNztgZWn09fb////+/v7///////////+qrbEzOTszNzyw
+        s7X+//9oa28wNDhSVlrp7O3////////U1tmfo6inqq99gIU5PUE7QUa7vcL///////////////////+H
+        i44wNjlJT1Ln6ev/////////////////////////////////////////////////////////////////
+        //////////8AAP//////////////////////////////////////////////////////////////////
+        ///+//7//////////97+/1jF0zFse7O4ub/AwsvP0+/v8f//////////////////////////////////
+        /////////////////////////////////////////////////////////////////6errjM4Ozo/Q8rM
+        zv///////////////8vM0UFGSjg9QG90d6Snq56jp56ipp6ipqChpp+jp+vs7f///7W5vDQ5PTQ4PKyv
+        sf////////7+/v/////+/v///////////////////4WJjDI4O0RITJGVmaGlqZ+ipp+jpqGlqWNnazU6
+        PUtPVN7f4f///6qtszQ4PEdMUNvd39vc3kNISzE2OXR3fa+0tzY5PUBFSdrb3P///3t+gjE3OklOUtja
+        3P////////////////////f3+GptcjM4O1JWW/Dx8f///25ydjA1OV1hZ+7u8f//////////////////
+        /////9ze4ERITDE1OX2AhP///////////v///////////83O0Ds/RDM4OpqdoO3v8VVaXjE1OGdscf//
+        /////////5yeoigsMTI3OzM6PDY7PzY9Qbe6vv////////7+/v////n5+mpvcjQ4Oz9ESMfKzP//////
+        /////////////////////////////////////////////////////////////////////wAA////////
+        /////////////////////////////////////////////////////////v///v///////f/////+9v7/
+        ofD6IImZboWRwcLHwcLF3uDi/Pz9////////////////////////////////////////////////////
+        ////////////////////////////////////////////p6uuMzk7Oj9DyszO////////////////y8zR
+        QUZKPEBDNDk8KS0xKS8zKy8yKi8xKS4wKi8z0dPU////sLK2NDg8Mzc7trm7/////////////v7+/v7+
+        /f/+/v///v7+////////hYqONjo+PEBDLTE0Ky8zKi4yKi8yKS4zNjo+OT1BSlBU3t/g////qq2xMzk7
+        SU5S2dvgenyAMTY5QEVJ1tfaur3ANDg8QEVJ2drb////eHt/MDY5TVJW3d/h//////7/////////////
+        +fr7cXZ6Mjc7TlNX7/Dw////bnJ2MTY5XWFo7u7x/////////////////v/+////1tjbQkdLMDU4hYiM
+        ///////////+////////////1NXXQERJMzY6lZmd5ujqUVZaMjQ4b3R5////////////tLe7WV5jYWZq
+        Y2ZrY2ZsYmdrxsrN///////+////////q66xODtAOj9CNDk9aW1w8/T1////////////////////////
+        ////////////////////////////////////////////////AAD/////////////////////////////
+        ///////////////////////////////////////////////+///9//7////f+/9ez9wlaXSgrLK+wMLO
+        z9Hu7vD////////+/v7/////////////////////////////////////////////////////////////
+        //////////////////////+nq64zOTs7P0PKzc/////////////////LzNFCRko6P0NUWV5vcnZrb3Jr
+        b3NqcHRrb3Nrb3Te4eL////CxMY2Oz8zNzunqa3////////+///+//////////////////////////+F
+        iY00OD1AREllam5scHRrb3Nrb3RucnVPU1Y3Oz9LUFTe3+H///+qrrIzODxQVFiPkphBRUkyNjqMj5P/
+        //+xs7Y0ODxARUnZ2tv///+ChYkyNzpFSk7U1tj////+/v7////////////29vdjaGwzODtWW2Dy8/P/
+        //9ucncwNTlcYWbu7vH////////////////9/v7////l5ulHS08xNjl4e3////////////7/////////
+        ///Hycw4PEEyNzqfoqX09fdYXGAwNThnam/////////////9/f38/f38/f3////////+///+//7///3/
+        ///////k5eZNU1Y3PEBESU0/REg1Oj2jpqj/////////////////////////////////////////////
+        //////////////////////////8AAP//////////////////////////////////////////////////
+        //////////////////7+//3///////7//v///vj+/qv1/SeWo19/hcLCxMDCxt3e3/r6+v7/////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /6errjM4Ozo/Q8rNzv///////////////8vM0UFGSjU6Ppyfo/v8/fj5+vj5+/f5+/j5+fn5+f3+/v//
+        /9rb3UJHSzI4OoGEif///////////v///////9vc3tXW2vT19f39/v///4WJjDA2OktPU9/g4/n6+/j5
+        +vj5+vr7+4WIjjE2OUpOVN3f4v///6qssjY7P0BFSUJGSTY7PlNWW+nq7P///6+xtTM5O0BESdja3P//
+        /6GlqTM4Ozg7P7W3uf////////7+/v7+/v///+Pk5UdLUDQ5PG90ePv7/P///25ydzA1OF1hZu7u8f//
+        //////////7///7+/v////n5+VxfZTI3O1ZbX+3u7/////7//////////////5mdoDM4OzY6P7u/wf//
+        /25zdzA2OUxQVOLk5v///////////////////+zs7eTn6Pj4+f79/v3////////+/3+ChjM4Oz5CRbi8
+        wHB1ejA2OkpNUtze3///////////////////////////////////////////////////////////////
+        /////wAA////////////////////////////////////////////////////////////////////////
+        ////////////////////6f3/adbkH216lqerwMHEyszO7Ozt/v///////v7+////////////////////
+        /////////////////////////////////////////v//////////////////rrG1Mzg7Oj9C0tTW////
+        ////////////yszQQUVKMzk9o6ep////////////////////////////////9fb3aGtvMDY4SE1R3N3f
+        ////////////9PX2ZGZrODxBY2hv4+Tm////homMMDU5S09U5ubo////////////////hYmPMjU4S1BU
+        3t/h////q66yNzxBPUFEOz9COD1AsbS3////////rrG0Mzg7QERJ2dvc////2NrbPkNHNDo+XmNm7e7w
+        /////////////v//io6RNTo+Mzg9pqqs////////bXJ4MTU5XWJm7e7w/////v7+/v//////////////
+        ////kJOWMTU6NztAoaSn////////////////5eboUVZaMTY5TlNY5ujp////q6+xMzc8NzxAiI2Q/f7/
+        ////////////+Pj5bXBzP0RJZ2tw4ePk////////v8HDOT1DMzc6eHt+////xsrNO0FFMjc5eX2A/Pz8
+        /////////////v///v//////////////////////////////////////////////AAD/////////////
+        ///////////+/v7////////////////////////////////////////////////////////+/v7///7+
+        /v+39v83o7NHdH69vsLAwsbY2dz3+Pj////+///////+/v7/////////////////////////////////
+        ///////////////////////W2dy7vsG+wcXAw8iGio82Oz87QESeoKXCxMe+wMO/wcT5+fnNztNBRUs1
+        OkB/g4fCxcm+wMO+wcS+wcS+wMS7vcHS1Nj///////++wMM6P0Q1OTxWWmCwsrbc3eDFyMtzdnw3PUEv
+        NDdtcXb3+Pj///+Hio0xNjpKT1Ph4uT///////////////+Eh40xNTlKT1Te3+L///+rrrE3PD89QkU0
+        Oj1zdXz6+vv///////+vsrQ1ODxARUnY2tv////8/f2Hio8xNjo2Oz1kZ224ur3c3eDIyc6BhIo8QUUy
+        NzpeYGTs7O////////9tcnYwNTddYWbu7vH//////////////v/////+/v7////e4OBOUlY0ODxARUmL
+        j5LMz9La292xsrZaX2E3Oz8zNzydoqL////////y8/NkaG0zNzs6PkJ8gIPCxcna3N/Exsl1eHw5PkEx
+        NThjZWj19/f////w8PFcX2MzNztGSk/V19r///////99gIQ0OTw3PEG4ubz/////////////////////
+        //////////////////////////////////////////8AAP//////////////////////////////////
+        //////7///7///////////////////////////////////////////7//v///ur+/4Dl8Bp0goKZnr/C
+        xMfIzOPl5vv8/P//////////////////////////////////////////////////////////////////
+        /3x/hiowMzI3OjI4OzU5PTg9Pzc9QDU5PDM4OzI2OjM6Pt/g4NDR1TxBRDU6PjY6PjQ4OzI3OzM4OzI4
+        OzI4OikuMnJ1ev///////////5+jpjg9QS8zNzM4PT1BRTk9PzI2OTI2OlBUWNvd3v///////4KFiSsw
+        M0RJTeDh5P/////+/v///////4CEiSswNEVKTtze4P///6irrzI2OjY5PkFGSdXW2f///////v///6yw
+        sS0yNjo/RNfZ2v///////+zu72tvczE2OjE1OzQ5PT5DRTc9QDA1ODA1OFJVWtPU1/////////7//2ds
+        cSovMldbX+3t7/////////7+/v/+/v///////////////7/Bw0NITDE1OTA1ODo+QT1CRjQ5PTA1OTQ5
+        PYaKjfn5+v////3//////93f4FpeYjA0Ny80Nzc8Pz5ERzg8PzE2OTE2OUtQU9DT1v////z8/Y6SlC0y
+        Ni80OJGUlv////3//////9vc3kNITC0xNFFWWubo6f///////v//////////////////////////////
+        /////////////////////wAA/////////////////////////////v///////////////////v79+vz8
+        +/39/v///////////////////////////v///v///v/+xfr/R7vML2l0prG2wcDDy87R6+3u///+////
+        ////////////////////////////////////////////////////////////kZWZS1BVUldbU1hbU1dc
+        U1dbU1dcU1dcU1hcUldaVVpe5OTm1dfaVlpeUVVaU1hcU1dbU1dcU1dbU1dbU1ZbS09UiIyP/////v/+
+        ////////u7/Ca25zSk9TQkZKQ0hNTlNYgoSI3+Hi////////////k5aaSExPX2Rn5eXn////////////
+        ////k5aaR0xQX2Jn4eLl////s7a7TVJWTVFVnaGk/////v//////////ubu8SU5SVFld3N7f///////+
+        ////8fLzmpygWl9iRktQQUZLRUlNVFddiIuQ4ePk////////////////jJCUXWBjfoKH8fLz/////v//
+        //7+/////////////////v7+////09bXd3t/TVJXQkhMQUZJSU1RZWdsr7K1+/v7///////+/v///v7/
+        ////6evsjpKWVVpeRUpPQUZLREhNUFVafICC2Nnb////////2tzeV1tgTVFVZWht7Ozt//////////7+
+        ////mJygTFBUSU5UnKCj//7///////7/////////////////////////////////////////////////
+        AAD////////////////////////+//////7/////+vvy8PPm5+rk4+Tl4ePr5ebs6ens7u7z9/b9/f3/
+        ///////////+///9/v7///70/f+Z8/0olqZLcny2ur/AwsLV2Nr19PT/////////////////////////
+        ///////////////////////////////+///+///z9fXq6+7q7O7r7O7r7O7q7O7r7O/r7O/r7e/q7O7r
+        7O78/Pz5+vvr7O7q7O7q7O7r7O/r7O/r7O/r7O/r7O7p6uzw8vP///7+/v7+/v/////////+///d3+HK
+        zM/Oz9Pm5+r////////+///+//7////x8/Xq6+vr7e/7/P3///7+/v7+/v7+/v7y8/Xo6evt7vD7/P3/
+        /v729/jp6+3p6+78/f7////////9/v7+/v739/fq6uzr7O37+/v+/v79//7////////////y9PXV1tnJ
+        y8/R0tXt7fD////////////+///+/v7///78/v/9/v38/v7////+/v/+/v7////+/v7////////////+
+        /v7////////////k5ujO0NLKzM7Z2937/P3////////9//7+//7//v7+///+/v7////////w8PLR09fJ
+        zM/P0NPo6ez////////////////y8/Tm6Onq6+309fb////+//7//v7+/v7////8/f7q6+zp6uzq6+z9
+        /f3///7///7///////////////////////////////////////////////8AAP////7///3///7///7/
+        //7//////+j3+6fn8XTW42DK1lu8yFu1wGKttoettq67wNHN0NzY3OHi4+/v7/n7+v/////////+/v7/
+        /////+P5/3fi8Bt4hXCHkbu+v8HExd7g4fz7+/////////////7/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////7/////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////wAA///////+/f///f7+///////+1fb9duP1MNXqE8/i
+        E9PpKdToK8/jLcPVKKy6NJWhYZeilaewv8HG0dHT3dve6Orr9/n5/v///v//////+/7+vPf/T8fZI2Zz
+        lKKnuL3BxMnN5+jq/v/+/////v//////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////AAD///////7//////v/+//7T+Pxw5fUuxdQytcNjucd/y9mH2OWB4e9r4/Jf3vJL
+        1OcruMkhlqNFh5CKoKS/wMTMz9DZ3N3s7e/8/Pv////////n+v2b8P0qo7E9a3Wwtbm/vcHJ0NLt7u7/
+        ///+////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////////////8AAP//
+        //////3//////vT8/5Hq+S2ou06Xoae4vsjDx9fT1Ovh5e3s79zu88Pt86Ht9Xjm9VXa7i61xySHlFmG
+        kZmmrcfGyNHR1ODi5PX3+P///////9n5/3rn8x6GlVt5gba2vLzBxdfZ2/f39/////7+/v//////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////wAA/////////v/+//7/0Pj/TL7O
+        QnqEvbzAyMbH1dbW7O/w/vz9//////7///7+/Pv94PX5su74iOn7V9jqKau8JHiFbYqSuLu/ysfN2djb
+        7vDw/f79/P//yPj+Y9jmHHF/co2UvLzBvsTI3+Dj+/v6////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////AAD////+/v7////1/f+N6fUihJORn6TJxcjHzM/o6Or///7/
+        /////////////////////////v3j+Pqw7/l25/lJyNkegpBKd32mq6/Cw8fL0NTk5ub8+vrw+/609P9B
+        wNAlZ3GWn6W8u8DEx8vj6Of9/f7///////7//////////v7//v/////+///////+///////////+////
+        ///+/////v/////////9///////////+///////+///////////////////////////////////////+
+        /v7//////////////////////////////////v7+///////+///+/v7////////////////////+////
+        ///////+////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////8AAP///////v///+D9/2bN2y90gbC4u7+/w9DT1fPz9P//////////////////////////
+        //////////v9/sv0+pTt+lrb7CGbqi1weIybosS/xMjKzOPj5Pn39uL4/ZPu/C2mtDVnc6mtsr28wM/P
+        0uzt7v3+/v////7+/v3///3+//7+//7+/v7///7///3///7///////7///////////z///3///7///7/
+        //7///////7///7///7///3////+/v/////+/v7+/v7/////////////////////////////////////
+        //////////3///7////+/v////3//v7////+/v7+/v////////7///z+/v////7+/v////7///7/////
+        //////7///7/////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////////////wAA/////v//
+        ////3v3/X8DPOnJ/tbq+vb/D1NbY+Pj4/////////////////////////////////v7/////////5/v9
+        s+/7duf3LLDBI2p2g5KXvr7Bx8fL3t7f8fHz2Pf7guv5I5WmQ253qrO3vL7D0NPV7fDw/////////f/+
+        /f7+/f///////////////////////v////7+/////v///v///v///v///////v/+/v/+/////v//////
+        /////////////////////v///////////////////////////////////////////////v7//v///f7+
+        /f7+/v///v///v7+/////////////////////////////////////////////v///v////7+////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////AAD//////v////7j//9fw9E3b32ytry8
+        v8PT1dj4+Pj////////////////////////////+///9//7+///+///////4/P7C8/1+7Po1usodanaA
+        kJa7vsHAxsva3d/t8PDO+P5y5PQjh5ROcXuwtby/wMTU1tjy9Pb9//////7////////////6+fj49/f5
+        +Pn8/f3+///////////+/////////////////////v7//f38+/v6+/r3+/v29/j29/f2+Pjz9fX4+Pj9
+        /f3////////////+/v7////////////////////////////+///////////////+////////////////
+        ///////9///5+vv29/f39/f59vjz9fb29/f9/f3/////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////8AAP////7//////+n//2TJ2DRve661uby+wdHT1fX29v//////////
+        //////////////////7///7///7///7///7//////vr9/sz2/Irt+z3B0SBxf3OKkL24v8LGx9nZ2+bs
+        77r1/13a5x14iWWFi7e5u73CxNTZ2/bz8/z9/Nv0+qzc4bTO1MvP1NXS1NrY2d/i4ebs7Pb29v78/P/9
+        /P/7+v/39/Dx8uTm6NLc38/X2dnV19bW1tXS1dbS1tXV19fY29jZ29rZ2t/g4fHz8/3+/v//////////
+        ///////////////////////9/f35+PPw7+/q7O7u7/X49/7+/v////////38/Pj19Ozp6d/f397Y2tbR
+        1dLP09DLz8/Pz9HV1d7j5Pb3+P//////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////wAA//////7+////8///fNnnKnF8oa+xvr7Bzs/R8PHx/////////////////////////////v//
+        /v///////v/////////+////////2Pf+nfD9RMfVGm97bIiQvLq9v8LE1djX5+3xrPX/T9DiHXF+bYmP
+        ubq/wcXI3tvezu/1aeDxIMPULKa4Pp+tU5ujhZ+ptLO5zcTH1c/Q3Nja2t7itt/mgdbiYMzaUMbVQbzN
+        Qq67U6Grcp+llaKoqa+ypre9o7e/prO5tba8vbu+wsHD09PV5OPl7e/v+vv9/////f7++vr8+Pf49vX1
+        7u7xuuHojMTMn7O4uLe8xMTG2Nna4+fn5+fo5t/i4NjbvdTbjMvUf77Jc7vEbLK8eqOskaGor7S4uL3A
+        zNLU9vb3////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////AAD////+///////4
+        //+d7fcifImFmZ/AwcPFyMzn5uf+/v/////////////////////////////////////////////+/v7/
+        ///////+/v/g9/yU7/s8xtYZb35siJC7t727w8ja2dzd7fGo9P9KyNcabnt0jJG9urvFyszK9fqD6PU8
+        2+o30+Yty90tusoqnKpBjpx7q7hwwMxdx9VV0uI52+4n1ewp1uok2ewq1usz0eMnxNUlrLw3o7FEu8o6
+        ytgxv9A3q7lGnqpan6pvnqWRoKatrrO+vcHKy87U1dfa3N7f4ePl5ufu7OzX7fJy4vMswtMsnalChpN6
+        lJ2xrrfHvcHGx8mz0dmH2edT3Owu1ukuy94szeEvyd0puMgphJBgeoKrrK+2vb/Z2d37+vz/////////
+        ///+/v7/////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////8AAP////7//////vz//8H6/ziaqld6gru+wL3B
+        xd3d3/r7+/////////////////////////////////////////////////39/v7//////v///tr4/ZDv
+        /jvB0h9odn+Ql726wb7Dxdnb29jv9J7x/UjI1iF1gmiEiLq5u7/W3Zjp9mvi9Fnf8kbg8jLd8DDW5zHG
+        1yjI2yLU5yjX6y7U5jDL3TDJ20DK2UnM21HT5HTi8Hrp+FPf8DXT5TDY6zXb7TTW6SrX6TXR4i/E1Cev
+        vy2WoUeMlX6SmqCjp7O0t7+9wcjKzdDV193e4Nfz+Ibo9jLZ7DTS5iu5yCiVo0GRnm+rs3zN217g70zf
+        8jnX6yvP4irQ4jDV6jLZ7THi8yK6yh9ibY+aoLu/wtXW2Pb19v////////7+/v7//v//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////wAA/////////v/+/v//4vz/YMXULGl0rbS4vL/B0dLV8vLy////////////
+        /////////////////////////////////f///f7//f7+/v///////f/+3Pj9k+v6NLrJJGh0hpacv7rA
+        w8bH3d7e1+/zovL/S8zbHHWCZIGIt7W4s73DqM3XlNvoct3rT9vrXN7vb+L0XuDzSd7vPtvtMLrJTZKc
+        dZmfiZuppKqvsbq+v8vQyOTqlun5N9/uMtrrOtnqNcDQRbfGXtjnZuf4UuL0QNPkL7zLJZqtOoKRb4yR
+        n6WqtbG3v77Cw8fJ2u/0kOv3M9XoM9fqPN/xTdjrOMbYLsraO9rxQNToK7nLM6q4Ya+7gbbAkb/HlMbM
+        l9DXhcvWhK+4tb3Bz8/R5ebn+vn5////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        AAD////+///9/v7///74/v+a6vQde4p9lp3CwsTEx8nk5uf9/v7/////////////////////////////
+        ///////////+///////////8///+///////+///b9/6N7/0vq7opZG+Uo6e3vMDJyMvk4eHc8/if7/5F
+        y9sdbnxyhou3tbjCubzFyMrR1tzP2+LQ4eXL6O6l6PN35fRW3vExwNMzdoJxen+hnZ+nqK3CwMfU09Tf
+        6u2C5vM31OZk4fRQ3u8qrL5Ib3aDkJeIu8aE0t6I5/Vt5/ZJ2+wzvdAkmKc5iJFkjJOVn6Wyq6/N192n
+        9P48zuE2p7hiu8pw4Otl5/gr3e8dxdYtp7dgn6igsLW9u77OxsnSzNHa1Nfe1tjh2tvd3N3d3uDl5un2
+        9/f+/v7/////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////8AAP///////v/+/f7//vz/
+        /8/8/0KzwUBwere6vri/wtPV2fX19v////////7//////////////////////////////////v7/////
+        //////////7//////v7//tD4/nbn9ySaqD9rcaats7m6wdHS0+rp6trz95ju/D7F1h94hV6CirKzt7vA
+        v8rN0eXe4fDt7Pn19vT2+dLz+qHq+WXj9Cy1wiBocXuNkq2us7u7v9PX2Nn2+1jN2Vujs7Dj7ZPx/kHK
+        3B5tdGp4faOfpayutb3I0LHd6JDl9HPm9k/c7jXF2COgrjSGkHGWoK7Ax63w+0PO3Sd0gHV/hJ2mrJPM
+        1nXS4n/EzbXIzd3Y3efj5Ofq6+/x8vb4+Pj3+Pf19vT19vHx9fT29vv9/f//////////////////////
+        //////////////////////////////////////////////////////////////////////////79/v38
+        /f////////////////////////////////////////////////////////////////////7/////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////wAA/////v/+/f///v//////7/7/hub0InWEf5WXv8DD
+        wMfJ5OXn/v7+/////v///////////////////////////////////////////////////v///P/+///+
+        9v3/vfL9aePwG4GPVXV9s7a6v7/D1tfY7O3v1/P7me/7TtLiGYeUTHN+p6itv8HEys/P4OPl9fX1///+
+        ////6fn7u/D6eev4Kqu7MGRvlJyjr7O3ytDV3Pz/VL7QPmVoj3ZxttTZgvT+JaCtNVxignFtn5SRyMLE
+        6Ofq5e3xze3yoez1duz8UeP2OcfWJ7bJQNDfbOLzQNblJHSBXXN5o6Kmvbu92dfc9/Hx//3++vv8+fn4
+        +/v5/Pr6+/j4/v//////////////////////+PX15NXSz7OsyKecyqWczayh2Ly2697d/Pr6////////
+        //7+/f7//v///////v/+/////v/+////////+vb15dTQ0LKpyaOXvpKJu5GGw5yPzKuj487K9/Hv////
+        //////////7++ff3+vj4+/n5/////////v/+/v/9///+/v///f///////v7+/////////v//+PLx9vLx
+        9/Py+fb0/v38/////////v//+PTz+PPz+PP0+PX1+fX19/Py9/T0/Pv7/v///////////////v7+///+
+        /f7////+/v7+/v////////z9+fLy+fPy+PTy+fTz+PTz+fTz+PPy+PTy+PP0+fP0+PX09vPx+/b2////
+        ////////////////AAD//////////v/+///////8/v7F+f9FscE2bnS0ur69wMTT1df09PT/////////
+        ///////////////////////////////////////////////+/v/+///+//////71/P658/9Q0uEbcX5w
+        h420t7u/xMXY3N359fTl9/uh7/te3e8hnKw0bnqJmZ+/vsDMyczW29/t8PH9+/v////6/PzG8/xq5vgd
+        kp9GanGnrbShm5vG1NR52ucjXmZcOSuJamW48/hV1eYhaHdLQDlpQTSEY1i3oZzz7ev++fq7lY6bn5qH
+        1d546/pg5vhE3O493PA30+Yic4Bke4C2tbvO0NHw8PD////x6Oa4jHyteWqxfGuyfW2sd2fSta3/////
+        ///////y7OvTtaqyf3CmZ1ajZE6jZU2lZE6hY0ugZU6mbVmzgXPUu7T49PL////+//7+/v79///+//78
+        ///////8+fnWvLSxemykaFGiYk6hYEygYUykZFChY06fYEylZlGvdmXHoJTs4Nz++/zMqJ+ud2aveWqu
+        fG7Vvbb+/fz//v/+//7+///+///+/v/9/v/9///////y7uy9loyweWqyfG+xfGyqeWfJqZ7////49PLF
+        opSwemuwe22vfW6yfW21fW2zfm20gHK5h3vCnJHXv7bp4d7////////9///9/v7+/v7+/v7////p4t63
+        in6xemuzfW2zfm+yfm+xfW+zfnCzfm6yf26yfm+xfm+xfnCwfG6yemzgzsf///////////////8AAP//
+        //7///////7///7+/////+/9/43o8x19i3qQl8TBxcTFyeLj5f39/f//////////////////////////
+        /////////////////////////////v/+//3+/v3//////+/7/6Px/T/C0h5kcIOXnri7vsfHzOPm5vz5
+        +e74+6zw+Wvl9C62xSN/jlqFkaOqr8XExs/R1ODg5O7v8Pn4+e71+Lr2/0/T4SJqeWlsbGg8Nquhn5z1
+        /SF/jlZIRGk4K6+vr5b0/h+Il0ZLTGxANXZJOYRINLyXjv7//7J+bZ1aQJ9rWZeRi5bN1Hbk9DXe8B25
+        yTN3hKOtscnKz+Dj5fz7+////8GZjpxcQ6doUqNnUKRpUp5eSLuShf////jz8tCxqql0YqBgSqNnUKVt
+        V6VtWKhuWKpvWqlsWqdsW6drVqRnUaBfS7J9b+LTz/////3//v/////+/v7///j087qTg6FfSqZnUadu
+        WahtWKdsV6ZuWalvWqhuWadsWKZsV6prVpxfRqRsWvDm5b+Uh59hR6RqVKllUZ9jUOvh3/////7+/v//
+        //3//v7//vz+/v7+/////8emnZ1aRKZqVKZpVKVpVKBgSLaLe////8yroZtbQ6JoUaZnVKZoU6RnUaVm
+        UaNoU6VoUqVkT6JiS59iTKRqWL2UhunX1f////////3///////7+/r+XjJtdRKRpU6RnUqRnU6VnU6Vm
+        UaRnUqZnU6VnUqRnUaRmUqNmUqNmUp9eRtK4rv///////////////wAA/////v//////////////////
+        ////0fv/UcLRLGd0qbC1xMDDzM/S7e/w/////f//////////////////////////////////////////
+        /////f/+/f7+/v///f7//v7////+4Pj+i+78KKi3OmVwo6euubm+ys/R6e3t////9/z+yvH7hOz6S9Pl
+        JJ2tN4CNdJObrLK2x8XI1dHU39ze4uLj4/L2iun5JYiYQUJBYzcqkXRwuvj+OLXFMFVXZTkpimlirfD4
+        LY+fSElFb0I2dk9EiFE8x6qk////1LWuomJKoWlSpmBKnmVQqKmmrPT8kc7Zt8nR4N7j5ujp9/r5////
+        8OvqqHJgqGlUq25ZqG1Zqm5boWNO3MrD+PTzs4d3nF9HpWVRqW1aqW1ap21ZqGxXpGZQo2VOpmhRp2xY
+        qGxYp21Yqm1aoWROo2dT4M7K//////7+/v///Pr6vpSIm15HqWxaqGxbpWxXp2xYqG1YpmhSpGZQpWhR
+        p2tXqG5Yp3BbpmlTsHpq+PT13MjBo2NPp21Yq25ao2JMyKWb/////////////f7///7+////////+PXz
+        sHlppmlTpm1WqG1ZqW1ao2JN0rSt////vZSFo2NNqG5aqG1Zp21YqGxYqWxZqG9aqW5Yqm5cqG1ap21Y
+        p2pUn2FLpWxW0rWs//7+/v/+/////fv8vY6Do2dSqm9bqW1ZqW1Yqm1Zp2xXpm5YpmxWqW1Zp2xYqG1Y
+        p2xXp2pUpGxW6uDe////////////////AAD////////////////+//7///////3z/v+h8/0nkKFYe4W6
+        wMK/wsXX29z4+Pn+///+/////////////////////////////////////////////v/9//7///////7/
+        //7////+/v7M9f1y4/Qdh5JYd362trq9vcHY2Nv19/j//////v/g9/ye7/ll5PU2xtgknqs8k55jmaKR
+        qbC1ur/DwsTR2+GV8PwmlKM/SUtmQTR3SjzEy8qK7vwdjJhHV1eEg4KJ5vEleYVQPTZwQTR9TTmUZVPx
+        6+n////s396naVelbVeobFmkaVKmZVPhysL////////+///////////+///IpJqkZE6oblqnbVmnbFmn
+        aVSpc1/49PHl1dOgXkirblmlbFiob1qoa1ajZE6obly0hHi5kYWzg3OlaFWpalapblqoaleqbVqiZk6m
+        dGL16+v+///////exsGcX0iocFqqbVmma1apb1qkZ1GlblqygHC2hnavemmma1agYEqlZlCfXUXSt67/
+        ///y7OyrdGKnaVSobVqlbFekalTXwrv+///////////////////////PsaigZE6nblmobVmobVmoa1ap
+        bVju4uD9///AloukZE6oblmoblmobVmncFumbVegYUudY0yiZk6naFSob1qoblqoblimalSeXkvTtrD/
+        ///////9/P29j4KjZU+nbVmnbFmnbVeqblmhZVGkZlKkZ1OlaFOlaFSmaFSnaFSgYEy/m47+/v7/////
+        //////////8AAP/////////////////////////+/////+b9/3Db6hpwfoybo8TBxcPIy+Xn6f7+/f7/
+        /////////////////////////////////////////////////////////////////v////L9/bz0/1DP
+        3xxqeXuSmLe3vcXDyODj5Pr8+/////////L7/cHw+orq+WPi8jrM3iq1xiqms0Sqt1fDz3fi8F3e7yN9
+        jU1GQ3BIO3tIN6B6bbnv9Fza7Ce80ULZ6SuuvT9xfZaGhIpsYYdbScuzrf////////v6+riLfaVjTqdu
+        WqZvWqZmVKFmU8OeleDNyujc1+vd2+TU0MKflaJnUqltWadtWKdtV6huWaJjTb2Wh/7///v5+LqQgqJh
+        S6VuWKNlTqZuWcakme7i3/78/f7///v5+d3IxKZwXKdpVKdsWKpqVqVuWZ9gSdOzq/////38+7eHeKVm
+        T6lvW6dsWKZsV6ZmULaIeOfa2Pr5+P36+fr39OTY1Mmmna95Z7OJfPj08/////7//7+WiaRkTqluWqdu
+        WaZqVaZmVMOYjd7Mx+rb2Ond2ObW08inoaZnVKRqVahrWapvWqltWaVmULmIeP7+/v7//8KYjKJkTalt
+        WahtV6drV6lsWKhyYMikms6vp8KajKhwYaFkTahuWKhsWKptWaZpUqNrWOzi3v////79/ryQhKJkT6ds
+        WahtWahqV6ZvW9CzruLKxuLMyOLLyOLMyeHMyODLyOPS0Pz49////////////////////wAA////////
+        ///////////////////+///+/f7/vvj/PLjEMGl0rra6vsHEz9PX8PDz/v/+////////////////////
+        //////////////////////////////////////////7//v7////+6/z9n+37Mq/BMmVwmqeut7m9yM3O
+        7e3u/////v/////+///+7fn9ue73geb1WuP0QtrrKtTlHNToJM/jJqe2QF1fbkc+f1FBjVtHkVdBvra1
+        qvX/PODwHLfJRZCbrbe91dXa3t/h5+Ph/Pz8/v////7/////0bavn2BMqm5aqWtYpnBapmtVpGVOo2hT
+        p21Xp21ZpGhWpGRPpm1YqG1XpmxYp25YqGxXo2NP28K8////////8+3tsYNynWBKuYd76NzZ////////
+        /////f///v//////zKyioWJMpm1ZqG1Zpm5ZoGNOu5CC////7+Phpm1WpmhUqWxYpmxYpmlVpnBg8Orm
+        /////v///f//////////////9vDx9vT0/////f7+////3crDomNOp21XqW1Xp25Zp3BboWFMoWVRpmxY
+        p25ap2pVoGRPpmxXqG5bqG5aqG1YqW5aoWJN1bew//////7/wJeJo2RLqG1ZqG1Ypm1YnmNN0LGn////
+        ////////8ennwJiKo2VQqG1Zp25apG1XoGBJzKad/////f7/vpGEo2VQp2xZp21YpmlVqHJh8erp////
+        /////////////////////////////v/+////////////////AAD////////////////////////+///9
+        ///////x/f+W8PslkJ1Xe4PCwsTAxMbW29/49vf/////////////////////////////////////////
+        ///////////////////+//79///9/////v7Y+P576/gnjJlOdXuwtbq7vMHY2dz4+fn////+////////
+        //////7t+PvF8fef6PRd3+48zeBXusVncnF5TDuFU0KPXUmaY02eX0vexsL0//+97PS53eHc4eLq6Ort
+        7+/6/P7////////8/v79/v/////y6OWobVipalembVumcFqnaleobFigYUyiXkmgX0ikZlCma1iob1qo
+        a1iobFmlblmoalOscmHy6+n///////7////08O/k09D8+Pj////+///+/v/+///9//7+///////dxb2f
+        ZEynbVmpbluoblmjZVC5hnf//f7gysWjZ1KmblmobFaqbVmiZk65joH////+///9/v/////+///9/v39
+        /v/////////+///+//7////38O6rcWCmaFSla1arblmnb1uqbVilY02hX0qeYEijY0yqblqobFmpbVmm
+        bVimbVipbVemalbp3dv////+///CmIykZU6pbluobFenbVqlY07axLv////+///////////59vaygXOk
+        ZFKncFqpalqmZlKxfW78+vr9//++kYSmZ1GoblqnbVelalSrcF7x5OP/////////////////////////
+        ///+/v7+//////////////////8AAP////////////////////////7+//7+/////////+D5/3Pg7B12
+        hIKUnMTExcHIyN/i4/z8/P////////7+/v//////////////////////////////////////////////
+        //7///7+//////r+/8L4/lnU4h1reYGVmrS4u8PHyebm5//+//7//v3+/f/+/////////v///v39/e71
+        9+bw9ejm5ZtpXI5XQ5diTp5lUaRnUqNrV+bb2f///////////////v39/f////7///////7+//z+////
+        /v////3+/r2Pf6RkT6dwWqZvWqZrWKdxXb2Qg8GUiMGWirOGdaVqVadtWKdtWahtWadrWKZjTcCXiv//
+        //7///v//v///////////////////v7+//7+//7//v7//////////8SimKRkTKtsWKdvWahsWaNlT7mM
+        fv3//9S4sqRjTqhsWKdtWKluW6FkTcOZjP////3+//7//v7+//7//v3///////7///7+//3+/////v/+
+        //7+/sehlqFiTKlvWqhsWKZrV6hwXLuQgsGWisCUibmKfKduWqZsV6dsWKdtWaZtV6NnUbmKfPz7+///
+        /////8SZjaJkTqhtWadtWaduWqJjS9nAuf////3//////v7//////9O4sKJhTKptWahtWaZpVKhxX/Pt
+        6////72PhKVlT6htWKdsWKZoU6pwXvHl4/////7///7///7///////////7////+/v7/////////////
+        /////wAA/////////////////////////v///v/////+/f///f//zvv/T8XUJmp4nqqxwMPEx83P6+rt
+        //7+/////////////////////////////////////////////////////f///f7+/v7//v7/////8v3+
+        nvL+Lqi2Omdypq6zt7m+0dPW9fT1/v////7//v7+/v7+/v///v//////////////+vTzpnJimmVOpGpX
+        pGpXpmpUpG5Z6uDf/////f/+/f7+/////v///v7//v7////+/v7//f7+//7+/v7/////2MG7oGNNqW5Y
+        p21ZoWVOwJmL////////////697bpmtYpmpWqHFcp2xXqW5ZnWJN2sO9/////f7+/v/+/f///f3+/v7+
+        /v///v///v7+/v/+////////////6NrXp29cpWtVp2pXqHBZqm5ZoGFLxJ2N////0bOtomJOp21XqG5Y
+        qG9bo2ROxJqO/////v///f7+/v///v7//f/////+/v/+/v7//v7+//7////+////383IoGRPqmpXqG9Z
+        pWVPt41//v/+////////8ejnqXJgpmlTp21Yp25ZqW1Zn2FL0LSt/////////v//xJqNomRNp21ZqG1Y
+        qW5YomNO2L+4/////v/////+/v7+////5NHLnmVOpmpXqG5ZpmpVpGhW6+Dd////u46DpGVPqW1YqGxY
+        pmlSq3Jf8ufm//////////////////////////7//v//////////////////////AAD/////////////
+        ///////////////////////+///////6/v+w9v84q7o8cHq3ub7CwsbR09jy8vL+///9////////////
+        ///////////+/v7////////////////////////////////////////////X+P5t5PAee4hpgoq3uLu/
+        wsbd4OT7/Pz////+/v7////////////////////////69fWweWqjaFOnbFinbVmma1Wob1vt4uD/////
+        ///+///////////////////////////////////////////w6OirdGCmalSobVmkaFG0g3T7+vr9////
+        ///Zv7eiYkypb1qob1mpbVika1WpcmDv6Ob//////v/9///+//7+///+/v/+///+///////////////4
+        8/PYw7uocGCoaFOnbluna1iqb1qmbFigYEzYu7L////TtK2hZE+obViobVeobVqiZE3GnpP/////////
+        //7////////////////////////////+/v////7////39fSxe2unaFOmbFmkZlOtdWP07Oj////////f
+        y8OkZFCobFenbVmmbVqobFekalfv4eH////////////BmY2jY06obVmobFmoblijZk/Xu7P/////////
+        ///////////o2NShZVGna1eobFmnbFinalbu4N3///+8kIOkZE6pblqobFimaVOocFzt4uD/////////
+        //////////////////7///////////////////////8AAP//////////////////////////////////
+        //////////////P+/5Lx/CCPoVd5gr3Cw8HEyNna3fb19//////+////////////////////////////
+        //////////////////////////////////////P8/rX0/zu+yyllbpuorLu4vMbMzvDu7v////7/////
+        //////////////////////r19LF7aqVpVKltWaltWqZqVatwXO7i4P//////////////////////////
+        //////////////////////7//////8GYiqFkTqhuWqdsVqdpVuXV0v/////+/ruMfKFjTKluW6dsWKpu
+        WqJjTr6ViP39/v/////////////+//z///3///////////Dn59nEvcqnm7J9baNiTaRmUaluV6ltV6ht
+        WqhuWqJlUKx2ZfXz8f///9G0rKBkT6htWKltWahuWqJjTMeelP///////////v//////////////////
+        //////7///7//////v7//////8ulmqJiTKduXKhtWKJjTt/Kxf///////8KfkqNiTKluWaltWKluWqRl
+        TrmKfP78/f///////////8GZjKNjTqhtWahtWqhuWaRlUNa6tP///////////////////+jW1KJlUalt
+        WKZuWaZsWKhrVu7h3f///7yQg6JjTaltWqhtWKltWKdqVreHfMiilcWckMSck8SflMennO7g3f//////
+        /////////////////////wAA////////////////////////////////////////////////////2/r/
+        euLvHnuJcYyVx8TGxcjK3d/i+vn6////////////////////////////////////////////////////
+        //////////////7+///+6fr/h+z4IoyYVnh/sba6ur7B2drc+fr7////////////////////////////
+        +vb1sXtqo2hSqW1ZqW1apWlUrG9b7uLg////////////////////////////////////////////////
+        /v//////3MjBomNNqW1aqW1ZoWFMz6+n////8ejmqHBbp2tVp2xYqGxYqW1ZpGRQ17+6/////v//////
+        /v///v/+////////6+Lew56Tq3JfomJOoWBMpWhQqG5apm1Yp21YqG1ZqW5cpmdRomZR4M3I////////
+        0rOtomRPqG1YqGxYqG1aomNMx56U///////////+/////////////////////////v///f7+/v7//v//
+        ////59bRo2RQp2xZqm9ao2FMw5mO////9/PxrnhnpmhTqG1ZqG1Zp25Yo2NL1bev/////////////v//
+        wZmMo2NOqG1ZqW1apm1YpGVQ1rq1////////////////////6NfUo2VRqG1Ypm5ZpWtXp2pW7uHe////
+        vZGDomNMqGxZqG5Zp21ZqG1Zo2ZPomNOoGNNoGFMoWJKn2BGrXps9vPy////////////////////////
+        AAD//////////////////////////////////////////////v///v3//v7T+v9c1OMcc4CQnKPHyMrF
+        yczh4uT7+/v//////////////////////////////////////////////////////////////v/////8
+        //7H9/5Ty90fZ3SHmZ+0t7zFx8zr7Oz+//7////////////////////////69vWxe2ukaVKobViobFmm
+        alWrblvu4uD////////////////////////////////////////////+///9///////18e+sc2Kna1Sn
+        b1umZlG3g3X////bwLqiYk6pbVmoblenbVmmaFOsc2D27e3////+/////////v7////////XurSla1ei
+        YEulalSmbVeobVmocFqlblinbVmnbVimZ1KgYUmmcl7ey8T//////v/////StKyhZE6pbVipbVmoblqi
+        Y0zGn5T///////////7////////////////////////////+///9/v/+//7////59vewgHKkZ1CnbFmm
+        alWweGf8+/rk1c+jZlCrblqpbVmpbVmma1WmbFns4N3////////////+///AmIykY06nbFiobVmmbFej
+        ZE/VurT////////////////////o1tOjZVGobVimblmnbFeobFjt4N3///+9kIOjZE6pblqpblinbVqq
+        bVqoa1WmaVSna1WlaVaoZ1SlZk6iZ1Ly6uj///////////////////////8AAP//////////////////
+        /////////////////////////////////v/+/vz+/735/1LH1yZuepGhqMTEyMjMzeXl5/z8/P//////
+        //////////////////////////////////////////////////////7//////+b7/4vt/COXpURuda6x
+        trS6vtXY2fb4+P////////////////////////r19a95aaVqU6htWKhsWaZpVKptWu3h3///////////
+        //////////////////////////////////7///7//////////8Gek6NjS6ZvWqdsV6RoVPLp58eilp9i
+        TKdtWqhtWahuWaNiS8CWiv///////v7//////////v///9bAt6BfSadqVKhuWqhuWaduWKhuW6dsWKdr
+        U6JhTKVkUa95Z8mmne/o5v////3///3//////9S0raFkT6hsWKhsWKhuWqJkTceflP///////////v//
+        //////////////////////////7+//3+//////7//////8qroqBjTaltWaZtWKNoU+fb2M2toqJjTaht
+        WadsWKhtWaNlT7aJev39/f////////////7+/8GYjKRkT6htWahtWqdsWKNlT9e7s///////////////
+        /////+jX1KJlUaZsV6lvW6ZqV6ZrVu3g3f///72Qg6VlT6ltWaltWqltWKttV6ZoVaZuWKZvXKZuXKds
+        WKdzYdK4sP///////////////////////////wAA////////////////////////////////////////
+        /////v///v////7////+9/3/sPT/QL/MJGx2o6euxcbJy8/Q5+nq/P39///////+/v/+////////////
+        /v7+/////////////////////////f7+/f///////f7/v/j/Ss/eHGx1i5adtrS6w8bJ6Onr///////+
+        ///+/v7+////////+vT0rnlopWpUqG5aqW5ap2lVqm5a7eHe/////v//////////////////////////
+        ////////////////////////////3szHoWNOqGxWqm1Zo2lUuo1/rnpnpWxUqG1aqW5aqW1ZoGFM2sbA
+        /////f7+/v//////////8ujnp25foWhRqGpXqm5YqG1Zq25ZpGVQoGBLrXdnyqKZ4M3H9O/v////////
+        /v///f/+////////0rStoWVQqGtYp21ZqG5ao2NNx5+V/////v///v7+////////////////////////
+        /////v///////////v//////6dnXp2lWqGtWp2xZpWlTt4p7sH1rpWtXp21XqW1Xp21YoGFL0bOr////
+        /v///////////v//wZmNo2ROp21YqG1Yp25apGZQ17yz/////v////7////+////6NfUomVRpmxXp25Z
+        p2tXpmpX7eDd////vZGFpGZQqG5ZqG1YpmpVqHBd2cXC7ODf697d7ODd6uDd8ezs////////////////
+        ////////////////AAD////////////////////////////////////////////+///+//7/////////
+        ///z/P+r9f8/tsQtcHmmsbXKyMrQ0dTp6uz+/v3////9/v7////////////+/v7/////////////////
+        ///////////9/v7+///////s/P+O7fsmm6tBanOqr7K2ub3W2dv7+vv////////////////////59fSu
+        eWimalOoblmnbVelalWobVnt4d//////////////////////////////////////////////////////
+        /v7+///38/Kve2ukZlKnbFmpblqkZVGkaFWqbluobVmqblmmaFOscmDz6+r////+///////////////Q
+        s6uiYEunb1mobVqnbVenb1ijZVCxfGzXv7f28O7////////////+///+/////v/+/v7////////RtKyh
+        ZE6na1ioblioblmjY0zHn5b////////9///+//7/////////////////////////////////////////
+        ///9+/y3hXelZU+pbVmobVilZ1OlalWpbVqobFaobleobFema1fv5OH//////v7////////+///BmY2j
+        ZE6obliobVmnbVikZVDYvLP////////9///+///////n09CkZVGqblqnb1mma1amalfs4Nz+//+9kIam
+        ZVCoblqobVikZ1Kwemr49fb///////////////////////////////////////////////////8AAP//
+        //////////////////////////////////////////7///7///3///7+///+/v///u37/qTx/TWtvDlv
+        eKmxtsfIy8zS1urq6/z9/f3///////////////////////////////////////////7///7+//7/////
+        //z+/sX1/k3S4R5odICUmra1ucXIyuvr7f////////////////////r3+LF8bqVoUqhuWahuWalpVKds
+        V+fc2v////////////////////////////////////////////////7//v7+//7+/v///8efk6JkTqdt
+        WqhtV6ltWahsWKhrWadsWKZtWaJkTcSXiv/+///////+/v////////78+7iMfqJpUahuWqZqV6duWKho
+        VLOCc/Pp6f/////////////+//3+/v7///7+//////7//////v///9S2rqRmT6dsV6ltWKhtWaJkTMSe
+        kf////7///7+/v/+/////////////////////////////////////////////////8+xqqBiS6htWaht
+        WapuWqdsWKhsV6dsVqlsWKNmULiGePz6+/////3//////////////8KajaRjTaluWahuWahtV6VnUdi8
+        s////////v7+/v7+/v///93Fv6BmTahrWKhvWaZpVqttXPPr6f7//72RhqdlUKdtWaZsV6RnUbB7aPjy
+        8v///////////////////////////////////////////////////wAA////////////////////////
+        /////////////////////v///v///////v/////////////+8Pv+nvT+Nqy6M3B8q7C3yMnJytDR6evt
+        //7+/////////////////////////////////////////////v///////v//////6fr+g+r5H4+bU3V+
+        rbG0tbu93dzf/Pz8/////////////////Pz8tIZ4pWdRqG5ZqW5aqGtWpWdS3s7I////////////////
+        /////////////////////////////////v/////+//7/////5tPNpGZQqXBaqG1Zp25ZqG1Ypm1Zp21Y
+        qW1Zo2VQ2cG6/////v//////////////+/b1s4BwpGZSqnBapmxZqW1YpWVP2sTA//////39/v7/////
+        /v/+/v///f///f////7+/v/////+////2L+6pGVQqG1Xp21YqG5YpWVNvpGC/////////v/+/v7//v//
+        /////////////////////////////////////v//////7N7cpGlUpmtVp25aqGxYqG1Zp2xWqG5Zp2xY
+        oWFM07as/////v///v/+////////////wpqNo2NNp21YqG1YqGxXpGRP2L61/////v/+/v7+/v//////
+        wZyOoGNNpmpWqG5Zp2pUr3dp/Pn5//7/vZCEpGVQqG5Zp2tXpGhRsHtp+PLy////////////////////
+        ////////////////////////////////AAD/////////////////////////////////////////////
+        ///9///+//////7////+///////////t+/6b8vwyrbsycHqqr7XMy8zO0dTn6er7/Pz/////////////
+        ///////////////////////+///+///+///+/v/////3/v+69P88uckvaHGYpaqztrnPz9Tz9PX/////
+        ///////////+///DoJOjZE2obViobFimblmgYUzXt6z////+////////////////////////////////
+        /////////////v/+/v7+///////39fSwe2umalSpbFinblmobFmpb1uobFimaVSrc2D17+7////+/v7+
+        /v7////////69vW0f3CnZFGpb1qoblqnbFehZlHeysX////+/v/9///9////////////////////////
+        ///+/v/////l2NeiZlSpbFinbFiobVmlaVOxemr69/b////+/v////////7/////////////////////
+        ///////////////////////8+/u5iXykZVCmb1qpbViobFiobFipb1qmalWqbVvr393////////+/v//
+        ///////////Cmo2kZE6obVmobFima1alYk3cxbz////+///////////n2NSmbFqmaVana1eobVmiZU29
+        mIz+///+/P69kYOlZU+pblqobVikZ1Kwe2r48/L/////////////////////////////////////////
+        //////////8AAP////////////////////////////////////////////////7///7///7+///+//7/
+        /v7//v///////uv6/5rw/DGwvytxf6SrsM3Mzs/R0uXm5vn5+v////////7//v////7///7/////////
+        ///////+//3///7+//////7//tr8/2zb7BxygHmLlLW1usDFyurr7f////////////7//////9i/tqBg
+        TKhsWahuWahvWqNnUbF9bfXw8P////////////////////j29uLV1Pbx8P/////////////+//7+/v7/
+        /v///////82nnp5jTKltWKdtWKdtWaluWalrWp9pULyShP/////////+/v////////////37+rWGe6Jl
+        T6hwW6psV6ZvWKRkUMGXivn6+f////////////////n4+Ord3vz6+v////////7+//////r3+K55aaRo
+        UqdsWKlsWKhuWaNkUNa7tf///////////////////////+zg3+nf4P////////////////3///////7/
+        /////9G0rZ9hTKdsWKdtWqhtWahsV6hvWqVmUbaGeP/7/P////////7///7//////////8KajaJkTqhu
+        WqhsWadsV6NjT8+zrP////////v4+NvIwah2ZKZnU6hyXKhtVqVsVqFfS+LKxf////v7/LuRhaZlUKdu
+        WadsWqVnUq97avv4+P///////////////////////////////////////////////////wAA////////
+        /////////////////////////////////////////////////////////v///v///v///f7+///+6vr/
+        nvL+RbzMKXeDi5+kzcrMys/P3+Dj9/b4//3+/////////f7+/f39/v7+/////////////v7+//////7+
+        ////6/3/juz6Jo2bWXmBsrS3ub/C4uTl/////////////v//////7+bmqG5do2hUqW1ZpW1YqG5ZpGlT
+        sYZ34MzI7+Tg7+Pi5NbTyKqhtH5woGJNwJiK/f7///////7/////////////////////5tbTpmlWqWtX
+        qW1ap21YqG1ZqGtZoWNM3MbA////////////////////////////yKujnmBJpW9aqGtYqGxYqG1Xo2dS
+        u4uA2Lq14MrD2cG7yqmgtINyomRPzq2l////////////////////yKeboGFKqm1bpGpWp21Zp2tWqW1b
+        y66m7N7c8Obi7ODc1728vJOIrHFdpW5e69/d/////v///v7//v/+/v////7/////8OXlpWxbqWxWqG5X
+        qG1aqG5ZqW1an2JL0bGn/////////v/////+/v///v///f//w5uOo2RPqG1ZqGxZqWxXqG1XqHJfvJGD
+        vJOGs4NwpWhTqGlUp25apmxZqXBcoV9KuY6C/fn6/v///Pz7vZGEomNOqW1Yp21Zp2pWqHFc2MC5693Y
+        6NrT6NjV6NjV6NnV6NjU7uXg////////////////////////AAD/////////////////////////////
+        ///////////////////////////////////+///+//79/////v////7////1/f+w9v9Jydoieol7kJnH
+        yMrO0M/c3eHi8Pa26e/R4eX79fTw7fDv7/P5+vn+///////////////+/v7////3/f+s8/8zpbJAbHOo
+        sLO6vcHe3+H+/f3////////+/v7+//7////MraaeYUmqbVmobFmobVmqclqkZ1CiZVKnbVqmbFmiZlKh
+        Yk2lalKnaVSiZFHn2dX////+/v7////////////////////8+/uzgnGkZVCpblmpbFmnbFenZVGqc1/y
+        6uj////////////////////////////r4d+jaVaoZ1KobVmobFinbViobFmhZk+iY02hZFCgY02eYUyl
+        Z1KhY0m4joH+///////+/v7////////u5+Wma1uraVOlb1qla1eobleoa1WhY02ma1enb1ymbFWlY1Ck
+        ZU+ka1WiYUrCnJD+/v/+///+/v/////+///8/v////////66jHyjZE6obVmobVupbFiobFelaFTt39v/
+        /////v/+///+//79/////////v/Em46kZE2obVipbVmpbFinbFila1WhZk+fYk2laFKpa1aoalilbVio
+        blmiX0muemrv6uj////////9+/28kIOiZU+pbFipbVmmbVmqbFijZU+kZVKjZlGjZ1KkZ1KkaFKiZ1Gj
+        alXo2NT///////////////////8AAP//////////////////////////////////////////////////
+        //////////////7///7//////v7///3//////////vb9/bz2/mbV5iCHlWeLlcTBxNLO0s7i5Ynp8jar
+        tn+jrdDQ09/c3t/h5PDx8vz9/v////////7//////////r73/jmvvDdlcKStsry9wd7g4f3+/v//////
+        //7+/v/+//////n29baJfJ9fSKZsV6hrWqZuWaVvWahsWKdqVqdrVqxtWatwXKZuWadtW6NhTLyUh///
+        /////////////////////////////8ytpaFiTKpvWadsWKhuWaNlTb2Xiv7+/v////7/////////////
+        ///////////+/8+yq59eSahsVqhuWqhtWahsWqduWqhuV6tsWqlsWaltWattWaNjTbyPf///////////
+        /////////////9nCvZ5jT6hnUaptWqZsWahuWalvWaZsValrVqpsWKdtWahsV6huWKdrVaNoVOrc2v7/
+        //7//v7+//7//v7//v7+/////9u/uqFiTqltWahuWKhuWaNmULeGd/v4+P////////////7///3//f//
+        //3+/8SYjKRjTqduWadtWaltWqdtWKdtWKlsWqpvWqhvWahwW6ZuWKVnUaJhTLWKfPDl4v////3+////
+        //38/ruOgaVmT6luWqluWKhuV6htWqRuV6pvWqZsWKdtWKltWaltWahvWZ5gScaimP//////////////
+        /////wAA/////////////////////////////////////////////////////////////////////f7/
+        /v///v/+/v///////f/+///+/v7+1Pf/e+TzLKa0PoWPlaarz8rLzd3khuTyLbLCQpSgprW41M3Q4drb
+        5+jo8/T1/Pv8//7+//7++fz8uPX/NqKwQGt1rrS4xMPG5eXn/////////v///v7//v7+/v7/////8+3s
+        w5eNn2NLpGROqWhTqGtYpWxXpmxXp21XqG5ZqG9aqGpUomVOnWFJxKSZ/v///v/+////////////////
+        ////////7+HfoWNOn2JMo2dTpmtVnWBK2MC8/////v7+/v/+/////////////////v/+////////z7Gm
+        nmZQoGBKp2hSpmtVq2xZqG1ap21YqW1YpWdSomVPmlpCyqmh/////////v7+////////////////2cS7
+        p3BdoGFKoWdRp2pYqGxXp25ZqWxXp2xXpGxXqGxWo2lSn2BJrHZn7eLe/////f/+/f7//v////7+/v7+
+        ////8ennpW5bnWBJpmhQp2pVn1xIz7Oq/////////v///v////////7+/f///v//x6SZmVlBpWVOo2ZQ
+        pGZRo2RPo2hRomNNoWVPo2NNoWFLpGhRtIV21722+/v6/////////f7+/v/+//7/yaadm1pCpmVRpWZS
+        pWdUpWZRpGVQo2ZRpGZRo2ZRo2VPpGZQomVQoGFLrnpq/Pr7////////////////AAD/////////////
+        ///////////////////////////////////////////////////////+/////v/+///////+/v///v//
+        //////////7k+f6e8fxLxtgnjJxplp25uLvLztKn3+tQ0+EwscNborCjuLvX0tLl3t/s5+jz7O3y6+zU
+        8fh16fYlf4xviI+9wMHPz9Hy8fL////+///+/////v////7+/v7+///////9/f3hyMK8j4CpcF6jZVCj
+        ZU+iZE+hZU+iY02kZVGrdWS+mIzn1dD9/Pv////+///////////////////////////9/v3Vvbe6j4G1
+        f3ClbFqsfm317+7////9//7+///////////////////+///+/v7////////q2dTCnJCud2ejaFKiZU6j
+        ZU+hZlGgZVCkZlSve2rKsKb49vX////////////////////+//7+//7////w5+PHpZmvfWqiaFWiZVCh
+        ZE+hZVCjZVCiZFGpbFi1hnfStK327uz////9///+/////v7+///+//7+/v////7+///dxsG7kISwf26m
+        blqreGft5eL////+/v/+/v7+/////////v/+//7////07OjFnJC2h3u3iXu4iXm4hnm5h3i5iHm5joLE
+        m5HUtq7p2dX59/f////////+/v///v////7+/v/////48/HEo5exf22zgm60gnCzgm+1gW+0gXC0gXC1
+        gW+0gXC0gW+zgG2wfGrGopf9/fz///////////////8AAP//////////////////////////////////
+        //////////////////////////////////////////////////////////////////////////b9/771
+        /mzg8SywwjeapoCkrLWzusTR1ZHf607R4iy4yl+7yoDDy6DJ0qDQ253f6Hzo+CyvwThwe7CzusvMzeHk
+        5vz+/f////////////////////////////////////////7//+/l5N/KxNrAuda4stK3sNq/uOLMyPLt
+        7P////////////////////////////////////////7///7///////////z4+Ozh4fTv7v////7+/v//
+        //////////////////////////////////////////////bx8OXSzd3EvdrAudi/udvDvOLPzfj19f//
+        //////////////////////////////7+/v////////////j19uPS0N3Dvda6s9Gzrte6tt3FwOra2f79
+        /P////////////////////////////////////////////////////r49+7i4fLr6f//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////37+vv4+Pz4+Pz4+Pv39/z39/v29vz49/z39/v39vv29vv39v//
+        //7//////////////////wAA////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////795fr/p/D8X9rqJr/PMJup
+        cY6Wvb2/xtbcoOHqbN7sRNPmMdHkPNfrIdbnKLbFTJagrbi91tTY4OLl9/j4////////////////////
+        /////////////////v///v7//v///////////////////////////////////v///f///v//////////
+        /////////////////v///f7+//7+/v///////////////////v7//////////v//////////////////
+        /////////////////////v/////////////////////////////////////+/v//////////////////
+        /////////////////v7+/////////////////////////////////////////v///v//////////////
+        /////////////////////////////////////////////v/+////////////////////////////////
+        /////////////////////////////v///////////////////////////////////////////v//////
+        /v///v///v///////////////////////////////////////////////v///v//////////////////
+        AAD/////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////v////7////f+f6Q7vw60eEWdoSVq7Di3d/v5uXu8/XZ
+        8/i87/aa5/Nyz92VxMrZ29zp5ebr7e77+/v////////+/v7////////////////////////////+//7+
+        /v7+/v///v/+///+//7////////+///+/////v/+//7////////////////////////////////////+
+        /////v7////+///9///////+///+///////9/v7+//7/////////////////////////////////////
+        ///+///////+/////v/////////+///////////+///////////////////////////+/v7+/v7/////
+        ///+/v/+/v/+//7////////+///////////+///+///////////////////////////////////////+
+        /v7////+/v///v/9//7+/v/+/f//////////////////////////////////////////////////////
+        ///////+///+///////////////+/v7////////////////////////////////+///+///////////+
+        /v7////////////////////////////////9///9/v7///////////////8AAP//////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ///////////+//7+/////////v////z8/d73+8Lj6ODn6vf09v79/v///f/////////9/P/6+v/7+vv6
+        +vr8/P////////7+/v////////////////////////////////////7///7///7+///+/v7//v3+//z+
+        //7//v7///3///7///////////7+/v3///7+/v////////////////////////7///z+/v7///7+/v7/
+        //////7+/v/+/v7+/v////////////////////////////////////////7///7///7+//////7+/v3/
+        //7//v7+//7///7////////////////////////////////////////////////+///+//7//v////7+
+        /v7+/v7//v///v/////////+//////////////////////////////////////////3//v7///7+//3+
+        /v////////////////////////7+/v////////////////////////////////////7///7/////////
+        ///////////////////////////////+//////7///3///7///7///7/////////////////////////
+        ///////////+//////7//////////////////wAA////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////////7//f7+/v/+
+        /v7//v/+///+/////////////v/+/v/////+/v/////+//7//////////////v///f/////+////////
+        /////////////////////////////////////v///v///////////v///v7+/v///v////7/////////
+        /////v///////////////////////////////v///f///v7//v///v7+/////v7+/v///////v/+/v//
+        /////////////////////////////////////////////v7+/////////v///////v7+/////////v//
+        /////////////////////v///v7+/////////////////v7+/v7+/v///v///////v7+////////////
+        /////////////////////////////////////////////f///P/+//7+/v///v//////////////////
+        /////////////////////////////////////////////////////////////v//////////////////
+        /////////v///////////////v///v///////////////////////////////////////v///v//////
+        ////////////////AAD/////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////////////8AAP//
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////wAA////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////AAD/////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////8AAP//////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////////////wAA////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////AAD/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////8AAP//////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////wAA////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////AAD/////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////8AAP//////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////wAA////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        AAD/////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////8AAP//////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////wAA////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////AAA=
+</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/AboutDialog.vb b/samples/CSharp/WinFormsVB/AboutDialog.vb
new file mode 100644
index 0000000000..ea73112d45
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/AboutDialog.vb
@@ -0,0 +1,3 @@
+﻿Public Class AboutDialog
+
+End Class
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/App.config b/samples/CSharp/WinFormsVB/App.config
new file mode 100644
index 0000000000..7e73d820b3
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/App.config
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<configuration>
+  <appSettings>
+    <!--   User application and configured property settings go here.-->
+    <!--   Example: <add key="settingName" value="settingValue"/> -->
+    <add key="New.Visible" value="True"/>
+    <add key="About.Visible" value="True"/>
+    <add key="delete.Enabled" value="False"/>
+    <add key="delete.Visible" value="False"/>
+    <add key="transparency.Enabled" value="False"/>
+    <add key="transparency.Visible" value="False"/>
+    <add key="marerial.Enabled" value="False"/>
+    <add key="marerial.Visible" value="True"/>
+    <add key="color.Enabled" value="False"/>
+    <add key="color.Visible" value="False"/>
+    <add key="shading.Enabled" value="False"/>
+    <add key="shading.Pushed" value="False"/>
+    <add key="shading.Visible" value="False"/>
+    <add key="wireframe.Enabled" value="False"/>
+    <add key="wireframe.Pushed" value="False"/>
+    <add key="wireframe.Visible" value="False"/>
+    <add key="material.Enabled" value="False"/>
+    <add key="material.Visible" value="False"/>
+    <add key="ClientSettingsProvider.ServiceUri" value=""/>
+  </appSettings>
+    <startup>
+        
+    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
+</configuration>
diff --git a/samples/CSharp/WinFormsVB/Form1.Designer.vb b/samples/CSharp/WinFormsVB/Form1.Designer.vb
new file mode 100644
index 0000000000..f329c3bc33
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/Form1.Designer.vb
@@ -0,0 +1,20 @@
+﻿'Namespace IE_WinForms
+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    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
+
+    End Class
+'End Namespace
+
diff --git a/samples/CSharp/WinFormsVB/Form1.resx b/samples/CSharp/WinFormsVB/Form1.resx
new file mode 100644
index 0000000000..b8f55c1be3
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/Form1.resx
@@ -0,0 +1,238 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="mainMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>361, 18</value>
+  </metadata>
+  <metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>251, 18</value>
+  </metadata>
+  <data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
+        LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
+        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy
+        GAAAAk1TRnQBSQFMAgEBGAEAARwBAAEcAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+        AwABQAMAAXADAAEBAQABCAYAARwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+        AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+        AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+        AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+        AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+        AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+        ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+        AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+        AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+        AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+        AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+        AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+        AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+        AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+        AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+        ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+        Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+        AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+        AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+        AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+        ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+        Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+        AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+        AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+        AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+        AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+        AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+        AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACwAB+z4A
+        A/sB7D0AAfsCAAHsCAAD+zQAAuwGAAL7AQAC+w0AAewjAATsBgAC+wEAAvsOAAHsGwAC+wMAAuwCAAHs
+        AQAB7AUAAvsBAAL7DwAF7AEAAuwVAAP7AewEAALsBQAC+wEAAvsPAAHsHgAB7AL7AwAD7AUAA/sQAAHs
+        HgAB7AMAAfsBAAHsAQAB7BgAAeweAAHsBAAB7AIAAewYAAHsHwAB7AMAAewDAAP7MAAD+wIAAuwBAAHs
+        AQAC7AMAAfsVAAHsHQAD7AIAAuwbAAHsHAAB7AEAA+w8AALsPwAB7EIAAfssAAP7EAAB+wsAAQEJ7AMA
+        CewBAQsAAvsOAAH7AQAB+wEAAfsJAAIBBwAC7AIAAewB/gcAAgEIAAT7CgAKAQgAAQEBAAEBBgAB7AEA
+        AewBAAHsAQAB/gYAAQEBAAEBBQAC+w4AAewBAQMAA/sBAAIBBwABAQIAAQEF/gHsAv4C7AIABv4BAAL+
+        AQEEAAH7DwAB7AEAAQEDAAH7AgAB7AEAAQEFAAH7AQECAAEBBQAB7AIAAuwCAAH+BQABAQIAAQEEAAH7
+        AgAB/gwAAewCAAoBBQABAQH7AQABAQUAAewCAALsAgAB/gUAAQECAAH7AwAD+wEAAfsB/gsAAewCAAH+
+        BQAB7AIAAewCAAP7AQEC+wEBBQAB7AIAAuwCAAH+BQABAQEAAfsBAQQAAfsCAAL7Bf4BAAL+AwAB7AIA
+        Af4FAAHsAgAB7AUAAQEB+wEAAQEFAAHsAgAC7AIAAf4FAAEBBvsGAAH+CgAB7AIAAf4FAAHsAgAB7AQA
+        AfsBAQIAAQEFAAHsAgAC7AIAAf4FAAEBAQAB+wEBCQAB/goAAewCAAH+BQAB7AIAAewFAAEBAuwBAQbs
+        AgAK7AEBAgAB+wkAAf4KAAHsAgAB/gUAAewCAAHsBgABAQEAAQEGAAHsAQAB7AEAAewBAAH+BgABAQEA
+        AQEJAAH+CgAK7AIAAewHAAIBBwAC7AIAAewB/gcAAgEVAAHsAQAB/gYAAewBAAHsCAABAQnsAwAJ7AEB
+        CQAB/gwAAewB/gcAAuwoAAH+DQAK7DkAAfsZAArsBgAK7AsAA/sIAAH7CQEGAAHsAf4HAALsBQAB7AH+
+        BwAC7AkAAfsBAAH7AQAB+wcAAQEB+wcAAQEB7AUAAewBAAH+BgAB7AEAAewEAAHsAQAB/gYAAewBAAHs
+        CgAB+wkAAQEBAAH7BgABAQEAAewEAAHsAgAKAQMAAewCAAb+AewC/gHsBwAC7AH7AQAD7AUAAQECAAH7
+        AQAB+wP+AQEC/gHsAwAB7AIAAQEFAAHsAgABAQMAAewCAAH+BQAB7AIAAewEAAH7AQAB7AIAAfsDAAHs
+        AfsEAAEBAwAC+wMAAQECAAHsAwAB7AIAAQEFAAHsAgABAQMAAewCAAH+BQAB7AIAAewDAAH7AgAB7AYA
+        AewBAAH7AwABAQIAA/sDAAEBAgAB7AMAAewCAAEBBQAB7AIAAQEDAAHsAgAB/gUAAewCAAHsAgAG+wQA
+        BfsCAAEBAgAB/gUAAQECAAHsAwAB7AIAAQEFAAHsAgABAQMAAewCAAH+BQAB7AIAAewDAAH7AgAB7AYA
+        AewBAAH7AwABAQIAAf4FAAEBAgAB7AMAAewCAAEBAQAE+wHsAgABAQMAAewCAAH+BQAB7AIAAewEAAH7
+        AQAB7AIAAfsDAAHsAfsEAAEBAgAB/gUAAQECAAHsAwAD7AEBAewC+wPsAgABAQMACgECAAHsBgAD7AH7
+        AQAD7AUACgECAAHsBAAB7AEAAQEBAAH7AQAB+wIAAewBAAEBBAABAQEAAf4GAAEBAQAB7AkAAfsKAAHs
+        AQAB/gYAAewBAAHsBQAB7AEBAQAB+wIAAfsCAAHsAQEFAAEBAf4CAAH7BAABAQHsBwAB+wEAAfsBAAH7
+        CQAB7AH+BwAC7AYACgEGAAIBA/sFAQgAA/sLAArsDQAB+wkAAfsBAAH7AQAB+w0AAfskAAH7CgAB+zUA
+        AfsJAAH7CAAD+woAA/sOAAH7IQAC+wwAAvsCAAHsAwAH7AP7AewWAAH7CAAB+wHsAQMKAAH7AQAB+w4A
+        AfsXAAP7CQABAwkAAfsRAAHsFgAB+wEAAfsBAAH7JAAB7A8AAfsIAAH7DwAF7AUAAewGAATsAgAB7AcA
+        BewCAAP7BwAB+w0AAewGAAHsBAAB7AQAAewFAAHsAQAB7AUAAewGAAHsAgAB+wMAAfsJAAH7CAAB7AcA
+        AewDAAHsBAAB7AYAAuwFAAHsBwAB7AQAAfsLAAH7BgAC7AcAAuwCAAHsAwAC7AYAAuwEAALsBwABAwHs
+        AgAF+wUABfsFAAHsCQAB7AIAAewDAAHsCAAB7AQAAewEAAP7AgAB7AMAAfsLAAH7BgAB7AkAAewCAAHs
+        AwAB7AgAAewEAAHsAgAC+wUAAewEAAH7BAAB+wQAAfsHAALsBwAC7AIAAewDAALsBgAC7AUAAewHAALs
+        CQAB+wsAAfsBAAHsBwAB7AMAAewEAAHsBgAC7AUAAewHAAHsCgAB+wgAAfsBAAH7AwAB7AUAAewB+wEA
+        AfsBAAH7BQAB7AQAAewBAAHsAQAD+wIAAewFAAHsCQAB+wEAAfsBAAH7BgAC+wUABewCAAX7BOwBAAbs
+        CAAF7AsAA/sHAAP7CgAD+wEAAfslAAH7HwAG7AgABuwNAAIHAuwFAA0KCAAB7Ab7AewGAAHsBqAB7AgA
+        AgsC7wEHA+wGAAMeAQADawEAAjcBbQgAAa4BWAb7AVgBrgQAAa4BmQagAZkBrgUAAgsCkgFPAgcB7wLs
+        BgADAQEAAwYBAAL7AewIAAFYAXMG+wFzAVgEAAHsARwGoAEcAewFAAFtAe0BBwFPAQICTwEHAuwBbQEL
+        BAADAQEAAwYBAAL7AewHAAE/AfsBWAZzAUYB+wQAAewBmQYcAZkB7AUAAewBBwFPAe0BAgHtAQIBBwPs
+        BQADCwEAAw0BAAIpAUMHAAH5ASwB+wZGAfkB+wQAAewBoAaZAaAB7AQAAW8B7wEHAQIBBwFyAQcBcgEH
+        A+wFAAMCAQADBAEAAwYDAARiAvkBLAEyBvkB+wQAAewIoAHsBAAB7AEHAXIBAgFyAQcCcgEHA+wFAAP6
+        AQAD/AEAA/4DAAf5AfsG+QH7BAAB7AigAewEAAHsAQcBcgECAXIBBwICAQcD7AEUAQEDAAP6AQAD/AEA
+        A/4DAARiAvkBLAEyBvkB+wQAAewIoAHsBAAB7AIHA3IBNQFyAXkBkgPsBAADLQEAA4UBAAOBBwAB+QEs
+        AfsGRgH5AfsEAAHsAaAGmQGgAewDAAFGAZIDBwJPAVgBBwFYAQcBkgLsBAADHgEAAykBAANhBwABPwH7
+        AVgGcwFGAfsEAAHsAZkGHAGZAewDAAHsAgcC7wHqAuwEBwHsAe0EAAP5AQAD+wEAA/0IAAFYAXMG+wFz
+        AVgEAAHsARwGoAEcAewDAAHsAgcC7AEAAewB7QIHApkB7AHvAQsDAAP5AQAD+wEAA/0IAAGuAVgG+wFY
+        Aa4EAAGuAZkGoAGZAa4DAAHsAe8BBwLsAQAB7AIHAZkCWAJuBAADIAEAAzcBAAOlCQAB7Ab7AewGAAHs
+        BqAB7AQAAm4CBwHsAQ4DBwH7Am4bAAbsCAAG7AcAAuwBBwXsOgAE7C0ABvsKAAbsKQABWAanAVgIAAHs
+        BvsB7BsAAvsKAAFYAYYGAAGGAVgGAAGuAVgG+wFYAa4HAAn/CgAC+woAAfsBWAYAAVgB+wYAAewI+wHs
+        BwAJ/xYAAfsBrgZRAa4B+wYAAewI+wHsBwAJ/woAAfsLAAH7AQAGrgEAAfsGAAHsCPsB7AcACf8KAAH7
+        CwAB+wgAAfsGAAHsCPsB7AcACf8KAAH7CwAB+wgAAfsGAAHsCPsB7AcACf8KAAL7CgAB+wgAAfsGAAHs
+        CPsB7AcACf8LAAL7CQAB+wEABq4BAAH7BgAB7AH7BlgB+wHsBwAJ/wcAAfsEAAL7CAAB+wGuBlEBrgH7
+        BgAB7AFYBnMBWAHsBwAG/woAAfsFAAH7CAAB+wFYBgABWAH7BgAB7AFzBvsBcwHsBwAG/wEAAf8IAAL7
+        AwAC+wgAAVgBhgYAAYYBWAYAAa4BWAb7AVgBrgcABv8LAAX7CgABWAanAVgIAAHsBvsB7CkABvsKAAbs
+        RQABQgFNAT4HAAE+AwABKAMAAUADAAFwAwABAQEAAQEFAAGAAQMWAAP/gQAB/Qf/AfgBfwb/Af0BvwHH
+        Af8BwAEfAcABHwH/AZ8BkwH/As8B3wHPAf4BHwGTAf8C1wHfAdcBOQGPAZMB/wHYAQMB3wHbAcMBzwGT
+        Af8C2wHfAdsB8QLHAfsC2wHfAdsB9wFXAf8BwQLbAd8B2wH3AbcB/wGbAtsB3wHbAfsBqAH/Aa8BwAEb
+        AcABGwEZAU4B/wG1AusB7wHrAcIBPwH/AbkC8wH3AfMBwQL/AREB+AEDAfgBAwHnAv8BvwT/AfcH/wH+
+        Bf8B8QH/Af4B/wHgAQcBAAE/AfkB/wH6Ab8B5wHzAT8BnwHhAf8BgAEfAesB9QFfAa8BnwH/AZwBTwHs
+        AQABYAEHAaABDwGuAdcBzQH2AW8BtwGnAecBsAEDAeUB9gFvAbcBAwHrAbcB2wEBAfYBbwGnAaABAQG3
+        AdsB5QH2AW8BgALtAbcB2wHNAfYBbwGnAu0BtwHbAeABBgEAATcC7QG3AdsB9QH6Aa8B1wLtAYABGwH5
+        AfwBzwHnAeABDQHXAesB/AEAAeABBwL1AecB8wT/AvkB8AEDBP8B/AEBAf4D/wGAAR8BgAEfAfwBfwGA
+        AR8BnwHPAZ8BzwH6Ab8BnwHPAa8B1wGvAdcB/gH/Aa8B1wGwAQMBsAEDAfABjwG0AQMBtwHbAbcB2wHW
+        AecBuQHbAbcB2wG3AdsBtwHrAbEB2wG3AdsBtwHbAQMBwQG3AdsBtwHbAbcB2wG3AesBtwHbAbQBGwG3
+        AdsB1gHnAbcB2wGAARsBgAEbAfABjwGAARsB1QFrAdcB6wH+Af8B1wHrAeUBswHmAfMB+gG/AecB8wHw
+        AQMB8AEDAfwBfwHwAQMB/wHvAfoBvwH+BP8B9wH+Bv8B+wH+Af8BHwH4Af8B/QT/AT8B/AHcAQABfwH/
+        Af4B/wEfAfoBzwH9AT8B/wH8AX8BzwH3AecB/QGfAf8B+gG/AecB/wHzAf0BzwH9Af4B/wHyAQ8BuQEN
+        AeQBGAH+Af8B+QH3AbwB9QHzAe0B3wH3AvsBvQH5AvcBvwH7AfMB+QG5AfkB5wHzAQcBwQH3Af0BuwH9
+        Ae8BGwG/AfsB9wH9AbsB/QHsAfsB3gH3AfMB+QG5AfkB9wHzAf4B/wHrAfsBvQH5AvcB/gH/AV0B8gG+
+        AfUBGwHvAfoBvwE+AQwCAQH8AR8B/AF/AR8B+AG/A/8B/gP/Af4BBwH4AR8B/AEHAYABAwH8AQMB8AEP
+        AfABBwGAAQMB+AEBAeABBwHAAQcBgAEDAfgBAQHgAQcBwAEDAYABAwHwAQEB4AEHAcABAwGAAQMB8AEB
+        AeABBwGAAQMBgAEDAQABAQHgAQcBgAEDAYABAwEAAQEB4AEHAYABAQGAAQMBAAEBAeABBwGAAQEBgAED
+        AfABAQHgAQcBAAEBAYABAwHwAQEB4AEHAQABAQGAAQMB+AEBAeABBwEAAQEBgAEDAfgBAQHgAQcBAAED
+        AYABAwH8AQMB8AEPAQABDwGAAQMB/gEHAfgBHwHAAT8G/wHwBf8B+AEfAfgBHwL/Af4BPwHwAQ8B8AEP
+        AeABAwH8AR8C5wHgAQcB4AEDAfwBHwLnAeABBwHgAQMB/gF/AeABBwHgAQcB4AEDAfwBPwHoARcB4AEH
+        AeABAwH8AT8B7wH3AeABBwHgAQMB/AE/Ae8B9wHgAQcB4AEDAfwBHwHvAfcB4AEHAeABAwHyAQ8B6AEX
+        AeABBwHgAQMB4QEHAeABBwHgAQcB4AEDAeEBhwLnAeABBwHgAQcB4AEHAucB4AEHAeABDwHwAQ8B8AEP
+        AfABDwHgAR8B+AEfAfgBHwH4AR8I/ws=
+</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/Form1.vb b/samples/CSharp/WinFormsVB/Form1.vb
new file mode 100644
index 0000000000..f058f2c5df
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/Form1.vb
@@ -0,0 +1,995 @@
+﻿
+Imports System.Drawing
+Imports System.Collections
+Imports System.ComponentModel
+Imports System.Windows.Forms
+Imports System.Data
+
+'Namespace IE_WinForms
+	''' <summary>
+	''' Summary description for Form1.
+	''' </summary>
+	Public Class Form1
+		Inherits System.Windows.Forms.Form
+		Private WithEvents mainMenu1 As System.Windows.Forms.MainMenu
+		Private WithEvents FileNew As System.Windows.Forms.MenuItem
+		Private WithEvents FileClose As System.Windows.Forms.MenuItem
+		Private WithEvents FileExport As System.Windows.Forms.MenuItem
+		Private WithEvents FileImport As System.Windows.Forms.MenuItem
+		Private WithEvents ImportBRep As System.Windows.Forms.MenuItem
+		Private WithEvents ExportImage As System.Windows.Forms.MenuItem
+		Private WithEvents File As System.Windows.Forms.MenuItem
+		Private WithEvents Window As System.Windows.Forms.MenuItem
+		Private WithEvents DNew As System.Windows.Forms.ToolBarButton
+		Private WithEvents imageList1 As System.Windows.Forms.ImageList
+		Private WithEvents About As System.Windows.Forms.ToolBarButton
+		Private WithEvents myStatusBar As System.Windows.Forms.StatusBar
+		Private WithEvents ImportIges As System.Windows.Forms.MenuItem
+		Private WithEvents ImportStep As System.Windows.Forms.MenuItem
+		Private WithEvents ExportBRep As System.Windows.Forms.MenuItem
+		Private WithEvents ExportIges As System.Windows.Forms.MenuItem
+		Private WithEvents ExportStep As System.Windows.Forms.MenuItem
+		Private WithEvents ExportStl As System.Windows.Forms.MenuItem
+		Private WithEvents ExportVrml As System.Windows.Forms.MenuItem
+		Private WithEvents components As System.ComponentModel.IContainer
+		Private WithEvents menuItem1 As System.Windows.Forms.MenuItem
+		Private WithEvents menuItem2 As System.Windows.Forms.MenuItem
+		Private WithEvents menuItem3 As System.Windows.Forms.MenuItem
+		Private WithEvents View As System.Windows.Forms.MenuItem
+		Private WithEvents Help As System.Windows.Forms.MenuItem
+		Private WithEvents HelpAbout As System.Windows.Forms.MenuItem
+		Private WithEvents ViewToolbar As System.Windows.Forms.MenuItem
+		Private WithEvents ViewStatusBar As System.Windows.Forms.MenuItem
+		Private WithEvents menuItem4 As System.Windows.Forms.MenuItem
+		Private WithEvents WindowCascade As System.Windows.Forms.MenuItem
+		Private WithEvents WindowTile As System.Windows.Forms.MenuItem
+
+		Protected myModelFormat As IE_WinForms.ModelFormat
+		Private WithEvents wireframe As System.Windows.Forms.ToolBarButton
+		Private WithEvents shading As System.Windows.Forms.ToolBarButton
+		Private WithEvents toolBarButton1 As System.Windows.Forms.ToolBarButton
+		Private WithEvents color As System.Windows.Forms.ToolBarButton
+		Private WithEvents transparency As System.Windows.Forms.ToolBarButton
+		Private WithEvents delete As System.Windows.Forms.ToolBarButton
+		Private WithEvents material As System.Windows.Forms.ToolBarButton
+		Private WithEvents ZoomAll As System.Windows.Forms.ToolBarButton
+		Private WithEvents ZoomWin As System.Windows.Forms.ToolBarButton
+		Private WithEvents ZoomProg As System.Windows.Forms.ToolBarButton
+		Private WithEvents Pan As System.Windows.Forms.ToolBarButton
+		Private WithEvents PanGlo As System.Windows.Forms.ToolBarButton
+		Private WithEvents Front As System.Windows.Forms.ToolBarButton
+		Private WithEvents Back As System.Windows.Forms.ToolBarButton
+		Private WithEvents VTOP As System.Windows.Forms.ToolBarButton
+		Private WithEvents VBOTTOM As System.Windows.Forms.ToolBarButton
+		Private WithEvents VRIGHT As System.Windows.Forms.ToolBarButton
+		Private WithEvents VLEFT As System.Windows.Forms.ToolBarButton
+		Private WithEvents Axo As System.Windows.Forms.ToolBarButton
+		Private WithEvents Rot As System.Windows.Forms.ToolBarButton
+		Private WithEvents Reset As System.Windows.Forms.ToolBarButton
+		Private WithEvents HlrOn As System.Windows.Forms.ToolBarButton
+		Private WithEvents HlrOff As System.Windows.Forms.ToolBarButton
+		Private WithEvents toolBarTool As System.Windows.Forms.ToolBar
+		Private WithEvents toolBarView As System.Windows.Forms.ToolBar
+		Protected Shared myNbOfChildren As Integer
+
+        Public Sub New()
+            '
+            ' Required for Windows Form Designer support
+            '
+            InitializeComponent()
+
+            '
+        Form1.myNbOfChildren = 0
+        End Sub
+
+		#Region "Windows Form Designer generated code"
+		''' <summary>
+		''' Required method for Designer support - do not modify
+		''' the contents of this method with the code editor.
+		''' </summary>
+		Private Sub InitializeComponent()
+        Me.components = New System.ComponentModel.Container()
+        Dim configurationAppSettings As System.Configuration.AppSettingsReader = New System.Configuration.AppSettingsReader()
+        Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
+        Me.mainMenu1 = New System.Windows.Forms.MainMenu(Me.components)
+        Me.File = New System.Windows.Forms.MenuItem()
+        Me.FileNew = New System.Windows.Forms.MenuItem()
+        Me.FileExport = New System.Windows.Forms.MenuItem()
+        Me.ImportBRep = New System.Windows.Forms.MenuItem()
+        Me.ImportIges = New System.Windows.Forms.MenuItem()
+        Me.ImportStep = New System.Windows.Forms.MenuItem()
+        Me.FileImport = New System.Windows.Forms.MenuItem()
+        Me.ExportBRep = New System.Windows.Forms.MenuItem()
+        Me.ExportIges = New System.Windows.Forms.MenuItem()
+        Me.ExportStep = New System.Windows.Forms.MenuItem()
+        Me.ExportStl = New System.Windows.Forms.MenuItem()
+        Me.ExportVrml = New System.Windows.Forms.MenuItem()
+        Me.menuItem3 = New System.Windows.Forms.MenuItem()
+        Me.ExportImage = New System.Windows.Forms.MenuItem()
+        Me.FileClose = New System.Windows.Forms.MenuItem()
+        Me.menuItem2 = New System.Windows.Forms.MenuItem()
+        Me.menuItem1 = New System.Windows.Forms.MenuItem()
+        Me.View = New System.Windows.Forms.MenuItem()
+        Me.ViewToolbar = New System.Windows.Forms.MenuItem()
+        Me.ViewStatusBar = New System.Windows.Forms.MenuItem()
+        Me.Window = New System.Windows.Forms.MenuItem()
+        Me.menuItem4 = New System.Windows.Forms.MenuItem()
+        Me.WindowCascade = New System.Windows.Forms.MenuItem()
+        Me.WindowTile = New System.Windows.Forms.MenuItem()
+        Me.Help = New System.Windows.Forms.MenuItem()
+        Me.HelpAbout = New System.Windows.Forms.MenuItem()
+        Me.toolBarTool = New System.Windows.Forms.ToolBar()
+        Me.DNew = New System.Windows.Forms.ToolBarButton()
+        Me.About = New System.Windows.Forms.ToolBarButton()
+        Me.toolBarButton1 = New System.Windows.Forms.ToolBarButton()
+        Me.wireframe = New System.Windows.Forms.ToolBarButton()
+        Me.shading = New System.Windows.Forms.ToolBarButton()
+        Me.color = New System.Windows.Forms.ToolBarButton()
+        Me.material = New System.Windows.Forms.ToolBarButton()
+        Me.transparency = New System.Windows.Forms.ToolBarButton()
+        Me.delete = New System.Windows.Forms.ToolBarButton()
+        Me.imageList1 = New System.Windows.Forms.ImageList(Me.components)
+        Me.myStatusBar = New System.Windows.Forms.StatusBar()
+        Me.toolBarView = New System.Windows.Forms.ToolBar()
+        Me.ZoomAll = New System.Windows.Forms.ToolBarButton()
+        Me.ZoomWin = New System.Windows.Forms.ToolBarButton()
+        Me.ZoomProg = New System.Windows.Forms.ToolBarButton()
+        Me.Pan = New System.Windows.Forms.ToolBarButton()
+        Me.PanGlo = New System.Windows.Forms.ToolBarButton()
+        Me.Front = New System.Windows.Forms.ToolBarButton()
+        Me.Back = New System.Windows.Forms.ToolBarButton()
+        Me.VTOP = New System.Windows.Forms.ToolBarButton()
+        Me.VBOTTOM = New System.Windows.Forms.ToolBarButton()
+        Me.VLEFT = New System.Windows.Forms.ToolBarButton()
+        Me.VRIGHT = New System.Windows.Forms.ToolBarButton()
+        Me.Axo = New System.Windows.Forms.ToolBarButton()
+        Me.Rot = New System.Windows.Forms.ToolBarButton()
+        Me.Reset = New System.Windows.Forms.ToolBarButton()
+        Me.HlrOn = New System.Windows.Forms.ToolBarButton()
+        Me.HlrOff = New System.Windows.Forms.ToolBarButton()
+        Me.SuspendLayout()
+        '
+        'mainMenu1
+        '
+        Me.mainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.File, Me.View, Me.Window, Me.Help})
+        '
+        'File
+        '
+        Me.File.Index = 0
+        Me.File.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.FileNew, Me.FileExport, Me.FileImport, Me.FileClose, Me.menuItem2, Me.menuItem1})
+        Me.File.Text = "&File"
+        '
+        'FileNew
+        '
+        Me.FileNew.Index = 0
+        Me.FileNew.Text = "&New"
+        '
+        'FileExport
+        '
+        Me.FileExport.Index = 1
+        Me.FileExport.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.ImportBRep, Me.ImportIges, Me.ImportStep})
+        Me.FileExport.Text = "&Import"
+        Me.FileExport.Visible = False
+        '
+        'ImportBRep
+        '
+        Me.ImportBRep.Index = 0
+        Me.ImportBRep.Text = "&BRep ..."
+        '
+        'ImportIges
+        '
+        Me.ImportIges.Index = 1
+        Me.ImportIges.Text = "&Iges ..."
+        '
+        'ImportStep
+        '
+        Me.ImportStep.Index = 2
+        Me.ImportStep.Text = "&Step ..."
+        '
+        'FileImport
+        '
+        Me.FileImport.Index = 2
+        Me.FileImport.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.ExportBRep, Me.ExportIges, Me.ExportStep, Me.ExportStl, Me.ExportVrml, Me.menuItem3, Me.ExportImage})
+        Me.FileImport.Text = "&Export"
+        Me.FileImport.Visible = False
+        '
+        'ExportBRep
+        '
+        Me.ExportBRep.Enabled = False
+        Me.ExportBRep.Index = 0
+        Me.ExportBRep.Text = "&BRep ..."
+        '
+        'ExportIges
+        '
+        Me.ExportIges.Enabled = False
+        Me.ExportIges.Index = 1
+        Me.ExportIges.Text = "&Iges ..."
+        '
+        'ExportStep
+        '
+        Me.ExportStep.Enabled = False
+        Me.ExportStep.Index = 2
+        Me.ExportStep.Text = "&Step ..."
+        '
+        'ExportStl
+        '
+        Me.ExportStl.Enabled = False
+        Me.ExportStl.Index = 3
+        Me.ExportStl.Text = "&Stl ..."
+        '
+        'ExportVrml
+        '
+        Me.ExportVrml.Enabled = False
+        Me.ExportVrml.Index = 4
+        Me.ExportVrml.Text = "&Vrml ..."
+        '
+        'menuItem3
+        '
+        Me.menuItem3.Index = 5
+        Me.menuItem3.Text = "-"
+        '
+        'ExportImage
+        '
+        Me.ExportImage.Index = 6
+        Me.ExportImage.Text = "Image ..."
+        '
+        'FileClose
+        '
+        Me.FileClose.Enabled = False
+        Me.FileClose.Index = 3
+        Me.FileClose.Text = "&Close"
+        '
+        'menuItem2
+        '
+        Me.menuItem2.Index = 4
+        Me.menuItem2.Text = "-"
+        '
+        'menuItem1
+        '
+        Me.menuItem1.Index = 5
+        Me.menuItem1.Text = "&Quit"
+        '
+        'View
+        '
+        Me.View.Index = 1
+        Me.View.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.ViewToolbar, Me.ViewStatusBar})
+        Me.View.Text = "&View"
+        '
+        'ViewToolbar
+        '
+        Me.ViewToolbar.Checked = True
+        Me.ViewToolbar.Index = 0
+        Me.ViewToolbar.Text = "&Toolbar"
+        '
+        'ViewStatusBar
+        '
+        Me.ViewStatusBar.Checked = True
+        Me.ViewStatusBar.Index = 1
+        Me.ViewStatusBar.Text = "&Statusbar"
+        '
+        'Window
+        '
+        Me.Window.Index = 2
+        Me.Window.MdiList = True
+        Me.Window.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.menuItem4, Me.WindowCascade, Me.WindowTile})
+        Me.Window.Text = "&Window"
+        Me.Window.Visible = False
+        '
+        'menuItem4
+        '
+        Me.menuItem4.Index = 0
+        Me.menuItem4.Text = "&New 3d View"
+        '
+        'WindowCascade
+        '
+        Me.WindowCascade.Index = 1
+        Me.WindowCascade.Text = "&Cascade"
+        '
+        'WindowTile
+        '
+        Me.WindowTile.Index = 2
+        Me.WindowTile.Text = "&Tile"
+        '
+        'Help
+        '
+        Me.Help.Index = 3
+        Me.Help.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.HelpAbout})
+        Me.Help.Text = "&Help"
+        '
+        'HelpAbout
+        '
+        Me.HelpAbout.Index = 0
+        Me.HelpAbout.Shortcut = System.Windows.Forms.Shortcut.F1
+        Me.HelpAbout.Text = "&About"
+        '
+        'toolBarTool
+        '
+        Me.toolBarTool.AccessibleRole = System.Windows.Forms.AccessibleRole.ToolBar
+        Me.toolBarTool.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.DNew, Me.About, Me.toolBarButton1, Me.wireframe, Me.shading, Me.color, Me.material, Me.transparency, Me.delete})
+        Me.toolBarTool.DropDownArrows = True
+        Me.toolBarTool.ImageList = Me.imageList1
+        Me.toolBarTool.Location = New System.Drawing.Point(0, 0)
+        Me.toolBarTool.Name = "toolBarTool"
+        Me.toolBarTool.ShowToolTips = True
+        Me.toolBarTool.Size = New System.Drawing.Size(560, 28)
+        Me.toolBarTool.TabIndex = 1
+        '
+        'DNew
+        '
+        Me.DNew.ImageIndex = 0
+        Me.DNew.Name = "DNew"
+        Me.DNew.ToolTipText = "New"
+        Me.DNew.Visible = CType(configurationAppSettings.GetValue("New.Visible", GetType(Boolean)), Boolean)
+        '
+        'About
+        '
+        Me.About.ImageIndex = 1
+        Me.About.Name = "About"
+        Me.About.ToolTipText = "About(F1)"
+        Me.About.Visible = CType(configurationAppSettings.GetValue("About.Visible", GetType(Boolean)), Boolean)
+        '
+        'toolBarButton1
+        '
+        Me.toolBarButton1.Name = "toolBarButton1"
+        Me.toolBarButton1.Style = System.Windows.Forms.ToolBarButtonStyle.Separator
+        '
+        'wireframe
+        '
+        Me.wireframe.Enabled = CType(configurationAppSettings.GetValue("wireframe.Enabled", GetType(Boolean)), Boolean)
+        Me.wireframe.ImageIndex = 2
+        Me.wireframe.Name = "wireframe"
+        Me.wireframe.Pushed = CType(configurationAppSettings.GetValue("wireframe.Pushed", GetType(Boolean)), Boolean)
+        Me.wireframe.ToolTipText = "Wireframe"
+        Me.wireframe.Visible = CType(configurationAppSettings.GetValue("wireframe.Visible", GetType(Boolean)), Boolean)
+        '
+        'shading
+        '
+        Me.shading.Enabled = CType(configurationAppSettings.GetValue("shading.Enabled", GetType(Boolean)), Boolean)
+        Me.shading.ImageIndex = 3
+        Me.shading.Name = "shading"
+        Me.shading.Pushed = CType(configurationAppSettings.GetValue("shading.Pushed", GetType(Boolean)), Boolean)
+        Me.shading.ToolTipText = "Shading"
+        Me.shading.Visible = CType(configurationAppSettings.GetValue("shading.Visible", GetType(Boolean)), Boolean)
+        '
+        'color
+        '
+        Me.color.Enabled = CType(configurationAppSettings.GetValue("color.Enabled", GetType(Boolean)), Boolean)
+        Me.color.ImageIndex = 4
+        Me.color.Name = "color"
+        Me.color.ToolTipText = "Color"
+        Me.color.Visible = CType(configurationAppSettings.GetValue("color.Visible", GetType(Boolean)), Boolean)
+        '
+        'material
+        '
+        Me.material.Enabled = CType(configurationAppSettings.GetValue("material.Enabled", GetType(Boolean)), Boolean)
+        Me.material.ImageIndex = 5
+        Me.material.Name = "material"
+        Me.material.ToolTipText = "Material"
+        Me.material.Visible = CType(configurationAppSettings.GetValue("material.Visible", GetType(Boolean)), Boolean)
+        '
+        'transparency
+        '
+        Me.transparency.Enabled = CType(configurationAppSettings.GetValue("transparency.Enabled", GetType(Boolean)), Boolean)
+        Me.transparency.ImageIndex = 6
+        Me.transparency.Name = "transparency"
+        Me.transparency.ToolTipText = "Transparency"
+        Me.transparency.Visible = CType(configurationAppSettings.GetValue("transparency.Visible", GetType(Boolean)), Boolean)
+        '
+        'delete
+        '
+        Me.delete.Enabled = CType(configurationAppSettings.GetValue("delete.Enabled", GetType(Boolean)), Boolean)
+        Me.delete.ImageIndex = 7
+        Me.delete.Name = "delete"
+        Me.delete.ToolTipText = "Delete"
+        Me.delete.Visible = CType(configurationAppSettings.GetValue("delete.Visible", GetType(Boolean)), Boolean)
+        '
+        'imageList1
+        '
+        Me.imageList1.ImageStream = CType(resources.GetObject("imageList1.ImageStream"), System.Windows.Forms.ImageListStreamer)
+        Me.imageList1.TransparentColor = System.Drawing.Color.Transparent
+        Me.imageList1.Images.SetKeyName(0, "")
+        Me.imageList1.Images.SetKeyName(1, "")
+        Me.imageList1.Images.SetKeyName(2, "")
+        Me.imageList1.Images.SetKeyName(3, "")
+        Me.imageList1.Images.SetKeyName(4, "")
+        Me.imageList1.Images.SetKeyName(5, "")
+        Me.imageList1.Images.SetKeyName(6, "")
+        Me.imageList1.Images.SetKeyName(7, "")
+        Me.imageList1.Images.SetKeyName(8, "")
+        Me.imageList1.Images.SetKeyName(9, "")
+        Me.imageList1.Images.SetKeyName(10, "")
+        Me.imageList1.Images.SetKeyName(11, "")
+        Me.imageList1.Images.SetKeyName(12, "")
+        Me.imageList1.Images.SetKeyName(13, "")
+        Me.imageList1.Images.SetKeyName(14, "")
+        Me.imageList1.Images.SetKeyName(15, "")
+        Me.imageList1.Images.SetKeyName(16, "")
+        Me.imageList1.Images.SetKeyName(17, "")
+        Me.imageList1.Images.SetKeyName(18, "")
+        Me.imageList1.Images.SetKeyName(19, "")
+        Me.imageList1.Images.SetKeyName(20, "")
+        Me.imageList1.Images.SetKeyName(21, "")
+        Me.imageList1.Images.SetKeyName(22, "")
+        Me.imageList1.Images.SetKeyName(23, "")
+        '
+        'myStatusBar
+        '
+        Me.myStatusBar.AccessibleRole = System.Windows.Forms.AccessibleRole.StatusBar
+        Me.myStatusBar.Location = New System.Drawing.Point(0, 363)
+        Me.myStatusBar.Name = "myStatusBar"
+        Me.myStatusBar.Size = New System.Drawing.Size(560, 22)
+        Me.myStatusBar.TabIndex = 3
+        '
+        'toolBarView
+        '
+        Me.toolBarView.AccessibleRole = System.Windows.Forms.AccessibleRole.ToolBar
+        Me.toolBarView.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.ZoomAll, Me.ZoomWin, Me.ZoomProg, Me.Pan, Me.PanGlo, Me.Front, Me.Back, Me.VTOP, Me.VBOTTOM, Me.VLEFT, Me.VRIGHT, Me.Axo, Me.Rot, Me.Reset, Me.HlrOn, Me.HlrOff})
+        Me.toolBarView.DropDownArrows = True
+        Me.toolBarView.ImageList = Me.imageList1
+        Me.toolBarView.Location = New System.Drawing.Point(0, 28)
+        Me.toolBarView.Name = "toolBarView"
+        Me.toolBarView.ShowToolTips = True
+        Me.toolBarView.Size = New System.Drawing.Size(560, 28)
+        Me.toolBarView.TabIndex = 5
+        Me.toolBarView.Visible = False
+        Me.toolBarView.Wrappable = False
+        '
+        'ZoomAll
+        '
+        Me.ZoomAll.ImageIndex = 8
+        Me.ZoomAll.Name = "ZoomAll"
+        Me.ZoomAll.ToolTipText = "FitAll"
+        '
+        'ZoomWin
+        '
+        Me.ZoomWin.ImageIndex = 9
+        Me.ZoomWin.Name = "ZoomWin"
+        Me.ZoomWin.ToolTipText = "Zoom Window"
+        '
+        'ZoomProg
+        '
+        Me.ZoomProg.ImageIndex = 10
+        Me.ZoomProg.Name = "ZoomProg"
+        Me.ZoomProg.ToolTipText = "Dynamic Zooming"
+        '
+        'Pan
+        '
+        Me.Pan.ImageIndex = 11
+        Me.Pan.Name = "Pan"
+        Me.Pan.ToolTipText = "Dynamic Panning"
+        '
+        'PanGlo
+        '
+        Me.PanGlo.ImageIndex = 12
+        Me.PanGlo.Name = "PanGlo"
+        Me.PanGlo.ToolTipText = "GlobalPanning"
+        '
+        'Front
+        '
+        Me.Front.ImageIndex = 13
+        Me.Front.Name = "Front"
+        Me.Front.ToolTipText = "Front"
+        '
+        'Back
+        '
+        Me.Back.ImageIndex = 14
+        Me.Back.Name = "Back"
+        Me.Back.ToolTipText = "Back"
+        '
+        'VTOP
+        '
+        Me.VTOP.ImageIndex = 15
+        Me.VTOP.Name = "VTOP"
+        Me.VTOP.ToolTipText = "Top"
+        '
+        'VBOTTOM
+        '
+        Me.VBOTTOM.ImageIndex = 16
+        Me.VBOTTOM.Name = "VBOTTOM"
+        Me.VBOTTOM.ToolTipText = "Bottom"
+        '
+        'VLEFT
+        '
+        Me.VLEFT.ImageIndex = 17
+        Me.VLEFT.Name = "VLEFT"
+        Me.VLEFT.ToolTipText = "Left"
+        '
+        'VRIGHT
+        '
+        Me.VRIGHT.ImageIndex = 18
+        Me.VRIGHT.Name = "VRIGHT"
+        Me.VRIGHT.ToolTipText = "Right"
+        '
+        'Axo
+        '
+        Me.Axo.ImageIndex = 19
+        Me.Axo.Name = "Axo"
+        Me.Axo.ToolTipText = "Axo"
+        '
+        'Rot
+        '
+        Me.Rot.ImageIndex = 20
+        Me.Rot.Name = "Rot"
+        Me.Rot.ToolTipText = "Dynamic Rotation"
+        '
+        'Reset
+        '
+        Me.Reset.ImageIndex = 21
+        Me.Reset.Name = "Reset"
+        Me.Reset.ToolTipText = "Reset"
+        '
+        'HlrOn
+        '
+        Me.HlrOn.ImageIndex = 22
+        Me.HlrOn.Name = "HlrOn"
+        Me.HlrOn.Pushed = True
+        Me.HlrOn.ToolTipText = "Hidden On"
+        '
+        'HlrOff
+        '
+        Me.HlrOff.ImageIndex = 23
+        Me.HlrOff.Name = "HlrOff"
+        Me.HlrOff.ToolTipText = "Hidden Off"
+        '
+        'Form1
+        '
+        Me.AccessibleRole = System.Windows.Forms.AccessibleRole.Application
+        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
+        Me.ClientSize = New System.Drawing.Size(560, 385)
+        Me.Controls.Add(Me.toolBarView)
+        Me.Controls.Add(Me.myStatusBar)
+        Me.Controls.Add(Me.toolBarTool)
+        Me.IsMdiContainer = True
+        Me.Menu = Me.mainMenu1
+        Me.Name = "Form1"
+        Me.Text = "Sample Import / Export VB"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+
+    End Sub
+		#End Region
+
+		''' <summary>
+		''' The main entry point for the application.
+		''' </summary>
+		<STAThread> _
+		Private Shared Sub Main()
+			Application.Run(New Form1())
+		End Sub
+
+    Private Sub menuItem2_Click(sender As Object, e As System.EventArgs) Handles FileNew.Click
+
+        Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
+        Me.OnNewFile()
+    End Sub
+
+    Private Sub menuItem3_Click(sender As Object, e As System.EventArgs) Handles FileClose.Click
+        If Me.MdiChildren.Length > 0 Then
+            Me.ActiveMdiChild.Close()
+        End If
+
+    End Sub
+
+    Private Sub ImportBRep_Click(sender As Object, e As System.EventArgs) Handles ImportBRep.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = ModelFormat.BREP
+        curForm.ImportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub toolBar1_ButtonClick(sender As Object, e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles toolBarTool.ButtonClick
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        Select Case toolBarTool.Buttons.IndexOf(e.Button)
+            Case 0
+                Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
+                Me.OnNewFile()
+                Exit Select
+            Case 1
+                Dim myDlg As New AboutDialog()
+                myDlg.ShowDialog(Me)
+                Exit Select
+
+            Case 2
+                'just separator
+                Exit Select
+            Case 3
+                If curForm Is Nothing Then
+                    Return
+                End If
+                curForm.SetDisplayMode(0)
+                'wireframe
+                Me.wireframe.Enabled = False
+                Me.shading.Enabled = True
+                Me.transparency.Enabled = False
+                Exit Select
+            Case 4
+                If curForm Is Nothing Then
+                    Return
+                End If
+                curForm.SetDisplayMode(1)
+                'shading
+                Me.shading.Enabled = False
+                Me.wireframe.Enabled = True
+                Me.transparency.Enabled = True
+                Exit Select
+            Case 5
+                If curForm Is Nothing Then
+                    Return
+                End If
+                curForm.ChangeColor(True)
+                Exit Select
+            Case 6
+                If curForm Is Nothing Then
+                    Return
+                End If
+                Dim m As New MaterialDialog()
+                m.View = curForm.View
+                m.ShowDialog(curForm)
+                Exit Select
+            Case 7
+                If curForm Is Nothing Then
+                    Return
+                End If
+                Dim t As IE_WinForms.TransparencyDialog = New TransparencyDialog()
+                t.View = curForm.View
+                t.ShowDialog(curForm)
+                Exit Select
+            Case 8
+                If curForm Is Nothing Then
+                    Return
+                End If
+                curForm.DeleteObjects()
+                Exit Select
+            Case Else
+                Exit Select
+        End Select
+    End Sub
+
+    Private Sub toolBar1_MouseHover(sender As Object, e As System.EventArgs)
+        Me.myStatusBar.Text = "Document toolbar"
+    End Sub
+
+    Private Sub toolBar1_MouseLeave(sender As Object, e As System.EventArgs)
+        Me.myStatusBar.Text = ""
+    End Sub
+
+    Private Sub ImportIges_Click(sender As Object, e As System.EventArgs) Handles ImportIges.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = IE_WinForms.ModelFormat.IGES
+        curForm.ImportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub ImportStep_Click(sender As Object, e As System.EventArgs) Handles ImportStep.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = IE_WinForms.ModelFormat.[STEP]
+        curForm.ImportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub ExportBRep_Click(sender As Object, e As System.EventArgs) Handles ExportBRep.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = IE_WinForms.ModelFormat.BREP
+        curForm.ExportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub ExportIges_Click(sender As Object, e As System.EventArgs) Handles ExportIges.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = IE_WinForms.ModelFormat.IGES
+        curForm.ExportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub ExportStep_Click(sender As Object, e As System.EventArgs) Handles ExportStep.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = IE_WinForms.ModelFormat.[STEP]
+        curForm.ExportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub ExportStl_Click(sender As Object, e As System.EventArgs) Handles ExportStl.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = IE_WinForms.ModelFormat.STL
+        curForm.ExportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub ExportVrml_Click(sender As Object, e As System.EventArgs) Handles ExportVrml.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = IE_WinForms.ModelFormat.VRML
+        curForm.ExportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub ExportImage_Click(sender As Object, e As System.EventArgs) Handles ExportImage.Click
+        Dim curForm As Form2 = DirectCast(Me.ActiveMdiChild, Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Me.myModelFormat = IE_WinForms.ModelFormat.IMAGE
+        curForm.ExportModel(Me.myModelFormat)
+    End Sub
+
+    Private Sub HelpAbout_Click(sender As Object, e As System.EventArgs) Handles HelpAbout.Click
+        Dim myDlg As New AboutDialog()
+        myDlg.ShowDialog(Me)
+    End Sub
+
+    Private Sub ViewToolbar_Click(sender As Object, e As System.EventArgs) Handles ViewToolbar.Click
+
+        If Me.ViewToolbar.Checked Then
+            If Me.MdiChildren.Length > 0 Then
+                Me.DNew.Visible = False
+                Me.About.Visible = False
+            Else
+                Me.toolBarTool.Hide()
+            End If
+            Me.ViewToolbar.Checked = False
+        Else
+            If Me.MdiChildren.Length > 0 Then
+                Me.DNew.Visible = True
+                Me.About.Visible = True
+            Else
+                Me.toolBarTool.Show()
+            End If
+            Me.ViewToolbar.Checked = True
+        End If
+
+    End Sub
+
+    Private Sub ViewStatusBar_Click(sender As Object, e As System.EventArgs) Handles ViewStatusBar.Click
+        If Me.ViewStatusBar.Checked Then
+            Me.myStatusBar.Hide()
+            Me.ViewStatusBar.Checked = False
+        Else
+            Me.myStatusBar.Show()
+            Me.ViewStatusBar.Checked = True
+        End If
+    End Sub
+
+    Public Sub OnNewFile()
+        Dim newForm As New Form2()
+        newForm.MdiParent = Me
+        IE_WinForms.Form1.myNbOfChildren = IE_WinForms.Form1.myNbOfChildren + 1
+        newForm.SetIndex(IE_WinForms.Form1.myNbOfChildren, 1)
+        newForm.Show()
+        newForm.InitView()
+        newForm.InitV3D()
+        Me.FileExport.Visible = True
+        Me.FileImport.Visible = True
+        Me.Window.Visible = True
+        Me.wireframe.Visible = True
+        Me.shading.Visible = True
+        Me.color.Visible = True
+        Me.material.Visible = True
+        Me.transparency.Visible = True
+        Me.delete.Visible = True
+        Me.Cursor = System.Windows.Forms.Cursors.[Default]
+        Me.toolBarView.Visible = True
+    End Sub
+
+    Private Sub FileImport_Popup(sender As Object, e As System.EventArgs) Handles FileImport.Popup
+        Dim curForm As IE_WinForms.Form2 = DirectCast(Me.ActiveMdiChild, IE_WinForms.Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        If curForm.View.IsObjectSelected() Then
+            Me.ExportBRep.Enabled = True
+            Me.ExportIges.Enabled = True
+            Me.ExportStep.Enabled = True
+            Me.ExportVrml.Enabled = True
+            Me.ExportStl.Enabled = True
+        End If
+
+    End Sub
+
+    Private Sub menuItem1_Click(sender As Object, e As System.EventArgs) Handles menuItem1.Click
+        Me.Close()
+    End Sub
+
+    Private Sub File_Popup(sender As Object, e As System.EventArgs) Handles File.Popup
+        If Me.MdiChildren.Length > 0 Then
+            Me.FileClose.Enabled = True
+        Else
+            Me.FileClose.Enabled = False
+            Me.FileExport.Visible = False
+            Me.FileImport.Visible = False
+        End If
+    End Sub
+
+    Private Sub menuItem4_Click(sender As Object, e As System.EventArgs) Handles menuItem4.Click
+        Dim curForm As IE_WinForms.Form2 = DirectCast(Me.ActiveMdiChild, IE_WinForms.Form2)
+        Dim newView As IE_WinForms.Form2 = New Form2()
+        newView.MdiParent = Me
+        newView.Show()
+        newView.InitView()
+        newView.SetContext(curForm.View)
+        newView.View.CreateNewView(newView.Handle)
+        newView.SetNextIndex(curForm)
+    End Sub
+
+    Private Sub WindowCascade_Click(sender As Object, e As System.EventArgs) Handles WindowCascade.Click
+        Me.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade)
+    End Sub
+
+    Private Sub WindowTile_Click(sender As Object, e As System.EventArgs) Handles WindowTile.Click
+        Me.LayoutMdi(System.Windows.Forms.MdiLayout.TileVertical)
+    End Sub
+
+    Public Sub SelectionChanged()
+        If Me.MdiChildren.Length = 0 Then
+            Return
+        End If
+        Dim curForm As IE_WinForms.Form2 = DirectCast(Me.ActiveMdiChild, IE_WinForms.Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Select Case curForm.View.DisplayMode()
+            Case -1
+                Me.shading.Enabled = False
+                Me.wireframe.Enabled = False
+                Exit Select
+            Case 0
+                Me.wireframe.Enabled = False
+                Me.shading.Enabled = True
+                Me.transparency.Enabled = False
+                Exit Select
+            Case 1
+                Me.wireframe.Enabled = True
+                Me.shading.Enabled = False
+                Me.transparency.Enabled = True
+                Exit Select
+            Case 10
+                Me.wireframe.Enabled = True
+                Me.shading.Enabled = True
+                Me.transparency.Enabled = True
+                Exit Select
+            Case Else
+                Exit Select
+        End Select
+        Dim IsSelected As Boolean = curForm.View.IsObjectSelected()
+        If IsSelected Then
+            Me.color.Enabled = True
+            Me.material.Enabled = True
+            Me.delete.Enabled = True
+        Else
+            Me.color.Enabled = False
+            Me.material.Enabled = False
+            Me.transparency.Enabled = False
+            Me.delete.Enabled = False
+        End If
+        If curForm.DegenerateMode Then
+            Me.HlrOff.Pushed = False
+            Me.HlrOn.Pushed = True
+        Else
+            Me.HlrOff.Pushed = True
+            Me.HlrOn.Pushed = False
+        End If
+        If curForm.Mode = IE_WinForms.CurrentAction3d.CurAction3d_WindowZooming Then
+            Me.ZoomWin.Pushed = False
+        End If
+
+    End Sub
+
+    Public ReadOnly Property StatusBar() As StatusBar
+        Get
+            Return Me.myStatusBar
+        End Get
+    End Property
+
+    Public Sub OnFileClose()
+        If Me.MdiChildren.Length <= 1 Then
+            Me.FileClose.Enabled = False
+            Me.Window.Visible = False
+            Me.wireframe.Visible = False
+            Me.shading.Visible = False
+            Me.color.Visible = False
+            Me.material.Visible = False
+            Me.transparency.Visible = False
+            Me.delete.Visible = False
+            Me.toolBarView.Visible = False
+        End If
+    End Sub
+
+    Private Sub toolBarView_ButtonClick(sender As Object, e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles toolBarView.ButtonClick
+        Dim curForm As IE_WinForms.Form2 = DirectCast(Me.ActiveMdiChild, IE_WinForms.Form2)
+        If curForm Is Nothing Then
+            Return
+        End If
+        Select Case toolBarView.Buttons.IndexOf(e.Button)
+            Case 0
+                curForm.View.ZoomAllView()
+                Exit Select
+            Case 1
+                curForm.Mode = CurrentAction3d.CurAction3d_WindowZooming
+                Me.ZoomWin.Pushed = True
+                Exit Select
+            Case 2
+                curForm.Mode = CurrentAction3d.CurAction3d_DynamicZooming
+                Exit Select
+            Case 3
+                curForm.Mode = CurrentAction3d.CurAction3d_DynamicPanning
+                Exit Select
+            Case 4
+                curForm.Zoom = curForm.View.Scale()
+                curForm.Mode = CurrentAction3d.CurAction3d_GlobalPanning
+                Exit Select
+            Case 5
+                curForm.View.FrontView()
+                Exit Select
+            Case 6
+                curForm.View.BackView()
+                Exit Select
+            Case 7
+                curForm.View.TopView()
+                Exit Select
+            Case 8
+                curForm.View.BottomView()
+                Exit Select
+            Case 9
+                curForm.View.LeftView()
+                Exit Select
+            Case 10
+                curForm.View.RightView()
+                Exit Select
+            Case 11
+                curForm.View.AxoView()
+                Exit Select
+            Case 12
+                curForm.Mode = CurrentAction3d.CurAction3d_DynamicRotation
+                Exit Select
+            Case 13
+                curForm.View.Reset()
+                Exit Select
+            Case 14
+                curForm.View.SetDegenerateModeOn()
+                curForm.DegenerateMode = True
+                Me.HlrOff.Pushed = False
+                Me.HlrOn.Pushed = True
+                Exit Select
+            Case 15
+                curForm.View.SetDegenerateModeOff()
+                curForm.DegenerateMode = False
+                Me.HlrOn.Pushed = False
+                Me.HlrOff.Pushed = True
+                Exit Select
+            Case Else
+                Exit Select
+        End Select
+    End Sub
+
+    Private Sub Form1_Activated(sender As Object, e As System.EventArgs) Handles MyBase.Activated
+        If Me.toolBarView.Visible Then
+            Me.SelectionChanged()
+        End If
+    End Sub
+
+    Private Sub toolBarView_MouseHover(sender As Object, e As System.EventArgs) Handles toolBarView.MouseHover
+        Me.myStatusBar.Text = "View toolbar"
+    End Sub
+
+    Private Sub toolBarView_MouseLeave(sender As Object, e As System.EventArgs) Handles toolBarView.MouseLeave
+        Me.myStatusBar.Text = ""
+    End Sub
+
+	End Class
+
+'End Namespace
+
diff --git a/samples/CSharp/WinFormsVB/Form2.Designer.vb b/samples/CSharp/WinFormsVB/Form2.Designer.vb
new file mode 100644
index 0000000000..abb700b215
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/Form2.Designer.vb
@@ -0,0 +1,7 @@
+﻿'Namespace IE_WinForms
+    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+    Partial Class Form2
+        Inherits System.Windows.Forms.Form
+
+    End Class
+'End Namespace
diff --git a/samples/CSharp/WinFormsVB/Form2.resx b/samples/CSharp/WinFormsVB/Form2.resx
new file mode 100644
index 0000000000..1af7de150c
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/Form2.resx
@@ -0,0 +1,120 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/Form2.vb b/samples/CSharp/WinFormsVB/Form2.vb
new file mode 100644
index 0000000000..91103855fa
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/Form2.vb
@@ -0,0 +1,859 @@
+﻿Imports System.Drawing
+Imports System.Collections
+Imports System.ComponentModel
+Imports System.Windows.Forms
+
+'Namespace IE_WinForms
+    Public Enum CurrentAction3d
+        CurAction3d_Nothing
+        CurAction3d_DynamicZooming
+        CurAction3d_WindowZooming
+        CurAction3d_DynamicPanning
+        CurAction3d_GlobalPanning
+        CurAction3d_DynamicRotation
+    End Enum
+    Public Enum CurrentPressedKey
+        CurPressedKey_Nothing
+        CurPressedKey_Ctrl
+        CurPressedKey_Shift
+    End Enum
+    Public Enum ModelFormat
+        BREP
+        [STEP]
+        IGES
+        VRML
+        STL
+        IMAGE
+    End Enum
+    ''' <summary>
+    ''' Summary description for Form2.
+    ''' </summary>
+    Public Class Form2
+        Inherits System.Windows.Forms.Form
+        Private components As System.ComponentModel.IContainer
+
+        Public Sub New()
+            '
+            ' Required for Windows Form Designer support
+            '
+            InitializeComponent()
+
+            '
+            ' Create OCCT proxy object
+            '
+            myOCCTProxy = New OCCTProxy()
+            myCurrentMode = CurrentAction3d.CurAction3d_Nothing
+            myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Nothing
+            myDegenerateModeIsOn = True
+            IsRectVisible = False
+        End Sub
+
+        ''' <summary>
+        ''' Clean up any resources being used.
+        ''' </summary>
+        Protected Overrides Sub Dispose(disposing As Boolean)
+            If disposing Then
+                If components IsNot Nothing Then
+                    components.Dispose()
+                End If
+            End If
+            MyBase.Dispose(disposing)
+        End Sub
+
+#Region "Windows Form Designer generated code"
+        ''' <summary>
+        ''' Required method for Designer support - do not modify
+        ''' the contents of this method with the code editor.
+        ''' </summary>
+        Private Sub InitializeComponent()
+            Me.components = New System.ComponentModel.Container()
+            Dim resources As New System.Resources.ResourceManager(GetType(Form2))
+            Me.imageList1 = New System.Windows.Forms.ImageList(Me.components)
+            Me.myPopup = New System.Windows.Forms.ContextMenu()
+            Me.menuItem1 = New System.Windows.Forms.MenuItem()
+            Me.myPopupObject = New System.Windows.Forms.ContextMenu()
+            Me.ContextWireframe = New System.Windows.Forms.MenuItem()
+            Me.ContextShading = New System.Windows.Forms.MenuItem()
+            Me.ContextColor = New System.Windows.Forms.MenuItem()
+            Me.ContextMaterial = New System.Windows.Forms.MenuItem()
+            Me.ContMatBrass = New System.Windows.Forms.MenuItem()
+            Me.ContMenBronze = New System.Windows.Forms.MenuItem()
+            Me.ContMenCopper = New System.Windows.Forms.MenuItem()
+            Me.ContMenGold = New System.Windows.Forms.MenuItem()
+            Me.ContMenPewt = New System.Windows.Forms.MenuItem()
+            Me.ContMenPlaster = New System.Windows.Forms.MenuItem()
+            Me.ContMenPlastic = New System.Windows.Forms.MenuItem()
+            Me.ContMenSilver = New System.Windows.Forms.MenuItem()
+            Me.ContMenTranc = New System.Windows.Forms.MenuItem()
+            Me.ContMenDelete = New System.Windows.Forms.MenuItem()
+            ' 
+            ' imageList1
+            ' 
+            Me.imageList1.ImageSize = New System.Drawing.Size(16, 16)
+            Me.imageList1.ImageStream = DirectCast(resources.GetObject("imageList1.ImageStream"), System.Windows.Forms.ImageListStreamer)
+            Me.imageList1.TransparentColor = System.Drawing.Color.Transparent
+            ' 
+            ' myPopup
+            ' 
+            Me.myPopup.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.menuItem1})
+            ' 
+            ' menuItem1
+            ' 
+            Me.menuItem1.Index = 0
+            Me.menuItem1.Text = "Change &Background"
+            AddHandler Me.menuItem1.Click, AddressOf Me.menuItem1_Click
+            ' 
+            ' myPopupObject
+            ' 
+            Me.myPopupObject.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.ContextWireframe, Me.ContextShading, Me.ContextColor, Me.ContextMaterial, Me.ContMenTranc, Me.ContMenDelete})
+            AddHandler Me.myPopupObject.Popup, AddressOf Me.myPopupObject_Popup
+            ' 
+            ' ContextWireframe
+            ' 
+            Me.ContextWireframe.Index = 0
+            Me.ContextWireframe.Text = "Wireframe"
+            AddHandler Me.ContextWireframe.Click, AddressOf Me.ContextWireframe_Click
+            ' 
+            ' ContextShading
+            ' 
+            Me.ContextShading.Index = 1
+            Me.ContextShading.Text = "Shading"
+            AddHandler Me.ContextShading.Click, AddressOf Me.ContextShading_Click
+            ' 
+            ' ContextColor
+            ' 
+            Me.ContextColor.Index = 2
+            Me.ContextColor.Text = "Color"
+            AddHandler Me.ContextColor.Click, AddressOf Me.ContextColor_Click
+            ' 
+            ' ContextMaterial
+            ' 
+            Me.ContextMaterial.Index = 3
+            Me.ContextMaterial.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.ContMatBrass, Me.ContMenBronze, Me.ContMenCopper, Me.ContMenGold, Me.ContMenPewt, Me.ContMenPlaster, _
+             Me.ContMenPlastic, Me.ContMenSilver})
+            Me.ContextMaterial.Text = "Material"
+            ' 
+            ' ContMatBrass
+            ' 
+            Me.ContMatBrass.Index = 0
+            Me.ContMatBrass.Text = "&Brass"
+            AddHandler Me.ContMatBrass.Click, AddressOf Me.ContMatBrass_Click
+            ' 
+            ' ContMenBronze
+            ' 
+            Me.ContMenBronze.Index = 1
+            Me.ContMenBronze.Text = "&Bronze"
+            AddHandler Me.ContMenBronze.Click, AddressOf Me.ContMenBronze_Click
+            ' 
+            ' ContMenCopper
+            ' 
+            Me.ContMenCopper.Index = 2
+            Me.ContMenCopper.Text = "&Copper"
+            AddHandler Me.ContMenCopper.Click, AddressOf Me.ContMenCopper_Click
+            ' 
+            ' ContMenGold
+            ' 
+            Me.ContMenGold.Index = 3
+            Me.ContMenGold.Text = "&Gold"
+            AddHandler Me.ContMenGold.Click, AddressOf Me.ContMenGold_Click
+            ' 
+            ' ContMenPewt
+            ' 
+            Me.ContMenPewt.Index = 4
+            Me.ContMenPewt.Text = "&Pewter"
+            AddHandler Me.ContMenPewt.Click, AddressOf Me.ContMenPewt_Click
+            ' 
+            ' ContMenPlaster
+            ' 
+            Me.ContMenPlaster.Index = 5
+            Me.ContMenPlaster.Text = "&Plaster"
+            AddHandler Me.ContMenPlaster.Click, AddressOf Me.ContMenPlaster_Click
+            ' 
+            ' ContMenPlastic
+            ' 
+            Me.ContMenPlastic.Index = 6
+            Me.ContMenPlastic.Text = "&Plastic"
+            AddHandler Me.ContMenPlastic.Click, AddressOf Me.ContMenPlastic_Click
+            ' 
+            ' ContMenSilver
+            ' 
+            Me.ContMenSilver.Index = 7
+            Me.ContMenSilver.Text = "&Silver"
+            AddHandler Me.ContMenSilver.Click, AddressOf Me.ContMenSilver_Click
+            ' 
+            ' ContMenTranc
+            ' 
+            Me.ContMenTranc.Index = 4
+            Me.ContMenTranc.Text = "&Trancparency"
+            AddHandler Me.ContMenTranc.Click, AddressOf Me.ContMenTranc_Click
+            ' 
+            ' ContMenDelete
+            ' 
+            Me.ContMenDelete.Index = 5
+            Me.ContMenDelete.Text = "&Delete"
+            AddHandler Me.ContMenDelete.Click, AddressOf Me.ContMenDelete_Click
+            ' 
+            ' Form2
+            ' 
+            Me.AccessibleRole = System.Windows.Forms.AccessibleRole.Window
+            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
+            Me.ClientSize = New System.Drawing.Size(320, 261)
+            Me.Icon = DirectCast(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+            Me.ImeMode = System.Windows.Forms.ImeMode.NoControl
+            Me.Name = "Form2"
+            Me.Text = "Document"
+            Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
+            AddHandler Me.KeyDown, AddressOf Me.Form2_KeyDown
+            AddHandler Me.MouseDown, AddressOf Me.Form2_MouseDown
+            AddHandler Me.SizeChanged, AddressOf Me.Form2_SizeChanged
+            AddHandler Me.MouseUp, AddressOf Me.Form2_MouseUp
+            AddHandler Me.KeyUp, AddressOf Me.Form2_KeyUp
+            AddHandler Me.Closed, AddressOf Me.Form2_Closed
+            AddHandler Me.Paint, AddressOf Me.Form2_Paint
+            AddHandler Me.MouseMove, AddressOf Me.Form2_MouseMove
+        End Sub
+#End Region
+
+        Private imageList1 As System.Windows.Forms.ImageList
+        Private myPopup As System.Windows.Forms.ContextMenu
+        Private myPopupObject As System.Windows.Forms.ContextMenu
+        Private ContextWireframe As System.Windows.Forms.MenuItem
+        Private ContextShading As System.Windows.Forms.MenuItem
+        Private ContextColor As System.Windows.Forms.MenuItem
+        Private ContextMaterial As System.Windows.Forms.MenuItem
+        Private ContMatBrass As System.Windows.Forms.MenuItem
+        Private ContMenBronze As System.Windows.Forms.MenuItem
+        Private ContMenCopper As System.Windows.Forms.MenuItem
+        Private ContMenGold As System.Windows.Forms.MenuItem
+        Private ContMenPewt As System.Windows.Forms.MenuItem
+        Private ContMenPlaster As System.Windows.Forms.MenuItem
+        Private ContMenPlastic As System.Windows.Forms.MenuItem
+        Private ContMenSilver As System.Windows.Forms.MenuItem
+        Private ContMenTranc As System.Windows.Forms.MenuItem
+        Private ContMenDelete As System.Windows.Forms.MenuItem
+        Private menuItem1 As System.Windows.Forms.MenuItem
+
+        Private myOCCTProxy As OCCTProxy
+        Private myDocumentIndex As Integer, myViewIndex As Integer
+
+        Public Sub InitV3D()
+            If Not myOCCTProxy.InitViewer(Me.Handle) Then
+                MessageBox.Show("Fatal Error during the graphic initialisation", "Error!", MessageBoxButtons.OK, MessageBoxIcon.[Error])
+            End If
+        End Sub
+
+        Public Function ImportBRep(filename As System.String) As Boolean
+            Return myOCCTProxy.ImportBrep(filename)
+        End Function
+
+        Private Sub Form2_SizeChanged(sender As Object, e As System.EventArgs)
+            myOCCTProxy.UpdateView()
+        End Sub
+
+        Private Sub Form2_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs)
+            myOCCTProxy.RedrawView()
+            myOCCTProxy.UpdateView()
+        End Sub
+
+        Protected myCurrentMode As CurrentAction3d
+        Protected myCurrentPressedKey As CurrentPressedKey
+        Protected myCurZoom As Single
+        ' ~ Quantity_Factor
+        Protected myDegenerateModeIsOn As Boolean
+        Protected myXmin As Integer
+        Protected myYmin As Integer
+        Protected myXmax As Integer
+        Protected myYmax As Integer
+        Protected theButtonDownX As Integer
+        Protected theButtonDownY As Integer
+        ' for erasing of rectangle
+        Protected theRectDownX As Integer
+        Protected theRectDownY As Integer
+        Protected IsRectVisible As Boolean
+
+        Private Sub Form2_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs)
+            Select Case e.Button
+                Case MouseButtons.Left
+                    myXmin = e.X
+                    myYmin = e.Y
+                    myXmax = e.X
+                    myYmax = e.Y
+                    If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl Then
+                        ' start the dinamic zooming....
+                        myCurrentMode = CurrentAction3d.CurAction3d_DynamicZooming
+                    Else
+                        Select Case myCurrentMode
+                            Case CurrentAction3d.CurAction3d_Nothing
+                                If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Shift Then
+                                    MultiDragEvent(myXmax, myYmax, -1)
+                                Else
+                                    DragEvent(myXmax, myYmax, -1)
+                                End If
+                                Exit Select
+                            Case CurrentAction3d.CurAction3d_DynamicRotation
+                                If Not myDegenerateModeIsOn Then
+                                    myOCCTProxy.SetDegenerateModeOn()
+                                End If
+                                'start the rotation
+                                myOCCTProxy.StartRotation(e.X, e.Y)
+                                Exit Select
+                            Case IE_WinForms.CurrentAction3d.CurAction3d_WindowZooming
+                                Me.Cursor = System.Windows.Forms.Cursors.Hand
+                                Exit Select
+                            Case Else
+                                Exit Select
+                        End Select
+                    End If
+                    Exit Select
+                Case MouseButtons.Right
+                    'MessageBox.Show("right mouse button is down");
+                    If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl Then
+                        If Not myDegenerateModeIsOn Then
+                            myOCCTProxy.SetDegenerateModeOn()
+                        End If
+                        myOCCTProxy.StartRotation(e.X, e.Y)
+                    Else
+                        Popup(e.X, e.Y)
+                    End If
+                    Exit Select
+                Case Else
+                    Exit Select
+            End Select
+        End Sub
+
+        Private Sub Form2_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs)
+            If e.Shift Then
+                myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Shift
+            ElseIf e.Control Then
+                myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl
+            End If
+        End Sub
+
+        Private Sub Form2_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs)
+            myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Nothing
+        End Sub
+
+        Protected Sub MultiDragEvent(x As Integer, y As Integer, theState As Integer)
+            If theState = -1 Then
+                theButtonDownX = x
+                theButtonDownY = y
+            ElseIf theState = 1 Then
+                myOCCTProxy.ShiftSelect(Math.Min(theButtonDownX, x), Math.Min(theButtonDownY, y), Math.Max(theButtonDownX, x), Math.Max(theButtonDownY, y))
+            End If
+        End Sub
+
+        Protected Sub DragEvent(x As Integer, y As Integer, theState As Integer)
+            If theState = -1 Then
+                'mouse is down
+                theButtonDownX = x
+                theButtonDownY = y
+            ElseIf theState = 1 Then
+                'mouse is up
+                myOCCTProxy.[Select](Math.Min(theButtonDownX, x), Math.Min(theButtonDownY, y), Math.Max(theButtonDownX, x), Math.Max(theButtonDownY, y))
+            End If
+        End Sub
+
+        Protected Sub Popup(x As Integer, y As Integer)
+            Dim p As System.Drawing.Point = New Point(x, y)
+            If Me.myOCCTProxy.IsObjectSelected() Then
+                Me.myPopupObject.Show(Me, p)
+            Else
+                Me.myPopup.Show(Me, p)
+            End If
+        End Sub
+
+        Private Sub Form2_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs)
+            Select Case e.Button
+                Case MouseButtons.Left
+                    If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl Then
+                        Return
+                    End If
+                    Select Case myCurrentMode
+                        Case CurrentAction3d.CurAction3d_Nothing
+                            If e.X = myXmin AndAlso e.Y = myYmin Then
+                                myXmax = e.X
+                                myYmax = e.Y
+                                If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Shift Then
+                                    MultiInputEvent(myXmax, myYmax)
+                                Else
+                                    InputEvent(myXmax, myYmax)
+                                End If
+                            Else
+                                myXmax = e.X
+                                myYmax = e.Y
+                                DrawRectangle(False)
+                                If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Shift Then
+                                    MultiDragEvent(myXmax, myYmax, 1)
+                                Else
+                                    DragEvent(myXmax, myYmax, 1)
+                                End If
+                            End If
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_DynamicZooming
+                            myCurrentMode = CurrentAction3d.CurAction3d_Nothing
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_WindowZooming
+                            myXmax = e.X
+                            myYmax = e.Y
+                            DrawRectangle(False)
+                            Dim ValZWMin As Integer = 1
+                            If Math.Abs(myXmax - myXmin) > ValZWMin AndAlso Math.Abs(myXmax - myYmax) > ValZWMin Then
+                                myOCCTProxy.WindowFitAll(myXmin, myYmin, myXmax, myYmax)
+                            End If
+                            Me.Cursor = System.Windows.Forms.Cursors.[Default]
+                            Dim f As IE_WinForms.Form1 = DirectCast(Me.ParentForm, IE_WinForms.Form1)
+                            f.SelectionChanged()
+                            myCurrentMode = CurrentAction3d.CurAction3d_Nothing
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_DynamicPanning
+                            myCurrentMode = CurrentAction3d.CurAction3d_Nothing
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_GlobalPanning
+                            myOCCTProxy.Place(e.X, e.Y, myCurZoom)
+                            myCurrentMode = CurrentAction3d.CurAction3d_Nothing
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_DynamicRotation
+                            myCurrentMode = CurrentAction3d.CurAction3d_Nothing
+                            If Not myDegenerateModeIsOn Then
+                                myOCCTProxy.SetDegenerateModeOff()
+                                myDegenerateModeIsOn = False
+                            Else
+                                myOCCTProxy.SetDegenerateModeOn()
+                                myDegenerateModeIsOn = True
+                            End If
+                            Exit Select
+                        Case Else
+                            Exit Select
+
+                    End Select
+                    Exit Select
+                Case MouseButtons.Right
+                    If Not myDegenerateModeIsOn Then
+                        myOCCTProxy.SetDegenerateModeOff()
+                        myDegenerateModeIsOn = False
+                    Else
+                        myOCCTProxy.SetDegenerateModeOn()
+                        myDegenerateModeIsOn = True
+                    End If
+                    Exit Select
+                Case Else
+                    Exit Select
+            End Select
+
+            Dim parent As IE_WinForms.Form1 = DirectCast(Me.ParentForm, IE_WinForms.Form1)
+            parent.SelectionChanged()
+        End Sub
+
+        Protected Sub MultiInputEvent(x As Integer, y As Integer)
+            myOCCTProxy.ShiftSelect()
+        End Sub
+
+        Protected Sub InputEvent(x As Integer, y As Integer)
+            myOCCTProxy.[Select]()
+        End Sub
+
+        Private Sub DrawRectangle(draw As Boolean)
+            Dim gr As Graphics = Graphics.FromHwnd(Me.Handle)
+            Dim p As System.Drawing.Pen = Nothing
+            If Me.IsRectVisible OrElse (Not draw) Then
+                'erase the rect
+                Dim r As Integer = myOCCTProxy.GetBGColR()
+                Dim g As Integer = myOCCTProxy.GetBGColG()
+                Dim b As Integer = myOCCTProxy.GetBGColB()
+                p = New Pen(System.Drawing.Color.FromArgb(r, g, b))
+                Me.IsRectVisible = False
+                Me.myOCCTProxy.UpdateView()
+            ElseIf draw Then
+                p = New Pen(System.Drawing.Color.White)
+                Me.IsRectVisible = True
+            End If
+            If p Is Nothing Then
+                Return
+            End If
+            Dim x As Integer = Math.Min(Me.myXmin, Me.myXmax)
+            Dim y As Integer = Math.Min(Me.myYmin, Me.myYmax)
+            gr.DrawRectangle(p, x, y, Math.Abs(myXmax - myXmin), Math.Abs(myYmax - myYmin))
+            Me.theRectDownX = Math.Max(Me.myXmin, Me.myXmax)
+            Me.theRectDownY = Math.Max(Me.myYmin, Me.myYmax)
+        End Sub
+
+        Private Sub Form2_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs)
+            If e.Button = MouseButtons.Left Then
+                'left button is pressed
+                If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl Then
+                    myOCCTProxy.Zoom(myXmax, myYmax, e.X, e.Y)
+                    myXmax = e.X
+                    myYmax = e.Y
+                Else
+                    Select Case myCurrentMode
+                        Case CurrentAction3d.CurAction3d_Nothing
+                            DrawRectangle(False)
+                            myXmax = e.X
+                            myYmax = e.Y
+                            DrawRectangle(True)
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_DynamicZooming
+                            myOCCTProxy.Zoom(myXmax, myYmax, e.X, e.Y)
+                            myXmax = e.X
+                            myYmax = e.Y
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_WindowZooming
+                            DrawRectangle(False)
+                            myXmax = e.X
+                            myYmax = e.Y
+                            DrawRectangle(True)
+                            'add brush here
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_DynamicPanning
+                            myOCCTProxy.Pan(e.X - myXmax, myYmax - e.Y)
+                            myXmax = e.X
+                            myYmax = e.Y
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_GlobalPanning
+                            Exit Select
+                        Case CurrentAction3d.CurAction3d_DynamicRotation
+                            myOCCTProxy.Rotation(e.X, e.Y)
+                            myOCCTProxy.RedrawView()
+                            Exit Select
+                        Case Else
+                            Exit Select
+                    End Select
+                End If
+                ' e.Button == MouseButtons.Left
+            ElseIf e.Button = MouseButtons.Middle Then
+                If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl Then
+                    myOCCTProxy.Pan(e.X - myXmax, myYmax - e.Y)
+                    myXmax = e.X
+                    myYmax = e.Y
+                End If
+                'e.Button=MouseButtons.Middle
+            ElseIf e.Button = MouseButtons.Right Then
+                'right button is pressed
+                If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl Then
+                    myOCCTProxy.Rotation(e.X, e.Y)
+                End If
+            Else
+                ' no buttons are pressed
+                myXmax = e.X
+                myYmax = e.Y
+                If myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Shift Then
+                    MultiMoveEvent(e.X, e.Y)
+                Else
+                    MoveEvent(e.X, e.Y)
+                End If
+            End If
+
+
+        End Sub
+
+        Protected Sub MultiMoveEvent(x As Integer, y As Integer)
+            myOCCTProxy.MoveTo(x, y)
+        End Sub
+
+        Protected Sub MoveEvent(x As Integer, y As Integer)
+            myOCCTProxy.MoveTo(x, y)
+        End Sub
+
+        Public Sub SetDisplayMode(aMode As Integer)
+            myOCCTProxy.SetDisplayMode(aMode)
+        End Sub
+
+        Public Sub ChangeColor(IsObjectColor As Boolean)
+            Dim r As Integer, g As Integer, b As Integer
+            If IsObjectColor Then
+                r = myOCCTProxy.GetObjColR()
+                g = myOCCTProxy.GetObjColG()
+                b = myOCCTProxy.GetObjColB()
+            Else
+                r = myOCCTProxy.GetBGColR()
+                g = myOCCTProxy.GetBGColG()
+                b = myOCCTProxy.GetBGColB()
+            End If
+            Dim ColDlg As System.Windows.Forms.ColorDialog = New ColorDialog()
+            ColDlg.Color = System.Drawing.Color.FromArgb(r, g, b)
+            If ColDlg.ShowDialog() = DialogResult.OK Then
+                Dim c As Color = ColDlg.Color
+                r = c.R
+                g = c.G
+                b = c.B
+                If IsObjectColor Then
+                    myOCCTProxy.SetColor(r, g, b)
+                Else
+                    myOCCTProxy.SetBackgroundColor(r, g, b)
+                End If
+            End If
+            Me.myOCCTProxy.UpdateCurrentViewer()
+
+        End Sub
+
+        Public Sub DeleteObjects()
+            myOCCTProxy.EraseObjects()
+            Dim parent As IE_WinForms.Form1 = DirectCast(Me.ParentForm, IE_WinForms.Form1)
+            parent.SelectionChanged()
+        End Sub
+        Public Sub ImportModel(format As IE_WinForms.ModelFormat)
+            Dim theformat As Integer = 10
+            Dim openDialog As System.Windows.Forms.OpenFileDialog = New OpenFileDialog()
+
+            Dim DataDir As String = Environment.GetEnvironmentVariable("CSF_OCCTDataPath")
+
+            Dim filter As String = ""
+
+            Select Case format
+                Case ModelFormat.BREP
+                    openDialog.InitialDirectory = (DataDir & Convert.ToString("\occ"))
+                    theformat = 0
+                    filter = "BREP Files (*.brep *.rle)|*.brep; *.rle"
+                    Exit Select
+                Case IE_WinForms.ModelFormat.[STEP]
+                    openDialog.InitialDirectory = (DataDir & Convert.ToString("\step"))
+                    theformat = 1
+                    filter = "STEP Files (*.stp *.step)|*.stp; *.step"
+                    Exit Select
+                Case IE_WinForms.ModelFormat.IGES
+                    openDialog.InitialDirectory = (DataDir & Convert.ToString("\iges"))
+                    theformat = 2
+                    filter = "IGES Files (*.igs *.iges)|*.igs; *.iges"
+                    Exit Select
+                Case Else
+                    Exit Select
+            End Select
+            openDialog.Filter = filter & Convert.ToString("|All files (*.*)|*.*")
+            If openDialog.ShowDialog() = DialogResult.OK Then
+                Dim filename As String = openDialog.FileName
+                If filename = "" Then
+                    Return
+                End If
+                Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
+                If Not myOCCTProxy.TranslateModel(filename, theformat, True) Then
+                    MessageBox.Show("Cann't read this file", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
+                End If
+                Me.Cursor = System.Windows.Forms.Cursors.[Default]
+            End If
+            Me.myOCCTProxy.ZoomAllView()
+        End Sub
+
+        Public Sub ExportModel(format As ModelFormat)
+            Dim theformat As Integer = 10
+            Dim saveDialog As System.Windows.Forms.SaveFileDialog = New SaveFileDialog()
+            Dim DataDir As String = Environment.GetEnvironmentVariable("CSF_OCCTDataPath")
+            Dim filter As String = ""
+            Select Case format
+                Case IE_WinForms.ModelFormat.BREP
+                    saveDialog.InitialDirectory = (DataDir & Convert.ToString("\occ"))
+                    theformat = 0
+                    filter = "BREP Files (*.brep *.rle)|*.brep; *.rle"
+                    Exit Select
+                Case IE_WinForms.ModelFormat.[STEP]
+                    saveDialog.InitialDirectory = (DataDir & Convert.ToString("\step"))
+                    theformat = 1
+                    filter = "STEP Files (*.stp *.step)|*.step; *.stp"
+                    Exit Select
+                Case IE_WinForms.ModelFormat.IGES
+                    saveDialog.InitialDirectory = (DataDir & Convert.ToString("\iges"))
+                    theformat = 2
+                    filter = "IGES Files (*.igs *.iges)| *.iges; *.igs"
+                    Exit Select
+                Case IE_WinForms.ModelFormat.VRML
+                    saveDialog.InitialDirectory = (DataDir & Convert.ToString("\vrml"))
+                    theformat = 3
+                    filter = "VRML Files (*.vrml)|*.vrml"
+                    Exit Select
+                Case IE_WinForms.ModelFormat.STL
+                    saveDialog.InitialDirectory = (DataDir & Convert.ToString("\stl"))
+                    theformat = 4
+                    filter = "STL Files (*.stl)|*.stl"
+                    Exit Select
+                Case IE_WinForms.ModelFormat.IMAGE
+                    saveDialog.InitialDirectory = (DataDir & Convert.ToString("\images"))
+                    theformat = 5
+                    filter = "Images Files (*.bmp *.gif)| *.bmp; *.gif"
+                    Exit Select
+                Case Else
+                    Exit Select
+            End Select
+            saveDialog.Filter = filter
+            If saveDialog.ShowDialog() = DialogResult.OK Then
+                Dim filename As String = saveDialog.FileName
+                If filename = "" Then
+                    Return
+                End If
+                Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
+                If Not myOCCTProxy.TranslateModel(filename, theformat, False) Then
+                    MessageBox.Show("Cann't write this file", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
+                End If
+                Me.Cursor = System.Windows.Forms.Cursors.[Default]
+            End If
+        End Sub
+
+        Private Sub ContextColor_Click(sender As Object, e As System.EventArgs)
+            Me.ChangeColor(True)
+        End Sub
+
+        Private Sub menuItem1_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.ChangeColor(False)
+        End Sub
+
+        Private Sub ContextWireframe_Click(sender As Object, e As System.EventArgs)
+            Me.SetDisplayMode(0)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Dim parent As IE_WinForms.Form1 = DirectCast(Me.ParentForm, IE_WinForms.Form1)
+            parent.SelectionChanged()
+        End Sub
+
+        Private Sub ContextShading_Click(sender As Object, e As System.EventArgs)
+            Me.SetDisplayMode(1)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Dim parent As IE_WinForms.Form1 = DirectCast(Me.ParentForm, IE_WinForms.Form1)
+            parent.SelectionChanged()
+        End Sub
+
+        Private Sub ContMenTranc_Click(sender As Object, e As System.EventArgs)
+            Dim dlg As IE_WinForms.TransparencyDialog = New TransparencyDialog()
+            dlg.View = Me.myOCCTProxy
+            dlg.ShowDialog(Me)
+        End Sub
+
+        Private Sub ContMenDelete_Click(sender As Object, e As System.EventArgs)
+            Me.DeleteObjects()
+        End Sub
+
+        Private Sub ContMatBrass_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.myOCCTProxy.SetMaterial(0)
+        End Sub
+
+        Private Sub ContMenBronze_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.myOCCTProxy.SetMaterial(1)
+        End Sub
+
+        Private Sub ContMenCopper_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.myOCCTProxy.SetMaterial(2)
+        End Sub
+
+        Private Sub ContMenGold_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.myOCCTProxy.SetMaterial(3)
+        End Sub
+
+        Private Sub ContMenPewt_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.myOCCTProxy.SetMaterial(4)
+        End Sub
+
+        Private Sub ContMenPlaster_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.myOCCTProxy.SetMaterial(5)
+        End Sub
+
+        Private Sub ContMenPlastic_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.myOCCTProxy.SetMaterial(6)
+        End Sub
+
+        Private Sub ContMenSilver_Click(sender As Object, e As System.EventArgs)
+            Me.myOCCTProxy.UpdateCurrentViewer()
+            Me.myOCCTProxy.SetMaterial(7)
+        End Sub
+
+        Private Sub toolBar1_MouseHover(sender As Object, e As System.EventArgs)
+            Dim parent As IE_WinForms.Form1 = DirectCast(Me.ParentForm, IE_WinForms.Form1)
+            parent.StatusBar.Text = "View toolbar"
+
+        End Sub
+
+        Private Sub toolBar1_MouseLeave(sender As Object, e As System.EventArgs)
+            Dim parent As IE_WinForms.Form1 = DirectCast(Me.ParentForm, IE_WinForms.Form1)
+            parent.StatusBar.Text = ""
+        End Sub
+
+        Private Sub myPopupObject_Popup(sender As Object, e As System.EventArgs)
+            Dim mode As Integer = Me.myOCCTProxy.DisplayMode()
+            Select Case mode
+                Case -1
+                    Exit Select
+                Case 0
+                    Me.ContextWireframe.Enabled = False
+                    Me.ContextShading.Enabled = True
+                    Me.ContMenTranc.Enabled = False
+                    Exit Select
+                Case 1
+                    Me.ContextShading.Enabled = False
+                    Me.ContextWireframe.Enabled = True
+                    Me.ContMenTranc.Enabled = True
+                    Exit Select
+                Case 10
+                    Me.ContextShading.Enabled = True
+
+
+                    Me.ContextWireframe.Enabled = True
+                    Me.ContMenTranc.Enabled = True
+                    Exit Select
+                Case Else
+                    Exit Select
+
+            End Select
+        End Sub
+
+        Public Property View() As OCCTProxy
+            Get
+                Return Me.myOCCTProxy
+            End Get
+            Set(value As OCCTProxy)
+                Me.myOCCTProxy = value
+            End Set
+        End Property
+
+        Public Sub InitView()
+            Me.myOCCTProxy.InitOCCTProxy()
+        End Sub
+
+        Public Sub SetIndex(documentIndex As Integer, viewIndex As Integer)
+            Me.myDocumentIndex = documentIndex
+            Me.myViewIndex = viewIndex
+            Me.Text = System.[String].Format("Document {0}:{1}", documentIndex, viewIndex)
+        End Sub
+
+        Public Sub SetNextIndex(other As Form2)
+            SetIndex(other.myDocumentIndex, other.myViewIndex + 1)
+        End Sub
+
+        Public Sub SetContext(View As OCCTProxy)
+            Me.myOCCTProxy.SetAISContext(View)
+        End Sub
+
+        Private Sub Form2_Closed(sender As Object, e As System.EventArgs)
+            Dim parent As IE_WinForms.Form1 = DirectCast(Me.ParentForm, IE_WinForms.Form1)
+            parent.OnFileClose()
+        End Sub
+
+        Public Property Mode() As CurrentAction3d
+            Get
+                Return Me.myCurrentMode
+            End Get
+            Set(value As CurrentAction3d)
+                Me.myCurrentMode = value
+            End Set
+        End Property
+
+        Public WriteOnly Property Zoom() As Single
+            Set(value As Single)
+                Me.myCurZoom = value
+            End Set
+        End Property
+
+        Public Property DegenerateMode() As Boolean
+            Get
+                Return Me.myDegenerateModeIsOn
+            End Get
+            Set(value As Boolean)
+                Me.myDegenerateModeIsOn = value
+            End Set
+        End Property
+
+    End Class
+
+'End Namespace
diff --git a/samples/CSharp/WinFormsVB/IE_WinFormsVB.vbproj b/samples/CSharp/WinFormsVB/IE_WinFormsVB.vbproj
new file mode 100644
index 0000000000..e94c31703b
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/IE_WinFormsVB.vbproj
@@ -0,0 +1,197 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>
+    </ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{9E81422F-6CF5-4A47-B5FD-4F50127ABFF2}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <StartupObject>IE_WinForms.My.MyApplication</StartupObject>
+    <RootNamespace>IE_WinForms</RootNamespace>
+    <AssemblyName>IE_WinFormsVB</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+    <MyType>WindowsForms</MyType>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>
+    </TargetFrameworkProfile>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <DefineDebug>true</DefineDebug>
+    <DefineTrace>true</DefineTrace>
+    <OutputPath>..\win32\vc10\bind\</OutputPath>
+    <DocumentationFile>IE_WinFormsVB.xml</DocumentationFile>
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <DefineDebug>false</DefineDebug>
+    <DefineTrace>true</DefineTrace>
+    <Optimize>true</Optimize>
+    <OutputPath>..\win32\vc10\bin\</OutputPath>
+    <DocumentationFile>IE_WinFormsVB.xml</DocumentationFile>
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OptionExplicit>On</OptionExplicit>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OptionCompare>Binary</OptionCompare>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OptionStrict>Off</OptionStrict>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OptionInfer>On</OptionInfer>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <DefineDebug>true</DefineDebug>
+    <DefineTrace>true</DefineTrace>
+    <OutputPath>..\win64\vc10\bind\</OutputPath>
+    <DocumentationFile>IE_WinFormsVB.xml</DocumentationFile>
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
+    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
+    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <DefineTrace>true</DefineTrace>
+    <OutputPath>..\win64\vc10\bin\</OutputPath>
+    <DocumentationFile>IE_WinFormsVB.xml</DocumentationFile>
+    <Optimize>true</Optimize>
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationManifest>My Project\app.manifest</ApplicationManifest>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+  </ItemGroup>
+  <ItemGroup>
+    <Import Include="Microsoft.VisualBasic" />
+    <Import Include="System" />
+    <Import Include="System.Collections" />
+    <Import Include="System.Collections.Generic" />
+    <Import Include="System.Data" />
+    <Import Include="System.Drawing" />
+    <Import Include="System.Diagnostics" />
+    <Import Include="System.Windows.Forms" />
+    <Import Include="System.Linq" />
+    <Import Include="System.Xml.Linq" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Form1.Designer.vb">
+      <DependentUpon>Form1.vb</DependentUpon>
+    </Compile>
+    <Compile Include="Form1.vb">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Form2.Designer.vb">
+      <DependentUpon>Form2.vb</DependentUpon>
+    </Compile>
+    <Compile Include="Form2.vb">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="AboutDialog.Designer.vb">
+      <DependentUpon>AboutDialog.vb</DependentUpon>
+    </Compile>
+    <Compile Include="AboutDialog.vb">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="MaterialDialog.Designer.vb">
+      <DependentUpon>MaterialDialog.vb</DependentUpon>
+    </Compile>
+    <Compile Include="MaterialDialog.vb">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="My Project\AssemblyInfo.vb" />
+    <Compile Include="My Project\Application.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Application.myapp</DependentUpon>
+    </Compile>
+    <Compile Include="My Project\Resources.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="My Project\Settings.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+    <Compile Include="TransparencyDialog.Designer.vb">
+      <DependentUpon>TransparencyDialog.vb</DependentUpon>
+    </Compile>
+    <Compile Include="TransparencyDialog.vb">
+      <SubType>Form</SubType>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="AboutDialog.resx">
+      <DependentUpon>AboutDialog.vb</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Form1.resx">
+      <DependentUpon>Form1.vb</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Form2.resx">
+      <DependentUpon>Form2.vb</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="MaterialDialog.resx">
+      <DependentUpon>MaterialDialog.vb</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="My Project\Resources.resx">
+      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
+      <CustomToolNamespace>My.Resources</CustomToolNamespace>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="TransparencyDialog.resx">
+      <DependentUpon>TransparencyDialog.vb</DependentUpon>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+    <None Include="My Project\app.manifest" />
+    <None Include="My Project\Application.myapp">
+      <Generator>MyApplicationCodeGenerator</Generator>
+      <LastGenOutput>Application.Designer.vb</LastGenOutput>
+    </None>
+    <None Include="My Project\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <CustomToolNamespace>My</CustomToolNamespace>
+      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\OCCTProxy\OCCTProxy.vcxproj">
+      <Project>{969912D9-78E7-4AB8-B4FF-6B52B4F03991}</Project>
+      <Name>OCCTProxy</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/MaterialDialog.Designer.vb b/samples/CSharp/WinFormsVB/MaterialDialog.Designer.vb
new file mode 100644
index 0000000000..d12bf761d0
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/MaterialDialog.Designer.vb
@@ -0,0 +1,5 @@
+﻿<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class MaterialDialog
+    Inherits System.Windows.Forms.Form
+
+End Class
diff --git a/samples/CSharp/WinFormsVB/MaterialDialog.resx b/samples/CSharp/WinFormsVB/MaterialDialog.resx
new file mode 100644
index 0000000000..1af7de150c
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/MaterialDialog.resx
@@ -0,0 +1,120 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/MaterialDialog.vb b/samples/CSharp/WinFormsVB/MaterialDialog.vb
new file mode 100644
index 0000000000..3e7c7b3554
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/MaterialDialog.vb
@@ -0,0 +1,229 @@
+﻿
+Imports System.Drawing
+Imports System.Collections
+Imports System.ComponentModel
+Imports System.Windows.Forms
+
+'Namespace IE_WinForms
+    ''' <summary>
+    ''' Summary description for MaterialDialog.
+    ''' </summary>
+    Public Class MaterialDialog
+        Inherits System.Windows.Forms.Form
+        ''' <summary>
+        ''' Required designer variable.
+        ''' </summary>
+        Private components As System.ComponentModel.Container = Nothing
+
+        Public Sub New()
+            '
+            ' Required for Windows Form Designer support
+            '
+            InitializeComponent()
+
+            '
+            ' TODO: Add any constructor code after InitializeComponent call
+            '
+            Me.myView = Nothing
+        End Sub
+
+        ''' <summary>
+        ''' Clean up any resources being used.
+        ''' </summary>
+        Protected Overrides Sub Dispose(disposing As Boolean)
+            If disposing Then
+                If components IsNot Nothing Then
+                    components.Dispose()
+                End If
+            End If
+            MyBase.Dispose(disposing)
+        End Sub
+
+#Region "Windows Form Designer generated code"
+        ''' <summary>
+        ''' Required method for Designer support - do not modify
+        ''' the contents of this method with the code editor.
+        ''' </summary>
+        Private Sub InitializeComponent()
+            Dim resources As New System.Resources.ResourceManager(GetType(MaterialDialog))
+            Me.BTN_PLASTER = New System.Windows.Forms.Button()
+            Me.BTN_BRASS = New System.Windows.Forms.Button()
+            Me.BTN_BRONZE = New System.Windows.Forms.Button()
+            Me.BTN_COPPER = New System.Windows.Forms.Button()
+            Me.BTN_GOLD = New System.Windows.Forms.Button()
+            Me.BTN_PEWTER = New System.Windows.Forms.Button()
+            Me.BTN_PLASTIC = New System.Windows.Forms.Button()
+            Me.BTN_SILVER = New System.Windows.Forms.Button()
+            Me.SuspendLayout()
+            ' 
+            ' BTN_PLASTER
+            ' 
+            Me.BTN_PLASTER.Location = New System.Drawing.Point(16, 8)
+            Me.BTN_PLASTER.Name = "BTN_PLASTER"
+            Me.BTN_PLASTER.Size = New System.Drawing.Size(80, 24)
+            Me.BTN_PLASTER.TabIndex = 0
+            Me.BTN_PLASTER.Text = "Plaster"
+            AddHandler Me.BTN_PLASTER.Click, AddressOf Me.button1_Click
+            ' 
+            ' BTN_BRASS
+            ' 
+            Me.BTN_BRASS.Location = New System.Drawing.Point(16, 40)
+            Me.BTN_BRASS.Name = "BTN_BRASS"
+            Me.BTN_BRASS.Size = New System.Drawing.Size(80, 24)
+            Me.BTN_BRASS.TabIndex = 1
+            Me.BTN_BRASS.Text = "Brass"
+            AddHandler Me.BTN_BRASS.Click, AddressOf Me.BTN_BRASS_Click
+            ' 
+            ' BTN_BRONZE
+            ' 
+            Me.BTN_BRONZE.Location = New System.Drawing.Point(16, 72)
+            Me.BTN_BRONZE.Name = "BTN_BRONZE"
+            Me.BTN_BRONZE.Size = New System.Drawing.Size(80, 24)
+            Me.BTN_BRONZE.TabIndex = 2
+            Me.BTN_BRONZE.Text = "Bronze"
+            AddHandler Me.BTN_BRONZE.Click, AddressOf Me.BTN_BRONZE_Click
+            ' 
+            ' BTN_COPPER
+            ' 
+            Me.BTN_COPPER.Location = New System.Drawing.Point(16, 104)
+            Me.BTN_COPPER.Name = "BTN_COPPER"
+            Me.BTN_COPPER.Size = New System.Drawing.Size(80, 24)
+            Me.BTN_COPPER.TabIndex = 3
+            Me.BTN_COPPER.Text = "Copper"
+            AddHandler Me.BTN_COPPER.Click, AddressOf Me.BTN_COPPER_Click
+            ' 
+            ' BTN_GOLD
+            ' 
+            Me.BTN_GOLD.Location = New System.Drawing.Point(16, 136)
+            Me.BTN_GOLD.Name = "BTN_GOLD"
+            Me.BTN_GOLD.Size = New System.Drawing.Size(80, 24)
+            Me.BTN_GOLD.TabIndex = 4
+            Me.BTN_GOLD.Text = "Gold"
+            AddHandler Me.BTN_GOLD.Click, AddressOf Me.BTN_GOLD_Click
+            ' 
+            ' BTN_PEWTER
+            ' 
+            Me.BTN_PEWTER.Location = New System.Drawing.Point(16, 168)
+            Me.BTN_PEWTER.Name = "BTN_PEWTER"
+            Me.BTN_PEWTER.Size = New System.Drawing.Size(80, 24)
+            Me.BTN_PEWTER.TabIndex = 5
+            Me.BTN_PEWTER.Text = "Pewter"
+            AddHandler Me.BTN_PEWTER.Click, AddressOf Me.BTN_PEWTER_Click
+            ' 
+            ' BTN_PLASTIC
+            ' 
+            Me.BTN_PLASTIC.Location = New System.Drawing.Point(16, 200)
+            Me.BTN_PLASTIC.Name = "BTN_PLASTIC"
+            Me.BTN_PLASTIC.Size = New System.Drawing.Size(80, 24)
+            Me.BTN_PLASTIC.TabIndex = 6
+            Me.BTN_PLASTIC.Text = "Plastic"
+            AddHandler Me.BTN_PLASTIC.Click, AddressOf Me.BTN_PLASTIC_Click
+            ' 
+            ' BTN_SILVER
+            ' 
+            Me.BTN_SILVER.Location = New System.Drawing.Point(16, 232)
+            Me.BTN_SILVER.Name = "BTN_SILVER"
+            Me.BTN_SILVER.Size = New System.Drawing.Size(80, 24)
+            Me.BTN_SILVER.TabIndex = 7
+            Me.BTN_SILVER.Text = "Silver"
+            AddHandler Me.BTN_SILVER.Click, AddressOf Me.BTN_SILVER_Click
+            ' 
+            ' MaterialDialog
+            ' 
+            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
+            Me.ClientSize = New System.Drawing.Size(112, 273)
+            Me.Controls.Add(Me.BTN_SILVER)
+            Me.Controls.Add(Me.BTN_PLASTIC)
+            Me.Controls.Add(Me.BTN_PEWTER)
+            Me.Controls.Add(Me.BTN_GOLD)
+            Me.Controls.Add(Me.BTN_COPPER)
+            Me.Controls.Add(Me.BTN_BRONZE)
+            Me.Controls.Add(Me.BTN_BRASS)
+            Me.Controls.Add(Me.BTN_PLASTER)
+            Me.Icon = DirectCast(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+            Me.MaximizeBox = False
+            Me.MinimizeBox = False
+            Me.Name = "MaterialDialog"
+            Me.Text = "MaterialDialog"
+            Me.ResumeLayout(False)
+
+        End Sub
+#End Region
+
+        Private BTN_PLASTER As System.Windows.Forms.Button
+        Private BTN_BRASS As System.Windows.Forms.Button
+        Private BTN_BRONZE As System.Windows.Forms.Button
+        Private BTN_COPPER As System.Windows.Forms.Button
+        Private BTN_GOLD As System.Windows.Forms.Button
+        Private BTN_PEWTER As System.Windows.Forms.Button
+        Private BTN_PLASTIC As System.Windows.Forms.Button
+        Private BTN_SILVER As System.Windows.Forms.Button
+
+        Private myMaterial As Integer
+        Private myView As OCCTProxy
+
+        Private Sub button1_Click(sender As Object, e As System.EventArgs)
+            Me.myMaterial = 5
+            ChangeMaterial()
+        End Sub
+
+        Private Sub BTN_BRASS_Click(sender As Object, e As System.EventArgs)
+            Me.myMaterial = 0
+            ChangeMaterial()
+        End Sub
+
+        Private Sub BTN_BRONZE_Click(sender As Object, e As System.EventArgs)
+            Me.myMaterial = 1
+            ChangeMaterial()
+        End Sub
+
+        Private Sub BTN_COPPER_Click(sender As Object, e As System.EventArgs)
+            Me.myMaterial = 2
+            ChangeMaterial()
+        End Sub
+
+        Private Sub BTN_GOLD_Click(sender As Object, e As System.EventArgs)
+            Me.myMaterial = 3
+            ChangeMaterial()
+        End Sub
+
+        Private Sub BTN_PEWTER_Click(sender As Object, e As System.EventArgs)
+            Me.myMaterial = 4
+            ChangeMaterial()
+        End Sub
+
+        Private Sub BTN_PLASTIC_Click(sender As Object, e As System.EventArgs)
+            Me.myMaterial = 6
+            ChangeMaterial()
+        End Sub
+
+        Private Sub BTN_SILVER_Click(sender As Object, e As System.EventArgs)
+            Me.myMaterial = 7
+            ChangeMaterial()
+        End Sub
+
+        Public Property Material() As Integer
+            Get
+                Return Me.myMaterial
+            End Get
+            Set(value As Integer)
+                Me.myMaterial = value
+            End Set
+        End Property
+
+        Public Sub ChangeMaterial()
+            If myView Is Nothing Then
+                Return
+            End If
+            myView.SetMaterial(Me.myMaterial)
+
+        End Sub
+
+        Public WriteOnly Property View() As OCCTProxy
+            Set(value As OCCTProxy)
+                Me.myView = value
+            End Set
+        End Property
+
+    End Class
+'End Namespace
diff --git a/samples/CSharp/WinFormsVB/My Project/Application.Designer.vb b/samples/CSharp/WinFormsVB/My Project/Application.Designer.vb
new file mode 100644
index 0000000000..0f5338a2d8
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/My Project/Application.Designer.vb	
@@ -0,0 +1,38 @@
+﻿'------------------------------------------------------------------------------
+' <auto-generated>
+'     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.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+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
+        
+        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
+        Public Sub New()
+            MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
+            Me.IsSingleInstance = false
+            Me.EnableVisualStyles = true
+            Me.SaveMySettingsOnExit = true
+            Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
+        End Sub
+        
+        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
+        Protected Overrides Sub OnCreateMainForm()
+            Me.MainForm = Global.IE_WinForms.Form1
+        End Sub
+    End Class
+End Namespace
diff --git a/samples/CSharp/WinFormsVB/My Project/Application.myapp b/samples/CSharp/WinFormsVB/My Project/Application.myapp
new file mode 100644
index 0000000000..b37bc8c612
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/My Project/Application.myapp	
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <MySubMain>true</MySubMain>
+  <MainForm>IE_WinForms.Form1</MainForm>
+  <SingleInstance>false</SingleInstance>
+  <ShutdownMode>0</ShutdownMode>
+  <EnableVisualStyles>true</EnableVisualStyles>
+  <AuthenticationMode>0</AuthenticationMode>
+  <SaveMySettingsOnExit>true</SaveMySettingsOnExit>
+</MyApplicationData>
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/My Project/AssemblyInfo.vb b/samples/CSharp/WinFormsVB/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000000..8ec8125bb2
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/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
+
+<Assembly: AssemblyTitle("WinForms VB sample")> 
+<Assembly: AssemblyDescription("")> 
+<Assembly: AssemblyCompany("")> 
+<Assembly: AssemblyProduct("Open CASCADE Technology")> 
+<Assembly: AssemblyCopyright("Copyright ©  2017")> 
+<Assembly: AssemblyTrademark("")> 
+
+<Assembly: ComVisible(False)>
+
+'The following GUID is for the ID of the typelib if this project is exposed to COM
+<Assembly: Guid("5cd5ce5d-4e61-43db-98cc-f90c9f1fea87")> 
+
+' 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:
+' <Assembly: AssemblyVersion("1.0.*")> 
+
+<Assembly: AssemblyVersion("1.0.0.0")> 
+<Assembly: AssemblyFileVersion("1.0.0.0")> 
diff --git a/samples/CSharp/WinFormsVB/My Project/Resources.Designer.vb b/samples/CSharp/WinFormsVB/My Project/Resources.Designer.vb
new file mode 100644
index 0000000000..aadd4e8740
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/My Project/Resources.Designer.vb	
@@ -0,0 +1,63 @@
+﻿'------------------------------------------------------------------------------
+' <auto-generated>
+'     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.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+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.
+    '''<summary>
+    '''  A strongly-typed resource class, for looking up localized strings, etc.
+    '''</summary>
+    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"),  _
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _
+     Global.Microsoft.VisualBasic.HideModuleNameAttribute()>  _
+    Friend Module Resources
+        
+        Private resourceMan As Global.System.Resources.ResourceManager
+        
+        Private resourceCulture As Global.System.Globalization.CultureInfo
+        
+        '''<summary>
+        '''  Returns the cached ResourceManager instance used by this class.
+        '''</summary>
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+        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("IE_WinForms.Resources", GetType(Resources).Assembly)
+                    resourceMan = temp
+                End If
+                Return resourceMan
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Overrides the current thread's CurrentUICulture property for all
+        '''  resource lookups using this strongly typed resource class.
+        '''</summary>
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+        Friend Property Culture() As Global.System.Globalization.CultureInfo
+            Get
+                Return resourceCulture
+            End Get
+            Set
+                resourceCulture = value
+            End Set
+        End Property
+    End Module
+End Namespace
diff --git a/samples/CSharp/WinFormsVB/My Project/Resources.resx b/samples/CSharp/WinFormsVB/My Project/Resources.resx
new file mode 100644
index 0000000000..af7dbebbac
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/My Project/Resources.resx	
@@ -0,0 +1,117 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/My Project/Settings.Designer.vb b/samples/CSharp/WinFormsVB/My Project/Settings.Designer.vb
new file mode 100644
index 0000000000..0a684a4b1c
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/My Project/Settings.Designer.vb	
@@ -0,0 +1,73 @@
+﻿'------------------------------------------------------------------------------
+' <auto-generated>
+'     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.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+    
+    <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _
+     Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0"),  _
+     Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+    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
+
+    <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
+    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
+    End Class
+End Namespace
+
+Namespace My
+    
+    <Global.Microsoft.VisualBasic.HideModuleNameAttribute(),  _
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()>  _
+    Friend Module MySettingsProperty
+        
+        <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")>  _
+        Friend ReadOnly Property Settings() As Global.IE_WinForms.My.MySettings
+            Get
+                Return Global.IE_WinForms.My.MySettings.Default
+            End Get
+        End Property
+    End Module
+End Namespace
diff --git a/samples/CSharp/WinFormsVB/My Project/Settings.settings b/samples/CSharp/WinFormsVB/My Project/Settings.settings
new file mode 100644
index 0000000000..85b890b3c6
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/My Project/Settings.settings	
@@ -0,0 +1,7 @@
+﻿<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
diff --git a/samples/CSharp/WinFormsVB/My Project/app.manifest b/samples/CSharp/WinFormsVB/My Project/app.manifest
new file mode 100644
index 0000000000..f5ca617412
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/My Project/app.manifest	
@@ -0,0 +1,48 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!-- UAC Manifest Options
+            If you want to change the Windows User Account Control level replace the 
+            requestedExecutionLevel node with one of the following.
+
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            Specifying requestedExecutionLevel node will disable file and registry virtualization.
+            If you want to utilize File and Registry Virtualization for backward 
+            compatibility then delete the requestedExecutionLevel node.
+        -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <!-- A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment.-->
+
+      <!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
+      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
+      
+    </application>
+  </compatibility>
+  
+  <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
+  <!-- <dependency>
+    <dependentAssembly>
+      <assemblyIdentity
+          type="win32"
+          name="Microsoft.Windows.Common-Controls"
+          version="6.0.0.0"
+          processorArchitecture="*"
+          publicKeyToken="6595b64144ccf1df"
+          language="*"
+        />
+    </dependentAssembly>
+  </dependency>-->
+
+</asmv1:assembly>
diff --git a/samples/CSharp/WinFormsVB/TransparencyDialog.Designer.vb b/samples/CSharp/WinFormsVB/TransparencyDialog.Designer.vb
new file mode 100644
index 0000000000..0f94b8ba40
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/TransparencyDialog.Designer.vb
@@ -0,0 +1,5 @@
+﻿<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class TransparencyDialog
+    Inherits System.Windows.Forms.Form
+
+End Class
diff --git a/samples/CSharp/WinFormsVB/TransparencyDialog.resx b/samples/CSharp/WinFormsVB/TransparencyDialog.resx
new file mode 100644
index 0000000000..1af7de150c
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/TransparencyDialog.resx
@@ -0,0 +1,120 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/samples/CSharp/WinFormsVB/TransparencyDialog.vb b/samples/CSharp/WinFormsVB/TransparencyDialog.vb
new file mode 100644
index 0000000000..3a435e2ac8
--- /dev/null
+++ b/samples/CSharp/WinFormsVB/TransparencyDialog.vb
@@ -0,0 +1,97 @@
+﻿
+Imports System.Drawing
+Imports System.Collections
+Imports System.ComponentModel
+Imports System.Windows.Forms
+
+'Namespace IE_WinForms
+    ''' <summary>
+    ''' Summary description for TransparencyDialog.
+    ''' </summary>
+    Public Class TransparencyDialog
+        Inherits System.Windows.Forms.Form
+        Private MyTransparency As System.Windows.Forms.NumericUpDown
+        ''' <summary>
+        ''' Required designer variable.
+        ''' </summary>
+        Private components As System.ComponentModel.Container = Nothing
+        Private myView As OCCTProxy
+
+        Public Sub New()
+            '
+            ' Required for Windows Form Designer support
+            '
+            InitializeComponent()
+
+            '
+            ' TODO: Add any constructor code after InitializeComponent call
+            '
+            myView = Nothing
+        End Sub
+
+        ''' <summary>
+        ''' Clean up any resources being used.
+        ''' </summary>
+        Protected Overrides Sub Dispose(disposing As Boolean)
+            If disposing Then
+                If components IsNot Nothing Then
+                    components.Dispose()
+                End If
+            End If
+            MyBase.Dispose(disposing)
+        End Sub
+
+#Region "Windows Form Designer generated code"
+        ''' <summary>
+        ''' Required method for Designer support - do not modify
+        ''' the contents of this method with the code editor.
+        ''' </summary>
+        Private Sub InitializeComponent()
+            Dim resources As New System.Resources.ResourceManager(GetType(TransparencyDialog))
+            Me.MyTransparency = New System.Windows.Forms.NumericUpDown()
+            DirectCast(Me.MyTransparency, System.ComponentModel.ISupportInitialize).BeginInit()
+            Me.SuspendLayout()
+            ' 
+            ' MyTransparency
+            ' 
+            Me.MyTransparency.Location = New System.Drawing.Point(16, 16)
+            Me.MyTransparency.Maximum = New System.Decimal(New Integer() {10, 0, 0, 0})
+            Me.MyTransparency.Name = "MyTransparency"
+            Me.MyTransparency.Size = New System.Drawing.Size(96, 20)
+            Me.MyTransparency.TabIndex = 0
+            AddHandler Me.MyTransparency.ValueChanged, AddressOf Me.MyTransparency_ValueChanged
+            ' 
+            ' TransparencyDialog
+            ' 
+            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
+            Me.ClientSize = New System.Drawing.Size(128, 53)
+            Me.Controls.Add(Me.MyTransparency)
+            Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
+            Me.Icon = DirectCast(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+            Me.MaximizeBox = False
+            Me.MinimizeBox = False
+            Me.Name = "TransparencyDialog"
+            Me.Text = "TransparencyDialog"
+            DirectCast(Me.MyTransparency, System.ComponentModel.ISupportInitialize).EndInit()
+            Me.ResumeLayout(False)
+
+        End Sub
+#End Region
+
+        Private Sub MyTransparency_ValueChanged(sender As Object, e As System.EventArgs)
+            If Me.myView Is Nothing Then
+                Return
+            End If
+            Dim transp As Integer = CInt(Me.MyTransparency.Value)
+            Me.myView.SetTransparency(transp)
+        End Sub
+
+        Public WriteOnly Property View() As OCCTProxy
+            Set(value As OCCTProxy)
+                Me.myView = value
+            End Set
+        End Property
+
+    End Class
+'End Namespace
+
diff --git a/samples/CSharp/run_winformsvb.bat b/samples/CSharp/run_winformsvb.bat
new file mode 100644
index 0000000000..a09e634e3a
--- /dev/null
+++ b/samples/CSharp/run_winformsvb.bat
@@ -0,0 +1,3 @@
+@echo off
+
+call "%~dp0run.bat" WinFormsVB
-- 
2.24.1.windows.2

