From 24b2fcf78d2296feb9670af738da88ce4daa948f Mon Sep 17 00:00:00 2001 From: David Fugate <dfugate@microsoft.com> Date: Fri, 8 Apr 2011 13:29:16 -0700 Subject: [PATCH] Vendor did a bit of work to preserve Sputnik's negative test cases in their existing format. Still needs a bit of integration work into the test harness. A number of Sputnik tests were written outside the context of a chapter's sections. E.g., "Chapter 13" versus "Chapter 13, Section 1". We now fake a section number ("13.0" for the example above) for such cases when generating test case metadata. --- tools/SputnikConverter/ES5TestCase.cs | 113 +++++++++++++++++- ...rosoft.Sputnik.Interop.ParserEngine.csproj | 6 + ...t.Sputnik.Interop.ParserEngine.csproj.user | 5 +- tools/SputnikConverter/Program.cs | 9 +- .../ResourceClass.Designer.cs | 9 ++ tools/SputnikConverter/ResourceClass.resx | 3 + tools/SputnikConverter/SputnikTestCase.cs | 58 ++++++++- .../bin/Debug/InputFormats.xml | 4 + ...Microsoft.Sputnik.Interop.ParserEngine.exe | Bin 0 -> 24576 bytes ...ft.Sputnik.Interop.ParserEngine.exe.config | 14 +++ ...Microsoft.Sputnik.Interop.ParserEngine.pdb | Bin 0 -> 50688 bytes ...Microsoft.Sputnik.Interop.ParserEngine.suo | Bin 0 -> 2560 bytes ...ft.Sputnik.Interop.ParserEngine.vshost.exe | Bin 0 -> 11600 bytes ...nik.Interop.ParserEngine.vshost.exe.config | 14 +++ ...k.Interop.ParserEngine.vshost.exe.manifest | 11 ++ .../bin/Debug/testNegativePrereqTemplate.js | 22 ++++ .../bin/Debug/testNegativeTemplate.js | 4 + .../bin/Debug/testPrereqTemplate.js | 21 ++++ .../bin/Debug/testTemplate.js | 16 +++ .../testNegativePrereqTemplate.js | 6 +- .../SputnikConverter/testNegativeTemplate.js | 18 +-- tools/SputnikConverter/testPrereqTemplate.js | 8 +- tools/SputnikConverter/testTemplate.js | 6 +- 23 files changed, 310 insertions(+), 37 deletions(-) create mode 100644 tools/SputnikConverter/bin/Debug/InputFormats.xml create mode 100644 tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.exe create mode 100644 tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.exe.config create mode 100644 tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.pdb create mode 100644 tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.suo create mode 100644 tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe create mode 100644 tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe.config create mode 100644 tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe.manifest create mode 100644 tools/SputnikConverter/bin/Debug/testNegativePrereqTemplate.js create mode 100644 tools/SputnikConverter/bin/Debug/testNegativeTemplate.js create mode 100644 tools/SputnikConverter/bin/Debug/testPrereqTemplate.js create mode 100644 tools/SputnikConverter/bin/Debug/testTemplate.js diff --git a/tools/SputnikConverter/ES5TestCase.cs b/tools/SputnikConverter/ES5TestCase.cs index c466f4ed73..1b2a63854f 100644 --- a/tools/SputnikConverter/ES5TestCase.cs +++ b/tools/SputnikConverter/ES5TestCase.cs @@ -2,8 +2,11 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Configuration; using System.IO; +using System.Runtime.Serialization.Json; +using System.Runtime.Serialization.Formatters; //this version has been modified to not split each #check into an individual test @@ -11,8 +14,12 @@ namespace Microsoft.Sputnik.Interop.ParserEngine { public static class ES5TestScript { - private static int fileCounter; + private static int fileCounter; + private static StringBuilder negativeTestCases; + private static string[] templates = { + + ES5TestScript.GetTemplateFile(ResourceClass.BasicTemplate_FileName), ES5TestScript.GetTemplateFile(ResourceClass.BasicPrereqTemplate_FileName), ES5TestScript.GetTemplateFile(ResourceClass.BasicNegativeTemplate_FileName), @@ -43,6 +50,8 @@ namespace Microsoft.Sputnik.Interop.ParserEngine int indexOfRoot = script.FullPath.IndexOf(root, StringComparison.InvariantCulture); string pathFromRoot = script.FullPath.Substring(indexOfRoot, script.FullPath.Length - indexOfRoot); string destDir = Path.Combine(destinationPath, Path.GetDirectoryName(pathFromRoot)); + string positiveDestDir = destDir.Replace("conformance", ""); + string negativeDestDir = destDir.Replace("conformance", "GlobalScope"); // int fileCounter = 0; string buildContent = string.Empty; string destFullPath = string.Empty; @@ -52,7 +61,12 @@ namespace Microsoft.Sputnik.Interop.ParserEngine if (script.IsNegative) { templateIndex += 2; - if (!body.Contains("eval(")) body = WrapWithEval(body); + destDir = negativeDestDir; + //if (!body.Contains("eval(")) body = WrapWithEval(body); + } + else + { + destDir = positiveDestDir; } string template = templates[templateIndex]; Logger.WriteToLog("====================================================================================="); @@ -69,7 +83,8 @@ namespace Microsoft.Sputnik.Interop.ParserEngine // OutputFileCounter = OutputFileCounter + script.ConvertedFileCount; // foreach (string check in script.Checks) // { - string[] args = { script.Header,script.Id, script.SectionName, InsertStringEscapes(script.Description), script.ReplicationCode, body, preCondition }; + + string[] args = { script.Header, script.Id, script.SectionName, InsertStringEscapes(script.Assertion), InsertStringEscapes(script.Description), script.ReplicationCode, body, preCondition, script.InitialComment }; // ++fileCounter; // if (script.Checks.Length > 1) // { @@ -93,6 +108,29 @@ namespace Microsoft.Sputnik.Interop.ParserEngine writeTestCase.Close(); OutputFileCounter++; } + + if (script.IsNegative) + { + //Add details in stringbuilder. + string folderPath = GetPartialPath(destFullPath,3); + StringBuilder sb = new StringBuilder(); + sb.Append("\"GlobalScope/" + script.SectionName + "/" + script.Id + ".js\""); + //negativeTestCases.Append("\""+folderPath+"\""); + sb.Append(":"); + string s = GetSerializedSputnikTestScript(new SputnikTestScript() + { + Description = script.Description, + Assertion = script.Assertion, + }); + sb.Append(s.Substring(0, s.LastIndexOf('}')) + ",\"negative\":\"syntax\"}"); + + if (negativeTestCases == null) + negativeTestCases = new StringBuilder(); + else + negativeTestCases.Append(","); + negativeTestCases.Append(sb.ToString()); + } + Logger.WriteToLog(destFullPath); } catch (ArgumentException ex) @@ -106,6 +144,55 @@ namespace Microsoft.Sputnik.Interop.ParserEngine // } } + /// <summary> + /// Method to initialize the negative test record. + /// </summary> + /// <param name="destination">Is the destination folder path</param> + public static void InitGlobals(string destination) + { + //Insert inital var name in Globals.js file. + //FileStream fs = new FileStream("c:\\ecmascript\\GlobalScope.js", FileMode.Create, FileAccess.Write); + if (!Directory.Exists(destination)) + { + Directory.CreateDirectory(destination); + } + FileStream fs = new FileStream(destination + "\\GlobalScope.js", FileMode.Create, FileAccess.Write); + StreamWriter sw = new StreamWriter(fs); + sw.Write("var GlobalScopeTests ="); + sw.Flush(); + sw.Close(); + fs.Close(); + //negativeTestCases = new StringBuilder(); + } + + /// <summary> + /// Method to update the GlobalScope.js + /// </summary> + /// <param name="destination">Is the destination folder path</param> + public static void UpdateGlobals(string destination) + { + //Replace the last comma by closing curly brace and semi-colon. + //negativeTestCases.Replace(",", "};", negativeTestCases.Length - 2, 2); + //negativeTestCases.Append(";"); + //File.AppendAllText("c:\\temp\\GlobalScope.js", "{"+negativeTestCases.ToString()+"};"); + File.AppendAllText(destination +"\\GlobalScope.js", "{" + negativeTestCases.ToString() + "};"); + + negativeTestCases.Clear(); + } + + + private static string GetSerializedSputnikTestScript(SputnikTestScript sputnikTestScript) + { + MemoryStream stream = new MemoryStream(); + DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(SputnikTestScript)); + ser.WriteObject(stream, sputnikTestScript); + + stream.Position = 0; + StreamReader sr = new StreamReader(stream); + + return sr.ReadToEnd(); + } + private static string WrapWithEval(string s) { return InsertStringEscapes(s, true); @@ -161,5 +248,25 @@ namespace Microsoft.Sputnik.Interop.ParserEngine string inputTemplatePath = ConfigurationManager.AppSettings[configSetting].ToString(); return (new StreamReader(inputTemplatePath)).ReadToEnd(); } + + private static string GetPartialPath(string fullPath, int levelsRequired) + { + string remainingString = fullPath; + string[] partialPaths = new string[levelsRequired]; + string finalPath = "GlobalScope"; + + for (int iterator = 0; iterator < levelsRequired; iterator++) + { + partialPaths[iterator] = remainingString.Substring(remainingString.LastIndexOf(@"\")); + remainingString = remainingString.Substring(0, remainingString.LastIndexOf(@"\")); + } + + for (int iterator = partialPaths.Length - 1; iterator >= 0; iterator--) + { + finalPath += partialPaths[iterator]; + } + //finalPath = finalPath.Replace(@"\/", "/"); + return finalPath; + } } } diff --git a/tools/SputnikConverter/Microsoft.Sputnik.Interop.ParserEngine.csproj b/tools/SputnikConverter/Microsoft.Sputnik.Interop.ParserEngine.csproj index 938abf1223..1c411f47aa 100644 --- a/tools/SputnikConverter/Microsoft.Sputnik.Interop.ParserEngine.csproj +++ b/tools/SputnikConverter/Microsoft.Sputnik.Interop.ParserEngine.csproj @@ -55,6 +55,7 @@ <Reference Include="System" /> <Reference Include="System.configuration" /> <Reference Include="System.Core" /> + <Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="Microsoft.CSharp" /> @@ -101,6 +102,7 @@ <EmbeddedResource Include="ResourceClass.resx"> <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>ResourceClass.Designer.cs</LastGenOutput> + <SubType>Designer</SubType> </EmbeddedResource> </ItemGroup> <ItemGroup> @@ -125,6 +127,10 @@ <Install>true</Install> </BootstrapperPackage> </ItemGroup> + <ItemGroup> + <Folder Include="Conformance\" /> + <Folder Include="tests\" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.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. diff --git a/tools/SputnikConverter/Microsoft.Sputnik.Interop.ParserEngine.csproj.user b/tools/SputnikConverter/Microsoft.Sputnik.Interop.ParserEngine.csproj.user index ef3320843c..18af890b4b 100644 --- a/tools/SputnikConverter/Microsoft.Sputnik.Interop.ParserEngine.csproj.user +++ b/tools/SputnikConverter/Microsoft.Sputnik.Interop.ParserEngine.csproj.user @@ -12,7 +12,8 @@ <VerifyUploadedFiles>false</VerifyUploadedFiles> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> - <StartWorkingDirectory>C:\Users\allenwb\Desktop\cvt262\prog\prog</StartWorkingDirectory> - <StartArguments>C:\Users\allenwb\Desktop\cvt262\sput9-8-2010\tests C:\Users\allenwb\Desktop\cvt262\result</StartArguments> + <StartWorkingDirectory> + </StartWorkingDirectory> + <StartArguments>E:\test262-msft\test\suite\sputnik\conformance E:\test262-msft\test\suite\sputnik_new01</StartArguments> </PropertyGroup> </Project> \ No newline at end of file diff --git a/tools/SputnikConverter/Program.cs b/tools/SputnikConverter/Program.cs index 1d5b68d614..626056d241 100644 --- a/tools/SputnikConverter/Program.cs +++ b/tools/SputnikConverter/Program.cs @@ -20,7 +20,7 @@ namespace Microsoft.Sputnik.Interop.ParserEngine source = args[0]; destination = args[1]; - string root = "Conformance"; + string root = "conformance"; int countInputFiles = 0; try @@ -30,14 +30,17 @@ namespace Microsoft.Sputnik.Interop.ParserEngine if (Directory.Exists(source)) { string[] filePaths = Directory.GetFiles(source, "*.js", SearchOption.AllDirectories); + ES5TestScript.InitGlobals(destination); foreach (string filePath in filePaths) { SputnikTestScript testScript = new SputnikTestScript(); - testScript.Load(filePath); - ES5TestScript.Save(testScript, root, destination); + testScript.Load(filePath); + ES5TestScript.Save(testScript, root, destination); countInputFiles++; } + + ES5TestScript.UpdateGlobals(destination); } Logger.WriteToLog(ResourceClass.Total_Input_Files, countInputFiles.ToString()); Logger.WriteToLog(ResourceClass.Total_Output_Files, ES5TestScript.OutputFileCounter.ToString()); diff --git a/tools/SputnikConverter/ResourceClass.Designer.cs b/tools/SputnikConverter/ResourceClass.Designer.cs index 03fe932b0c..a50920e9df 100644 --- a/tools/SputnikConverter/ResourceClass.Designer.cs +++ b/tools/SputnikConverter/ResourceClass.Designer.cs @@ -159,6 +159,15 @@ namespace Microsoft.Sputnik.Interop.ParserEngine { } } + /// <summary> + /// Looks up a localized string similar to assertion. + /// </summary> + internal static string LookFor_Assertion { + get { + return ResourceManager.GetString("LookFor_Assertion", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to description. /// </summary> diff --git a/tools/SputnikConverter/ResourceClass.resx b/tools/SputnikConverter/ResourceClass.resx index 00260cd047..f9d7525432 100644 --- a/tools/SputnikConverter/ResourceClass.resx +++ b/tools/SputnikConverter/ResourceClass.resx @@ -189,4 +189,7 @@ <data name="LookFor_NegativeStrictMode" xml:space="preserve"> <value>strict_mode_negative</value> </data> + <data name="LookFor_Assertion" xml:space="preserve"> + <value>assertion</value> + </data> </root> \ No newline at end of file diff --git a/tools/SputnikConverter/SputnikTestCase.cs b/tools/SputnikConverter/SputnikTestCase.cs index 7f8d41d88a..680a681328 100644 --- a/tools/SputnikConverter/SputnikTestCase.cs +++ b/tools/SputnikConverter/SputnikTestCase.cs @@ -7,14 +7,17 @@ using System.Text.RegularExpressions; using System.Xml; using System.Configuration; using System.Xml.Linq; +using System.Runtime.Serialization; namespace Microsoft.Sputnik.Interop.ParserEngine { + [DataContract] public class SputnikTestScript { private string testScriptID = string.Empty; private string testScriptSection = string.Empty; private string testScriptDescription = string.Empty; + private string testScriptAssertion = string.Empty; private string replicationCode = string.Empty; private int actualFileConvertedCount = 0; private bool negativeTest = false; @@ -26,11 +29,12 @@ namespace Microsoft.Sputnik.Interop.ParserEngine public string Header = string.Empty; public string Body = string.Empty; + public string InitialComment = string.Empty; /// <summary> /// Gets or sets the ID. /// </summary> - /// <value>The ID.</value> + /// <value>The ID.</value> public string Id { get @@ -102,9 +106,12 @@ namespace Microsoft.Sputnik.Interop.ParserEngine actualFileConvertedCount = value; } } + + /// <summary> /// Gets or sets the testScriptDescription /// </summary> + [DataMember] public string Description { get @@ -118,6 +125,23 @@ namespace Microsoft.Sputnik.Interop.ParserEngine } } + /// <summary> + /// Gets or sets the testScriptAssersion + /// </summary> + [DataMember] + public string Assertion + { + get + { + return testScriptAssertion; + } + set + { + if (value != null) + testScriptAssertion = value.Trim(); + } + } + /// <summary> /// Gets or sets the value for checkSections /// </summary> @@ -271,6 +295,11 @@ namespace Microsoft.Sputnik.Interop.ParserEngine Match matchCommentTail = commentTailRegex.Match(fullFile); this.Header = fullFile.Substring(0,matchCommentTail.Index+matchCommentTail.Length); + + Regex csharpCommentRegx = new Regex("\\/\\*"); + Match matchCSharpCommentHead = csharpCommentRegx.Match(this.Header); + this.InitialComment = this.Header.Substring(0, matchCSharpCommentHead.Index); + this.Body = fullFile.Substring(matchCommentTail.Index+matchCommentTail.Length); // string commentFormat = ConfigurationManager.AppSettings[ResourceClass.CommentsRegexSettingKey].ToString(); @@ -290,11 +319,15 @@ namespace Microsoft.Sputnik.Interop.ParserEngine string commentKey = arrComments[0].ToLower(); if (commentKey.Contains(ResourceClass.LookFor_Name)) { - this.Id = arrComments[arrComments.Length - 1].Trim(trimDelimit); + this.Id = GetRealId(arrComments[arrComments.Length - 1].Trim(trimDelimit)); } if (commentKey.Contains(ResourceClass.LookFor_Section)) { - this.SectionName = arrComments[arrComments.Length - 1].Trim(trimDelimit); + this.SectionName = GetRealSectionName(arrComments[arrComments.Length - 1].Trim(trimDelimit)); + } + if (commentKey.Contains(ResourceClass.LookFor_Assertion)) + { + this.Assertion = arrComments[arrComments.Length - 1].Trim(trimDelimit); } if (commentKey.Contains(ResourceClass.LookFor_Description)) { @@ -340,16 +373,17 @@ namespace Microsoft.Sputnik.Interop.ParserEngine if (arrComments[0].Contains(ResourceClass.LookFor_Name)) { - this.Id = arrComments[arrComments.Length - 1]; + this.Id = GetRealId(arrComments[arrComments.Length - 1]); } if (arrComments[0].Contains(ResourceClass.LookFor_Section)) { - this.SectionName = arrComments[arrComments.Length - 1]; + this.SectionName = GetRealSectionName(arrComments[arrComments.Length - 1]); } if (arrComments[0].Contains(ResourceClass.LookFor_Description)) { this.Description = arrComments[arrComments.Length - 1]; } + } //string holdGlobalCode = matchGlobalCode.Value; @@ -362,6 +396,20 @@ namespace Microsoft.Sputnik.Interop.ParserEngine this.PossibleChecksCount = checks.Count; } + private static string GetRealId(string id) + { + Regex regx = new Regex("^ S([0-9]+)_"); + return regx.Replace(id, " S$1.0_", 1); + } + private static string GetRealSectionName(string sectionName) + { + //Regex regx = new Regex("/S([0-9]+)_([^/]+)$"); + Regex regx = new Regex("^ ([0-9]+)$"); + if (! regx.IsMatch(sectionName)) { + return sectionName; + } + return regx.Replace(sectionName, " $1.0", 1); + } } } diff --git a/tools/SputnikConverter/bin/Debug/InputFormats.xml b/tools/SputnikConverter/bin/Debug/InputFormats.xml new file mode 100644 index 0000000000..840952f2f4 --- /dev/null +++ b/tools/SputnikConverter/bin/Debug/InputFormats.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" ?> +<formats> + <format id="1" sequence="1">\s*CHECK#[0-9]\r\n(.*(\r\n)?.)+</format> +</formats> diff --git a/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.exe b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.exe new file mode 100644 index 0000000000000000000000000000000000000000..128931c0c59bf04bf4a23e71f95ebf7d38b6511a GIT binary patch literal 24576 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 E05PcCc>n+a literal 0 HcmV?d00001 diff --git a/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.exe.config b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.exe.config new file mode 100644 index 0000000000..7551afef46 --- /dev/null +++ b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.exe.config @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <appSettings> + <add key="LogFileDirectory" value="."/> + <add key="InputXMLPath" value=".\InputFormats.xml"/> + <add key="BasicInputTemplate" value=".\testTemplate.js"/> + <add key="BasicPrereqInputTemplate" value=".\testPrereqTemplate.js"/> + <add key="BasicNegativeInputTemplate" value=".\testNegativeTemplate.js"/> + <add key="BasicNegativePrereqInputTemplate" value=".\testNegativePrereqTemplate.js"/> + <add key="CommentsRegex" value="^@[a-zA-Z0-9]*(:\s*.*;{1})?$"/> + <add key="ChecksRegex" value=".\s*CHECK#[0-9].\s*"/> + <add key="GlobalCodeRegex" value="\*/[\r\n]*.*"/> + </appSettings> +</configuration> \ No newline at end of file diff --git a/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.pdb b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.pdb new file mode 100644 index 0000000000000000000000000000000000000000..baa98d0464aa0ae7426ec893fa8e3b5e8e752e7d GIT binary patch literal 50688 zcmeI54S<$anfLDphKW&8#z0X~2OQ)>7zPAHLminJVE9nvL$SqRn0bK7VP>3pP&C?o zDk?2)X|p#i-K@11%}NV5E8V4yEi8Ad6@6{j3R^1cZ4+DFu-Dc1_dn-4_j8`%!3JY? zUq6ms{O3OBx~_Ab>wMnlzVGuaYHR84?CD&atE!(|f5sVAi<Zu*I;*C(cE}MYHY`mD z1Kj^f3xDp)C?ZLkJ-qSnYrq3LUV0<Eo;@%#YQrzQo*nTzE&Gw*nUZmBU?>eiL^v*a z>7_DoU|v^mgx9hM2ELXH_eR<Npa*WMnUeW^`zIG^X*X!r$3Hgq$j<qnuE_0qZtsJ; zgRs(U=@+8jz}JWeN{#=T3ghu#*D7vre2uu^bzO}8Yc4+jTW@-#a_iD$$3=fN;8Qyr z7u@p8pZ{~^*7N=Kk+;3?t(9vZseEuklI$Pc^x*2xcGP{Z_1z2qX5Z}H@9O^RTWraY z{NgJ;ix(`v?)qE5e)j0jwWq%Lx_0WTsPKoY{_|gX<jLV3r+)YH;~#kOZC|T@`>V(W zuWM5eSN+fZ(0j&C`<sVOx$nzASa!^_;~QSrPJI;>{&3a*_CXJhe5mnbJHEQ+{ePPL zc>bfWA{V@_O+8%ofB8|n2krXAlM6n6!>uD{e|p8{*R@k$Wrf$h9ozhg_5!r-9|V;{ zZ-NFx70?mTk<d}l5a?*=7)a~CO6XYV&CoDtICLCzJTwA20Xh*n2^tBV44nd<3ROX) zpwZB2P&G6L8Viks#zQPUlQW=+&?Kk^nhe!KQ=qBPnb0(7Iy3`13(~&U+0Z%ATcBCc zxzKsg`A{8n0W=$`hcsz5LUW+G&^)LKnh!027D9`l3!#gk#n8pj>Ch7B)f_&j3M2&d zS8x3LTKB+<PrvxI`u_wC0FCFY%w>CWQ)f(_w4rBhZe^~sv%P2K(yooUj<zf6J3Fq* zcIUF)E0<(@IyZK=Wb50TdwOabvOR6<I<nn0Ej>w+Evcc$YiLO|beo12r=c~{&_@#% zcCK6Jv+QGz?WsT?bFfk`!yom{Jz15mk6Br1<;fP4>|>sbyF1r)H*YwEyt)b!eaxeA z>GW4nrfkpjxI7y1dk2l8Z>1^S0R1iWbFQmE{&%D6v;47zzwd)W(2Vj%_@DH^Nk6U4 z)KW7yZusgq$N%SdGpema30f;?Z6LXCny_kGbGLN=`23}Jt>AC92(=KUWx){C8UpXu z`9Jxhc-2b8tF)L`Ei3R|bnTsA6|Y*Hc$F6OYCaFVpZog01>%Jzo$F&>wbH=5=%2oP zvUt^crB`V&FHx_lP)2FaOD4Duy+aNn#J!SrQ29C*eJ*KTHn-}cjX6g1Ic@FP`p%6V zOb1%)4Xl)&O)yC|@E?&>S1w<AO;0Ynf%RVccTIg~dwaGe*Vft5Q!_Wq)X~<$`mvC{ zu&v`t*%8Mr%WldkZgj+_xSA!|bsO88yBjxkF{$)OCu_}uE@rK@ZR<96H!C~jkB-us zSj3$kT`!?LZ5y&ROR=cAz3o~jQ!~Fuf;E4TZ%$|ThUOd&VH(u>w#xaGzF~u9SyI2W zdP;RIf%E~auxBS_We=VIt8abzvd5Yp7*jFe>z~`cTC$5+iE2$-Ho&jPwWc1V1Q#lZ zZ*c2y++8j`q5h`9uQ1qy`*$8Z-J$+^O4nb_AF_jt$}&DrwFl){V{PVHGwdC@d9c8m zx%}FY=hEh@)PK}QW@6tC_{AI2<tLSodxzLh(}JIrKK#J+TBT1RKKQvHpCoM^t=UZ% ztzFXDnWMc_RjTdA>0Qma^>eyAH#i2;PJ~CUi+Na+<Qm$#oxF+`r*(DqwB_2a%ChoF zdDQ-6o{sD~nolv0Tov=I+1S?JN(0ShJFIP2RhIYSksWh3wzn_FW|EveZ|cQE%STHq zHn}G5c+>{syy$~n?ajGtlYB#(%B=gkm}gCA>or6<pK45x(}KLxC98fOr#E-6>rtBO zc|FctMq%HL<4-%<j~$YsNfgPnwspH=NoFw)+yUu+Ymv#Q?sTsi=W}&;TP_<GFr=w1 z2KmM0`7CkUOkQn+Ka1qocDA=>eYVI|Rq7r#*59*6WvHsueQi-Z*Rn^AG>)Hj-nvz* z+B({D3p-ny+iRUY!6y0PI&2z^%$;PUb|~Gt)rxhfLSmT*Oy+x$4E!Z!d|&(n<B03O zLywgIL;sy&{r6!tID+nFL*Rb5{5i`zX`*a%+dJ1ZxA!PrzTS_0HzOyRz$af*T;2bd z?8hp%<O}IZvKEbsmtW%eo~yk-`Zg}rUS6tPGu255+6M?>0p)6>VwGRAysMS&kd~}( zc@>X=bIgacY{1nXLkJ7WYjenJZZ;R@lx%BsW3jZQyR9qdd^!tz2ct(if}DJ+v4`<5 z_GvnYs81=sLVA+)<hrxX8w!3cN@KE?zg15~@yy|UZ%3v5z1Mu8{u%;%CFNfUKDe~I zx$Dxl-1^3=n%iMeJE}wG9!N5QFO27uyJVUBZf9{_g*mcL0~_H;*9iRI7h>nmU}sZD z4|lmsbKPwn>l%Ann!B=TyMGE>k3wFufnWA&>}S8Lq`gX~yYx<X^V<~Sm98$>OWvhx z4G{WGAw5aDTYWvM2yy(?x$bl>i{slma`o$*yIo#tPjOlYYbcjUeBXUr+y>6EelW}y zjvDVmxCq~V56?Jv(+`%}JfsDrc+?IW@aY~%a)DQVk<9T2@$2cNOTLh<d7qVO$iODd zS6ZepK0ctqg`hbzgvFHUnW#*Qo4a!?7}L3I1b(;<ImraR&`w4iq&%UW^h!_LiRK>V zUr47NWH&T3^>nQBt<}v>@>$H&Rj|#qW96g%AM>nj>oDtmeJsZQdDyS9D8pnWosv`A ziRGAySyy*5dKBg_$!<Y*3~{p#LALMpR6LJ`b?8bPcxKBO3rnb{HnSnAX=#zEYHvHR zZyfyM4e2VM#4z8XR^F`F-8!?D_`cg$JnsA!S?xRfd!kHwZzW$!ufl0bl9!LGL9NN~ zU4966DwV_tgATur&!p@7SjSk?F%Hz!H$K%dCe`sU0)E|{acgkc+&=aWDI!cU9aBN3 zf9<K~(W8C!{0wk9I2Yva{AJ)wa5cytdww0rK70N>Anhjq7a--%e;j1bJ^vZ-H&4Hq zzY}EtJ%1O-9(?{Dunzn(NPXnDgW~%euz~BZfQ{f+!8zd9Ky1kG1m}U@1Dn9#fD6Ir zLFS$O(Ku9kjs+Rt^KS+ji}I&}^xym#@M7?E@KW%@;A-$rum!veYz6NFv*6!?Yr$`W z()(SIGUp!w*Mm=hZQzf<w}Za`uK=~V+7A8>+yLsHt^*tdO3z7#Bf&1>$J%ubcqP}9 zK{{^!Y%mAbfg8d1fmeec0XNa*{tkR6*FOdS415}t{{H~;{QqBe{Sx?Yu8$d*B-B-Y z6u1Q(4ZaVY0KOkQ1C;zE@H(z1gV%$#;0M6P;0M8rLGdjGZ{T`4cq4cT_#yBr@Xx`k zLGfK<crEy0;w#ua8j`Grx}avL30el#8eI!6gvLUrQM+0%_`XreQz89bi1XJ&XqiLs z$`D%45bmUhxF<|Ou7-Z)`$T2(GuA<?xIPw~4b6vW?SvC(y(6(>I3vahwA2%L;^b+P zi*ro;Gu%Cy5{hpjR0pkv#@TfiJj=14?4B;^`PW;ByTHi|r&lR|g-V`od0Q@w;>I2j zCtmqY<AVB&UxR1TH9SLGvJFzW86VU1l23qxLDd0cTyiVd41>vS;G4m}1c!m21jmB6 zgEio%Ks`VEG<X5{SKvJG4v_wod=~U|=tnbOH}e0{(3Q|MNOd_PrC_`C`1N=uU8k23 zr}0wZ^XQiCUjoknDXSZY?o0D*N9Wko7xV*LJ7?V7#ibi7>3=RThB$qUA#RNPI(R%O z4}ewR--6@8zXMg8Z-9(#$=`#%j5Ek@J*4uDGCVEKUv~R-Y=$%+Xy)lS{}1R<dA<dz z4!)i0os#O%H&%Xa$y_03LN)Y&{rw%&@m)~$`7o#+z&PmYPxU*(t|g~ymFWkhPXPZJ zoB}=qs$P|@=b^f;2X}+>!AHSGmQH_9{)Ow0fd2~8mXaqx+D`Ig@J{e2;OD?6!LNWn z1vO^x1t~W@jj<E_1xQ}WQy_UHzXE>*{vQw>$-jep!0&_q2FgBolizR+xofq1UB3uE z4GzXP`#@hu>hEVlr;w^=%+nnDc6mB|=`?p;%~Rz{(kk7mQ~iBBGzmHtn$Qbt>^h+5 z^KJYD(;xCvTQ9T;wQ;|u%~(!;PcO9b-(k0^c0YJ5_&itz{yr^F3;O1!?PDU$eodK4 z*Q9F0RZ>FuFVlx_@@ji8fk!AIljMg213={?zpB3v<a#(*2CAJ50%cn{crGaZ3k>Ii zl3M`c^Zdnjy%enAdKq{G_%@KXn_mTruf<UPQ1V^i5aKt2%+pqHlPPB%RKsZK>&VyH zI_gM1IGRzoDXDf(@U=Iro*BmU=`Ot~S;`tjRx19K)MvF^`*mK%t@)Hb08;-@zz^?N z8D(3A+gbJdNa|mj_Z3z^RZs)863Rn2Lw7?vp*;|Fm<)qob+i)7L0h41(8JJPNb|qu z`dQF2s2%#B3}s{<*3dVZA+EjH-<VvkKS3DX656eyB`2Q*UZuzT{aP>2=*zw`a%zWz zd=C8O*V^HJ{Z^N;e_z8Ty7Z)6`MM-MlL!x_7d3Y@^H^AXTIZ{N*28o@82Gi$mmE|H z5Q_KZm98r3m7d;*N$=yNx56+QJlXTQ`)>Y><fwn{brmOH^!@%}>Cs1dJ#L>p+=n(; zJ2_GcEzrNqoA_JhN#uw6jqSOO-C14A&f7^CikxHupUS6nqDz*)?{@n89I_~~^B%KP zeJ2FkO1Z`cXQ!S)M0Os^zFWv^iS0M!G{6x~^x*y-L|*EjE-(3Hc5_c#%Z0WZzqmWw zoxL(_5v<ZC#D&cp<S_YbJGR%MQ~H9A;4h*NtH0)38EVy$2yq$caOGDKSGo)bS})r- zVc-j9dywsK+kaic_BUbs)&p#RdB0CX&;5{m5M=wy_Sxq5+i55YvEOO4<#!QR?Dx|C z-iN*I=#YGn>2I5txskZo<_c`y8QWaHKHG9d4^Kt2o0evCId+E@WUuk<`wr}_LWgV) zGW}(9*c(5J2B8r9nX$P1$Hb+6uJ7EifoEU`TJ7y#fz6Mb-9fIu><;tJ110Qc94*%z zpW5x8g8SE^T37K-lDBs#ve!W>bKvi9d)sZmjs46#Qm*}v)L#FzqrS5>>)MAJhQ^K^ z*g6w=$p-%ZvN!A%kD%cy#P)K}RIasCYHyP^bXP1|XnVP`wF^7-tU+>tx4&)OS;AKC zxyt7h*?Ljqrj~41cm^w5M<TZslC6QazibWtZL=0SgxIggVC(AGR$8i>F3-1l4WqOB znrNVq-Mg@P9(trB$n}@qp}$SEg-vYtQ0%_8*zV3Nc+Fzf1wDF3<DPcQUftmAH+utr zf7u)6k3A*qWr0wBQz?6SQNTUvv*+`&xfc1mA(c1C^q0+{&)uMfB_Z}P_k!hLC}nfB zF4~KoE0C33;O#G4LwlHI8z`}@Z^qVLC2h6k9rnq$Td{R8@{$ew{bg_Hch8ovm;0LX zpT3;EdT!H_Tf}(m?5;z{4zoMR^_Shj&v!78Da3weKcM`DQg$!(Z*7TRe%_C*UC2u| z@b|a9%NWcQVtbFn-s4!iW3s;wTGX6tS<hYJy2eeb=J1wUtG8G0g;XIg*}&gl_J%$e z&eVwQWxuApHn#V|&Vt3f3?kpIz|M!w*1+3ewuXDmZ49^yv8^Mpb$)CsOZlFj#!YQG z@6$45a*$*KUw_-V*zUw)JK2RRZ;kErwZFV4+v@yzH#Uw$PBMY7zw8Wsi%lvQVmtY} z{7+*$mv!cv+gG`jj=LZ2@qS%~tq+^Mfxo})y{Ck|Ct>f+2ioi30yTrxUdxc(45_Sv zzrXEW&4i#3`*$SvekrzhId3?0F>YmBS2cEbyNA`XcRRLDL|(FizrXDrs*Nr}Y%lvq z<qya9vfND<lKz&$wcl23eZuSw{QYI`Z?SQfvs7bhCf(y>dm(+6acYvhi`#~zimg!H zdW-@q_;+-)_q~O9Ek~t8dvFR`N^f$1xp%Jf8neeEtD#5xuc}gA%T*J=8t@Eo8aNT0 z4o(8KH%(ez&&w)JdtIVuYTtpz5vTa#=jTnx$QG6}F2v<I3th5hCMX-(T{hk0+}?8V z$uiQULuFQob(~{5-U7-u_|SBWFVf-nmNIEOh;`JPjs}pi*FF38Wx1kAhu`BVtz)6- zSY$db1ig-Ik&dnCS6M=PjO|!%IxaCCm!>-WUVQM!T`!}9=Ky*6l;;4hEUQx;mlxUL z_aaK$vCed?Hyv%Mj+I3^{JubG9bKm5O4HGu>Udj`j{PrF7Pe4aS*|r5??`p5DAM8Y zpG({EZqxA|(?S2RdbzAfhrh2at>c5H;|9}lW2$3mkq&>qSz5<UrsJcg<A0?(mK5n& zP30Y|ecWa`{?c@OGS#7H_=R^?{QX#IJ3ebV{@QeGOLY|c)ZZVK*6~HtagXV^H`Vdh zB0KzjOKBbVn~txVj<2OUihb(uB}(h~hUxfw)A7wz$E8Jf_;r109p5n>-!&Z%r#gy# z>et$(bv$A^cAJhzQyrHS+2Pl}rFA@EI(}q2=v&rKi|fU&OH1qcnd$hs>G(yeV|kGs ze$7}~$8Su>)23rzs$+4H4!@o&t>bs5gTC#?pyyK^7Z>U9Ypl{b=mf6sXF!d~13*8X z7W>1mdrIrj^HGh3dOj*0dOqrP6!(3<7AdWRvBl}&T_&evSgNDAjrsLKX&on-j*+J0 z<X$?S#Wu}tvQ^<JXbbBTl}*ofc0<301~XYyL9?J`&<)TX(BsfPsH%*)6l#SwLw7(A zKu<wD>`SVlSx_sq8M+nP4(*114UJ^KcN(O<-!4e+o8JR{A9@PXzH&9R3~GnALffE+ zp}mmarLKbXZuT-L2i*YaedArwK4>r#{Y0n%S`WP*gQ_Du|GmR1{iw(hr?Wmi4knkR z=V?v;eoAsHi4<>0kDvb@uJ65if3MY-@4sT16&u=F-yHmVu;ZdMcx%G9XK_9yzYC+> zeOZ6MvTwYO;5~uj=c}QP8t8ip?0KYNEOj(G)RCUAS{-epeuly?-jE(_rnz%>so<V} zyXV`rTpjB3U$qa(gniNdW?$Tf#=)bppwNbT!UNf+j$V6U^N`;ONj}IN#OCxnh(Ffm zF2*Z`cnBDe%?-h3=hM<QAIkIV;H$9TGD4k*5c`UIp7KQ@U)SH#eBFJZo_X(uBop}h z%Rj-+EoNuzAMVM@FAH`S`-kzQFW)2i_8oi@_RDG+`xRoJOeC*0AusvF_91PH+WF-= z(qDii7kGnTa97;c|LArTY<<FPjr$_^rsW;MR{5obt<#X(21zdP23rqzzYKd(H<Zh( z#eU`fxm<Od_DjAZbVoe2`UjhQ4(oio2U|4{%eR3)*n7lb_HD2?VGdV_+uUUA-5Ttb zZ%f$w$F#k>Ezh{^F(#JZ67p2rEAcF+47p8^<N|N-Pk*(&6|7$r;<h&hTR#(Qm48au zdJlG1BP+SU8*Dw?Z7+-;p%P=iPQ})*2V3RWUeEMaV&lV*WCCBX^Kkn#*tyLbTkO*_ zvGd!(PWiN#on^@6Ajt&2VCUiX=Tv)lWg(qTA@=7q?EF!%Q~vbtfw=yAH-?NrM*M*% z*vMYkVI3QTjoZyevQ7hgcjdnfHoE@n-c@-;^F<gZS}A}+?2DP?^V^V*e6b|k)!x?P zKIhlV58~Gz@cr1R=dh9u{J}4WyNv~Vhnb;q8)L7r{Ka6e{BjU`*JG=mJ4-h32YU~9 zTMO&WO=j=)a+-znuy+`9f}1z&ozPb@?uLH1eTY~5g^&TresTG2A&({5=2rhM2&;Kt zcbl;*kDO!zpL{{RsXpU2ovv+_j+;xSGj_6fUFGBo^7c(3HwN|!3ilHJ{n40*FK+p! z+}pLCgw5Ecd;H1FnetKi<~EiI-+cFd?drdK3+ts&Kl_g+1HvU9+`o1BZh_^UEbMG< zCDyff?Ai&xctd*d8A-9v((m4a&w8b&@57#MJ}ac_yF^|-Th`sSp&{Gewn1MB`g<k$ zBIaAmxdvKk5bf-Hio_k*H-_sg%zovsTZ&jNw<)I<;a>EW|N8Dj-`9f=!#eH-EBQrs z?;?9Hz=xj-K2&Z?+c-d>aPols`2x1?LRNBtSN38nJD>;mCuzOYr^n}6@YuI^y7M=4 zrn~1HdSJS%FXpQBp0toZdn|=&aOtXtIGwi;LRGo;EjPsJ>p3%l+cYPu{uQS+cXx-k z_c%+%_pdm;#lPCOthue-y>o`R<D+XA>EY;<mi4Ad%z=+8DB^4B;Y;Q&V?^U7(kGCw zmTqyrUf<G)c^;MM`?!`)F|XO^4{#w(eO&Wa%tM=2R&I>Y)E1}3w)c>xwlR}R+)3M5 zg0nYboO~|5nyzA5%iGE5nePs0GR%5^P%>&yj2oq7+<Tp&{lC&a5ay*jhLH*3<I2>+ zZ2Exq$y}8BKsa}!v8#>q)HbT)s;qj>-G#hl1Anj^H&7yl;_qogKk1cT)DQ5J&X|nl zi~0d+z0(iq2L<`k{UA;+)eqwI-u)m>i~E7*5zRAkdZ{+1J`nT7ZA|SxPV3#q<Uh6f zm}i|kro*prl&*GOl&(`etk1|swedLJ<xzM?G;OajPm5o&xq7do-rK47Z=h!*%G6HO z#??QHWc(Q5#_3nuPQ$vgbvViir+9Gx*3(WuK&Gyp&dq9aXlDz|*|-h+YLO9t;E`{{ z%Qzaht#n^NWsu@Rx|`En|L?o~{)~j)bIn3q_|+%_3k}%6t(X1rwt@QCdde^YS;+<7 zP!5bOSq`OZEbo<`&fTG$h4eqZoWCVMy*uFdgfr>7T=NF^(k_f==_dbA0M%B`a7#IT z(_8pfeHrni=|p<|XfD%Z19v7X;NAg{4*Zc<U-92=xpQIN_iW_F@=!WY6FWGGHALaL zq~BXCZ6Eh3&b}F-?9;meUYEX6E9mh1gPCx9Tl6jfYkH?c?*ynH>YV_uL*EA$bof2I z(ss--9dkk1F)!6o@RNM)_u)$0G2e770A<I*R7Z7@9e&TOv>nS$$0eZb(7OP>EE7^4 zsxQBnRl2?|GaYXQ<NEp&u4&r(-o|uRai#jwcbo-3`F*F-_Aw7RU#|sa-?~)Slp-B| z@2Iq&+DymWLHX&5R7bHLet)O59aou-t3lbpfMI2-N$rrI{Ju+RKk5AfwQId!5c_E} z*YeXlQ=Oq*>zm|)pZs1)Y5U%9x~~Ie-}R}kiK!0R=l3y6+xJ1!aRV6JcO%!b??b6h zZ{KkDt#rXYzyDC$zK@yin?c!kORDSi)IPO$zlTt|9zS6^ZUt43dQZW(Rh=JDu*2W) zm$u{crsE5s?D%4;qwp?}{N(S!OZ(|w)A1!R_S2WSmY=q#Izv4c#)Zd8_xINs)sYL# zMf%p;1;*?Ak^IH<o7dR*W^fcZ44ep}KhKz@anpU<eLUF6^$3vuuQRywmx9cR`8D9F z;0CY?q|LhT)Bg<oHrIJ@7f9Pl9s(=)X1ap6qbm3gw}Mfvg3+;pzFNU3Ucp%g6`XQW z!B|_k_TNGeA=mKTzZ$r|XV19%cT~IiIj4qC_#XM_&+mgLfj<C8gO7mn)^2bTs4-u2 z%A;IQvFkIz|IPI@5I?$anZ;Mn^}llcHsfmspWs^M*Lw~s?~lPe_!IEm;FI8cz{kK3 zfYL)dci*<t&Xa#5{?9G`!{A=7{{s9O_!02u;GN(vz`H=n-)%@6bKk)GZ`R*Q+iY;{ zv(lYxuJMoBCHQkCR64z5x886xGi8r^+in!+ABbnTW>bRX)Xo)#B-N(Vzvtv4`6txF zHvabe0GV|E;3(qgJ1#tp-KvLu;ECWfU={cu;8^fka2)s?I2rs;Q1zj5HW;ei{f_uW z;Pc>e@C4pD@a3L~eG_T7jb^7GYhiI=2zQD@C|9uesR7|WJLB%T#WV|gf_Q~0^vd2* zpu9I4tOid5<(<>P8Q@s34jd1z1kV8FS>C(KUky$Iw}RY<xibx>f?wkLOz`XAH1Ip% zIpB8<X_KzpKeTJ=Jb4T0Pl2;Qe3+aImSN!eAm6<wb)e3pk-xApxq$0xa5e~UQV*U7 zHh>p_;#&$fa=i?k18xB4f*s&I@XtW;y$5XKdJ8xoyct{o-U2QJ?*hfA_oDdmxBM5u z3&C%K<dxqEE(RY3#rH$-Vy^!M<eoPFQxIG7{{~`9{#j6b`@!X0KM!644yJAte-x<e zVc@0UaBu~v_mJerQ$g`H8qNX#g!l_V-ZQZFqVZSfiRhe{+0a~QHS`up@AK%LFTEG2 zcb#+wgwlu6Lo^y_JUoqStqI3NOQG{1wNT%0hNH{BlQS=h>$bT0QQS(4(`XuG-)3=3 zqqvzC*A&I6#U;t*oaPhyYBlXVgt)!Sm;Qb_liruBzx|qcg%<pxKU+by_bhlCxE34_ zwt?q^ZwFPPE5IcnZN{~C+D!gRt~<eZfLDT>4c`l@K0aXAH-p`zGbblK;Ag=c_*L*K zQ2jvsjNQrATz?<j1Tsb@*MN+T$+aM3gyZ`?_ztfBFSr>znu5F&JO=zzkUs4A#(=bG zcTN+9%}?X{UEp+(HlCjW%5M6U<HrXM@j>zd;^9p`2tqm|+O_{1K|lVeJ!uWA_H;F* zHluO46VjOy=R>91&zaQS#ZX+Y{>+|At*{BI+d_L<9K|g>NWFKF*SRj=Fy5)o{5@+X zz27Y(PGg<|XG^&H|1hX=`!B$e;78K(sjr-wj-Q&_{k>zx-A8hn42IhE2jQcp?_;L# zW^fqss@LN|U5@}6LtH+$f)lyE4fOt$|1>k}zHBn()ckXf%b&Tz<;9%n!Y=+rD7hKB z2hul(dmx>!SPd<P)<f4pw?jLi$02>^H<ZPXp4-fWx}fWzd!Sv=Q;=>ttDu?CGN>KW zd3?7+I?r!6v=7oZViTbTXg!pNZi4QHc0qd}eb;pq(`hX<4{C?DK(|8Mp~s<Db5MH< z&l0-mBMO&zaR0JKEdM!UuuJN7{>L~X#T(N9JKq0#xp%q3eh6i%^hGG%bJRYHW`b($ zz7YI(E0^TNUyx%A<+((MKN=$4w|Zsoa+M$OE?0Q&pfg|;3ZuVUi<j%2O6PC(viMY& z6HPdjG}qkGlJ$F9jJt{ERmlb3P=-OpWl#6Cf^T}Ir+Yzt-`Dc*?WkQyChW_FHP}#B zBL7bnJZnN(E_DYtcj_Z~)k7WjZ-c}icuur>C{N2ke{<zOl=ss7zFV*_wC%0fp)kgS z`*#%fbr;#^{ksRdRuV7XkS?2t61M_Umw&Ix9cMPbDYE&MKHKYU^Copp!dV{NzoW7F zW0rT~eCln!i8$>?i8rLn=AFbJMZ9eOTrZm$`>mg_c3^T)eFm92lX)PLQJX9!)AzRH zpJ9e_hPE?;MyZe*!{4V-&VRDJeL0t<ZAb4D?}fx4c>1I51pDqc`;L*37OJuDC&9jk zwjR!e&nij&8wvjwNc@4PKkN(7&sWo76i)Ww{vCsTzv*S4YcAd1#s{!(B65-md|?b> z8n&wV<K7Jo^&I-(PP0=}bO;w?=aJN<8}ICl)<b!hAms5|6t0H+TvWK9RhG*j1qzj? zpRzLZdqZyq83S11`Sr2(O~iW~Siy;JeodowSq`do*UCrhC_nCI(y=>UN1cGY%ELXg zmK1LNq;c*fuH{(PXl`Ev-@A1bWysT>+&+xYvx+O-zw2Jb?^_K)I$jt0F*D=FPx0cy zbX~|8;qpHXRC&>zS6ie_P%fRfseRGH8Fkx8^W$759Uoa9rTYNmOy2~Mq0#NvOW#DU zRW7X$@u^mR?)$wO5T9x%BVPs9g7UNYu*spyJB4^}kIL!K?j+jT=F9H)+ZCq}%D<Pt z{TNp`H&T9mTug-N=#~E&3!S|)LD_jWC_dRi-Lo?FcD@Cq?&Uvc=eZz0Ozk|6Yka47 zQu3#Rb>LL+0`N>w`pDDa3~)B_g>w0QJ)$X>uS@Om6!vJsJ!v6MyrHb~_}h<h8GPhJ zT-Wo-OJ!XEs;(D;D(j-u2G#YrB7J^L%DC}K8e@Hnk(0iQLFropYVP2!*2*M()v3OA z(){?5Nyi__t%ej>A3A-Pg6jA3mGrIPT5aeukbc3PyYCBs0(#$75gYozXy>os6WUYa z$Be?aoNAY9Qwp?Qw{NSwv{$L{ETlfVMHdA5bsvV5VZ=yi7NoNUx}fWzTcPdHE@%(* z0yGTAPJ|ku)zBtrEA(m(s{1fLYky6F`^hvkGCn`XJ(r7G#Bt-KXpWQI?eL2?r2luU z|20RceKFoxcPO5tl&*U2mG0gPm_oeLncqsLt4}MP;`UCTq4#st*Ojhz+)MviN}p!w zw7=fzE`N;?VI5GAXFtXLnx5A!KgVhM{TGgBcZc0bR#g<Ick4%P2%||G*ek6?KhWgf zo6}oXJ+9tl<E<!Z1s6~d<)<>KK4ZPQ|Is^dJ;bZNwdbU7z-SN2nn-TYLF9;ba@EM( z1dZalJCf799OtKBm$RS4NVJ}e>6P7g4Laby>$l{&0$Y50&7|$TmiUFlD`@PHPnfse z_{R{D*Bnka&ofWE@oO|l<8yNvWpI1o!@!BeGmp4E@Z&+v1zHO*|G2qdBa!C(wV>ww zD?yD>8^Ke#z6z`Yw}AL7|3Of5_zi|zLGgdou5SgaNxuzbe#+kgGC$?N0FDLk2giXA zfaAdjLCJp;l-_@|>mPt;aQ!$)8S*~_CxOp{HDDDEnGCWI?&fm#k=@+QelGWaNuGT> zcA0oq0@A+Rp0o0KAJ_OG|9((&G5c=r`}z-oO8;|1osp`!*pK_#kJDVJ-WtaL5nP`F zX|B|_^#1vGB`022%0hzQZ+kobp9PIX8jXZgD2acDvY5I!6IuYB;o_8DqY@E@yS-qY z8L%3<GQwH>eJP~9ELsD>uTA`%<RbV-wm%DM?0GBYQPAHyQ{@5Z|JU#m;lzr`&)mZR zFb{f^ejxM5(6NO-prZ<(p)kUSm<NU5usNZE!Bp4F={Uj-xJWphf84d{yVv;MW%!Vd z1sRj880h)4mhXM0X9$D6^h`3jv$0Xv|7CVOZ+0}9zUu>;-rG#i<z~<4>CBRU#`3$& z%6BJqr1+m1-<78Sm!|KzAZPmCW!LYu@||ngXm;LW*WrElTP&Y@&5yU4{_D;DQD*NH z)Bhy4$es_IT|YE?Pc}XOXnr}@^xR_k-fQ+gYWf~BJBOQ|Pg%Tve?a<2nLjJcu9HpQ zL#FR!<J(~QHJV)+tEVQj_gu3tyo<fu_}fg+B+Gw_+4rE?@k5i>IzsmR%;fGgywUVN zYWaQG;s=?XPg?n!P5+gq|6a5E%Fuo-zmFRKgU0`lmhVQxI}Lwm^`gmMcD>i^)bAVU z`j@7+(ezzo`j%V16&63n?9G~=HKt1bT=Vx3%V(1DkFxj;X79U<|7^RSgs|jqvG{kI z-taBYMw7qT^o}un((0kj^0_axKf})ledg!SSUEps@@<CyV0__sw5FRM9yB{1viwIG z-;H*Cxm`bL`7JjLd$6M{zjH1B<tBHp>Hl|&zt3=p)klVW2f$mF8S2K{p>;`8MP5~` zAaK;s%oe2&NXkYzwq$4>0&(E-(_AYSHST-aD(7L(RM2nfbzZ+uB?|<7{^%I6I7vv4 zgX#)P%F4<F=vO8#Ct<O?%fGHp(T+=hIQ=73K0ez*gR@^s<KVXesuYz9hV*>+11xv0 zaf_J{i^?jglN?1ET%FV@sjiCoSbvc2yfL_rGLT-SNZjh6)IU|eoL&+J6puqtA+L|} zoi=yr{(-%!aK&?<_`?64!G`>S(Zw-z5BJSQHCPLAFYoU0mVv9Gc4!l{1=<Q}?X(Tr z4()&*hP3|K3+;nmfCf{_VUQd&5t<1#K#L)sNxQSfwHKd<c($nLW62%RJ<x7w52SVT zeyEH>=v(ZO&^TxsR0nC@sWoXU)CFyZu7k8@z8$(7x*ysJeIL?3`%}=fP(q(M3K{`b zL$#3hrRG68lVLT~4(V*@Es*xWZ-ur&+o2theiKM%HtdD=K`%gq%P2Qg1x<wXu4DtW z7+MLfhjLIJx&gWwx&zW0LT5bef_6hXA9_DjMxPxDX<u|4r0-wrpoP#1NM}HFL7O4{ zUgAyA?a<wj_Fi{F--n)no`q<~$x+Y<s2Zw;W<m2Hosqm6YKJyKTcEAbHfTGv19}*G z9NG)*gI<7Mui=#BXl`ZPZ!6)2`imBwv8u5n*L}^Z#hv_YobD^fxOA#98RQO`Kkx^D zk4wf!Jhd~p6|SAef<MUar2P*{^kLh<Wj&9{&eXl3&vz#6d{E+lL^kB(<Ba!g-BWws z{j`liy?(GV$oMpqX)eg<Jdr`Yehf0m_%xGQqk9FPkAAChP{PBxm-|si{1x<ge$&%Z z$h(f=a1akS;vYr~GCs{@S_{6^ZxE`CrGBI^$a)@=&FUV=+ugt%?(7annzJpSx_=|Q zemzh{|5D#B6~eutW^JuK=*Esp@xDgmRP@($V0cK!DL+2gxUse{Zs_+c-MA6|&}Ag& z)4kku7GKBNc(a2=*`V;lixIz%H-0vd!dS0%$eT&_JB@`oC6jpGTDFA3oN}|{^&fZp z{nNsazl3qn^O!98gn8n28gi!B52geepJp;_Y6Y2juKl}@*3%zZ2{Jy-WTt7)%a6C) zos4Yk+mDb0eO}J=v1vTj^l2UE?Jm+6M)UaROwu~_GNy~oxG;z5H#Z_(2mOJLV3X%J zJ<RPB%%*+CdS2ER&ucoE<4-pocQ9{TeU$w1ieQ81GkNCyV1v#kG5Lf3kVMeoc})lF zfY6@wn+;xv_R7<PMcfIjLDut_?3#l8J5t%g$8&sUm)+#P&@A*X&u8+i1H!!A#VF(R zF8;xTkgrcSxz>W5eqX@kihg_`$oX`Wqoaqq*SmIJj<<1C+)_UT5cOBjZ+aLPg3t7j zE$HceFn_SY^LW`Qj18gA_5NP5Z1G_wLEiJ3JpDiTOlQ&;%lp%Sf}Bq`Ir@IES!cud zl1mSd53-)eWElg3-|F1niTd-xPG8<|j8$}qRpd9%Z+aLPf(<%1z1W7r!Ro;V&ttNT z0YTRPw!Lgvbig6!LDut_EPX!6>P&H;Z?6N#Bbz;s$<oim_@{Hey=>tC@Q|NRGa34I zs3V=Z?Pcf<9L4Sq<Bsz3=_W^i4tDB0XfJo*;n*Qh&ttOm<It{j4s|SBbWnAax92l? z`f|uy=R$k=0}qZ4d3zp{r5^`bozd)N4?M&<$a)@=r7wrMl3_F%=;kDSxmp-Ae7xtM zN?itio$WTz-BT6w`*`Dz#%aw_rawJUtmyEyC{NF8I;hVu&c5JuXbx=pgE~B~>7Z^y zo6z}Xz3qt0>(fn+dJS?TafFpO%{!L!=_W^g2D$5;occ@rMQy>qKHcP^F<E;QKEKj( zKHcP~vC#hZI638)&LMt6(P3JVk3FBsGd2f#?N#`EUtZqxnS8WX(^*vBzoo}hpYG+( zWIPUj(z#GR-_mkE-Q*aD!?>VxntXnRgONg8_h}{*t-o|;lF#cv8J}h{(fUhg82Nnc zV57*FKFwqpXM=5ehunN=U#%DF-KUvMG`{LgAfL~Hhwy}Qc^;Fce}w+Oo;k_qcW_zH zW3u#%u=X9nyfm=a+SkV!FKr~0OK0B<OmrYa;ZU4ln@=+t+C|WRKXcANI}9f9`Z&)! zjkXZVp>s{V{$7WkL_YUCCL68G$<SmEJS-yQ>v>F;c9D*0!z4R5{eVC4>l^-ob`LO( zHWBR9H}NTdaW_rZzn;hPqHP3!Xj~o8%iliE^G?Cvp>Jr9cYy5b^)hy_&!?LlJ`eR& z$9Op)et9+WpHK5LQ}KPUYfnKYErX9UUVI&RZ(=Mp{VA`HGv27rZKiMsv&E;G4E_!E zq5awcN#W(zP+lKz{84{<Am+E1O@oY2Ga33@$fK3<PW9k_S+vkUeZ1$N9+g>jRF?P` zk%Dd?=Xs~0`;E|d4``3)>WV2Dnz+6r{=l%L^Qz&jVsf-Y{U+Q*;_H-X;W+RF_xEph zSXA=TOa3qE(qG})#~zamqyH)#<?eHMPO$rTX!l`JTT6FmPv_cP%~F2rt)uOVnx+m8 zjOy&FVY7iv&c=>)Z5`Q~@C&c??ae(s$(d8myr6Nmdml?$LVl(5uS|B)#uRF4C@RYR z$1Y?v^r4UW`<|c7XqeGZUq6LDqVV$h4ow!zS%h)+ta99dL(bQnqOsK8j+!=mc4O_- z84X_bAF$zAcUHGp^=wIHzxmM1zPP({U3c?_WcJiEXPi}k)@+ya%a{G=WVLzN-#h9V z*ddp_aq0A^+>H&h&ze4U3QO8#(${L92~Cpe`hcJ`#q+-I0YPa^5L2~<?(hfx>2U9g z(@ZTihd-R}R&sS>8ndA${K=!)%BzafLW+F8p=N7QS}fPxeOFOhb!Cvu@WgUwQCbHx ziw`QpkD-Ds?M1fiFG|ZsX>FayB3zK;wI&OcVTzt{7Si;%*9T5o7%-<OEu{E1wYn%R zv`nRy>zmI=XR+K(MQPbwNG00+&RoHkkmB;I+*Kr3%k1exhDX%;F1aALeRUy?=X^zJ z7-vEG={w|tTuAZdt1U`vj_k}W((e}>Ois^qOQ+S=>h}f;X}|hb$T5>_Uwv~?T1auW zxZgG^$Q7j}4<B64eHU?wv8%ixWRm8bo*AER5t)RAPx|*`P5RDYXnGyjZG-z}U`(1e zA!<wh{e1OR1@eo0oz3Ze_Q0Is-BQoxeXV!X*`{!z*v>Ndo;mMNT3V`7`rZ5Bp-*!i z>3pn7XA!Yvc7gSb{iXaG+!;eQOtTItE`y$X7vze|py%P-l9<lozM?aIBDp9(e^yUH zE=_V}SaVRhY>Up;DcD);vn>aeD@(SLR>&{**<(#Q%cfvwLu!otqW6gk`4#&`XUr7j ziv6OqV+wMqN>@Ie{Zf#tit5Op=~A#WmiyJWbXH42E>81juoUu(%f~wmtVgdmcDhCy z)L!(S+7~QlKr*K-B&t2?OpHs?w2<Q4=ch;u=R^)*%nYd->-4Su$F0#0V9YF}HMsA% z_5QFzn!w+gq^(QeWQRezIIVh`-c=6o;}2wfa|)c?gvxa|CA9f8!KLwCBWYnCD@!^% z3Uc+G*OK-Q`k6vm@>rAq%a`vtI^SZ8C@bnK<%!<;3Vpg)e#vIi_>RVfvLqhMJ3GEY zT3B%PmfK0%k><1FwA$M5(LzS2I*Z51XGq(Wrr93=s><8A2c2CaZ2+Dh;_}L{Zt^Rb z&%ry`oF3wYgLrZ!Z3DQ&ECa)TGl;zxx*GZ^q|kWIO1-{5b;i_58+z8}R^~c8+j~~p z(k*P`bg#7aOnq}twx*@0uTn)T-x@Y&+SYYsyAMG@w1hmwto@?*5VEqBq9k5?`o*W^ zYIC>qllw=`^<fB|I{aNof8($JRu9}%GbQu;_D?QSJq?=m@sEu?vUC2YD{_0D+xy_| z4Ma}n2T`tQ>R8*EOxEY{J;~&r?v}~x*?Y=%uW9dWxxz=R)dwb%vn4x1kH4{Nu^$)c zUdb<rx-VW@bTe1e8Z~LB{E&3DyYIu*;tpNb3{&52u}*pDO1k{r(JQkc+cQ1RT?6*f zkSgOjo6EE)*C4NfkUiQ&Hw>C6nHSs;rIEcb(EF8-M4vVu;N^nm&JmE_duJ;%dB07x z?`BM_C2j?Ay=fuw<A~pKJo7ROvIZ7`4cNGzA#*Uc)gil^aa~i)DoEx?$7Rr4A-?g` zd4HUNlO%70RAjCB5OGCRaY7MQbeW|2gCSpAhuWvmH@keZ;ny0N;mV+W39XIwJ>f`5 zYemhur$SZGC`fKR4XTDP+pT-Yf-28=XaaNwG!dEv)j*S>T4)M171HhhG)P-bnh!K5 z%6Dw%y01<&56*(lh0cR?A6f@p0L_N#p$4cCngh*+=0Q!+d}sl*5V{Du5LyH+hAxJd hKue)z&~ixYluMyk8dkqj!8hdI@W2}$c-4F0{{c;Al+pkI literal 0 HcmV?d00001 diff --git a/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.suo b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.suo new file mode 100644 index 0000000000000000000000000000000000000000..8e0744da4bc7a159b817aa866f48709e114da84b GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHW<B`hlwMT;@8!t*@5Y`~#&gWOAZ zk#DCNnL+YU#Q{JY^BJ-jJb|{S0a>mL6*zQb7Zzh+Vgv;Ps4N1}*i~VQ0*fy&@MkCm z`Z|Xp6KFpOr!xct`H4WB3U-SjrdAXY6<{d{vKIzWByn&+Uhl^tM~*PeZV*kXeo(## zg&inPK<rU4vO?gDmz(^-!&h9^Kb(>Fx`3&j)bx|(%3#G11I{kRK+=f842X3Zav6$& z*|`KP11ey0fczL>)+zvJH&9l~W^e|I=P{H4Gg=W?e-TiHD^QIoLkLg|WSTQDBNhYM ldJM@xI+o`O>xtP9y=V2zk#SlSQ6mg=D|%#+>iiL}9so229ZLWJ literal 0 HcmV?d00001 diff --git a/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..bb84a51ac4f20534146c09f2fd9c928d15a903b2 GIT binary patch literal 11600 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 literal 0 HcmV?d00001 diff --git a/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe.config b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe.config new file mode 100644 index 0000000000..7551afef46 --- /dev/null +++ b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe.config @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <appSettings> + <add key="LogFileDirectory" value="."/> + <add key="InputXMLPath" value=".\InputFormats.xml"/> + <add key="BasicInputTemplate" value=".\testTemplate.js"/> + <add key="BasicPrereqInputTemplate" value=".\testPrereqTemplate.js"/> + <add key="BasicNegativeInputTemplate" value=".\testNegativeTemplate.js"/> + <add key="BasicNegativePrereqInputTemplate" value=".\testNegativePrereqTemplate.js"/> + <add key="CommentsRegex" value="^@[a-zA-Z0-9]*(:\s*.*;{1})?$"/> + <add key="ChecksRegex" value=".\s*CHECK#[0-9].\s*"/> + <add key="GlobalCodeRegex" value="\*/[\r\n]*.*"/> + </appSettings> +</configuration> \ No newline at end of file diff --git a/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe.manifest b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe.manifest new file mode 100644 index 0000000000..f96b1d6b3f --- /dev/null +++ b/tools/SputnikConverter/bin/Debug/Microsoft.Sputnik.Interop.ParserEngine.vshost.exe.manifest @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <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"> + <requestedExecutionLevel level="asInvoker" uiAccess="false"/> + </requestedPrivileges> + </security> + </trustInfo> +</assembly> diff --git a/tools/SputnikConverter/bin/Debug/testNegativePrereqTemplate.js b/tools/SputnikConverter/bin/Debug/testNegativePrereqTemplate.js new file mode 100644 index 0000000000..1a59a84036 --- /dev/null +++ b/tools/SputnikConverter/bin/Debug/testNegativePrereqTemplate.js @@ -0,0 +1,22 @@ +{0} +// Converted for Test262 from original Sputnik source + +ES5Harness.registerTest( {{ +id: "{1}", + +path: "{2}", + +description: "{4}", + +test: function testcase() {{ + try {{ + (function() {{ + {5} {6} }})(); + }} catch (__e__) {{return true /* failure is success */}}; + return false /* but success is failure */ + }}, + +precondition: function precond() {{ + {7} + }} +}}); diff --git a/tools/SputnikConverter/bin/Debug/testNegativeTemplate.js b/tools/SputnikConverter/bin/Debug/testNegativeTemplate.js new file mode 100644 index 0000000000..e9b503ebf6 --- /dev/null +++ b/tools/SputnikConverter/bin/Debug/testNegativeTemplate.js @@ -0,0 +1,4 @@ +{8} +// Converted for Test262 from original Sputnik source + +{5} {6} diff --git a/tools/SputnikConverter/bin/Debug/testPrereqTemplate.js b/tools/SputnikConverter/bin/Debug/testPrereqTemplate.js new file mode 100644 index 0000000000..62f170bf36 --- /dev/null +++ b/tools/SputnikConverter/bin/Debug/testPrereqTemplate.js @@ -0,0 +1,21 @@ +{0} +// Converted for Test262 from original Sputnik source + +ES5Harness.registerTest( {{ +id: "{1}", + +path: "{2}", + +assertion: "{3}", + +description: "{4}", + +test: function testcase() {{ + {5} {6} + }}, + +precondition: function precond() {{ + {7} + }} + +}}); diff --git a/tools/SputnikConverter/bin/Debug/testTemplate.js b/tools/SputnikConverter/bin/Debug/testTemplate.js new file mode 100644 index 0000000000..e79eff4e30 --- /dev/null +++ b/tools/SputnikConverter/bin/Debug/testTemplate.js @@ -0,0 +1,16 @@ +{0} +// Converted for Test262 from original Sputnik source + +ES5Harness.registerTest( {{ +id: "{1}", + +path: "{2}", + +assertion: "{3}", + +description: "{4}", + +test: function testcase() {{ + {5} {6} + }} +}}); diff --git a/tools/SputnikConverter/testNegativePrereqTemplate.js b/tools/SputnikConverter/testNegativePrereqTemplate.js index 02e62f3d79..1a59a84036 100644 --- a/tools/SputnikConverter/testNegativePrereqTemplate.js +++ b/tools/SputnikConverter/testNegativePrereqTemplate.js @@ -6,17 +6,17 @@ id: "{1}", path: "{2}", -description: "{3}", +description: "{4}", test: function testcase() {{ try {{ (function() {{ - {4} {5} }})(); + {5} {6} }})(); }} catch (__e__) {{return true /* failure is success */}}; return false /* but success is failure */ }}, precondition: function precond() {{ - {6} + {7} }} }}); diff --git a/tools/SputnikConverter/testNegativeTemplate.js b/tools/SputnikConverter/testNegativeTemplate.js index 0ca6abbb9c..e9b503ebf6 100644 --- a/tools/SputnikConverter/testNegativeTemplate.js +++ b/tools/SputnikConverter/testNegativeTemplate.js @@ -1,18 +1,4 @@ -{0} +{8} // Converted for Test262 from original Sputnik source -ES5Harness.registerTest( {{ -id: "{1}", - -path: "{2}", - -description: "{3}", - -test: function testcase() {{ - try {{ - (function() {{ - {4} {5} }})(); - }} catch (__e__) {{return true /* failure is success */}}; - return false /* but success is failure */ - }} -}}); +{5} {6} diff --git a/tools/SputnikConverter/testPrereqTemplate.js b/tools/SputnikConverter/testPrereqTemplate.js index 432c60e1ad..62f170bf36 100644 --- a/tools/SputnikConverter/testPrereqTemplate.js +++ b/tools/SputnikConverter/testPrereqTemplate.js @@ -6,14 +6,16 @@ id: "{1}", path: "{2}", -description: "{3}", +assertion: "{3}", + +description: "{4}", test: function testcase() {{ - {4} {5} + {5} {6} }}, precondition: function precond() {{ - {6} + {7} }} }}); diff --git a/tools/SputnikConverter/testTemplate.js b/tools/SputnikConverter/testTemplate.js index 62a7a27392..e79eff4e30 100644 --- a/tools/SputnikConverter/testTemplate.js +++ b/tools/SputnikConverter/testTemplate.js @@ -6,9 +6,11 @@ id: "{1}", path: "{2}", -description: "{3}", +assertion: "{3}", + +description: "{4}", test: function testcase() {{ - {4} {5} + {5} {6} }} }}); -- GitLab