Browse Source

Added generic methods to VB.Net grammar.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@228 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
e7682346e9
  1. 2178
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs
  2. 60
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG
  3. 84
      src/SharpDevelop.sln

2178
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

60
src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

@ -543,17 +543,20 @@ TypeParameterList<List<TemplateDefinition> templates> @@ -543,17 +543,20 @@ TypeParameterList<List<TemplateDefinition> templates>
(.
TemplateDefinition template;
.) =
"(" "Of" TypeParameter<out template>
(.
if (template != null) templates.Add(template);
.)
{
"," TypeParameter<out template>
[
IF (la.kind == Tokens.OpenParenthesis && Peek(1).kind == Tokens.Of)
"(" "Of" TypeParameter<out template>
(.
if (template != null) templates.Add(template);
.)
}
")"
{
"," TypeParameter<out template>
(.
if (template != null) templates.Add(template);
.)
}
")"
]
.
/* 4.9.1 */
@ -600,7 +603,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -600,7 +603,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
newType.Type = Types.Class;
.)
Identifier (. newType.Name = t.val; newType.StartLocation = t.EndLocation; .)
[ TypeParameterList<newType.Templates> ]
TypeParameterList<newType.Templates>
EndOfStmt
[ ClassBaseType<out name> (. newType.BaseTypes.Add(name); .) ]
{ TypeImplementsClause<out names> (. newType.BaseTypes.AddRange(names); .) }
@ -634,7 +637,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -634,7 +637,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
newType.Type = Types.Struct; ArrayList baseInterfaces = new ArrayList();
.)
Identifier (. newType.Name = t.val; newType.StartLocation = t.EndLocation; .)
[ TypeParameterList<newType.Templates> ]
TypeParameterList<newType.Templates>
EOL { TypeImplementsClause<out baseInterfaces> (. newType.BaseTypes.AddRange(baseInterfaces);.) }
StructureBody<newType>
(.
@ -670,7 +673,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -670,7 +673,7 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
newType.Type = Types.Interface;ArrayList baseInterfaces;
.)
Identifier (. newType.Name = t.val; newType.StartLocation = t.EndLocation; .)
[ TypeParameterList<newType.Templates> ]
TypeParameterList<newType.Templates>
EndOfStmt { InterfaceBase<out baseInterfaces> (. newType.BaseTypes.AddRange(baseInterfaces.ToArray()); .) }
InterfaceBody<newType>
(.
@ -688,9 +691,11 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes> @@ -688,9 +691,11 @@ NonModuleDeclaration<Modifiers m, List<AttributeSection> attributes>
.)
(
"Sub" Identifier (. delegateDeclr.Name = t.val; .)
TypeParameterList<delegateDeclr.Templates>
[ "(" [ FormalParameterList<p> ] ")" (. delegateDeclr.Parameters = p; .) ]
|
"Function" Identifier (. delegateDeclr.Name = t.val; .)
TypeParameterList<delegateDeclr.Templates>
[ "(" [ FormalParameterList<p> ] ")" (. delegateDeclr.Parameters = p; .) ]
[ "As" (. TypeReference type; .) TypeName<out type> (. delegateDeclr.ReturnType = type; .)]
)
@ -771,7 +776,9 @@ InterfaceBody<TypeDeclaration newType> = @@ -771,7 +776,9 @@ InterfaceBody<TypeDeclaration newType> =
*/
InterfaceMemberDecl
(.
TypeReference type =null; List<ParameterDeclarationExpression> p = new List<ParameterDeclarationExpression>();
TypeReference type =null;
List<ParameterDeclarationExpression> p = new List<ParameterDeclarationExpression>();
List<TemplateDefinition> templates = new List<TemplateDefinition>();
AttributeSection section, returnTypeAttributeSection = null;
Modifiers mod = new Modifiers();
List<AttributeSection> attributes = new List<AttributeSection>();
@ -798,18 +805,21 @@ InterfaceMemberDecl @@ -798,18 +805,21 @@ InterfaceMemberDecl
"Sub"
(. mod.Check(Modifier.VBInterfaceMethods); .)
Identifier (. name = t.val; .)
TypeParameterList<templates>
[ "(" [ FormalParameterList<p> ] ")" ]
EOL
(.
MethodDeclaration md = new MethodDeclaration(name, mod.Modifier, null, p, attributes);
md.TypeReference = new TypeReference("", "System.Void");
md.EndLocation = t.EndLocation;
md.Templates = templates;
compilationUnit.AddChild(md);
.)
|
"Function"
(. mod.Check(Modifier.VBInterfaceMethods); .)
Identifier (. name = t.val; .)
TypeParameterList<templates>
[ "(" [ FormalParameterList<p> ] ")" ]
[ "As" { AttributeSection<out returnTypeAttributeSection> } TypeName<out type> ]
(.
@ -819,6 +829,7 @@ InterfaceMemberDecl @@ -819,6 +829,7 @@ InterfaceMemberDecl
MethodDeclaration md = new MethodDeclaration(name, mod.Modifier, type, p, attributes);
md.ReturnTypeAttributeSection = returnTypeAttributeSection;
md.EndLocation = t.EndLocation;
md.Templates = templates;
compilationUnit.AddChild(md);
.)
EOL
@ -881,8 +892,11 @@ ClassBaseType<out string name> @@ -881,8 +892,11 @@ ClassBaseType<out string name>
/* 7.6.1 */
StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
(.
TypeReference type = null; List<ParameterDeclarationExpression> p = new List<ParameterDeclarationExpression>();
Statement stmt = null; List<VariableDeclaration> variableDeclarators = new List<VariableDeclaration>();
TypeReference type = null;
List<ParameterDeclarationExpression> p = new List<ParameterDeclarationExpression>();
Statement stmt = null;
List<VariableDeclaration> variableDeclarators = new List<VariableDeclaration>();
List<TemplateDefinition> templates = new List<TemplateDefinition>();
.)=
NonModuleDeclaration<m, attributes>
| /* 9.2.1 */
@ -900,6 +914,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -900,6 +914,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
name = t.val;
m.Check(Modifier.VBMethods);
.)
TypeParameterList<templates>
[ "(" [ FormalParameterList<p> ] ")" ]
[
(
@ -918,7 +933,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -918,7 +933,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
methodDeclaration.StartLocation = startPos;
methodDeclaration.EndLocation = endLocation;
methodDeclaration.TypeReference = new TypeReference("", "System.Void");
methodDeclaration.Templates = templates;
methodDeclaration.HandlesClause = handlesClause;
methodDeclaration.ImplementsClause = implementsClause;
@ -931,6 +947,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -931,6 +947,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
methodDeclaration.EndLocation = endLocation;
methodDeclaration.TypeReference = new TypeReference("", "System.Void");
methodDeclaration.Templates = templates;
methodDeclaration.HandlesClause = handlesClause;
methodDeclaration.ImplementsClause = implementsClause;
@ -971,6 +988,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -971,6 +988,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
AttributeSection returnTypeAttributeSection = null;
.)
Identifier (. name = t.val; .)
TypeParameterList<templates>
[ "(" [ FormalParameterList<p> ] ")" ]
["As" { AttributeSection<out returnTypeAttributeSection> } TypeName<out type> ]
(.
@ -993,7 +1011,9 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -993,7 +1011,9 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
methodDeclaration = new MethodDeclaration(name, m.Modifier, type, p, attributes);
methodDeclaration.StartLocation = startPos;
methodDeclaration.EndLocation = t.EndLocation;
methodDeclaration.HandlesClause = handlesClause;
methodDeclaration.Templates = templates;
methodDeclaration.ImplementsClause = implementsClause;
methodDeclaration.ReturnTypeAttributeSection = returnTypeAttributeSection;
compilationUnit.AddChild(methodDeclaration);
@ -1004,6 +1024,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1004,6 +1024,7 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
methodDeclaration.StartLocation = startPos;
methodDeclaration.EndLocation = t.EndLocation;
methodDeclaration.Templates = templates;
methodDeclaration.HandlesClause = handlesClause;
methodDeclaration.ImplementsClause = implementsClause;
methodDeclaration.ReturnTypeAttributeSection = returnTypeAttributeSection;
@ -1106,7 +1127,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1106,7 +1127,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
"Const" (. m.Add(Modifier.Const); .)
(.
FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier);
fd.StartLocation = t.Location;List<VariableDeclaration> constantDeclarators = new List<VariableDeclaration>();
fd.StartLocation = t.Location;
List<VariableDeclaration> constantDeclarators = new List<VariableDeclaration>();
.)
ConstantDeclarator<constantDeclarators>
{ "," ConstantDeclarator<constantDeclarators> }
@ -1123,7 +1145,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1123,7 +1145,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
"Property"
(.
m.Check(Modifier.VBProperties);
Point startPos = t.Location;ArrayList implementsClause = null;
Point startPos = t.Location;
ArrayList implementsClause = null;
.)
Identifier (. string propertyName = t.val; .)
[ "(" [ FormalParameterList<p> ] ")" ]
@ -1173,7 +1196,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes> @@ -1173,7 +1196,8 @@ StructureMemberDecl<Modifiers m, List<AttributeSection> attributes>
/* 9.7 */
AccessorDecls<out PropertyGetRegion getBlock, out PropertySetRegion setBlock>
(.List<AttributeSection> attributes = new List<AttributeSection>();
(.
List<AttributeSection> attributes = new List<AttributeSection>();
AttributeSection section;
getBlock = null;
setBlock = null;

84
src/SharpDevelop.sln

@ -1,35 +1,5 @@ @@ -1,35 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# SharpDevelop 2.0.0.225
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0560-41C1-966B-23F7D03A5486}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Tests", "Main\Base\Test\ICSharpCode.SharpDevelop.Tests.csproj", "{4980B743-B32F-4aba-AABD-45E2CAD3568D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Tests", "Main\Core\Test\ICSharpCode.Core.Tests.csproj", "{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.dll", "Tools\NUnit\src\NUnitFramework\framework\nunit.framework.dll.csproj", "{83DD7E12-A705-4DBA-9D71-09C8973D9382}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.dll", "Tools\NUnit\src\NUnitFramework\core\nunit.core.dll.csproj", "{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.extensions.dll", "Tools\NUnit\src\NUnitFramework\extensions\nunit.extensions.dll.csproj", "{98B10E98-003C-45A0-9587-119142E39986}"
EndProject
# SharpDevelop 2.0.0.226
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@ -78,6 +48,36 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\St @@ -78,6 +48,36 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\St
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.dll", "Tools\NUnit\src\NUnitFramework\framework\nunit.framework.dll.csproj", "{83DD7E12-A705-4DBA-9D71-09C8973D9382}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.dll", "Tools\NUnit\src\NUnitFramework\core\nunit.core.dll.csproj", "{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.extensions.dll", "Tools\NUnit\src\NUnitFramework\extensions\nunit.extensions.dll.csproj", "{98B10E98-003C-45A0-9587-119142E39986}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0560-41C1-966B-23F7D03A5486}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Tests", "Main\Base\Test\ICSharpCode.SharpDevelop.Tests.csproj", "{4980B743-B32F-4aba-AABD-45E2CAD3568D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Tests", "Main\Core\Test\ICSharpCode.Core.Tests.csproj", "{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -159,17 +159,6 @@ Global @@ -159,17 +159,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{4980B743-B32F-4aba-AABD-45E2CAD3568D} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{98B10E98-003C-45A0-9587-119142E39986} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{83DD7E12-A705-4DBA-9D71-09C8973D9382} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
@ -188,5 +177,16 @@ Global @@ -188,5 +177,16 @@ Global
{B08385CD-F0CC-488C-B4F4-EEB34B6D2688} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{98B10E98-003C-45A0-9587-119142E39986} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{83DD7E12-A705-4DBA-9D71-09C8973D9382} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{4980B743-B32F-4aba-AABD-45E2CAD3568D} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
EndGlobalSection
EndGlobal

Loading…
Cancel
Save