From aa145e793c51d4f11b16f90e42819a2000610064 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 29 May 2025 12:45:20 +0400 Subject: [PATCH 001/191] =?UTF-8?q?fix=20#1542:=20=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=BE=D0=B5=20=D0=BF=D0=BE=D0=B7=D0=B8=D1=86=D0=B8=D0=BE=D0=BD?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=B1=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Language/LanguageDef.cs | 101 +++++++++++------- src/OneScript.Language/ScriptException.cs | 13 ++- .../SyntaxAnalysis/DefaultBslParser.cs | 3 +- .../SyntaxAnalysis/LocalizedErrors.cs | 12 ++- 4 files changed, 87 insertions(+), 42 deletions(-) diff --git a/src/OneScript.Language/LanguageDef.cs b/src/OneScript.Language/LanguageDef.cs index ecbbb9c76..29bfb7c48 100644 --- a/src/OneScript.Language/LanguageDef.cs +++ b/src/OneScript.Language/LanguageDef.cs @@ -17,6 +17,8 @@ public static class LanguageDef static readonly Dictionary _priority = new Dictionary(); public const int MAX_OPERATION_PRIORITY = 8; + private static readonly Dictionary _keywords = new Dictionary(); + private static readonly IdentifiersTrie _stringToToken = new IdentifiersTrie(); private static readonly IdentifiersTrie _undefined = new IdentifiersTrie(); @@ -72,42 +74,42 @@ static LanguageDef() #region Ключевые слова - AddToken(Token.If, "если", "if"); - AddToken(Token.Then, "тогда", "then"); - AddToken(Token.Else, "иначе", "else"); - AddToken(Token.ElseIf, "иначеесли", "elsif"); - AddToken(Token.EndIf, "конецесли", "endif"); - AddToken(Token.VarDef, "перем", "var"); - AddToken(Token.ByValParam, "знач", "val"); - AddToken(Token.Procedure, "процедура", "procedure"); - AddToken(Token.EndProcedure, "конецпроцедуры", "endprocedure"); - AddToken(Token.Function, "функция", "function"); - AddToken(Token.EndFunction, "конецфункции", "endfunction"); - AddToken(Token.For, "для", "for"); - AddToken(Token.Each, "каждого", "each"); - AddToken(Token.In, "из", "in"); - AddToken(Token.To, "по", "to"); - AddToken(Token.While, "пока", "while"); - AddToken(Token.Loop, "цикл", "do"); - AddToken(Token.EndLoop, "конеццикла", "enddo"); - AddToken(Token.Return, "возврат", "return"); - AddToken(Token.Continue, "продолжить", "continue"); - AddToken(Token.Break, "прервать", "break"); - AddToken(Token.Try, "попытка", "try"); - AddToken(Token.Exception, "исключение", "except"); - AddToken(Token.Execute, "выполнить", "execute"); - AddToken(Token.RaiseException, "вызватьисключение", "raise"); - AddToken(Token.EndTry, "конецпопытки", "endtry"); - AddToken(Token.NewObject, "новый", "new"); - AddToken(Token.Export, "экспорт", "export"); - AddToken(Token.And, "и", "and"); - AddToken(Token.Or, "или", "or"); - AddToken(Token.Not, "не", "not"); - AddToken(Token.AddHandler, "ДобавитьОбработчик", "AddHandler"); - AddToken(Token.RemoveHandler, "УдалитьОбработчик", "RemoveHandler"); - AddToken(Token.Async, "Асинх", "Async"); - AddToken(Token.Await, "Ждать", "Await"); - AddToken(Token.Goto, "Перейти", "Goto"); + AddKeyword(Token.If, "Если", "If"); + AddKeyword(Token.Then, "Тогда", "Then"); + AddKeyword(Token.Else, "Иначе", "Else"); + AddKeyword(Token.ElseIf, "ИначеЕсли", "ElsIf"); + AddKeyword(Token.EndIf, "КонецЕсли", "EndIf"); + AddKeyword(Token.VarDef, "Перем", "Var"); + AddKeyword(Token.ByValParam, "Знач", "Val"); + AddKeyword(Token.Procedure, "Процедура", "Procedure"); + AddKeyword(Token.EndProcedure, "КонецПроцедуры", "EndProcedure"); + AddKeyword(Token.Function, "Функция", "Function"); + AddKeyword(Token.EndFunction, "КонецФункции", "EndFunction"); + AddKeyword(Token.For, "Для", "For"); + AddKeyword(Token.Each, "Каждого", "Each"); + AddKeyword(Token.In, "Из", "In"); + AddKeyword(Token.To, "По", "To"); + AddKeyword(Token.While, "Пока", "While"); + AddKeyword(Token.Loop, "Цикл", "Do"); + AddKeyword(Token.EndLoop, "КонецЦикла", "EndDo"); + AddKeyword(Token.Return, "Возврат", "Return"); + AddKeyword(Token.Continue, "Продолжить", "Continue"); + AddKeyword(Token.Break, "Прервать", "Break"); + AddKeyword(Token.Try, "Попытка", "Try"); + AddKeyword(Token.Exception, "Исключение", "Except"); + AddKeyword(Token.Execute, "Выполнить", "Execute"); + AddKeyword(Token.RaiseException, "ВызватьИсключение", "Raise"); + AddKeyword(Token.EndTry, "КонецПопытки", "EndTry"); + AddKeyword(Token.NewObject, "Новый", "New"); + AddKeyword(Token.Export, "Экспорт", "Export"); + AddKeyword(Token.And, "И", "And"); + AddKeyword(Token.Or, "Или", "Or"); + AddKeyword(Token.Not, "Не", "Not"); + AddKeyword(Token.AddHandler, "ДобавитьОбработчик", "AddHandler"); + AddKeyword(Token.RemoveHandler, "УдалитьОбработчик", "RemoveHandler"); + AddKeyword(Token.Async, "Асинх", "Async"); + AddKeyword(Token.Await, "Ждать", "Await"); + AddKeyword(Token.Goto, "Перейти", "Goto"); #endregion @@ -229,6 +231,33 @@ private static void AddToken(Token token, string name, string alias) _stringToToken.Add(alias, token); } + private static void AddKeyword(Token token, string name, string alias) + { + _keywords.Add(token, (name,alias)); + _stringToToken.Add(name, token); + _stringToToken.Add(alias, token); + } + + public static string GetTokenName(Token token) + { + if (_keywords.TryGetValue(token,out var strings)) + { + return strings.Item1; + } + + return Enum.GetName(typeof(Token), token); + } + public static string GetTokenAlias(Token token) + { + if (_keywords.TryGetValue(token,out var strings)) + { + return strings.Item2; + } + + return Enum.GetName(typeof(Token), token); + } + + public static Token GetToken(string tokText) { Token result; diff --git a/src/OneScript.Language/ScriptException.cs b/src/OneScript.Language/ScriptException.cs index fcd8acc26..a3ae37852 100644 --- a/src/OneScript.Language/ScriptException.cs +++ b/src/OneScript.Language/ScriptException.cs @@ -97,13 +97,20 @@ public override string Message get { var sb = new StringBuilder(MessageWithoutCodeFragment); - sb.AppendLine(" "); - sb.Append(Code); + sb.AppendLine(); + sb.AppendLine(Code.Replace('\t', ' ').TrimEnd()); + + if (ColumnNumber != ErrorPositionInfo.OUT_OF_TEXT) + { + if (ColumnNumber > 1) + sb.Append(' ', ColumnNumber - 1); + sb.AppendLine(BilingualString.Localize("^--здесь", "^--here")); + } return sb.ToString(); } } - + public object RuntimeSpecificInfo { get; set; } public void SetPositionIfEmpty(ErrorPositionInfo newPosition) diff --git a/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs b/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs index 4729503fb..bc421088c 100644 --- a/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs +++ b/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs @@ -1366,8 +1366,8 @@ private BslSyntaxNode BuildExpressionUpTo(NonTerminalNode parent, Token stopToke } else { + AddError(LocalizedErrors.TokenExpected(stopToken), false); SkipToNextStatement(new []{stopToken}); - AddError(LocalizedErrors.ExpressionSyntax(), false); if (_lastExtractedLexem.Token == stopToken) { NextLexem(); @@ -1640,6 +1640,7 @@ private void SkipToNextStatement(Token[] additionalStops = null) private void AddError(CodeError err, bool doFastForward = true) { err.Position = _lexer.GetErrorPosition(); + err.Position.ColumnNumber -= _lastExtractedLexem.Content.Length; ErrorSink.AddError(err); if (doFastForward) diff --git a/src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs b/src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs index e0b96014f..21dafbd9f 100644 --- a/src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs +++ b/src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs @@ -52,9 +52,17 @@ public static CodeError ExpressionSyntax() public static CodeError TokenExpected(params Token[] expected) { - var names = String.Join("/", expected.Select(x => Enum.GetName(typeof(Token), x))); + if (expected.Length == 1) + { + return Create($"Ожидается символ: {LanguageDef.GetTokenName(expected[0])}", + $"Expecting symbol: {LanguageDef.GetTokenAlias(expected[0])}"); + } + + var names = String.Join("/", expected.Select(x => LanguageDef.GetTokenName(x))); + var aliases = String.Join("/", expected.Select(x => LanguageDef.GetTokenAlias(x))); + + return Create($"Ожидается один из симолов: {names}", $"Expecting one of symbols: {names}"); - return Create($"Ожидается символ: {names}", $"Expecting symbol: {names}"); } public static CodeError ExportedLocalVar(string varName) From 92172277964aa4cc310f533fe41803aef0f3f901 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 29 May 2025 13:06:47 +0400 Subject: [PATCH 002/191] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=9D=D0=95=20=D0=B8=D0=B7=20=D0=B1=D0=B8=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Language/LanguageDef.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/OneScript.Language/LanguageDef.cs b/src/OneScript.Language/LanguageDef.cs index 29bfb7c48..1583db1b0 100644 --- a/src/OneScript.Language/LanguageDef.cs +++ b/src/OneScript.Language/LanguageDef.cs @@ -292,7 +292,6 @@ public static bool IsBinaryOperator(Token token) || token == Token.Modulo || token == Token.And || token == Token.Or - || token == Token.Not || token == Token.LessThan || token == Token.LessOrEqual || token == Token.MoreThan From 65a8d40bc563a8e93c4b788c31b3d2abaf8aec8f Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 29 May 2025 16:30:11 +0400 Subject: [PATCH 003/191] =?UTF-8?q?=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=81=D1=82=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=BF=D1=80=D0=B5=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=86=D0=B5=D1=81=D1=81=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Language/ScriptException.cs | 2 +- .../SyntaxAnalysis/ModuleAnnotationDirectiveHandler.cs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/OneScript.Language/ScriptException.cs b/src/OneScript.Language/ScriptException.cs index a3ae37852..949618bd3 100644 --- a/src/OneScript.Language/ScriptException.cs +++ b/src/OneScript.Language/ScriptException.cs @@ -98,7 +98,7 @@ public override string Message { var sb = new StringBuilder(MessageWithoutCodeFragment); sb.AppendLine(); - sb.AppendLine(Code.Replace('\t', ' ').TrimEnd()); + sb.AppendLine(Code?.Replace('\t', ' ').TrimEnd()); if (ColumnNumber != ErrorPositionInfo.OUT_OF_TEXT) { diff --git a/src/OneScript.Language/SyntaxAnalysis/ModuleAnnotationDirectiveHandler.cs b/src/OneScript.Language/SyntaxAnalysis/ModuleAnnotationDirectiveHandler.cs index 46e6a790a..22e358a25 100644 --- a/src/OneScript.Language/SyntaxAnalysis/ModuleAnnotationDirectiveHandler.cs +++ b/src/OneScript.Language/SyntaxAnalysis/ModuleAnnotationDirectiveHandler.cs @@ -41,7 +41,9 @@ public sealed override bool HandleDirective(ref Lexem lastExtractedLexem, ILexer if (!_enabled) { - ErrorSink.AddError(LocalizedErrors.DirectiveNotSupported(lastExtractedLexem.Content)); + var err = LocalizedErrors.DirectiveNotSupported(lastExtractedLexem.Content); + err.Position = lexer.GetErrorPosition(); + ErrorSink.AddError(err); return true; } From 5b79c110b64978fb111bc8be73497985e613362e Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 29 May 2025 16:59:13 +0400 Subject: [PATCH 004/191] =?UTF-8?q?=D0=BE=D0=BF=D0=B5=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs b/src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs index 21dafbd9f..809d3e695 100644 --- a/src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs +++ b/src/OneScript.Language/SyntaxAnalysis/LocalizedErrors.cs @@ -61,7 +61,7 @@ public static CodeError TokenExpected(params Token[] expected) var names = String.Join("/", expected.Select(x => LanguageDef.GetTokenName(x))); var aliases = String.Join("/", expected.Select(x => LanguageDef.GetTokenAlias(x))); - return Create($"Ожидается один из симолов: {names}", $"Expecting one of symbols: {names}"); + return Create($"Ожидается один из символов: {names}", $"Expecting one of symbols: {aliases}"); } From 461e1b8dc240d94ffffba3d7d5f1dceb55c740c7 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Fri, 30 May 2025 16:23:41 +0400 Subject: [PATCH 005/191] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BD=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=20=D0=BA=20=D1=81=D0=BB?= =?UTF-8?q?=D0=B5=D0=B4=D1=83=D1=8E=D1=89=D0=B5=D0=BC=D1=83=20=D1=82=D0=BE?= =?UTF-8?q?=D0=BA=D0=B5=D0=BD=D1=83=20=D0=B8=20=D0=B2=D0=BE=D0=B7=D0=BC?= =?UTF-8?q?=D0=BE=D0=B6=D0=BD=D0=BE=D0=B5=20NRE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs b/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs index bc421088c..7de9e13a5 100644 --- a/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs +++ b/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs @@ -1367,11 +1367,6 @@ private BslSyntaxNode BuildExpressionUpTo(NonTerminalNode parent, Token stopToke else { AddError(LocalizedErrors.TokenExpected(stopToken), false); - SkipToNextStatement(new []{stopToken}); - if (_lastExtractedLexem.Token == stopToken) - { - NextLexem(); - } } node = default; @@ -1640,7 +1635,7 @@ private void SkipToNextStatement(Token[] additionalStops = null) private void AddError(CodeError err, bool doFastForward = true) { err.Position = _lexer.GetErrorPosition(); - err.Position.ColumnNumber -= _lastExtractedLexem.Content.Length; + err.Position.ColumnNumber -= _lastExtractedLexem.Content?.Length ?? 1; ErrorSink.AddError(err); if (doFastForward) From 3d4fb177de24a8f842975227fb6930460c7228f6 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 9 Jun 2025 20:06:01 +0300 Subject: [PATCH 006/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B2=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Build.csproj | 14 ++------- Jenkinsfile | 80 ++++++++++++---------------------------------------- 2 files changed, 21 insertions(+), 73 deletions(-) diff --git a/Build.csproj b/Build.csproj index ebc483143..d50f3f220 100644 --- a/Build.csproj +++ b/Build.csproj @@ -363,22 +363,14 @@ - + - - - - - - - - - + + Command="dotnet nuget push %(NugetAbleProject.Identity) -k $(NugetToken) -s https://api.nuget.org/v3/index.json" UseUtf8Encoding="Always"/> diff --git a/Jenkinsfile b/Jenkinsfile index 74c586cdd..24b1e4035 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,27 +5,11 @@ pipeline { environment { VersionPrefix = '2.0.0' - VersionSuffix = 'rc.7'+"+${BUILD_NUMBER}" + VersionSuffix = 'rc.8'+"+${BUILD_NUMBER}" outputEnc = '65001' } stages { - //stage('Prepare Linux Environment') { - // agent{ label 'master'} - // steps{ - // dir('install'){ - // sh 'chmod +x make-dockers.sh && ./make-dockers.sh' - // } - // withCredentials([usernamePassword(credentialsId: 'docker-hub', passwordVariable: 'dockerpassword', usernameVariable: 'dockeruser')]) { - // sh """ - // docker login -p $dockerpassword -u $dockeruser - // docker push oscript/onescript-builder:deb - // docker push oscript/onescript-builder:rpm - // docker push oscript/onescript-builder:gcc - // """.stripIndent() - // } - // } - //} stage('Build'){ parallel { stage('Windows Build') { @@ -206,16 +190,8 @@ pipeline { xcopy output\\na-proxy\\*64.so built\\linux-x64\\bin\\ /F '''.stripIndent() - script - { - if (env.BRANCH_NAME == "preview") { - echo 'Building preview' - bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:PackDistributions /p:Suffix=-pre%BUILD_NUMBER%" - } - else{ - bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:PackDistributions" - } - } + bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:PackDistributions" + archiveArtifacts artifacts: 'built/**', fingerprint: true stash includes: 'built/**', name: 'dist' } @@ -263,6 +239,7 @@ pipeline { } steps { + cleanWs() checkout scm unstash 'dist' unstash 'vsix' @@ -280,41 +257,18 @@ pipeline { '''.stripIndent() } - sh ''' - TARGET_DIR="/var/www/oscript.io/markdown/versions/" - cp install/release-notes.md "${TARGET_DIR}/${CODENAME}.md" - cp install/release-notes.md "${TARGET_DIR}/${VersionPrefix}.md" - '''.stripIndent() - } - } - - stage ('Publishing latest') { - when { anyOf { - branch 'release/latest'; - } - } - agent { label 'master' } - options { skipDefaultCheckout() } + dir('markdownContent') { + script { + def version="${env.VersionPrefix}-${env.VersionSuffix}".replaceAll("\.", "_") + def targetDir='/var/www/oscript.io/markdown/versions' - environment { - CODENAME = 'preview' - } - - steps { - checkout scm - unstash 'dist' - unstash 'vsix' - - dir('targetContent') { - sh ''' - ZIPS=../built - VSIX=../built/vscode - mv $ZIPS/*.zip ./ - mv $VSIX/*.vsix ./ - - TARGET="/var/www/oscript.io/download/versions/latest/" - sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . $TARGET - '''.stripIndent() + sh """ + cp ../install/release-notes.md "./${env.CODENAME}.md" + cp ../install/release-notes.md "./${version}.md" + + sudo rsync -rv . ${targetDir} + """.stripIndent() + } } } } @@ -330,7 +284,9 @@ pipeline { agent { label 'windows' } steps{ - unstash 'dist' + + unstash 'buildResults' + withCredentials([string(credentialsId: 'NuGetToken', variable: 'NUGET_TOKEN')]) { bat "chcp $outputEnc > nul\r\n\"${tool 'MSBuild'}\" Build.csproj /t:PublishNuget /p:NugetToken=$NUGET_TOKEN" } From 15d7d8e85a7d049daf121a6e57c61e5947c34487 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Thu, 12 Jun 2025 14:45:53 +0300 Subject: [PATCH 007/191] =?UTF-8?q?fix=20#1552.=20=D0=A1=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=D0=BE=20=D0=96=D0=B4=D0=B0=D1=82=D1=8C=20=D0=B2=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=B0=D1=81=D0=B8=D0=BD=D1=85=D1=80=D0=BE=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B4=D0=BE=D0=BB=D0=B6=D0=BD=D0=BE=20=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=8C=20=D1=81=D0=BF=D0=B5=D1=86=D0=B8=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SyntaxAnalysis/DefaultBslParser.cs | 4 +- .../OneScript.Language.Tests/ParserTests.cs | 56 +++++++++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs b/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs index 4729503fb..84087ae1c 100644 --- a/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs +++ b/src/OneScript.Language/SyntaxAnalysis/DefaultBslParser.cs @@ -1654,9 +1654,9 @@ private void AddError(CodeError err, bool doFastForward = true) throw new InternalParseException(err); } - private static bool IsUserSymbol(in Lexem lex) + private bool IsUserSymbol(in Lexem lex) { - return LanguageDef.IsUserSymbol(in lex); + return LanguageDef.IsUserSymbol(in lex) || (!_isInAsyncMethod && lex.Token == Token.Await); } private void PushStructureToken(params Token[] tok) diff --git a/src/Tests/OneScript.Language.Tests/ParserTests.cs b/src/Tests/OneScript.Language.Tests/ParserTests.cs index 098cb1e6f..0735437a9 100644 --- a/src/Tests/OneScript.Language.Tests/ParserTests.cs +++ b/src/Tests/OneScript.Language.Tests/ParserTests.cs @@ -1282,6 +1282,38 @@ public void AwaitIsNotKeywordInNonAsyncContext_Variable() .NextChildIs(NodeKind.Identifier); } + [Fact] + public void AwaitIsNotKeywordInNonAsyncContext_VariableFor() + { + var code = + @"Процедура Проц1() + А = Ждать; + КонецПроцедуры"; + + var validator = ParseModuleAndGetValidator(code) + .DownTo(NodeKind.Assignment); + + validator + .NextChildIs(NodeKind.Identifier) + .NextChildIs(NodeKind.Identifier); + } + + [Fact] + public void AwaitIsNotKeywordInNonAsyncContext_VariableForEach() + { + var code = + @"Процедура Проц1() + А = Ждать; + КонецПроцедуры"; + + var validator = ParseModuleAndGetValidator(code) + .DownTo(NodeKind.Assignment); + + validator + .NextChildIs(NodeKind.Identifier) + .NextChildIs(NodeKind.Identifier); + } + [Fact] public void AwaitIsNotKeywordInNonAsyncContext_Method() { @@ -1330,6 +1362,30 @@ public void AwaitIsNotKeywordInNonAsyncContext_MemberMethodName() .NextChildIs(NodeKind.MethodCall); } + [Fact] + public void AwaitIsNotKeywordInNonAsyncContext_MethodName() + { + var code = + @"Процедура Ждать() + А = 1; + КонецПроцедуры"; + + var validator = ParseModuleAndGetValidator(code); + validator.DownOneLevel().Is(NodeKind.Method); + } + + [Fact] + public void AwaitIsNotKeywordInNonAsyncContext_ModuleVariable() + { + var code = @"Перем Ждать;"; + + var validator = ParseModuleAndGetValidator(code); + validator + .DownTo(NodeKind.VariableDefinition) + .CurrentNode.RealNode.As() + .Name.Should().Be("Ждать"); + } + [Fact] public void Await_In_NonAsync_Expression_Fails() { From 6d8e2cb15272c7d70a2d915d1d56f45ec6e8a5b0 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Tue, 17 Jun 2025 17:29:32 +0300 Subject: [PATCH 008/191] =?UTF-8?q?=D0=9D=D0=B5=D0=BA=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B0=D1=8F=20=D0=B0=D0=B4=D0=B0=D0=BF=D1=82=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=B4=20=D0=BD=D0=B5=D1=828=20?= =?UTF-8?q?=D0=B2=20=D1=87=D0=B0=D1=81=D1=82=D0=B8=20=D1=83=D0=BA=D0=B0?= =?UTF-8?q?=D0=B7=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=84=D1=80=D0=B5=D0=B9=D0=BC?= =?UTF-8?q?=D0=B2=D0=BE=D1=80=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DocumenterTests/DocumenterTests.csproj | 4 +- .../FileBackingStreamTest.cs | 387 +++++++++--------- .../OneScript.StandardLibrary.Tests.csproj | 4 +- .../OneScript.StandardLibrary.Tests/Usings.cs | 8 - src/oscommon.targets | 3 +- 5 files changed, 202 insertions(+), 204 deletions(-) delete mode 100644 src/Tests/OneScript.StandardLibrary.Tests/Usings.cs diff --git a/src/Tests/DocumenterTests/DocumenterTests.csproj b/src/Tests/DocumenterTests/DocumenterTests.csproj index 0243e7bb5..b039de817 100644 --- a/src/Tests/DocumenterTests/DocumenterTests.csproj +++ b/src/Tests/DocumenterTests/DocumenterTests.csproj @@ -1,7 +1,7 @@ - + - net6.0 + $(TargetFrameworkVersion) false true 8 diff --git a/src/Tests/OneScript.StandardLibrary.Tests/FileBackingStreamTest.cs b/src/Tests/OneScript.StandardLibrary.Tests/FileBackingStreamTest.cs index 0387cafe2..53079bd19 100644 --- a/src/Tests/OneScript.StandardLibrary.Tests/FileBackingStreamTest.cs +++ b/src/Tests/OneScript.StandardLibrary.Tests/FileBackingStreamTest.cs @@ -5,211 +5,216 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; using FluentAssertions; using OneScript.StandardLibrary.Binary; -namespace OneScript.StandardLibrary.Tests; - -public class FileBackingStreamTest +namespace OneScript.StandardLibrary.Tests { - [Fact] - public void CanDoBasicReadWithMemory() - { - using var stream = new FileBackingStream(10); - stream.Write(new byte[]{1,2,3,4,5}); - - stream.Position = 0; - stream.Position.Should().Be(0); - stream.HasBackingFile.Should().BeFalse(); - stream.Length.Should().Be(5); - - var dest = new byte[5]; - var size = stream.Read(dest, 0, 5); - size.Should().Be(5); - dest.Should().Equal(1, 2, 3, 4, 5); - } - - [Fact] - public void CanDoBasicReadWithFile() + public class FileBackingStreamTest { - using var stream = new FileBackingStream(10); - stream.SwitchToFile(); - stream.Write(new byte[]{1,2,3,4,5}); - - stream.Position = 0; - stream.Position.Should().Be(0); - stream.HasBackingFile.Should().BeTrue(); - stream.Length.Should().Be(5); - - var dest = new byte[5]; - var size = stream.Read(dest, 0, 5); - size.Should().Be(5); - dest.Should().Equal(1, 2, 3, 4, 5); - } + [Fact] + public void CanDoBasicReadWithMemory() + { + using var stream = new FileBackingStream(10); + stream.Write(new byte[] { 1, 2, 3, 4, 5 }); - [Fact] - public void GrowsOnWriteToEnd() - { - using var stream = new FileBackingStream(5); - stream.Write(new byte[]{1,2,3,4,5}); - stream.HasBackingFile.Should().BeFalse(); - stream.Position.Should().Be(5); - - stream.Write(new byte[]{1,2,3,4,5}); - stream.HasBackingFile.Should().BeTrue(); - stream.Position.Should().Be(10); - stream.Length.Should().Be(10); - - EnsureContent(stream, new byte[]{1,2,3,4,5,1,2,3,4,5}); - } - - [Fact] - public void GrowsOnWriteToMiddle() - { - using var stream = new FileBackingStream(5); - stream.Write(new byte[]{1,2,3,4,5}); - stream.Position = 2; - stream.HasBackingFile.Should().BeFalse(); - - stream.Write(new byte[]{6,6,6,6,6}); - stream.HasBackingFile.Should().BeTrue(); - stream.Position.Should().Be(7); - stream.Length.Should().Be(7); - - EnsureContent(stream, new byte[]{1,2,6,6,6,6,6}); - } - - [Fact] - public void GrowsOnWriteToStart() - { - using var stream = new FileBackingStream(5); - stream.Write(new byte[]{1,2,3,4,5}); - stream.Position = 0; - stream.HasBackingFile.Should().BeFalse(); - - stream.Write(new byte[]{7,6,5,4,3,2,1}); - stream.HasBackingFile.Should().BeTrue(); - stream.Position.Should().Be(7); - stream.Length.Should().Be(7); - - EnsureContent(stream, new byte[]{7,6,5,4,3,2,1}); - } - - [Fact] - public void DoesNotGrowOnWriteInsideLimit() - { - using var stream = new FileBackingStream(5); - stream.Write(new byte[]{1,2,3,4,5}); - stream.Position = 2; - stream.HasBackingFile.Should().BeFalse(); - - stream.Write(new byte[]{0,0,0}); - stream.HasBackingFile.Should().BeFalse(); - stream.Position.Should().Be(5); - stream.Length.Should().Be(5); - - EnsureContent(stream, new byte[]{1,2,0,0,0}); - } - - [Fact] - public void CanCropIntoMemoryAgain() - { - using var stream = new FileBackingStream(5); - stream.Write(new byte[]{1,2,3,4,5,6,7,8,9,10}); - stream.HasBackingFile.Should().BeTrue(); - stream.Length.Should().Be(10); - stream.SetLength(5); - stream.HasBackingFile.Should().BeFalse(); - - EnsureContent(stream, new byte[]{1,2,3,4,5}); - } - - [Fact] - public void SettingLengthBeyondLimitSwitchesToFile() - { - using var stream = new FileBackingStream(5); - stream.HasBackingFile.Should().BeFalse(); - stream.SetLength(15); - stream.HasBackingFile.Should().BeTrue(); - } - - [Fact] - public void ThrowsWhenCantSwitchIntoMemory() - { - using var stream = new FileBackingStream(5); - stream.Write(new byte[]{1,2,3,4,5,6,7,8,9,10}); - stream.HasBackingFile.Should().BeTrue(); - - Assert.Throws(() => stream.SwitchToMemory()); - } + stream.Position = 0; + stream.Position.Should().Be(0); + stream.HasBackingFile.Should().BeFalse(); + stream.Length.Should().Be(5); - [Fact] - public void SetPositionBeyondLength() - { - using var stream = new FileBackingStream(5); - stream.Position = 10; - - stream.Length.Should().Be(0); - stream.HasBackingFile.Should().BeFalse(); - - stream.Write(new byte[]{1,2,3}); - stream.Position.Should().Be(13); - stream.Length.Should().Be(13); - stream.HasBackingFile.Should().BeTrue(); - } + var dest = new byte[5]; + var size = stream.Read(dest, 0, 5); + size.Should().Be(5); + dest.Should().Equal(1, 2, 3, 4, 5); + } - [Fact] - public void TempFileGetsDeletedOnClose() - { - using var stream = new FileBackingStream(5); - stream.Write(new byte[]{1,2,3,4,5,6,7,8,9,10}); - stream.HasBackingFile.Should().BeTrue(); - var tempFile = stream.FileName; - - stream.SetLength(4); - stream.HasBackingFile.Should().BeFalse(); - File.Exists(tempFile).Should().BeFalse(); - } + [Fact] + public void CanDoBasicReadWithFile() + { + using var stream = new FileBackingStream(10); + stream.SwitchToFile(); + stream.Write(new byte[] { 1, 2, 3, 4, 5 }); - private void EnsureContent(Stream stream, IEnumerable expected) - { - stream.Position = 0; - var actual = new byte[stream.Length]; - stream.Read(actual).Should().Be((int)stream.Length); + stream.Position = 0; + stream.Position.Should().Be(0); + stream.HasBackingFile.Should().BeTrue(); + stream.Length.Should().Be(5); - actual.Should().Equal(expected); - } - - [Fact(Skip = "Platform test")] - public void SetPositionBeyondMemoryStream() - { - using var ms = new MemoryStream(); - ms.Position = 10; - - ms.Length.Should().Be(0); - ms.Write(new byte[]{1,2,3}); - ms.Position.Should().Be(13); - ms.Length.Should().Be(13); - } - - [Fact(Skip = "Platform test")] - public void SetPositionBeyondFileStream() - { - var path = Path.GetTempFileName(); - var fs = new FileStream(path, FileMode.Create); - try + var dest = new byte[5]; + var size = stream.Read(dest, 0, 5); + size.Should().Be(5); + dest.Should().Equal(1, 2, 3, 4, 5); + } + + [Fact] + public void GrowsOnWriteToEnd() + { + using var stream = new FileBackingStream(5); + stream.Write(new byte[] { 1, 2, 3, 4, 5 }); + stream.HasBackingFile.Should().BeFalse(); + stream.Position.Should().Be(5); + + stream.Write(new byte[] { 1, 2, 3, 4, 5 }); + stream.HasBackingFile.Should().BeTrue(); + stream.Position.Should().Be(10); + stream.Length.Should().Be(10); + + EnsureContent(stream, new byte[] { 1, 2, 3, 4, 5, 1, 2, 3, 4, 5 }); + } + + [Fact] + public void GrowsOnWriteToMiddle() + { + using var stream = new FileBackingStream(5); + stream.Write(new byte[] { 1, 2, 3, 4, 5 }); + stream.Position = 2; + stream.HasBackingFile.Should().BeFalse(); + + stream.Write(new byte[] { 6, 6, 6, 6, 6 }); + stream.HasBackingFile.Should().BeTrue(); + stream.Position.Should().Be(7); + stream.Length.Should().Be(7); + + EnsureContent(stream, new byte[] { 1, 2, 6, 6, 6, 6, 6 }); + } + + [Fact] + public void GrowsOnWriteToStart() + { + using var stream = new FileBackingStream(5); + stream.Write(new byte[] { 1, 2, 3, 4, 5 }); + stream.Position = 0; + stream.HasBackingFile.Should().BeFalse(); + + stream.Write(new byte[] { 7, 6, 5, 4, 3, 2, 1 }); + stream.HasBackingFile.Should().BeTrue(); + stream.Position.Should().Be(7); + stream.Length.Should().Be(7); + + EnsureContent(stream, new byte[] { 7, 6, 5, 4, 3, 2, 1 }); + } + + [Fact] + public void DoesNotGrowOnWriteInsideLimit() + { + using var stream = new FileBackingStream(5); + stream.Write(new byte[] { 1, 2, 3, 4, 5 }); + stream.Position = 2; + stream.HasBackingFile.Should().BeFalse(); + + stream.Write(new byte[] { 0, 0, 0 }); + stream.HasBackingFile.Should().BeFalse(); + stream.Position.Should().Be(5); + stream.Length.Should().Be(5); + + EnsureContent(stream, new byte[] { 1, 2, 0, 0, 0 }); + } + + [Fact] + public void CanCropIntoMemoryAgain() { - fs.Position = 10; + using var stream = new FileBackingStream(5); + stream.Write(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); + stream.HasBackingFile.Should().BeTrue(); + stream.Length.Should().Be(10); + stream.SetLength(5); + stream.HasBackingFile.Should().BeFalse(); + + EnsureContent(stream, new byte[] { 1, 2, 3, 4, 5 }); + } - fs.Length.Should().Be(0); - fs.Write(new byte[] { 1, 2, 3 }); - fs.Position.Should().Be(13); - fs.Length.Should().Be(13); + [Fact] + public void SettingLengthBeyondLimitSwitchesToFile() + { + using var stream = new FileBackingStream(5); + stream.HasBackingFile.Should().BeFalse(); + stream.SetLength(15); + stream.HasBackingFile.Should().BeTrue(); } - finally + + [Fact] + public void ThrowsWhenCantSwitchIntoMemory() { - fs.Close(); - File.Delete(path); + using var stream = new FileBackingStream(5); + stream.Write(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); + stream.HasBackingFile.Should().BeTrue(); + + Assert.Throws(() => stream.SwitchToMemory()); + } + + [Fact] + public void SetPositionBeyondLength() + { + using var stream = new FileBackingStream(5); + stream.Position = 10; + + stream.Length.Should().Be(0); + stream.HasBackingFile.Should().BeFalse(); + + stream.Write(new byte[] { 1, 2, 3 }); + stream.Position.Should().Be(13); + stream.Length.Should().Be(13); + stream.HasBackingFile.Should().BeTrue(); + } + + [Fact] + public void TempFileGetsDeletedOnClose() + { + using var stream = new FileBackingStream(5); + stream.Write(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); + stream.HasBackingFile.Should().BeTrue(); + var tempFile = stream.FileName; + + stream.SetLength(4); + stream.HasBackingFile.Should().BeFalse(); + File.Exists(tempFile).Should().BeFalse(); + } + + private void EnsureContent(Stream stream, IEnumerable expected) + { + stream.Position = 0; + var actual = new byte[stream.Length]; + stream.Read(actual).Should().Be((int)stream.Length); + + actual.Should().Equal(expected); + } + + [Fact(Skip = "Platform test")] + public void SetPositionBeyondMemoryStream() + { + using var ms = new MemoryStream(); + ms.Position = 10; + + ms.Length.Should().Be(0); + ms.Write(new byte[] { 1, 2, 3 }); + ms.Position.Should().Be(13); + ms.Length.Should().Be(13); + } + + [Fact(Skip = "Platform test")] + public void SetPositionBeyondFileStream() + { + var path = Path.GetTempFileName(); + var fs = new FileStream(path, FileMode.Create); + try + { + fs.Position = 10; + + fs.Length.Should().Be(0); + fs.Write(new byte[] { 1, 2, 3 }); + fs.Position.Should().Be(13); + fs.Length.Should().Be(13); + } + finally + { + fs.Close(); + File.Delete(path); + } } } } \ No newline at end of file diff --git a/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj b/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj index b7a0eb835..197d1c041 100644 --- a/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj +++ b/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj @@ -1,7 +1,7 @@ - + - net6.0 + $(TargetFrameworkVersion) enable enable diff --git a/src/Tests/OneScript.StandardLibrary.Tests/Usings.cs b/src/Tests/OneScript.StandardLibrary.Tests/Usings.cs deleted file mode 100644 index 6c43b7315..000000000 --- a/src/Tests/OneScript.StandardLibrary.Tests/Usings.cs +++ /dev/null @@ -1,8 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -global using Xunit; \ No newline at end of file diff --git a/src/oscommon.targets b/src/oscommon.targets index d3ab44f69..d47770e3a 100644 --- a/src/oscommon.targets +++ b/src/oscommon.targets @@ -7,9 +7,10 @@ Release x86 8.0 - net6.0 + net8.0 $(NoWarn);CS1591 False + disable From 6d0eb1adb0182def20afd747d17c4b2832823256 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Tue, 17 Jun 2025 19:05:02 +0300 Subject: [PATCH 009/191] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D1=80=D0=B5=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8=D0=B5=D0=B2=20=D0=B2=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B5=20=D1=81=20=D0=B4=D0=B8?= =?UTF-8?q?=D1=80=D0=B5=D0=BA=D1=82=D0=B8=D0=B2=D0=BE=D0=B9=20=D0=98=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Language/ErrorPositionInfo.cs | 2 +- .../LexicalAnalysis/DefaultLexer.cs | 3 ++ .../LexicalAnalysis/ExpressionBasedLexer.cs | 6 +-- .../LexicalAnalysis/LexerBuilder.cs | 2 +- .../SyntaxAnalysis/ImportDirectivesHandler.cs | 8 ++-- .../SyntaxErrorException.cs | 2 +- .../OneScript.Language.Tests/ParserTests.cs | 40 +++++++++++++++++++ .../OneScript.Language.Tests/TestAstNode.cs | 1 + 8 files changed, 55 insertions(+), 9 deletions(-) diff --git a/src/OneScript.Language/ErrorPositionInfo.cs b/src/OneScript.Language/ErrorPositionInfo.cs index ed68a6272..fb5c31b24 100644 --- a/src/OneScript.Language/ErrorPositionInfo.cs +++ b/src/OneScript.Language/ErrorPositionInfo.cs @@ -10,7 +10,7 @@ namespace OneScript.Language public class ErrorPositionInfo { public const int OUT_OF_TEXT = -1; - + public ErrorPositionInfo() { LineNumber = OUT_OF_TEXT; diff --git a/src/OneScript.Language/LexicalAnalysis/DefaultLexer.cs b/src/OneScript.Language/LexicalAnalysis/DefaultLexer.cs index d4190287c..741526698 100644 --- a/src/OneScript.Language/LexicalAnalysis/DefaultLexer.cs +++ b/src/OneScript.Language/LexicalAnalysis/DefaultLexer.cs @@ -7,6 +7,9 @@ This Source Code Form is subject to the terms of the namespace OneScript.Language.LexicalAnalysis { + /// + /// Лексер, который выдает все, кроме комментариев. + /// public class DefaultLexer : FullSourceLexer { public override Lexem NextLexem() diff --git a/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs b/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs index 22d13621c..da6afd729 100644 --- a/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs +++ b/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs @@ -12,9 +12,9 @@ namespace OneScript.Language.LexicalAnalysis { public class ExpressionBasedLexer : ILexer { - private readonly Func _selector; + private readonly Func _selector; - internal ExpressionBasedLexer(Func selector) + internal ExpressionBasedLexer(Func selector) { _selector = selector; } @@ -23,7 +23,7 @@ public Lexem NextLexem() { if (Iterator.MoveToContent()) { - var state = _selector(Iterator.CurrentSymbol); + var state = _selector(Iterator, Iterator.CurrentSymbol); if (state == default) { throw new SyntaxErrorException(Iterator.GetErrorPosition(), diff --git a/src/OneScript.Language/LexicalAnalysis/LexerBuilder.cs b/src/OneScript.Language/LexicalAnalysis/LexerBuilder.cs index 26a93344f..480cce188 100644 --- a/src/OneScript.Language/LexicalAnalysis/LexerBuilder.cs +++ b/src/OneScript.Language/LexicalAnalysis/LexerBuilder.cs @@ -41,7 +41,7 @@ public ILexer Build() } - var lambda = Expression.Lambda>(expr, charParam); + var lambda = Expression.Lambda>(expr, iteratorParam, charParam); var func = lambda.Compile(); return new ExpressionBasedLexer(func); diff --git a/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs b/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs index 3ed0f75be..a857f16a8 100644 --- a/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs +++ b/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs @@ -17,8 +17,10 @@ public class ImportDirectivesHandler : ModuleAnnotationDirectiveHandler public ImportDirectivesHandler(IErrorSink errorSink) : base(errorSink) { var builder = new LexerBuilder(); - builder.Detect((cs, i) => !char.IsWhiteSpace(cs)) - .HandleWith(new NonWhitespaceLexerState()); + builder + .DetectComments() + .Detect((cs, i) => !char.IsWhiteSpace(cs)) + .HandleWith(new NonWhitespaceLexerState()); _importClauseLexer = builder.Build(); } @@ -46,7 +48,7 @@ protected override void ParseAnnotationInternal( parserContext.AddChild(node); lex = _importClauseLexer.NextLexemOnSameLine(); - if (lex.Type != LexemType.EndOfText) + if (lex.Type != LexemType.EndOfText && lex.Type != LexemType.Comment) { ErrorSink.AddError(LocalizedErrors.UnexpectedOperation()); return; diff --git a/src/OneScript.Language/SyntaxErrorException.cs b/src/OneScript.Language/SyntaxErrorException.cs index 19d2286c8..e6cb3e8b1 100644 --- a/src/OneScript.Language/SyntaxErrorException.cs +++ b/src/OneScript.Language/SyntaxErrorException.cs @@ -14,7 +14,7 @@ public SyntaxErrorException(ErrorPositionInfo codeInfo, string message):base(cod } - internal SyntaxErrorException(CodeError error) : base(error.Position, error.Description) + internal SyntaxErrorException(CodeError error) : base(error.Position ?? new ErrorPositionInfo(), error.Description) { } diff --git a/src/Tests/OneScript.Language.Tests/ParserTests.cs b/src/Tests/OneScript.Language.Tests/ParserTests.cs index 0735437a9..df02a0f01 100644 --- a/src/Tests/OneScript.Language.Tests/ParserTests.cs +++ b/src/Tests/OneScript.Language.Tests/ParserTests.cs @@ -958,6 +958,46 @@ public void Check_AstDirectives_Creation() batch.NoMoreChildren(); } + [Fact] + public void CanHaveCommentAfterUseStatement() + { + var code = @" + #Использовать Библиотека // Подключаем библиотеку + #Использовать ""Библиотека с кавычками"" // Подключаем библиотеку с кавычками + "; + + var defaultLex = new DefaultLexer(); + defaultLex.Iterator = SourceCodeHelper.FromString(code).CreateIterator(); + + var lexer = new PreprocessingLexer(defaultLex); + + lexer.Handlers = new PreprocessorHandlers( + new[] {new ImportDirectivesHandler(new ThrowingErrorSink())}); + + var parser = new DefaultBslParser( + lexer, + new ListErrorSink(), + lexer.Handlers); + + var moduleNode = parser.ParseStatefulModule(); + moduleNode.Should().NotBeNull(); + parser.Errors.Should().BeEmpty("the valid code is passed"); + var firstChild = new SyntaxTreeValidator(new TestAstNode(moduleNode.Children.First())); + + var batch = new SyntaxTreeValidator(new TestAstNode(firstChild.CurrentNode.RealNode.Parent)); + + var node = batch.NextChild(); + node.Is(NodeKind.Import) + .Equal("Использовать"); + node.NextChild().Is(NodeKind.AnnotationParameter) + .Equal("Библиотека"); + + node = batch.NextChild(); + node.Is(NodeKind.Import) + .Equal("Использовать"); + node.NextChild().Is(NodeKind.AnnotationParameter) + .Equal("\"Библиотека с кавычками\""); + } [Fact] public void Check_No_Semicolon_In_If() diff --git a/src/Tests/OneScript.Language.Tests/TestAstNode.cs b/src/Tests/OneScript.Language.Tests/TestAstNode.cs index e909e7952..888c99cf0 100644 --- a/src/Tests/OneScript.Language.Tests/TestAstNode.cs +++ b/src/Tests/OneScript.Language.Tests/TestAstNode.cs @@ -31,6 +31,7 @@ public TestAstNode(BslSyntaxNode node) BinaryOperationNode binary => binary.Operation.ToString(), UnaryOperationNode unary => unary.Operation.ToString(), PreprocessorDirectiveNode preproc => preproc.DirectiveName, + AnnotationParameterNode annParam => annParam.Value.Content, _ => nonTerm.ToString() }; } From ae53749f0716bfc1931796d9d154c5822058b616 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Tue, 17 Jun 2025 19:07:02 +0300 Subject: [PATCH 010/191] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D1=80=D0=B5=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B8=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D0=BE=D1=82=D0=B0=D1=86=D0=B8=D0=B9=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs b/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs index 73b949967..708ad88f8 100644 --- a/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs +++ b/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs @@ -24,8 +24,10 @@ public class SingleWordModuleAnnotationHandler : ModuleAnnotationDirectiveHandle public SingleWordModuleAnnotationHandler(ISet knownNames, IErrorSink errorSink) : base(errorSink) { var builder = new LexerBuilder(); - builder.Detect((cs, i) => !char.IsWhiteSpace(cs)) - .HandleWith(new WordLexerState()); + builder + .DetectComments() + .Detect((cs, i) => !char.IsWhiteSpace(cs)) + .HandleWith(new WordLexerState()); _allLineContentLexer = builder.Build(); _knownNames = knownNames; @@ -61,7 +63,7 @@ protected override void ParseAnnotationInternal(ref Lexem lastExtractedLexem, IL // после ничего не должно находиться var nextLexem = _allLineContentLexer.NextLexemOnSameLine(); lastExtractedLexem = lexer.NextLexem(); // сдвиг основного лексера - if (nextLexem.Type != LexemType.EndOfText) + if (nextLexem.Type != LexemType.EndOfText && nextLexem.Type != LexemType.Comment) { var err = LocalizedErrors.ExpressionSyntax(); err.Position = new ErrorPositionInfo From 5ee6ad0403fe8a0a18e485d2073ca4a732f198e0 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Tue, 17 Jun 2025 21:33:05 +0300 Subject: [PATCH 011/191] =?UTF-8?q?=D0=9E=D1=88=D0=B8=D0=B1=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B2=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=D0=BB=20net8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/oscommon.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/oscommon.targets b/src/oscommon.targets index d47770e3a..2268a19aa 100644 --- a/src/oscommon.targets +++ b/src/oscommon.targets @@ -7,7 +7,7 @@ Release x86 8.0 - net8.0 + net6.0 $(NoWarn);CS1591 False disable From ca6e382956316edf509521e179998ee404f698ba Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 19 Jun 2025 10:44:59 +0300 Subject: [PATCH 012/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=B2=20=D0=B4=D0=B6=D0=B5=D0=BD=D0=BA=D0=B8=D0=BD?= =?UTF-8?q?=D1=81=D1=84=D0=B0=D0=B9=D0=BB=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 24b1e4035..c7657a83f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -259,7 +259,7 @@ pipeline { dir('markdownContent') { script { - def version="${env.VersionPrefix}-${env.VersionSuffix}".replaceAll("\.", "_") + def version="${env.VersionPrefix}-${env.VersionSuffix}".replaceAll("\\.", "_") def targetDir='/var/www/oscript.io/markdown/versions' sh """ From d8dfe79877b8d0d96b6a60e6db63f3afbdda5205 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 19 Jun 2025 11:44:00 +0300 Subject: [PATCH 013/191] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BE?= =?UTF-8?q?=D1=82=20=D0=BA=D1=80=D0=BE=D0=BB=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SingleWordModuleAnnotationHandler.cs | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs b/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs index 708ad88f8..42515cc02 100644 --- a/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs +++ b/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs @@ -23,21 +23,25 @@ public class SingleWordModuleAnnotationHandler : ModuleAnnotationDirectiveHandle public SingleWordModuleAnnotationHandler(ISet knownNames, IErrorSink errorSink) : base(errorSink) { - var builder = new LexerBuilder(); - builder - .DetectComments() - .Detect((cs, i) => !char.IsWhiteSpace(cs)) - .HandleWith(new WordLexerState()); + var builder = SetupLexerBuilder(); _allLineContentLexer = builder.Build(); _knownNames = knownNames; } - - public SingleWordModuleAnnotationHandler(ISet knownNames, IErrorSink errorSink) : base(errorSink) + + private static LexerBuilder SetupLexerBuilder() { var builder = new LexerBuilder(); - builder.Detect((cs, i) => !char.IsWhiteSpace(cs)) + builder + .DetectComments() + .Detect((cs, i) => !char.IsWhiteSpace(cs)) .HandleWith(new WordLexerState()); + return builder; + } + + public SingleWordModuleAnnotationHandler(ISet knownNames, IErrorSink errorSink) : base(errorSink) + { + var builder = SetupLexerBuilder(); _allLineContentLexer = builder.Build(); From 4999c75e42f3e12563db07c11722854ba2e8cedb Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 19 Jun 2025 13:18:57 +0300 Subject: [PATCH 014/191] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=81=D0=BE=D1=87?= =?UTF-8?q?=D0=B8=D0=BB=D0=B8=D1=81=D1=8C=20=D0=BD=D0=B5=D1=8F=D0=B2=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D1=8E=D1=81=D0=B8=D0=BD=D0=B3=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OneScript.StandardLibrary.Tests.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj b/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj index 197d1c041..c1249e061 100644 --- a/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj +++ b/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj @@ -2,7 +2,6 @@ $(TargetFrameworkVersion) - enable enable false From 6b3bb3dc0c5e3f3ffd190dcaeefb9a0d63be563b Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 19 Jun 2025 16:36:32 +0300 Subject: [PATCH 015/191] =?UTF-8?q?=D0=A1=D1=83=D1=89=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=B5=D0=BD=D0=BD=D0=BE=20=D1=83=D1=81=D0=BA=D0=BE=D1=80?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D1=87=D0=B8=D1=81=D0=BB=D0=B0=20=D0=BC=D0=BE=D0=B4?= =?UTF-8?q?=D1=83=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LexicalAnalysis/ExpressionBasedLexer.cs | 6 ++-- .../LexicalAnalysis/LexerBuilder.cs | 21 ++++++++++--- .../SyntaxAnalysis/ImportDirectivesHandler.cs | 13 ++++++-- .../SingleWordModuleAnnotationHandler.cs | 31 +++++++++---------- 4 files changed, 46 insertions(+), 25 deletions(-) diff --git a/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs b/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs index da6afd729..1a904feda 100644 --- a/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs +++ b/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs @@ -10,11 +10,13 @@ This Source Code Form is subject to the terms of the namespace OneScript.Language.LexicalAnalysis { + public delegate LexerState LexerStateSelector(SourceCodeIterator iterator, char symbol); + public class ExpressionBasedLexer : ILexer { - private readonly Func _selector; + private readonly LexerStateSelector _selector; - internal ExpressionBasedLexer(Func selector) + internal ExpressionBasedLexer(LexerStateSelector selector) { _selector = selector; } diff --git a/src/OneScript.Language/LexicalAnalysis/LexerBuilder.cs b/src/OneScript.Language/LexicalAnalysis/LexerBuilder.cs index 480cce188..873f1db57 100644 --- a/src/OneScript.Language/LexicalAnalysis/LexerBuilder.cs +++ b/src/OneScript.Language/LexicalAnalysis/LexerBuilder.cs @@ -8,6 +8,7 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; using System.Linq.Expressions; +using System.Threading; namespace OneScript.Language.LexicalAnalysis { @@ -16,6 +17,14 @@ public class LexerBuilder private List _detectors = new List(); private static Expression nullState = Expression.Constant(default, typeof(LexerState)); + private readonly Lazy _selectorFunction; + + public LexerBuilder() + { + _selectorFunction = + new Lazy(MakeSelectorFunction, LazyThreadSafetyMode.PublicationOnly); + } + public LexerDetectorBuilder Detect(Expression> detectExpression) { var detector = new LexerDetectorBuilder(detectExpression); @@ -24,6 +33,11 @@ public LexerDetectorBuilder Detect(Expression>(expr, iteratorParam, charParam); - var func = lambda.Compile(); - - return new ExpressionBasedLexer(func); + var lambda = Expression.Lambda(expr, iteratorParam, charParam); + var selectorFunction = lambda.Compile(); + return selectorFunction; } private Expression BuildNode(IEnumerator iterator, ParameterRemapper parameterRemapper) diff --git a/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs b/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs index a857f16a8..8915b28c1 100644 --- a/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs +++ b/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs @@ -13,16 +13,23 @@ namespace OneScript.Language.SyntaxAnalysis public class ImportDirectivesHandler : ModuleAnnotationDirectiveHandler { private readonly ILexer _importClauseLexer; + + private static readonly LexerBuilder InstanceBuilder = SetupLexerBuilder(); public ImportDirectivesHandler(IErrorSink errorSink) : base(errorSink) + { + _importClauseLexer = InstanceBuilder.Build(); + } + + private static LexerBuilder SetupLexerBuilder() { var builder = new LexerBuilder(); builder .DetectComments() .Detect((cs, i) => !char.IsWhiteSpace(cs)) - .HandleWith(new NonWhitespaceLexerState()); - - _importClauseLexer = builder.Build(); + .HandleWith(new WordLexerState()); + + return builder; } protected override void ParseAnnotationInternal( diff --git a/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs b/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs index 42515cc02..5abba04a8 100644 --- a/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs +++ b/src/OneScript.Language/SyntaxAnalysis/SingleWordModuleAnnotationHandler.cs @@ -21,29 +21,17 @@ public class SingleWordModuleAnnotationHandler : ModuleAnnotationDirectiveHandle private readonly ILexer _allLineContentLexer; private readonly ISet _knownNames = new HashSet(StringComparer.CurrentCultureIgnoreCase); + private static readonly LexerBuilder InstanceBuilder = SetupLexerBuilder(); + public SingleWordModuleAnnotationHandler(ISet knownNames, IErrorSink errorSink) : base(errorSink) { - var builder = SetupLexerBuilder(); - - _allLineContentLexer = builder.Build(); + _allLineContentLexer = InstanceBuilder.Build(); _knownNames = knownNames; } - private static LexerBuilder SetupLexerBuilder() - { - var builder = new LexerBuilder(); - builder - .DetectComments() - .Detect((cs, i) => !char.IsWhiteSpace(cs)) - .HandleWith(new WordLexerState()); - return builder; - } - public SingleWordModuleAnnotationHandler(ISet knownNames, IErrorSink errorSink) : base(errorSink) { - var builder = SetupLexerBuilder(); - - _allLineContentLexer = builder.Build(); + _allLineContentLexer = InstanceBuilder.Build(); foreach (var twoNames in knownNames) { @@ -51,6 +39,17 @@ public SingleWordModuleAnnotationHandler(ISet knownNames, IErro _knownNames.Add(twoNames.English); } } + + private static LexerBuilder SetupLexerBuilder() + { + var builder = new LexerBuilder(); + builder + .DetectComments() + .Detect((cs, i) => !char.IsWhiteSpace(cs)) + .HandleWith(new WordLexerState()); + + return builder; + } protected override bool DirectiveSupported(string directive) { From 6ebb094a5103ead8ce21c0e43fa6fd7a258244fe Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 19 Jun 2025 17:42:08 +0400 Subject: [PATCH 016/191] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BE=D1=82=D0=BC=D0=B5=D1=82=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B7=D0=B8=D1=86=D0=B8=D0=B8=20=D0=BE=D1=88=D0=B8?= =?UTF-8?q?=D0=B1=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Language/ScriptException.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/OneScript.Language/ScriptException.cs b/src/OneScript.Language/ScriptException.cs index 949618bd3..89048f73b 100644 --- a/src/OneScript.Language/ScriptException.cs +++ b/src/OneScript.Language/ScriptException.cs @@ -98,13 +98,17 @@ public override string Message { var sb = new StringBuilder(MessageWithoutCodeFragment); sb.AppendLine(); - sb.AppendLine(Code?.Replace('\t', ' ').TrimEnd()); + var codeLine = Code?.Replace('\t', ' ').TrimEnd(); if (ColumnNumber != ErrorPositionInfo.OUT_OF_TEXT) { - if (ColumnNumber > 1) - sb.Append(' ', ColumnNumber - 1); - sb.AppendLine(BilingualString.Localize("^--здесь", "^--here")); + sb.Append(codeLine[..ColumnNumber]); + sb.Append("<>"); + sb.AppendLine(codeLine[ColumnNumber..]); + } + else + { + sb.AppendLine(codeLine); } return sb.ToString(); From 1a8f0b4df4c049402b3be70b747c38ae2807be70 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 19 Jun 2025 17:15:35 +0300 Subject: [PATCH 017/191] =?UTF-8?q?=D0=9E=D0=B4=D0=BD=D0=BE=D0=BA=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D0=BD=D0=BE=D0=B5=20=D1=81=D1=87=D0=B8=D1=82=D1=8B?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= =?UTF-8?q?=20=D0=B8=D1=81=D1=85=D0=BE=D0=B4=D0=BD=D0=B8=D0=BA=D0=B0,=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Language/Sources/SourceCode.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/OneScript.Language/Sources/SourceCode.cs b/src/OneScript.Language/Sources/SourceCode.cs index a31e60652..76ab858aa 100644 --- a/src/OneScript.Language/Sources/SourceCode.cs +++ b/src/OneScript.Language/Sources/SourceCode.cs @@ -15,6 +15,8 @@ public class SourceCode : ISourceCodeIndexer private readonly ICodeSource _source; private ISourceCodeIndexer _indexer; + private string _code = null; + internal SourceCode(string sourceName, ICodeSource source) { _source = source; @@ -33,7 +35,12 @@ public SourceCodeIterator CreateIterator() public string Name { get; } - public string GetSourceCode() => _source.GetSourceCode(); + public string GetSourceCode() + { + // Однократное считывание того, что отдано на компиляцию + // При изменении источника (напр. файла) в любом случае потребуется перекомпиляция и смена номеров строк. + return _code ??= _source.GetSourceCode(); + } public string GetCodeLine(int lineNumber) { From 28a4a7579f4f6c307ebdf37f450ed36bb1f86211 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 19 Jun 2025 17:34:20 +0300 Subject: [PATCH 018/191] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=B2=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83,=20=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BD=D1=83=D0=BB=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SyntaxAnalysis/ImportDirectivesHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs b/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs index 8915b28c1..5d0a5058f 100644 --- a/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs +++ b/src/OneScript.Language/SyntaxAnalysis/ImportDirectivesHandler.cs @@ -27,7 +27,7 @@ private static LexerBuilder SetupLexerBuilder() builder .DetectComments() .Detect((cs, i) => !char.IsWhiteSpace(cs)) - .HandleWith(new WordLexerState()); + .HandleWith(new NonWhitespaceLexerState()); return builder; } From ced957ece033641422ad1c4e988bab51a6008061 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 10 Jul 2025 08:49:12 +0300 Subject: [PATCH 019/191] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B8=D0=B7=20LFS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/classgen/DocgenCSharp.zip | 3 --- tools/classgen/TypesDatabase.zip | 3 --- 2 files changed, 6 deletions(-) delete mode 100644 tools/classgen/DocgenCSharp.zip delete mode 100644 tools/classgen/TypesDatabase.zip diff --git a/tools/classgen/DocgenCSharp.zip b/tools/classgen/DocgenCSharp.zip deleted file mode 100644 index 770487fc9..000000000 --- a/tools/classgen/DocgenCSharp.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f22a181fa96f2b68b0b54f9a3662facb5c99699d39fe17082519c891cc8a5f83 -size 9023 diff --git a/tools/classgen/TypesDatabase.zip b/tools/classgen/TypesDatabase.zip deleted file mode 100644 index e45ffffd7..000000000 --- a/tools/classgen/TypesDatabase.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:024894a92f2ef92832d66725c31d56ba3a86e7a7d91242a049be9ad39d723898 -size 2636769 From ac66f4c89961260795e7cd79da24f818d68dab18 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Fri, 11 Jul 2025 12:42:27 +0300 Subject: [PATCH 020/191] =?UTF-8?q?NRE=20=D0=BF=D1=80=D0=B8=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BB=D0=B0=D0=B4=D0=BA=D0=B8=20=D0=BE=D1=82=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=D1=8E=D1=89=D0=B5=D0=B3=D0=BE=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=86=D0=B5=D1=81=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ScriptEngine/Machine/MachineInstance.cs | 31 ++++++++----- src/ScriptEngine/Machine/MachineStopReason.cs | 19 ++++++++ .../Machine/MachineStoppedEventArgs.cs | 43 ------------------- .../Machine/MachineStoredState.cs | 24 ----------- 4 files changed, 39 insertions(+), 78 deletions(-) create mode 100644 src/ScriptEngine/Machine/MachineStopReason.cs delete mode 100644 src/ScriptEngine/Machine/MachineStoppedEventArgs.cs delete mode 100644 src/ScriptEngine/Machine/MachineStoredState.cs diff --git a/src/ScriptEngine/Machine/MachineInstance.cs b/src/ScriptEngine/Machine/MachineInstance.cs index 75ed623f0..fd34b0bfb 100644 --- a/src/ScriptEngine/Machine/MachineInstance.cs +++ b/src/ScriptEngine/Machine/MachineInstance.cs @@ -38,6 +38,8 @@ public class MachineInstance private StackRuntimeModule _module; private ICodeStatCollector _codeStatCollector; private MachineStopManager _stopManager; + + private volatile bool _debugEnabled; private IBslProcess _process; private ITypeManager _typeManager; @@ -173,19 +175,25 @@ private void SetExecutionFrame(ExecutionFrame frame, MachineMethodInfo methodInf #region Debug protocol methods + [MethodImpl(MethodImplOptions.Synchronized)] public void SetDebugMode(IThreadManager threadManager, IBreakpointManager breakpointManager) { - _stopManager ??= new MachineStopManager(this, threadManager, breakpointManager); + if (!_debugEnabled) + { + _stopManager = new MachineStopManager(this, threadManager, breakpointManager); + _debugEnabled = true; + } } + [MethodImpl(MethodImplOptions.Synchronized)] public void UnsetDebugMode() { - _stopManager = null; + _debugEnabled = false; } public void StepOver() { - if (_stopManager == null) + if (!_debugEnabled) throw new InvalidOperationException("Machine is not in debug mode"); _stopManager.StepOver(); @@ -193,7 +201,7 @@ public void StepOver() public void StepIn() { - if (_stopManager == null) + if (!_debugEnabled) throw new InvalidOperationException("Machine is not in debug mode"); _stopManager.StepIn(); @@ -201,7 +209,7 @@ public void StepIn() public void StepOut() { - if (_stopManager == null) + if (!_debugEnabled) throw new InvalidOperationException("Machine is not in debug mode"); _stopManager.StepOut(); @@ -390,10 +398,12 @@ private void ExecuteCode() var shouldRethrow = ShouldRethrowException(exc); - if (_stopManager != null) + if (_debugEnabled) + { if (_stopManager.Breakpoints.StopOnAnyException(exc.MessageWithoutCodeFragment) || - shouldRethrow && _stopManager.Breakpoints.StopOnUncaughtException(exc.MessageWithoutCodeFragment)) + shouldRethrow && _stopManager.Breakpoints.StopOnUncaughtException(exc.MessageWithoutCodeFragment)) EmitStopOnException(); + } if (shouldRethrow) throw; @@ -1126,7 +1136,7 @@ private void Return(int arg) [MethodImpl(MethodImplOptions.AggressiveInlining)] private bool IsSteppingOutFromHere() { - if (_stopManager == null) + if (!_debugEnabled) return false; return _stopManager.CurrentState == DebugState.SteppingOut; @@ -1302,17 +1312,16 @@ private void LineNum(int arg) private void EmitStopOnException() { - if (_stopManager != null) + if (_debugEnabled) { CreateFullCallstack(); - var args = new MachineStoppedEventArgs(MachineStopReason.Exception, Environment.CurrentManagedThreadId, ""); _stopManager.NotifyStop(MachineStopReason.Exception, ""); } } private void EmitStopEventIfNecessary() { - if (_stopManager != null && _stopManager.ShouldStopAtThisLine(_module.Source.Location, _currentFrame)) + if (_debugEnabled && _stopManager.ShouldStopAtThisLine(_module.Source.Location, _currentFrame)) { CreateFullCallstack(); _stopManager.NotifyStop(); diff --git a/src/ScriptEngine/Machine/MachineStopReason.cs b/src/ScriptEngine/Machine/MachineStopReason.cs new file mode 100644 index 000000000..69adc712f --- /dev/null +++ b/src/ScriptEngine/Machine/MachineStopReason.cs @@ -0,0 +1,19 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System.Threading; + +namespace ScriptEngine.Machine +{ + public enum MachineStopReason + { + Breakpoint, + BreakpointConditionError, + Step, + Exception + } +} diff --git a/src/ScriptEngine/Machine/MachineStoppedEventArgs.cs b/src/ScriptEngine/Machine/MachineStoppedEventArgs.cs deleted file mode 100644 index 4517d4ef6..000000000 --- a/src/ScriptEngine/Machine/MachineStoppedEventArgs.cs +++ /dev/null @@ -1,43 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.Threading; - -namespace ScriptEngine.Machine -{ - public class MachineStoppedEventArgs : EventArgs - { - public MachineStoppedEventArgs(MachineStopReason reason) - { - Reason = reason; - ThreadId = Environment.CurrentManagedThreadId; - ErrorMessage = string.Empty; - } - - public MachineStoppedEventArgs(MachineStopReason reason, int threadId, string errorMessage = "") - { - Reason = reason; - ThreadId = threadId; - ErrorMessage = errorMessage; - } - - public MachineStopReason Reason { get; } - - public int ThreadId { get; } - - public string ErrorMessage { get; } - } - - public enum MachineStopReason - { - Breakpoint, - BreakpointConditionError, - Step, - Exception - } -} diff --git a/src/ScriptEngine/Machine/MachineStoredState.cs b/src/ScriptEngine/Machine/MachineStoredState.cs deleted file mode 100644 index 7e4a221fe..000000000 --- a/src/ScriptEngine/Machine/MachineStoredState.cs +++ /dev/null @@ -1,24 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System.Collections.Generic; - -namespace ScriptEngine.Machine -{ - internal class MachineStoredState - { - public Stack OperationStack { get; set; } - public Stack CallStack { get; set; } - public Stack ExceptionsStack { get; set; } - - public ICodeStatCollector CodeStatCollector { get; set; } - - public MachineStopManager StopManager { get; set; } - - public ExecutionContext Memory { get; set; } - } -} \ No newline at end of file From b7e4d2a0a486ad4327a37dbed03d5bc5645c4cf2 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Fri, 11 Jul 2025 12:47:32 +0300 Subject: [PATCH 021/191] =?UTF-8?q?=D0=97=D0=B0=D1=89=D0=B8=D1=82=D0=B0=20?= =?UTF-8?q?=D0=BE=D1=82=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D0=B2=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D1=82=D1=8B=D0=B9=20=D0=BA=D0=B0?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Abstractions/ICommunicationChannel.cs | 2 ++ .../TcpServer/BinaryChannel.cs | 13 ++++++++++++- .../TcpServer/DefaultMessageServer.cs | 4 ++++ .../DelayedConnectionChannel.cs | 2 ++ .../TcpEventCallbackChannel.cs | 13 +++++++++++-- 5 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/OneScript.DebugProtocol/Abstractions/ICommunicationChannel.cs b/src/OneScript.DebugProtocol/Abstractions/ICommunicationChannel.cs index d449f81cf..c1927397d 100644 --- a/src/OneScript.DebugProtocol/Abstractions/ICommunicationChannel.cs +++ b/src/OneScript.DebugProtocol/Abstractions/ICommunicationChannel.cs @@ -17,5 +17,7 @@ public interface ICommunicationChannel : IDisposable object Read(); + bool Connected { get; } + } } \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs b/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs index 72c1971f9..097727fc9 100644 --- a/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs @@ -5,6 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; using System.Net.Sockets; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; @@ -21,17 +22,23 @@ public sealed class BinaryChannel : ICommunicationChannel private readonly NetworkStream _clientStream; private readonly BinaryFormatter _serializer; + private bool _enabled; + public BinaryChannel(TcpClient client) { _client = client; _clientStream = _client.GetStream(); _serializer = new BinaryFormatter(); + _enabled = true; } - public bool Connected => _client.Connected; + public bool Connected => _enabled && _client.Connected; public void Write(object data) { + if (!_enabled) + throw new ObjectDisposedException(nameof(BinaryChannel)); + _serializer.Serialize(_clientStream, data); } @@ -42,6 +49,9 @@ public T Read() public object Read() { + if (!_enabled) + throw new ObjectDisposedException(nameof(BinaryChannel)); + try { return _serializer.Deserialize(_clientStream); @@ -56,6 +66,7 @@ public void Dispose() { _clientStream.Dispose(); _client.Close(); + _enabled = false; } } } \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs index ba48ef843..fb2ca07c9 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs @@ -81,6 +81,10 @@ private void RunCommandsLoop() // свойство в исключении может быть уcтановлено в обработчике евента _serverStopped = e.StopChannel; } + catch (ObjectDisposedException) + { + _serverStopped = true; + } catch (Exception e) { var eventData = new CommunicationEventArgs diff --git a/src/OneScript.DebugServices/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/DelayedConnectionChannel.cs index 3ae9bb6b8..4f39e87fd 100644 --- a/src/OneScript.DebugServices/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/DelayedConnectionChannel.cs @@ -61,5 +61,7 @@ public object Read() MakeChannel(); return _connectedChannel.Read(); } + + public bool Connected => _connectedChannel.Connected; } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs index 7d4ed18c5..a4aaf705b 100644 --- a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs +++ b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs @@ -23,25 +23,34 @@ public TcpEventCallbackChannel(ICommunicationChannel channel) public void ThreadStoppedEx(int threadId, ThreadStopReason reason, string errorMessage) { + if (!_channel.Connected) + return; + var dto = RpcCall.Create(nameof(IDebugEventListener), nameof(ThreadStoppedEx), threadId, reason, errorMessage); _channel.Write(dto); } public void ThreadStopped(int threadId, ThreadStopReason reason) { + if (!_channel.Connected) + return; + var dto = RpcCall.Create(nameof(IDebugEventListener), nameof(ThreadStopped), threadId, reason); _channel.Write(dto); } public void ProcessExited(int exitCode) { + if (!_channel.Connected) + return; + var dto = RpcCall.Create(nameof(IDebugEventListener), nameof(ProcessExited), exitCode); - _channel.Write(dto); + _channel.Write(dto); } public void Dispose() { - _channel?.Dispose(); + _channel.Dispose(); } } } \ No newline at end of file From 3f99bf2b13cbc159487a59821b595f7038318117 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Fri, 11 Jul 2025 13:11:24 +0300 Subject: [PATCH 022/191] =?UTF-8?q?=D0=9E=D1=82=D0=BB=D0=BE=D0=B2=20=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D1=8F=20=D0=BE=D1=82=20=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D0=B3=D0=B5=D1=82=D0=B0=20=D0=B2=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BA=D1=80=D1=8B=D1=82=D1=8B=D0=B9=20=D0=BA=D0=B0=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DelayedConnectionChannel.cs | 2 +- .../TcpEventCallbackChannel.cs | 29 ++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/OneScript.DebugServices/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/DelayedConnectionChannel.cs index 4f39e87fd..0aa719baa 100644 --- a/src/OneScript.DebugServices/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/DelayedConnectionChannel.cs @@ -62,6 +62,6 @@ public object Read() return _connectedChannel.Read(); } - public bool Connected => _connectedChannel.Connected; + public bool Connected => _connectedChannel?.Connected ?? false; } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs index a4aaf705b..3faacb25a 100644 --- a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs +++ b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs @@ -6,6 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using System.IO; using OneScript.DebugProtocol; using OneScript.DebugProtocol.Abstractions; using OneScript.DebugProtocol.TcpServer; @@ -23,29 +24,35 @@ public TcpEventCallbackChannel(ICommunicationChannel channel) public void ThreadStoppedEx(int threadId, ThreadStopReason reason, string errorMessage) { - if (!_channel.Connected) - return; - var dto = RpcCall.Create(nameof(IDebugEventListener), nameof(ThreadStoppedEx), threadId, reason, errorMessage); - _channel.Write(dto); + Write(dto); } public void ThreadStopped(int threadId, ThreadStopReason reason) { - if (!_channel.Connected) - return; - var dto = RpcCall.Create(nameof(IDebugEventListener), nameof(ThreadStopped), threadId, reason); - _channel.Write(dto); + Write(dto); } public void ProcessExited(int exitCode) + { + var dto = RpcCall.Create(nameof(IDebugEventListener), nameof(ProcessExited), exitCode); + Write(dto); + } + + private void Write(RpcCall dto) { if (!_channel.Connected) return; - - var dto = RpcCall.Create(nameof(IDebugEventListener), nameof(ProcessExited), exitCode); - _channel.Write(dto); + + try + { + _channel.Write(dto); + } + catch (IOException) + { + // Ignore + } } public void Dispose() From 5b5dd33fe64694ae4d9086735b3312b74b93063b Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Fri, 11 Jul 2025 18:18:56 +0300 Subject: [PATCH 023/191] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D1=83=D1=80=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/App.config | 9 ++++--- src/VSCode.DebugAdapter/Program.cs | 24 ++++++++++++------- .../VSCode.DebugAdapter.csproj | 2 +- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/VSCode.DebugAdapter/App.config b/src/VSCode.DebugAdapter/App.config index 903c563a4..5ce7dba1d 100644 --- a/src/VSCode.DebugAdapter/App.config +++ b/src/VSCode.DebugAdapter/App.config @@ -3,16 +3,19 @@ + - + + - + - --> + diff --git a/src/VSCode.DebugAdapter/Program.cs b/src/VSCode.DebugAdapter/Program.cs index 02632e5f2..19b7e2e5d 100644 --- a/src/VSCode.DebugAdapter/Program.cs +++ b/src/VSCode.DebugAdapter/Program.cs @@ -5,6 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; +using System.Configuration; using System.IO; using System.Linq; using System.Net; @@ -22,9 +23,10 @@ static void Main(string[] args) var listener = TcpListener.Create(4711); listener.Start(); - using (var client = listener.AcceptTcpClient()) - using (var stream = client.GetStream()) - StartSession(stream, stream); + using var client = listener.AcceptTcpClient(); + using var stream = client.GetStream(); + + StartSession(stream, stream); } else StartSession(Console.OpenStandardInput(), Console.OpenStandardOutput()); @@ -32,12 +34,18 @@ static void Main(string[] args) private static void StartSession(Stream input, Stream output) { + var enabled = ConfigurationManager.AppSettings["onescript:log-enable"].ToLower() == "true"; + var file = ConfigurationManager.AppSettings["serilog:write-to:File.path"]; + if (enabled && !string.IsNullOrEmpty(file)) + { + Log.Logger = new LoggerConfiguration() + .ReadFrom.AppSettings() + .Enrich.FromLogContext() + .WriteTo.File(file, outputTemplate: "{SourceContext} [{Level:u3}] {Message:lj} {Timestamp:yyyy-MM-dd HH:mm:ss} {NewLine}{Exception}") + .CreateLogger(); + } + var session = new OscriptDebugSession(); - - Log.Logger = new LoggerConfiguration() - .ReadFrom.AppSettings() - .Enrich.FromLogContext() - .CreateLogger(); try { diff --git a/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj b/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj index 7ca054e8a..8cbbf8210 100644 --- a/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj +++ b/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj @@ -9,7 +9,7 @@ Debug;Release;LinuxDebug VSC debug adapter for 1Script AnyCPU - 7.3 + 8 1.7.0.0 1.7.0.0 true From d347910eb787a9d7d5743ea2239bcf0169a0c945 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Fri, 11 Jul 2025 19:08:25 +0300 Subject: [PATCH 024/191] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=83=D1=80=D0=BE=D0=B2=D0=BD=D0=B8=20=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=D0=B2,=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20dto=20=D0=B2=20=D0=BB=D0=BE?= =?UTF-8?q?=D0=B3=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.DebugProtocol/StackFrame.cs | 46 ++++++-- src/VSCode.DebugAdapter/DebugeeProcess.cs | 14 ++- .../OscriptDebugSession.cs | 111 +++++++++--------- .../OscriptProtocols/Tcp/RpcProcessor.cs | 12 +- .../Tcp/TcpDebugServerClient.cs | 9 +- src/VSCode.DebugAdapter/Program.cs | 4 +- 6 files changed, 120 insertions(+), 76 deletions(-) diff --git a/src/OneScript.DebugProtocol/StackFrame.cs b/src/OneScript.DebugProtocol/StackFrame.cs index dd690839c..a83ad3d16 100644 --- a/src/OneScript.DebugProtocol/StackFrame.cs +++ b/src/OneScript.DebugProtocol/StackFrame.cs @@ -35,30 +35,30 @@ int IVariableLocator.Count { get { - ThrowIfNoVariables(); - + if (Variables == null) + return 0; + return Variables.Length; } } - private void ThrowIfNoVariables() - { - if (Variables == null) - throw new InvalidOperationException("No variables aquired yet"); - } - Variable IVariableLocator.this[int index] { get { - ThrowIfNoVariables(); + if (Variables == null) + throw new ArgumentOutOfRangeException(); + return Variables[index]; } } IEnumerator IEnumerable.GetEnumerator() { - ThrowIfNoVariables(); + if (Variables == null) + { + return EmptyEnumerator.Instance; + } return ((IEnumerable)Variables).GetEnumerator(); } @@ -81,4 +81,30 @@ public IVariableLocator CreateChildLocator(int variableIndex) return new VariableLocator(ThreadId, Index, variableIndex); } } + + internal class EmptyEnumerator : IEnumerator + { + public static EmptyEnumerator Instance { get; } = new EmptyEnumerator(); + + private EmptyEnumerator() + { + } + + public bool MoveNext() + { + return false; + } + + public void Reset() + { + } + + public T Current { get; } = default; + + object IEnumerator.Current => Current; + + public void Dispose() + { + } + } } diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index 2152870ff..8c8bcd487 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -35,6 +35,8 @@ internal abstract class DebugeeProcess private int _activeProtocolVersion; + private ILogger Log { get; } = Serilog.Log.ForContext(); + public DebugeeProcess(PathHandlingStrategy pathHandling) { _strategy = pathHandling; @@ -227,9 +229,19 @@ public void HandleDisconnect(bool terminate) if (mustKill && _process != null && !_process.HasExited) { - if (!_process.WaitForExit(2000)) + Log.Debug("Stopping child process..."); + if (_process.WaitForExit(2000)) + { + Log.Debug("Process stopped"); + } + else + { _process.Kill(); + Log.Debug("Process killed"); + } } + + Log.Debug("Debuggee disconnected"); } public void Kill() diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 60b82b1f1..ca1baa1a3 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -9,23 +9,23 @@ This Source Code Form is subject to the terms of the using System.IO; using System.Runtime.CompilerServices; using Newtonsoft.Json; -using Newtonsoft.Json.Linq; using OneScript.DebugProtocol; using Serilog; using VSCode.DebugAdapter.OscriptProtocols; using VSCodeDebug; -using static System.Net.WebRequestMethods; namespace VSCode.DebugAdapter { internal class OscriptDebugSession : DebugSession, IDebugEventListener { - private DebugeeProcess _process; + private DebugeeProcess _debuggee; private bool _startupPerformed = false; private readonly Handles _framesHandles; private readonly Handles _variableHandles; + private readonly ILogger Log = Serilog.Log.ForContext(); + public OscriptDebugSession() : base(true, false) { _framesHandles = new Handles(); @@ -39,7 +39,7 @@ public override void Initialize(Response response, dynamic args) LogCommandReceived(); AdapterID = (string) args.adapterID; - _process = DebugeeFactory.CreateProcess(AdapterID, PathStrategy); + _debuggee = DebugeeFactory.CreateProcess(AdapterID, PathStrategy); SendResponse(response, new Capabilities { @@ -79,7 +79,7 @@ public override void Launch(Response response, dynamic args) try { Log.Debug("Initializing process settings"); - _process.Init(args); + _debuggee.Init(args); } catch (InvalidDebugeeOptionsException e) { @@ -88,22 +88,12 @@ public override void Launch(Response response, dynamic args) return; } - _process.OutputReceived += (s, e) => - { - Log.Debug("Output received {Output}", e.Content); - SendOutput(e.Category, e.Content); - }; + SubscribeForDebuggeeProcessEvents(); - _process.ProcessExited += (s, e) => - { - Log.Information("Debuggee has exited"); - SendEvent(new TerminatedEvent()); - }; - try { Log.Verbose("Starting debuggee"); - _process.Start(); + _debuggee.Start(); Log.Information("Debuggee started"); } catch (Exception e) @@ -115,14 +105,14 @@ public override void Launch(Response response, dynamic args) try { - var tcpConnector = new TcpDebugServerClient(_process.DebugPort, this); + var tcpConnector = new TcpDebugServerClient(_debuggee.DebugPort, this); tcpConnector.Connect(); - _process.SetConnection(tcpConnector); + _debuggee.SetConnection(tcpConnector); } catch (Exception e) { - _process.Kill(); + _debuggee.Kill(); SendEvent(new TerminatedEvent()); Log.Error(e, "Can't connect to debug server"); SendErrorResponse(response, 4550, "Can't connect: " + e.ToString()); @@ -134,33 +124,44 @@ public override void Launch(Response response, dynamic args) SendResponse(response); } + private void SubscribeForDebuggeeProcessEvents() + { + _debuggee.OutputReceived += (s, e) => + { + Log.Debug("Output received {Output}", e.Content); + SendOutput(e.Category, e.Content); + }; + + _debuggee.ProcessExited += (s, e) => + { + Log.Information("Debuggee has exited"); + SendEvent(new TerminatedEvent()); + }; + } + private void SetupProtocol(dynamic args) { int protocolVersion = GetFromContainer(args, "protocolVersion", 0); if (ProtocolVersions.IsValid(protocolVersion)) { - _process.ProtocolVersion = protocolVersion; + _debuggee.ProtocolVersion = protocolVersion; } } public override void Attach(Response response, dynamic arguments) { LogCommandReceived(); - _process.DebugPort = GetFromContainer(arguments, "debugPort", 2801); - _process.ProcessExited += (s, e) => - { - Log.Information("Debuggee has exited"); - SendEvent(new TerminatedEvent()); - }; + SubscribeForDebuggeeProcessEvents(); + _debuggee.DebugPort = GetFromContainer(arguments, "debugPort", 2801); try { - var tcpConnector = new TcpDebugServerClient(_process.DebugPort, this); + var tcpConnector = new TcpDebugServerClient(_debuggee.DebugPort, this); tcpConnector.Connect(); - Log.Debug("Connected to debuggee on port {Port}", _process.DebugPort); + Log.Debug("Connected to debuggee on port {Port}", _debuggee.DebugPort); - _process.SetConnection(tcpConnector); - _process.InitAttached(); + _debuggee.SetConnection(tcpConnector); + _debuggee.InitAttached(); } catch (Exception e) { @@ -176,17 +177,17 @@ public override void Attach(Response response, dynamic arguments) public override void Disconnect(Response response, dynamic arguments) { - LogCommandReceived(arguments); + LogCommandReceived(new { Terminate = arguments.terminateDebuggee }); bool terminateDebuggee = arguments.terminateDebuggee == true; - _process.HandleDisconnect(terminateDebuggee); + _debuggee.HandleDisconnect(terminateDebuggee); SendResponse(response); } public override void SetExceptionBreakpoints(Response response, dynamic arguments) { - LogCommandReceived(arguments); - Log.Debug("Exception breakpoints: {Data}", JsonConvert.SerializeObject(arguments)); + LogCommandReceived(); + Log.Verbose("Exception breakpoints: {@Data}", arguments); var acceptedFilters = new List(); var filters = new List<(string Id, string Condition)>(); @@ -203,7 +204,7 @@ public override void SetExceptionBreakpoints(Response response, dynamic argument acceptedFilters.Add(new VSCodeDebug.Breakpoint(true)); } - _process.SetExceptionsBreakpoints(filters.ToArray()); + _debuggee.SetExceptionsBreakpoints(filters.ToArray()); SendResponse(response, new SetExceptionBreakpointsResponseBody(acceptedFilters)); } @@ -211,7 +212,7 @@ public override void SetExceptionBreakpoints(Response response, dynamic argument public override void SetBreakpoints(Response response, dynamic arguments) { LogCommandReceived(); - Log.Debug("Breakpoints: {Data}", JsonConvert.SerializeObject(arguments)); + Log.Verbose("Breakpoints: {@Data}", arguments); if ((bool)arguments.sourceModified) { @@ -255,7 +256,7 @@ public override void SetBreakpoints(Response response, dynamic arguments) breaks.Add(bpt); } - var confirmedBreaks = _process.SetBreakpoints(breaks); + var confirmedBreaks = _debuggee.SetBreakpoints(breaks); var confirmedBreaksVSCode = new List(confirmedBreaks.Length); for (int i = 0; i < confirmedBreaks.Length; i++) { @@ -303,14 +304,14 @@ public void ProcessExited(int exitCode) public override void ConfigurationDone(Response response, dynamic args) { - if (_process == null) + if (_debuggee == null) { Log.Debug("Config Done. Process is not started"); SendResponse(response); return; } Log.Debug("Config Done. Process is started, sending Execute"); - _process.BeginExecution(-1); + _debuggee.BeginExecution(-1); _startupPerformed = true; SendResponse(response); } @@ -319,18 +320,18 @@ public override void Continue(Response response, dynamic arguments) { LogCommandReceived(); SendResponse(response); - _process.BeginExecution(-1); + _debuggee.BeginExecution(-1); } public override void Next(Response response, dynamic arguments) { LogCommandReceived(); SendResponse(response); - lock (_process) + lock (_debuggee) { - if (!_process.HasExited) + if (!_debuggee.HasExited) { - _process.Next((int)arguments.threadId); + _debuggee.Next((int)arguments.threadId); } } @@ -340,11 +341,11 @@ public override void StepIn(Response response, dynamic arguments) { LogCommandReceived(); SendResponse(response); - lock (_process) + lock (_debuggee) { - if (!_process.HasExited) + if (!_debuggee.HasExited) { - _process.StepIn((int)arguments.threadId); + _debuggee.StepIn((int)arguments.threadId); } } } @@ -353,11 +354,11 @@ public override void StepOut(Response response, dynamic arguments) { LogCommandReceived(); SendResponse(response); - lock (_process) + lock (_debuggee) { - if (!_process.HasExited) + if (!_debuggee.HasExited) { - _process.StepOut((int)arguments.threadId); + _debuggee.StepOut((int)arguments.threadId); } } } @@ -374,7 +375,7 @@ public override void StackTrace(Response response, dynamic arguments) var firstFrameIdx = (int?)arguments.startFrame ?? 0; var limit = (int?) arguments.levels ?? 0; var threadId = (int) arguments.threadId; - var processFrames = _process.GetStackTrace(threadId, firstFrameIdx, limit); + var processFrames = _debuggee.GetStackTrace(threadId, firstFrameIdx, limit); var frames = new VSCodeDebug.StackFrame[processFrames.Length]; for (int i = 0; i < processFrames.Length; i++) { @@ -415,7 +416,7 @@ public override void Variables(Response response, dynamic arguments) return; } - _process.FillVariables(variables); + _debuggee.FillVariables(variables); var responseArray = new VSCodeDebug.Variable[variables.Count]; @@ -442,7 +443,7 @@ public override void Threads(Response response, dynamic arguments) { LogCommandReceived(); var threads = new List(); - var processThreads = _process.GetThreads(); + var processThreads = _debuggee.GetThreads(); for (int i = 0; i < processThreads.Length; i++) { threads.Add(new VSCodeDebug.Thread(processThreads[i], $"Thread {processThreads[i]}")); @@ -472,7 +473,7 @@ public override void Evaluate(Response response, dynamic arguments) OneScript.DebugProtocol.Variable evalResult; try { - evalResult = _process.Evaluate(frame, expression); + evalResult = _debuggee.Evaluate(frame, expression); if (evalResult.IsStructured) { @@ -530,7 +531,7 @@ private void LogCommandReceived(dynamic args = null, [CallerMemberName] string c if (args == null) Log.Debug("Command received {Command}", commandName); else - Log.Debug("Command received {Command}: {Args}", commandName, JsonConvert.SerializeObject(args)); + Log.Debug("Command received {Command}: {@Args}", commandName, args); } private void LogEventOccured([CallerMemberName] string eventName = "") diff --git a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcProcessor.cs b/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcProcessor.cs index 4962b60fb..1dae4cebc 100644 --- a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcProcessor.cs +++ b/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcProcessor.cs @@ -21,6 +21,8 @@ public class RpcProcessor private readonly Dictionary _dispatchers = new Dictionary(); private readonly Queue _responses = new Queue(); private readonly AutoResetEvent _responseAvailable = new AutoResetEvent(false); + + private readonly ILogger Log = Serilog.Log.ForContext(); private struct ChannelRecord { @@ -57,7 +59,7 @@ private void ServerOnDataReceived(object sender, CommunicationEventArgs e) { if (e.Exception == null) { - Log.Debug("Data received {@Data}", (TcpProtocolDtoBase)e.Data); + Log.Verbose("Data received {@Data}", (TcpProtocolDtoBase)e.Data); DispatchMessage((TcpProtocolDtoBase)e.Data, e.Channel); } else @@ -80,19 +82,19 @@ private void DispatchMessage(TcpProtocolDtoBase data, ICommunicationChannel resp if (data is RpcCall rpcCall) { - Log.Debug("Processing call to {Id}", rpcCall.Id); + Log.Verbose("Processing call to {Id}", rpcCall.Id); var result = serviceRecord.Dispatcher.Dispatch(serviceRecord.ServiceInstance, rpcCall.Id, rpcCall.Parameters); - Log.Debug("Completed call to {Id}", rpcCall.Id); + Log.Verbose("Completed call to {Id}", rpcCall.Id); if (result != null) { var callResult = RpcCallResult.Respond(rpcCall, result); - Log.Debug("Sending response {Result}", callResult.ReturnValue); + Log.Verbose("Sending response {Result}", callResult.ReturnValue); responseChannel.Write(callResult); } } else if(data is RpcCallResult result) { - Log.Debug("Enque response to {Id}. Value {Value}", result.Id, result.ReturnValue); + Log.Verbose("Enque response to {Id}. Value {Value}", result.Id, result.ReturnValue); lock (_responses) { _responses.Enqueue(result); diff --git a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs b/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs index 25fa29332..e24af9346 100644 --- a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs +++ b/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs @@ -102,7 +102,7 @@ private void RunEventsListener(ICommunicationChannel channelToListen) private void WriteCommand(T data, [CallerMemberName] string command = "") { - Log.Verbose("Sending {Command} to debuggee, param {Parameter}", command, data); + Log.Verbose("Sending {Command} to debuggee, param {@Parameter}", command, data); var dto = RpcCall.Create(nameof(IDebuggerService), command, data); _commandsChannel.Write(dto); Log.Verbose("Successfully written: {Command}", command); @@ -111,7 +111,7 @@ private void WriteCommand(T data, [CallerMemberName] string command = "") private void WriteCommand(object[] data, [CallerMemberName] string command = "") { - Log.Verbose("Sending {Command} to debuggee, params {Parameters}", command, data); + Log.Verbose("Sending {Command} to debuggee, params {@Parameters}", command, data); var dto = RpcCall.Create(nameof(IDebuggerService), command, data); _commandsChannel.Write(dto); Log.Verbose("Successfully written: {Command}", command); @@ -120,10 +120,10 @@ private void WriteCommand(object[] data, [CallerMemberName] string command = "") private T GetResponse() { var rpcResult = _processor.GetResult(); - Log.Debug("Response received {Result} = {Value}", rpcResult.Id, rpcResult.ReturnValue); + Log.Verbose("Response received {Result} = {@Value}", rpcResult.Id, rpcResult.ReturnValue); if (rpcResult.ReturnValue is RpcExceptionDto excDto) { - Log.Debug("RPC Exception received: {Description}", excDto.Description); + Log.Verbose("RPC Exception received: {Description}", excDto.Description); throw new RpcOperationException(excDto); } @@ -207,6 +207,7 @@ public void StepOut(int threadId) public void Disconnect(bool terminate) { WriteCommand(terminate); + Disconnect(); } public int[] GetThreads() diff --git a/src/VSCode.DebugAdapter/Program.cs b/src/VSCode.DebugAdapter/Program.cs index 19b7e2e5d..0884df150 100644 --- a/src/VSCode.DebugAdapter/Program.cs +++ b/src/VSCode.DebugAdapter/Program.cs @@ -11,6 +11,8 @@ This Source Code Form is subject to the terms of the using System.Net; using System.Net.Sockets; using Serilog; +using Serilog.Core; +using Serilog.Events; namespace VSCode.DebugAdapter { @@ -41,7 +43,7 @@ private static void StartSession(Stream input, Stream output) Log.Logger = new LoggerConfiguration() .ReadFrom.AppSettings() .Enrich.FromLogContext() - .WriteTo.File(file, outputTemplate: "{SourceContext} [{Level:u3}] {Message:lj} {Timestamp:yyyy-MM-dd HH:mm:ss} {NewLine}{Exception}") + .WriteTo.File(file, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] {Message:lj} ({SourceContext}){NewLine}{Exception}") .CreateLogger(); } From 29f61a27fdf866ecf48bd31be31f4af876272632 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Sun, 13 Jul 2025 16:47:47 +0300 Subject: [PATCH 025/191] =?UTF-8?q?=D0=9E=D0=B1=D0=BC=D0=B5=D0=BD=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D0=B5=D0=B9=20=D0=BF=D1=80=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=BA=D0=BE=D0=BB=D0=B0=20=D0=B2=20=D1=87=D0=B0=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20dto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.DebugProtocol/IDebuggerService.cs | 2 ++ src/OneScript.DebugServices/DefaultDebugService.cs | 7 +++++++ src/OneScript.DebugServices/DelayedConnectionChannel.cs | 2 +- src/VSCode.DebugAdapter/DebugeeProcess.cs | 2 ++ .../OscriptProtocols/ProtocolVersions.cs | 2 +- 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/OneScript.DebugProtocol/IDebuggerService.cs b/src/OneScript.DebugProtocol/IDebuggerService.cs index d9edb6cb6..cbf40b56f 100644 --- a/src/OneScript.DebugProtocol/IDebuggerService.cs +++ b/src/OneScript.DebugProtocol/IDebuggerService.cs @@ -77,5 +77,7 @@ public interface IDebuggerService int[] GetThreads(); int GetProcessId(); + + int GetProtocolVersion(); } } diff --git a/src/OneScript.DebugServices/DefaultDebugService.cs b/src/OneScript.DebugServices/DefaultDebugService.cs index 0bfebeb16..fc2267a84 100644 --- a/src/OneScript.DebugServices/DefaultDebugService.cs +++ b/src/OneScript.DebugServices/DefaultDebugService.cs @@ -22,6 +22,8 @@ namespace OneScript.DebugServices { public class DefaultDebugService : IDebuggerService { + private const int CURRENT_PROTOCOL_VERSION = 3; + private readonly IBreakpointManager _breakpointManager; private readonly IVariableVisualizer _visualizer; private readonly ThreadManager _threadManager; @@ -247,5 +249,10 @@ private IList GetChildVariables(IVariable src) { return _visualizer.GetChildVariables(src.Value).ToList(); } + + public int GetProtocolVersion() + { + return CURRENT_PROTOCOL_VERSION; + } } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/DelayedConnectionChannel.cs index 0aa719baa..86fba46d2 100644 --- a/src/OneScript.DebugServices/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/DelayedConnectionChannel.cs @@ -15,7 +15,7 @@ namespace OneScript.DebugServices public class DelayedConnectionChannel : ICommunicationChannel { private TcpListener _listener; - private BinaryChannel _connectedChannel; + private ICommunicationChannel _connectedChannel; public DelayedConnectionChannel(TcpListener listener) { diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index 8c8bcd487..c00f970e6 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -177,7 +177,9 @@ private void SetupSupportedProtocolVersion() try { + Log.Debug("Requesting max protocol version"); _activeProtocolVersion = _debugger.GetProtocolVersion(); + Log.Information("Protocol version is {ProtocolVersion}", _activeProtocolVersion); } catch (Exception e) { diff --git a/src/VSCode.DebugAdapter/OscriptProtocols/ProtocolVersions.cs b/src/VSCode.DebugAdapter/OscriptProtocols/ProtocolVersions.cs index 5fc141e63..7fdd85184 100644 --- a/src/VSCode.DebugAdapter/OscriptProtocols/ProtocolVersions.cs +++ b/src/VSCode.DebugAdapter/OscriptProtocols/ProtocolVersions.cs @@ -38,7 +38,7 @@ public static int Adjust(int valueToAdjust) public const int Version2 = 2; /// - /// После появления метода GetVersion, который запрашивает Debuggee + /// После появления метода GetProtocolVersion, который запрашивает Debuggee /// public const int Version3 = 3; From 50a9147f95446d6af647ea785e3f7516cc1f6b6f Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Mon, 14 Jul 2025 12:56:56 +0300 Subject: [PATCH 026/191] =?UTF-8?q?=D0=93=D1=80=D1=8F=D0=B7=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=85=D0=B0=D0=BA=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BF=D1=8B=D1=82=D0=BA=D0=B8=20=D0=B2=D1=8B=D1=8F=D1=81=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D1=82=D0=B8=D0=BF=20=D1=81=D0=B5=D1=80?= =?UTF-8?q?=D0=B8=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=82=D0=BE=D1=80=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=82=D0=BE=D0=B9=20=D1=81=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=BE=D0=BD=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/FormatReconcileUtils.cs | 45 ++++++++++++ .../Tcp/TcpDebugServerClient.cs | 71 ++++++++++++++++++- 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs diff --git a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs new file mode 100644 index 000000000..8413244a4 --- /dev/null +++ b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs @@ -0,0 +1,45 @@ +using System; + +namespace OneScript.DebugProtocol.TcpServer +{ + public static class FormatReconcileUtils + { + /// + /// Массив байт, который вызовет SerializationException при чтении его через BinaryFormatter + /// И при этом оставит поток пустым, для следующего валидного сообщения + /// [MS-NRBF] .NET Remoting: Binary Format Data Structure + /// + public static readonly byte[] FORMAT_RECONCILE_MAGIC = + { + 0x11, // RecordTypeEnum + 0,0,0,0, // RootId + 0,0,0,0, // HeaderId + 0x00, 0x0A, 0x00, 0x0A, // Version Major + 0xAA, 0xAA, 0xAA, 0xAA // Version Minor, + }; + + /// + /// Ответ на запрос формата + /// + public static readonly byte[] FORMAT_RECONCILE_RESPONSE_PREFIX = + { + 0x1C, + 0x1C, + 0x1C, + 0x1C + }; + + public static readonly TimeSpan FORMAT_RECONCILE_TIMEOUT = TimeSpan.FromMilliseconds(500); + + public static bool CheckReconcilePrefix(byte[] data) + { + for (int i = 0; i < FORMAT_RECONCILE_RESPONSE_PREFIX.Length; i++) + { + if (data[i] != FORMAT_RECONCILE_RESPONSE_PREFIX[i]) + return false; + } + + return true; + } + } +} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs b/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs index e24af9346..abb82dc62 100644 --- a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs +++ b/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs @@ -6,8 +6,11 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using System.IO; +using System.Linq; using System.Net.Sockets; using System.Runtime.CompilerServices; +using System.Text; using System.Threading; using OneScript.DebugProtocol; using OneScript.DebugProtocol.Abstractions; @@ -24,11 +27,15 @@ public class TcpDebugServerClient : IDebuggerService private BinaryChannel _commandsChannel; private RpcProcessor _processor; + private readonly ILogger Log = Serilog.Log.ForContext(); + public TcpDebugServerClient(int port, IDebugEventListener eventBackChannel) { _port = port; _eventBackChannel = eventBackChannel; } + + private int _protocolVersion = ProtocolVersions.SafestVersion; public void Connect() { @@ -36,13 +43,75 @@ public void Connect() var client = new TcpClient(); TryConnect(client, debuggerUri); + _commandsChannel = new BinaryChannel(client); Log.Debug("Connected to {Host}:{Port}", debuggerUri.Host, debuggerUri.Port); + ReconcileDataFormat(client); RunEventsListener(_commandsChannel); } + private void ReconcileDataFormat(TcpClient client) + { + Log.Verbose("Sending reconcile message"); + var stream = client.GetStream(); + stream.Write(FormatReconcileUtils.FORMAT_RECONCILE_MAGIC, 0, FormatReconcileUtils.FORMAT_RECONCILE_MAGIC.Length); + + var pollResult = client.Client + .Poll(FormatReconcileUtils.FORMAT_RECONCILE_TIMEOUT.Milliseconds * 1000, SelectMode.SelectRead); + + if (pollResult) + { + Log.Verbose("Reconcile data available. Waiting for full data"); + var attempts = 0; + const int WAIT_ATTEMPTS = 3; + const int ATTEMPT_INTERVAL = 250; + + var requiredDataLength = FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length + sizeof(int); + while (client.Client.Available < requiredDataLength && attempts < WAIT_ATTEMPTS) + { + attempts++; + Log.Verbose("Attempt # {Attempt}", attempts); + Thread.Sleep(ATTEMPT_INTERVAL); + } + + if (client.Client.Available >= requiredDataLength) + { + Log.Verbose("We have data available. Reading reconcile response"); + var dataBuffer = new byte[requiredDataLength]; + using var binaryReader = new BinaryReader(stream, Encoding.ASCII, true); + binaryReader.Read(dataBuffer, 0, FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); + + if (!FormatReconcileUtils.CheckReconcilePrefix(dataBuffer)) + { + Log.Verbose("Received data is not reconcile message"); + SelectSafestFormat(); + return; + } + + var formatVersion = binaryReader.ReadInt32(); + Log.Verbose("Received format version {FormatVersion}", formatVersion); + _protocolVersion = ProtocolVersions.Adjust(formatVersion); + Log.Verbose("Active protocol version {ProtocolVersion}", _protocolVersion); + } + else + { + SelectSafestFormat(); + } + } + else + { + SelectSafestFormat(); + } + } + + private void SelectSafestFormat() + { + Log.Verbose("Reconcilation failed, selecting safest format"); + _protocolVersion = ProtocolVersions.SafestVersion; + } + public void Disconnect() { _processor.Stop(); @@ -59,7 +128,7 @@ private static Uri GetDebuggerUri(int port) return builder.Uri; } - private static void TryConnect(TcpClient client, Uri debuggerUri) + private void TryConnect(TcpClient client, Uri debuggerUri) { const int limit = 3; // TODO: параметризовать ожидания и попытки From 9f00a641d21a7fe9db59824d7602b12bee798099 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Mon, 14 Jul 2025 14:10:19 +0300 Subject: [PATCH 027/191] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B3=D0=B4=D0=B0=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=84=D0=B0=D0=BA=D1=82=D1=83=20=D0=BD=D0=B5=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=D0=B2=D1=88=D0=B8=D0=B9=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=20GetProtocolVersion=20=D0=B8=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D1=80=D1=82=20=D1=81=D0=B5=D1=81=D1=81=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IDebuggerService.cs | 2 - .../DefaultDebugService.cs | 7 - src/VSCode.DebugAdapter/ConsoleProcess.cs | 6 +- src/VSCode.DebugAdapter/DebugeeProcess.cs | 37 +-- .../OscriptDebugSession.cs | 52 ++- .../Tcp/TcpDebugServerClient.cs | 308 ------------------ src/VSCode.DebugAdapter/ServerProcess.cs | 2 +- .../Transport/ConnectionFactory.cs | 59 ++++ .../Transport/DebugClientFactory.cs | 114 +++++++ .../Transport/OneScriptDebuggerClient.cs | 189 +++++++++++ .../ProtocolVersions.cs | 11 +- .../RpcOperationException.cs | 2 +- .../Tcp => Transport}/RpcProcessor.cs | 2 +- .../Transport/TransportException.cs | 11 + .../Transport/TransportProtocols.cs | 10 + src/VSCode.DebugAdapter/package.json | 10 - src/oscript/DebugBehavior.cs | 1 + 17 files changed, 425 insertions(+), 398 deletions(-) delete mode 100644 src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs create mode 100644 src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs create mode 100644 src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs create mode 100644 src/VSCode.DebugAdapter/Transport/OneScriptDebuggerClient.cs rename src/VSCode.DebugAdapter/{OscriptProtocols => Transport}/ProtocolVersions.cs (80%) rename src/VSCode.DebugAdapter/{OscriptProtocols/Tcp => Transport}/RpcOperationException.cs (93%) rename src/VSCode.DebugAdapter/{OscriptProtocols/Tcp => Transport}/RpcProcessor.cs (99%) create mode 100644 src/VSCode.DebugAdapter/Transport/TransportException.cs create mode 100644 src/VSCode.DebugAdapter/Transport/TransportProtocols.cs diff --git a/src/OneScript.DebugProtocol/IDebuggerService.cs b/src/OneScript.DebugProtocol/IDebuggerService.cs index cbf40b56f..d9edb6cb6 100644 --- a/src/OneScript.DebugProtocol/IDebuggerService.cs +++ b/src/OneScript.DebugProtocol/IDebuggerService.cs @@ -77,7 +77,5 @@ public interface IDebuggerService int[] GetThreads(); int GetProcessId(); - - int GetProtocolVersion(); } } diff --git a/src/OneScript.DebugServices/DefaultDebugService.cs b/src/OneScript.DebugServices/DefaultDebugService.cs index fc2267a84..0bfebeb16 100644 --- a/src/OneScript.DebugServices/DefaultDebugService.cs +++ b/src/OneScript.DebugServices/DefaultDebugService.cs @@ -22,8 +22,6 @@ namespace OneScript.DebugServices { public class DefaultDebugService : IDebuggerService { - private const int CURRENT_PROTOCOL_VERSION = 3; - private readonly IBreakpointManager _breakpointManager; private readonly IVariableVisualizer _visualizer; private readonly ThreadManager _threadManager; @@ -249,10 +247,5 @@ private IList GetChildVariables(IVariable src) { return _visualizer.GetChildVariables(src.Value).ToList(); } - - public int GetProtocolVersion() - { - return CURRENT_PROTOCOL_VERSION; - } } } \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/ConsoleProcess.cs b/src/VSCode.DebugAdapter/ConsoleProcess.cs index ac342a2a9..58cf0c77a 100644 --- a/src/VSCode.DebugAdapter/ConsoleProcess.cs +++ b/src/VSCode.DebugAdapter/ConsoleProcess.cs @@ -10,6 +10,7 @@ This Source Code Form is subject to the terms of the using System.IO; using Newtonsoft.Json.Linq; using Serilog; +using VSCode.DebugAdapter.Transport; namespace VSCode.DebugAdapter { @@ -96,7 +97,6 @@ protected override void InitInternal(JObject args) RuntimeArguments = Utilities.ConcatArguments(options.RuntimeArgs); StartupScript = options.Program; ScriptArguments = Utilities.ConcatArguments(options.Args); - DebugProtocol = options.Protocol; DebugPort = options.DebugPort; Environment = options.Env; } @@ -108,10 +108,6 @@ protected override Process CreateProcess() { dbgArgs.Add($"-port={DebugPort}"); } - if (!string.IsNullOrEmpty(DebugProtocol)) - { - dbgArgs.Add($"-protocol={DebugProtocol}"); - } var debugArguments = string.Join(" ", dbgArgs); var process = new Process(); diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index c00f970e6..d0a1139d4 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -13,7 +13,7 @@ This Source Code Form is subject to the terms of the using System.Text; using Newtonsoft.Json.Linq; using Serilog; -using VSCode.DebugAdapter.OscriptProtocols; +using VSCode.DebugAdapter.Transport; using StackFrame = OneScript.DebugProtocol.StackFrame; namespace VSCode.DebugAdapter @@ -29,7 +29,7 @@ internal abstract class DebugeeProcess private Encoding _dapEncoding; - private TcpDebugServerClient _debugger; + private OneScriptDebuggerClient _debugger; private readonly PathHandlingStrategy _strategy; @@ -42,8 +42,6 @@ public DebugeeProcess(PathHandlingStrategy pathHandling) _strategy = pathHandling; } - public string DebugProtocol { get; protected set; } - public bool HasExited => _process?.HasExited ?? true; public int ExitCode => _process.ExitCode; @@ -54,8 +52,8 @@ public int ProtocolVersion get => _activeProtocolVersion; set { + ValidateProtocolVersion(value); _activeProtocolVersion = value; - SetupSupportedProtocolVersion(); } } @@ -137,9 +135,10 @@ private Encoding DefaultEncoding() return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? null : Encoding.UTF8; } - public void SetConnection(TcpDebugServerClient service) + public void SetClient(OneScriptDebuggerClient service) { _debugger = service; + ProtocolVersion = service.ProtocolVersion; } public event EventHandler OutputReceived; @@ -147,7 +146,7 @@ public void SetConnection(TcpDebugServerClient service) private void Process_Exited(object sender, EventArgs e) { - _debugger?.Disconnect(); + _debugger?.Stop(); Terminate(); ProcessExited?.Invoke(this, new EventArgs()); } @@ -161,29 +160,11 @@ private void Process_OutputDataReceived(object sender, DataReceivedEventArgs e) RaiseOutputReceivedEvent("stdout", e.Data); } - private void SetupSupportedProtocolVersion() + private void ValidateProtocolVersion(int value) { - if (!ProtocolVersions.IsValid(_activeProtocolVersion)) - { - _activeProtocolVersion = ProtocolVersions.SafestVersion; - return; - } - - if (_activeProtocolVersion != ProtocolVersions.UnknownVersion) - { - // Задали вручную корректное значение. Ничего не запрашиваем - return; - } - - try - { - Log.Debug("Requesting max protocol version"); - _activeProtocolVersion = _debugger.GetProtocolVersion(); - Log.Information("Protocol version is {ProtocolVersion}", _activeProtocolVersion); - } - catch (Exception e) + if (!ProtocolVersions.IsValid(value)) { - Log.Error(e, "Unknown error while checking version"); + throw new ArgumentOutOfRangeException($"Protocol version {value} is unknown."); } } diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index ca1baa1a3..3c70afaf3 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -8,10 +8,9 @@ This Source Code Form is subject to the terms of the using System.Collections.Generic; using System.IO; using System.Runtime.CompilerServices; -using Newtonsoft.Json; using OneScript.DebugProtocol; using Serilog; -using VSCode.DebugAdapter.OscriptProtocols; +using VSCode.DebugAdapter.Transport; using VSCodeDebug; @@ -102,13 +101,12 @@ public override void Launch(Response response, dynamic args) SendErrorResponse(response, 3012, "Can't launch debugee ({reason}).", new { reason = e.Message }); return; } - + + DebugClientFactory debugClientFactory; try { - var tcpConnector = new TcpDebugServerClient(_debuggee.DebugPort, this); - tcpConnector.Connect(); - - _debuggee.SetConnection(tcpConnector); + var tcpConnection = ConnectionFactory.Connect(_debuggee.DebugPort); + debugClientFactory = new DebugClientFactory(tcpConnection, this); } catch (Exception e) { @@ -118,9 +116,9 @@ public override void Launch(Response response, dynamic args) SendErrorResponse(response, 4550, "Can't connect: " + e.ToString()); return; } - - SetupProtocol(args); + _debuggee.SetClient(debugClientFactory.CreateDebugClient()); + SendResponse(response); } @@ -139,29 +137,17 @@ private void SubscribeForDebuggeeProcessEvents() }; } - private void SetupProtocol(dynamic args) - { - int protocolVersion = GetFromContainer(args, "protocolVersion", 0); - if (ProtocolVersions.IsValid(protocolVersion)) - { - _debuggee.ProtocolVersion = protocolVersion; - } - } - public override void Attach(Response response, dynamic arguments) { LogCommandReceived(); SubscribeForDebuggeeProcessEvents(); _debuggee.DebugPort = GetFromContainer(arguments, "debugPort", 2801); + DebugClientFactory debugClientFactory; try { - var tcpConnector = new TcpDebugServerClient(_debuggee.DebugPort, this); - tcpConnector.Connect(); - Log.Debug("Connected to debuggee on port {Port}", _debuggee.DebugPort); - - _debuggee.SetConnection(tcpConnector); - _debuggee.InitAttached(); + var tcpConnection = ConnectionFactory.Connect(_debuggee.DebugPort); + debugClientFactory = new DebugClientFactory(tcpConnection, this); } catch (Exception e) { @@ -169,9 +155,19 @@ public override void Attach(Response response, dynamic arguments) SendErrorResponse(response, 4550, "Can't connect: " + e.ToString()); return; } - - SetupProtocol(arguments); + _debuggee.SetClient(debugClientFactory.CreateDebugClient()); + try + { + _debuggee.InitAttached(); + } + catch (Exception e) + { + Log.Error(e, "Attach failed"); + SendErrorResponse(response, 4550, "Attach failed: " + e.ToString()); + return; + } + SendResponse(response); } @@ -235,13 +231,15 @@ public override void SetBreakpoints(Response response, dynamic arguments) var breaks = new List(); + var useConditions = _debuggee.ProtocolVersion >= ProtocolVersions.Version2; + foreach (var srcBreakpoint in arguments.breakpoints) { var bpt = new OneScript.DebugProtocol.Breakpoint { Line = (int)srcBreakpoint.line, Source = path, - Condition = srcBreakpoint.condition ?? string.Empty + Condition = useConditions ? srcBreakpoint.condition ?? string.Empty : string.Empty }; breaks.Add(bpt); } diff --git a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs b/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs deleted file mode 100644 index abb82dc62..000000000 --- a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/TcpDebugServerClient.cs +++ /dev/null @@ -1,308 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.IO; -using System.Linq; -using System.Net.Sockets; -using System.Runtime.CompilerServices; -using System.Text; -using System.Threading; -using OneScript.DebugProtocol; -using OneScript.DebugProtocol.Abstractions; -using OneScript.DebugProtocol.TcpServer; -using Serilog; -using VSCode.DebugAdapter.OscriptProtocols; - -namespace VSCode.DebugAdapter -{ - public class TcpDebugServerClient : IDebuggerService - { - private readonly int _port; - private readonly IDebugEventListener _eventBackChannel; - private BinaryChannel _commandsChannel; - private RpcProcessor _processor; - - private readonly ILogger Log = Serilog.Log.ForContext(); - - public TcpDebugServerClient(int port, IDebugEventListener eventBackChannel) - { - _port = port; - _eventBackChannel = eventBackChannel; - } - - private int _protocolVersion = ProtocolVersions.SafestVersion; - - public void Connect() - { - var debuggerUri = GetDebuggerUri(_port); - - var client = new TcpClient(); - TryConnect(client, debuggerUri); - - _commandsChannel = new BinaryChannel(client); - - Log.Debug("Connected to {Host}:{Port}", debuggerUri.Host, debuggerUri.Port); - ReconcileDataFormat(client); - - RunEventsListener(_commandsChannel); - } - - private void ReconcileDataFormat(TcpClient client) - { - Log.Verbose("Sending reconcile message"); - var stream = client.GetStream(); - stream.Write(FormatReconcileUtils.FORMAT_RECONCILE_MAGIC, 0, FormatReconcileUtils.FORMAT_RECONCILE_MAGIC.Length); - - var pollResult = client.Client - .Poll(FormatReconcileUtils.FORMAT_RECONCILE_TIMEOUT.Milliseconds * 1000, SelectMode.SelectRead); - - if (pollResult) - { - Log.Verbose("Reconcile data available. Waiting for full data"); - var attempts = 0; - const int WAIT_ATTEMPTS = 3; - const int ATTEMPT_INTERVAL = 250; - - var requiredDataLength = FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length + sizeof(int); - while (client.Client.Available < requiredDataLength && attempts < WAIT_ATTEMPTS) - { - attempts++; - Log.Verbose("Attempt # {Attempt}", attempts); - Thread.Sleep(ATTEMPT_INTERVAL); - } - - if (client.Client.Available >= requiredDataLength) - { - Log.Verbose("We have data available. Reading reconcile response"); - var dataBuffer = new byte[requiredDataLength]; - using var binaryReader = new BinaryReader(stream, Encoding.ASCII, true); - binaryReader.Read(dataBuffer, 0, FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); - - if (!FormatReconcileUtils.CheckReconcilePrefix(dataBuffer)) - { - Log.Verbose("Received data is not reconcile message"); - SelectSafestFormat(); - return; - } - - var formatVersion = binaryReader.ReadInt32(); - Log.Verbose("Received format version {FormatVersion}", formatVersion); - _protocolVersion = ProtocolVersions.Adjust(formatVersion); - Log.Verbose("Active protocol version {ProtocolVersion}", _protocolVersion); - } - else - { - SelectSafestFormat(); - } - } - else - { - SelectSafestFormat(); - } - } - - private void SelectSafestFormat() - { - Log.Verbose("Reconcilation failed, selecting safest format"); - _protocolVersion = ProtocolVersions.SafestVersion; - } - - public void Disconnect() - { - _processor.Stop(); - _commandsChannel.Dispose(); - } - - private static Uri GetDebuggerUri(int port) - { - var builder = new UriBuilder(); - builder.Scheme = "net.tcp"; - builder.Port = port; - builder.Host = "localhost"; - - return builder.Uri; - } - - private void TryConnect(TcpClient client, Uri debuggerUri) - { - const int limit = 3; - // TODO: параметризовать ожидания и попытки - for (int i = 0; i < limit; ++i) - { - try - { - client.Connect(debuggerUri.Host, debuggerUri.Port); - break; - } - catch (SocketException) - { - if (i == limit - 1) - throw; - - Log.Warning("Error. Retry connect {Attempt}", i); - Thread.Sleep(1500); - } - } - } - - private void RunEventsListener(ICommunicationChannel channelToListen) - { - var server = new DefaultMessageServer(channelToListen); - server.ServerThreadName = "dbg-client-event-listener"; - - _processor = new RpcProcessor(server); - _processor.AddChannel( - nameof(IDebugEventListener), - typeof(IDebugEventListener), - _eventBackChannel); - - _processor.AddChannel( - nameof(IDebuggerService), - typeof(IDebuggerService), - this); - - _processor.Start(); - } - - private void WriteCommand(T data, [CallerMemberName] string command = "") - { - Log.Verbose("Sending {Command} to debuggee, param {@Parameter}", command, data); - var dto = RpcCall.Create(nameof(IDebuggerService), command, data); - _commandsChannel.Write(dto); - Log.Verbose("Successfully written: {Command}", command); - - } - - private void WriteCommand(object[] data, [CallerMemberName] string command = "") - { - Log.Verbose("Sending {Command} to debuggee, params {@Parameters}", command, data); - var dto = RpcCall.Create(nameof(IDebuggerService), command, data); - _commandsChannel.Write(dto); - Log.Verbose("Successfully written: {Command}", command); - } - - private T GetResponse() - { - var rpcResult = _processor.GetResult(); - Log.Verbose("Response received {Result} = {@Value}", rpcResult.Id, rpcResult.ReturnValue); - if (rpcResult.ReturnValue is RpcExceptionDto excDto) - { - Log.Verbose("RPC Exception received: {Description}", excDto.Description); - throw new RpcOperationException(excDto); - } - - return (T) rpcResult.ReturnValue; - } - - public void Execute(int threadId) - { - WriteCommand(threadId); - } - - public void SetMachineExceptionBreakpoints((string Id, string Condition)[] filters) - { - WriteCommand(filters); - } - - public Breakpoint[] SetMachineBreakpoints(Breakpoint[] breaksToSet) - { - WriteCommand(breaksToSet); - return GetResponse(); - } - - public StackFrame[] GetStackFrames(int threadId) - { - WriteCommand(threadId); - return GetResponse(); - } - - public Variable[] GetVariables(int threadId, int frameIndex, int[] path) - { - WriteCommand(new object[] - { - threadId, - frameIndex, - path - }); - - return GetResponse(); - } - - public Variable[] GetEvaluatedVariables(string expression, int threadId, int frameIndex, int[] path) - { - WriteCommand(new object[] - { - expression, - threadId, - frameIndex, - path - }); - - return GetResponse(); - } - - public Variable Evaluate(int threadId, int contextFrame, string expression) - { - WriteCommand(new object[] - { - threadId, - contextFrame, - expression - }); - - return GetResponse(); - } - - public void Next(int threadId) - { - WriteCommand(threadId); - } - - public void StepIn(int threadId) - { - WriteCommand(threadId); - } - - public void StepOut(int threadId) - { - WriteCommand(threadId); - } - - public void Disconnect(bool terminate) - { - WriteCommand(terminate); - Disconnect(); - } - - public int[] GetThreads() - { - WriteCommand(null); - return GetResponse(); - } - - public int GetProcessId() - { - WriteCommand(null); - return GetResponse(); - } - - public int GetProtocolVersion() - { - WriteCommand(null); - try - { - return ProtocolVersions.Adjust(GetResponse()); - } - catch (RpcOperationException e) - { - Log.Information("Checking version returned error: {Err}", e.Message); - return ProtocolVersions.SafestVersion; - } - } - } -} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/ServerProcess.cs b/src/VSCode.DebugAdapter/ServerProcess.cs index dfc9ad9ac..68e6e7441 100644 --- a/src/VSCode.DebugAdapter/ServerProcess.cs +++ b/src/VSCode.DebugAdapter/ServerProcess.cs @@ -9,6 +9,7 @@ This Source Code Form is subject to the terms of the using System.Diagnostics; using System.IO; using Newtonsoft.Json.Linq; +using VSCode.DebugAdapter.Transport; namespace VSCode.DebugAdapter { @@ -108,7 +109,6 @@ protected override void InitInternal(JObject args) WorkingDirectory = options.AppDir; DebugPort = options.DebugPort; Environment = options.Env; - DebugProtocol = "tcp"; WaitOnStart = options.WaitOnStart; } } diff --git a/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs b/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs new file mode 100644 index 000000000..4a2ac200e --- /dev/null +++ b/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs @@ -0,0 +1,59 @@ +using System; +using System.Net.Sockets; +using System.Threading; +using Serilog; +using Serilog.Core; + +namespace VSCode.DebugAdapter.Transport +{ + public static class ConnectionFactory + { + private static ILogger Log { get; set; } = Logger.None; + + public static TcpClient Connect(int port) + { + Log = Serilog.Log.ForContext(typeof(ConnectionFactory)); + + var debuggerUri = GetDebuggerUri(port); + + var client = new TcpClient(); + TryConnect(client, debuggerUri); + + return client; + } + + private static Uri GetDebuggerUri(int port) + { + var builder = new UriBuilder(); + builder.Scheme = "net.tcp"; + builder.Port = port; + builder.Host = "localhost"; + + return builder.Uri; + } + + private static void TryConnect(TcpClient client, Uri debuggerUri) + { + const int limit = 3; + // TODO: параметризовать ожидания и попытки + for (int i = 0; i < limit; ++i) + { + try + { + client.Connect(debuggerUri.Host, debuggerUri.Port); + break; + } + catch (SocketException) + { + if (i == limit - 1) + throw; + + Log.Warning("Error. Retry connect {Attempt}", i); + Thread.Sleep(1500); + } + } + + Log.Debug("Connected to {Host}:{Port}", debuggerUri.Host, debuggerUri.Port); + } + } +} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs new file mode 100644 index 000000000..569526e4a --- /dev/null +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -0,0 +1,114 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using OneScript.DebugProtocol; +using OneScript.DebugProtocol.Abstractions; +using OneScript.DebugProtocol.TcpServer; +using Serilog; + +namespace VSCode.DebugAdapter.Transport +{ + public class DebugClientFactory + { + private readonly TcpClient _tcpClient; + private readonly IDebugEventListener _eventsListener; + + private readonly ILogger Log = Serilog.Log.ForContext(); + + public DebugClientFactory(TcpClient tcpClient, IDebugEventListener eventsListener) + { + _tcpClient = tcpClient; + _eventsListener = eventsListener; + } + + private TransportProtocols _transport = TransportProtocols.Invalid; + private int _protocolVersion = ProtocolVersions.SafestVersion; + + public OneScriptDebuggerClient CreateDebugClient() + { + ReconcileDataFormat(_tcpClient); + + ICommunicationChannel commandsChannel; + + switch (_transport) + { + case TransportProtocols.Json: + throw new NotImplementedException(); + case TransportProtocols.Binary: + commandsChannel = new BinaryChannel(_tcpClient); + break; + default: + throw new InvalidOperationException("Should not get here. [Transport protocol selection]"); + }; + + var client = new OneScriptDebuggerClient(commandsChannel, _eventsListener, _protocolVersion); + client.Start(); + + return client; + } + + private void ReconcileDataFormat(TcpClient client) + { + Log.Verbose("Sending reconcile message"); + var stream = client.GetStream(); + stream.Write(FormatReconcileUtils.FORMAT_RECONCILE_MAGIC, 0, FormatReconcileUtils.FORMAT_RECONCILE_MAGIC.Length); + + var pollResult = client.Client + .Poll(FormatReconcileUtils.FORMAT_RECONCILE_TIMEOUT.Milliseconds * 1000, SelectMode.SelectRead); + + if (pollResult) + { + Log.Verbose("Reconcile data available. Waiting for full data"); + var attempts = 0; + const int WAIT_ATTEMPTS = 3; + const int ATTEMPT_INTERVAL = 250; + + var requiredDataLength = FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length + sizeof(int); + while (client.Client.Available < requiredDataLength && attempts < WAIT_ATTEMPTS) + { + attempts++; + Log.Verbose("Attempt # {Attempt}", attempts); + Thread.Sleep(ATTEMPT_INTERVAL); + } + + if (client.Client.Available >= requiredDataLength) + { + Log.Verbose("We have data available. Reading reconcile response"); + var dataBuffer = new byte[requiredDataLength]; + using var binaryReader = new BinaryReader(stream, Encoding.ASCII, true); + binaryReader.Read(dataBuffer, 0, FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); + + if (!FormatReconcileUtils.CheckReconcilePrefix(dataBuffer)) + { + Log.Verbose("Received data is not reconcile message"); + SelectSafestFormat(); + return; + } + + var formatVersion = binaryReader.ReadInt32(); + Log.Verbose("Received format version {FormatVersion}", formatVersion); + _protocolVersion = ProtocolVersions.Adjust(formatVersion); + Log.Verbose("Active protocol version {ProtocolVersion}", _protocolVersion); + } + else + { + SelectSafestFormat(); + } + } + else + { + SelectSafestFormat(); + } + } + + private void SelectSafestFormat() + { + Log.Verbose("Reconcilation failed, selecting safest format"); + _protocolVersion = ProtocolVersions.SafestVersion; + _transport = TransportProtocols.Binary; + } + } +} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/Transport/OneScriptDebuggerClient.cs b/src/VSCode.DebugAdapter/Transport/OneScriptDebuggerClient.cs new file mode 100644 index 000000000..3fa2822a2 --- /dev/null +++ b/src/VSCode.DebugAdapter/Transport/OneScriptDebuggerClient.cs @@ -0,0 +1,189 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System.Runtime.CompilerServices; +using OneScript.DebugProtocol; +using OneScript.DebugProtocol.Abstractions; +using OneScript.DebugProtocol.TcpServer; +using Serilog; + +namespace VSCode.DebugAdapter.Transport +{ + public class OneScriptDebuggerClient : IDebuggerService + { + private readonly IDebugEventListener _eventBackChannel; + private readonly ICommunicationChannel _commandsChannel; + private RpcProcessor _processor; + + private readonly ILogger Log = Serilog.Log.ForContext(); + + public OneScriptDebuggerClient( + ICommunicationChannel commandsChannel, + IDebugEventListener eventBackChannel, + int protocolVersion) + { + _commandsChannel = commandsChannel; + _eventBackChannel = eventBackChannel; + ProtocolVersion = protocolVersion; + } + + public int ProtocolVersion { get; } + + public void Start() + { + RunEventsListener(_commandsChannel); + } + + public void Stop() + { + _processor.Stop(); + _commandsChannel.Dispose(); + } + + private void RunEventsListener(ICommunicationChannel channelToListen) + { + var server = new DefaultMessageServer(channelToListen); + server.ServerThreadName = "dbg-client-event-listener"; + + _processor = new RpcProcessor(server); + _processor.AddChannel( + nameof(IDebugEventListener), + typeof(IDebugEventListener), + _eventBackChannel); + + _processor.AddChannel( + nameof(IDebuggerService), + typeof(IDebuggerService), + this); + + _processor.Start(); + Log.Debug("Debuggee event listener started"); + } + + private void WriteCommand(T data, [CallerMemberName] string command = "") + { + Log.Verbose("Sending {Command} to debuggee, param {@Parameter}", command, data); + var dto = RpcCall.Create(nameof(IDebuggerService), command, data); + _commandsChannel.Write(dto); + Log.Verbose("Successfully written: {Command}", command); + + } + + private void WriteCommand(object[] data, [CallerMemberName] string command = "") + { + Log.Verbose("Sending {Command} to debuggee, params {@Parameters}", command, data); + var dto = RpcCall.Create(nameof(IDebuggerService), command, data); + _commandsChannel.Write(dto); + Log.Verbose("Successfully written: {Command}", command); + } + + private T GetResponse() + { + var rpcResult = _processor.GetResult(); + Log.Verbose("Response received {Result} = {@Value}", rpcResult.Id, rpcResult.ReturnValue); + if (rpcResult.ReturnValue is RpcExceptionDto excDto) + { + Log.Verbose("RPC Exception received: {Description}", excDto.Description); + throw new RpcOperationException(excDto); + } + + return (T) rpcResult.ReturnValue; + } + + public void Execute(int threadId) + { + WriteCommand(threadId); + } + + public void SetMachineExceptionBreakpoints((string Id, string Condition)[] filters) + { + WriteCommand(filters); + } + + public Breakpoint[] SetMachineBreakpoints(Breakpoint[] breaksToSet) + { + WriteCommand(breaksToSet); + return GetResponse(); + } + + public StackFrame[] GetStackFrames(int threadId) + { + WriteCommand(threadId); + return GetResponse(); + } + + public Variable[] GetVariables(int threadId, int frameIndex, int[] path) + { + WriteCommand(new object[] + { + threadId, + frameIndex, + path + }); + + return GetResponse(); + } + + public Variable[] GetEvaluatedVariables(string expression, int threadId, int frameIndex, int[] path) + { + WriteCommand(new object[] + { + expression, + threadId, + frameIndex, + path + }); + + return GetResponse(); + } + + public Variable Evaluate(int threadId, int contextFrame, string expression) + { + WriteCommand(new object[] + { + threadId, + contextFrame, + expression + }); + + return GetResponse(); + } + + public void Next(int threadId) + { + WriteCommand(threadId); + } + + public void StepIn(int threadId) + { + WriteCommand(threadId); + } + + public void StepOut(int threadId) + { + WriteCommand(threadId); + } + + public void Disconnect(bool terminate) + { + WriteCommand(terminate); + Stop(); + } + + public int[] GetThreads() + { + WriteCommand(null); + return GetResponse(); + } + + public int GetProcessId() + { + WriteCommand(null); + return GetResponse(); + } + } +} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/OscriptProtocols/ProtocolVersions.cs b/src/VSCode.DebugAdapter/Transport/ProtocolVersions.cs similarity index 80% rename from src/VSCode.DebugAdapter/OscriptProtocols/ProtocolVersions.cs rename to src/VSCode.DebugAdapter/Transport/ProtocolVersions.cs index 7fdd85184..2f8eb2e07 100644 --- a/src/VSCode.DebugAdapter/OscriptProtocols/ProtocolVersions.cs +++ b/src/VSCode.DebugAdapter/Transport/ProtocolVersions.cs @@ -5,7 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -namespace VSCode.DebugAdapter.OscriptProtocols +namespace VSCode.DebugAdapter.Transport { public static class ProtocolVersions { @@ -33,15 +33,10 @@ public static int Adjust(int valueToAdjust) public const int Version1 = 1; /// - /// После появления условных брейкпоинтов, но до появления метода GetVersion + /// После появления условных брейкпоинтов /// public const int Version2 = 2; - /// - /// После появления метода GetProtocolVersion, который запрашивает Debuggee - /// - public const int Version3 = 3; - /// /// Значение, безопасное для всех версий движка /// @@ -50,6 +45,6 @@ public static int Adjust(int valueToAdjust) /// /// Контрольное значение /// - public const int LatestKnownVersion = Version3; + public const int LatestKnownVersion = Version2; } } \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcOperationException.cs b/src/VSCode.DebugAdapter/Transport/RpcOperationException.cs similarity index 93% rename from src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcOperationException.cs rename to src/VSCode.DebugAdapter/Transport/RpcOperationException.cs index a38e4b5b6..e994cf92e 100644 --- a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcOperationException.cs +++ b/src/VSCode.DebugAdapter/Transport/RpcOperationException.cs @@ -8,7 +8,7 @@ This Source Code Form is subject to the terms of the using System; using OneScript.DebugProtocol.TcpServer; -namespace VSCode.DebugAdapter +namespace VSCode.DebugAdapter.Transport { public class RpcOperationException : ApplicationException { diff --git a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcProcessor.cs b/src/VSCode.DebugAdapter/Transport/RpcProcessor.cs similarity index 99% rename from src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcProcessor.cs rename to src/VSCode.DebugAdapter/Transport/RpcProcessor.cs index 1dae4cebc..8cb2a678f 100644 --- a/src/VSCode.DebugAdapter/OscriptProtocols/Tcp/RpcProcessor.cs +++ b/src/VSCode.DebugAdapter/Transport/RpcProcessor.cs @@ -13,7 +13,7 @@ This Source Code Form is subject to the terms of the using OneScript.DebugProtocol.TcpServer; using Serilog; -namespace VSCode.DebugAdapter +namespace VSCode.DebugAdapter.Transport { public class RpcProcessor { diff --git a/src/VSCode.DebugAdapter/Transport/TransportException.cs b/src/VSCode.DebugAdapter/Transport/TransportException.cs new file mode 100644 index 000000000..3b1635232 --- /dev/null +++ b/src/VSCode.DebugAdapter/Transport/TransportException.cs @@ -0,0 +1,11 @@ +using System; + +namespace VSCode.DebugAdapter.Transport +{ + public class TransportException : ApplicationException + { + public TransportException(string message) : base(message) + { + } + } +} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs b/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs new file mode 100644 index 000000000..3a39a7c34 --- /dev/null +++ b/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs @@ -0,0 +1,10 @@ +namespace VSCode.DebugAdapter.Transport +{ + public enum TransportProtocols + { + Auto, + Binary, + Json, + Invalid, + } +} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/package.json b/src/VSCode.DebugAdapter/package.json index 86efb43a9..5a922ffba 100644 --- a/src/VSCode.DebugAdapter/package.json +++ b/src/VSCode.DebugAdapter/package.json @@ -113,11 +113,6 @@ "type": "string", "description": "Кодировка вывода отлаживаемого приложения. Отладчик будет интерпретировать вывод приложения в указанной кодировке", "default": "" - }, - "protocolVersion": { - "type": "number", - "description": "Версия протокола отладки, поддерживаемая движком 1Скрипт", - "default": 0 } } }, @@ -132,11 +127,6 @@ "type": "string", "description": "Кодировка вывода отлаживаемого приложения. Отладчик будет интерпретировать вывод приложения в указанной кодировке", "default": "" - }, - "protocolVersion": { - "type": "number", - "description": "Версия протокола отладки, поддерживаемая движком 1Скрипт", - "default": 0 } } } diff --git a/src/oscript/DebugBehavior.cs b/src/oscript/DebugBehavior.cs index c00cceb67..eb7ee028a 100644 --- a/src/oscript/DebugBehavior.cs +++ b/src/oscript/DebugBehavior.cs @@ -56,6 +56,7 @@ public static AppBehavior Create(CmdLineHelper helper) } else if (parsedArg.Name == "-protocol") { + // Обратная совместимость, не используется в реальности continue; } else From 9f1392605fb505268a1147e723306b6758cd7918 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Mon, 14 Jul 2025 17:07:41 +0300 Subject: [PATCH 028/191] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D1=83=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B1=D1=8B=D1=82=D0=B8=D0=B9=20=D0=B8=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=82=D0=B5=D0=B9=D0=BD=D0=B5=D1=80=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B2=20=D0=BE=D1=82?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OneScriptDebuggerClient.cs | 3 +- .../OscriptDebugEventsListener.cs | 61 +++++++++++++++++ .../OscriptDebugSession.cs | 68 ++++++------------- .../ThreadStateContainer.cs | 26 +++++++ 4 files changed, 108 insertions(+), 50 deletions(-) rename src/VSCode.DebugAdapter/{Transport => }/OneScriptDebuggerClient.cs (98%) create mode 100644 src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs create mode 100644 src/VSCode.DebugAdapter/ThreadStateContainer.cs diff --git a/src/VSCode.DebugAdapter/Transport/OneScriptDebuggerClient.cs b/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs similarity index 98% rename from src/VSCode.DebugAdapter/Transport/OneScriptDebuggerClient.cs rename to src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs index 3fa2822a2..15a2f2040 100644 --- a/src/VSCode.DebugAdapter/Transport/OneScriptDebuggerClient.cs +++ b/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs @@ -10,8 +10,9 @@ This Source Code Form is subject to the terms of the using OneScript.DebugProtocol.Abstractions; using OneScript.DebugProtocol.TcpServer; using Serilog; +using VSCode.DebugAdapter.Transport; -namespace VSCode.DebugAdapter.Transport +namespace VSCode.DebugAdapter { public class OneScriptDebuggerClient : IDebuggerService { diff --git a/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs b/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs new file mode 100644 index 000000000..70d0ad543 --- /dev/null +++ b/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs @@ -0,0 +1,61 @@ +using System.Runtime.CompilerServices; +using OneScript.DebugProtocol; +using Serilog; +using VSCodeDebug; + +namespace VSCode.DebugAdapter +{ + public class OscriptDebugEventsListener : IDebugEventListener + { + private readonly DebugSession _session; + private readonly ThreadStateContainer _threadState; + private readonly ILogger Log = Serilog.Log.ForContext(); + + public OscriptDebugEventsListener(DebugSession session, ThreadStateContainer threadState) + { + _session = session; + _threadState = threadState; + } + + public void ThreadStopped(int threadId, ThreadStopReason reason) + { + LogEventOccured(); + _threadState.Reset(); + _session.SendEvent(new StoppedEvent(threadId, reason.ToString())); + } + + public void ThreadStoppedEx(int threadId, ThreadStopReason reason, string errorMessage) + { + LogEventOccured(); + _threadState.Reset(); + + if (!string.IsNullOrEmpty(errorMessage)) + SendOutput("stderr", errorMessage); + + _session.SendEvent(new StoppedEvent(threadId, reason.ToString())); + } + + public void ProcessExited(int exitCode) + { + LogEventOccured(); + _session.SendEvent(new ExitedEvent(exitCode)); + } + + private void SendOutput(string category, string data) + { + if (!string.IsNullOrEmpty(data)) + { + if (data[data.Length - 1] != '\n') + { + data += '\n'; + } + _session.SendEvent(new OutputEvent(category, data)); + } + } + + private void LogEventOccured([CallerMemberName] string eventName = "") + { + Log.Debug("Event occured {Event}", eventName); + } + } +} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 3c70afaf3..c6488f555 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -16,19 +16,16 @@ This Source Code Form is subject to the terms of the namespace VSCode.DebugAdapter { - internal class OscriptDebugSession : DebugSession, IDebugEventListener + internal class OscriptDebugSession : DebugSession { private DebugeeProcess _debuggee; private bool _startupPerformed = false; - private readonly Handles _framesHandles; - private readonly Handles _variableHandles; + private ThreadStateContainer _threadState = new ThreadStateContainer(); private readonly ILogger Log = Serilog.Log.ForContext(); public OscriptDebugSession() : base(true, false) { - _framesHandles = new Handles(); - _variableHandles = new Handles(); } private string AdapterID { get; set; } @@ -105,8 +102,7 @@ public override void Launch(Response response, dynamic args) DebugClientFactory debugClientFactory; try { - var tcpConnection = ConnectionFactory.Connect(_debuggee.DebugPort); - debugClientFactory = new DebugClientFactory(tcpConnection, this); + debugClientFactory = ConnectDebugServer(); } catch (Exception e) { @@ -146,8 +142,7 @@ public override void Attach(Response response, dynamic arguments) DebugClientFactory debugClientFactory; try { - var tcpConnection = ConnectionFactory.Connect(_debuggee.DebugPort); - debugClientFactory = new DebugClientFactory(tcpConnection, this); + debugClientFactory = ConnectDebugServer(); } catch (Exception e) { @@ -171,6 +166,13 @@ public override void Attach(Response response, dynamic arguments) SendResponse(response); } + private DebugClientFactory ConnectDebugServer() + { + var tcpConnection = ConnectionFactory.Connect(_debuggee.DebugPort); + var listener = new OscriptDebugEventsListener(this, _threadState); + return new DebugClientFactory(tcpConnection, listener); + } + public override void Disconnect(Response response, dynamic arguments) { LogCommandReceived(new { Terminate = arguments.terminateDebuggee }); @@ -273,33 +275,6 @@ private string NormalizeDriveLetter(string path) } - public void ThreadStopped(int threadId, ThreadStopReason reason) - { - LogEventOccured(); - _framesHandles.Reset(); - _variableHandles.Reset(); - - SendEvent(new StoppedEvent(threadId, reason.ToString())); - } - - public void ThreadStoppedEx(int threadId, ThreadStopReason reason, string errorMessage) - { - LogEventOccured(); - _framesHandles.Reset(); - _variableHandles.Reset(); - - if (!string.IsNullOrEmpty(errorMessage)) - SendOutput("stderr", errorMessage); - - SendEvent(new StoppedEvent(threadId, reason.ToString())); - } - - public void ProcessExited(int exitCode) - { - LogEventOccured(); - SendEvent(new ExitedEvent(exitCode)); - } - public override void ConfigurationDone(Response response, dynamic args) { if (_debuggee == null) @@ -378,7 +353,7 @@ public override void StackTrace(Response response, dynamic arguments) for (int i = 0; i < processFrames.Length; i++) { frames[i] = new VSCodeDebug.StackFrame( - _framesHandles.Create(processFrames[i]), + _threadState.RegisterFrame(processFrames[i]), processFrames[i].MethodName, processFrames[i].GetSource(), processFrames[i].LineNumber, 0); @@ -391,14 +366,14 @@ public override void Scopes(Response response, dynamic arguments) { LogCommandReceived(); int frameId = GetFromContainer(arguments, "frameId", 0); - var frame = _framesHandles.Get(frameId, null); + var frame = _threadState.GetFrameById(frameId); if (frame == null) { SendErrorResponse(response, 10001, "No active stackframe"); return; } - - var frameVariablesHandle = _variableHandles.Create(frame); + + var frameVariablesHandle = _threadState.RegisterVariableContainer(frame); var localScope = new Scope("Локальные переменные", frameVariablesHandle); SendResponse(response, new ScopesResponseBody(new Scope[] {localScope})); } @@ -407,7 +382,7 @@ public override void Variables(Response response, dynamic arguments) { LogCommandReceived(); int varsHandle = GetFromContainer(arguments, "variablesReference", 0); - var variables = _variableHandles.Get(varsHandle, null); + var variables = _threadState.GetVariableContainerById(varsHandle); if (variables == null) { SendErrorResponse(response, 10001, "No active stackframe"); @@ -424,7 +399,7 @@ public override void Variables(Response response, dynamic arguments) if (variable.IsStructured && variable.ChildrenHandleID == 0) { - variable.ChildrenHandleID = _variableHandles.Create(variables.CreateChildLocator(i)); + variable.ChildrenHandleID = _threadState.RegisterVariableContainer(variables.CreateChildLocator(i)); } responseArray[i] = new VSCodeDebug.Variable( @@ -455,7 +430,7 @@ public override void Evaluate(Response response, dynamic arguments) LogCommandReceived(); // expression, frameId, context int frameId = GetFromContainer(arguments, "frameId", 0); - var frame = _framesHandles.Get(frameId, null); + var frame = _threadState.GetFrameById(frameId); if (frame == null) { SendErrorResponse(response, 10001, "No active stackframe"); @@ -476,7 +451,7 @@ public override void Evaluate(Response response, dynamic arguments) if (evalResult.IsStructured) { var loc = new EvaluatedVariableLocator(expression, frame.ThreadId, frame.Index); - id = _variableHandles.Create(loc); + id = _threadState.RegisterVariableContainer(loc); } } catch (Exception e) @@ -531,10 +506,5 @@ private void LogCommandReceived(dynamic args = null, [CallerMemberName] string c else Log.Debug("Command received {Command}: {@Args}", commandName, args); } - - private void LogEventOccured([CallerMemberName] string eventName = "") - { - Log.Debug("Event occured {Event}", eventName); - } } } diff --git a/src/VSCode.DebugAdapter/ThreadStateContainer.cs b/src/VSCode.DebugAdapter/ThreadStateContainer.cs new file mode 100644 index 000000000..7654ab52d --- /dev/null +++ b/src/VSCode.DebugAdapter/ThreadStateContainer.cs @@ -0,0 +1,26 @@ +using OneScript.DebugProtocol; + +namespace VSCode.DebugAdapter +{ + public class ThreadStateContainer + { + private readonly Handles _framesHandles = new Handles(); + private readonly Handles _variableHandles = new Handles(); + + public void Reset() + { + _framesHandles.Reset(); + _variableHandles.Reset(); + } + + public int RegisterFrame(StackFrame processFrame) => _framesHandles.Create(processFrame); + + public StackFrame GetFrameById(int id) => _framesHandles.Get(id, null); + + public int RegisterVariableContainer(StackFrame frame) => _variableHandles.Create(frame); + + public int RegisterVariableContainer(IVariableLocator parent) => _variableHandles.Create(parent); + + public IVariableLocator GetVariableContainerById(int id) => _variableHandles.Get(id, null); + } +} \ No newline at end of file From d4ff53b6b01fb417081e6d8aafab0b3ac00b7556 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Tue, 15 Jul 2025 10:31:17 +0300 Subject: [PATCH 029/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BB=20=D1=81=D0=B5=D1=80=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D0=BA=D0=B8,=20?= =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D1=81=D0=BB=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=20binary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => Internal}/DelayedConnectionChannel.cs | 4 ++-- .../{BinaryTcpDebugServer.cs => TcpDebugServer.cs} | 5 +++-- src/oscript/DebugBehavior.cs | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) rename src/OneScript.DebugServices/{ => Internal}/DelayedConnectionChannel.cs (94%) rename src/OneScript.DebugServices/{BinaryTcpDebugServer.cs => TcpDebugServer.cs} (92%) diff --git a/src/OneScript.DebugServices/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs similarity index 94% rename from src/OneScript.DebugServices/DelayedConnectionChannel.cs rename to src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs index 86fba46d2..2401a0344 100644 --- a/src/OneScript.DebugServices/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs @@ -10,9 +10,9 @@ This Source Code Form is subject to the terms of the using OneScript.DebugProtocol; using OneScript.DebugProtocol.Abstractions; -namespace OneScript.DebugServices +namespace OneScript.DebugServices.Internal { - public class DelayedConnectionChannel : ICommunicationChannel + internal class DelayedConnectionChannel : ICommunicationChannel { private TcpListener _listener; private ICommunicationChannel _connectedChannel; diff --git a/src/OneScript.DebugServices/BinaryTcpDebugServer.cs b/src/OneScript.DebugServices/TcpDebugServer.cs similarity index 92% rename from src/OneScript.DebugServices/BinaryTcpDebugServer.cs rename to src/OneScript.DebugServices/TcpDebugServer.cs index 9648e4b4b..767d3c721 100644 --- a/src/OneScript.DebugServices/BinaryTcpDebugServer.cs +++ b/src/OneScript.DebugServices/TcpDebugServer.cs @@ -7,15 +7,16 @@ This Source Code Form is subject to the terms of the using System.Net.Sockets; using OneScript.DebugProtocol.TcpServer; +using OneScript.DebugServices.Internal; using ScriptEngine.Machine; namespace OneScript.DebugServices { - public class BinaryTcpDebugServer + public class TcpDebugServer { private readonly int _port; - public BinaryTcpDebugServer(int port) + public TcpDebugServer(int port) { _port = port; } diff --git a/src/oscript/DebugBehavior.cs b/src/oscript/DebugBehavior.cs index eb7ee028a..1f0be074d 100644 --- a/src/oscript/DebugBehavior.cs +++ b/src/oscript/DebugBehavior.cs @@ -21,7 +21,7 @@ public DebugBehavior(int port, string path, string[] args) : base(path, args) public override int Execute() { - var tcpDebugServer = new BinaryTcpDebugServer(_port); + var tcpDebugServer = new TcpDebugServer(_port); DebugController = tcpDebugServer.CreateDebugController(); From be5c642710f49349e033e21831f3f44bf49cbd3f Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Tue, 15 Jul 2025 15:28:38 +0300 Subject: [PATCH 030/191] =?UTF-8?q?=D0=9A=D0=B0=D0=BD=D0=B0=D0=BB=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=BC=D0=B5=D0=BD=D0=B0=20json=20=D0=BE=D0=B1=D1=8A?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/1Script.sln | 15 + .../ExceptionBreakpointFilter.cs | 12 + .../IDebuggerService.cs | 11 +- .../OneScript.DebugProtocol.csproj | 2 +- src/OneScript.DebugProtocol/StackFrame.cs | 3 +- .../TcpServer/JsonDtoChannel.cs | 60 ++++ .../TcpServer/JsonDtoConverter.cs | 293 ++++++++++++++++++ .../TcpServer/RpcCall.cs | 2 + .../TcpServer/RpcCallResult.cs | 2 + src/OneScript.DebugProtocol/Variable.cs | 1 + .../DefaultDebugService.cs | 5 + .../OneScript.Debugger.Tests.csproj | 32 ++ .../TestJsonSerializationForDto.cs | 60 ++++ .../Dap}/IVariablePresentationHint.cs | 2 +- .../OneScriptDebuggerClient.cs | 5 + 15 files changed, 501 insertions(+), 4 deletions(-) create mode 100644 src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs create mode 100644 src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs create mode 100644 src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs create mode 100644 src/Tests/OneScript.Debugger.Tests/OneScript.Debugger.Tests.csproj create mode 100644 src/Tests/OneScript.Debugger.Tests/TestJsonSerializationForDto.cs rename src/{OneScript.DebugProtocol => VSCode.DebugAdapter/Dap}/IVariablePresentationHint.cs (98%) diff --git a/src/1Script.sln b/src/1Script.sln index 2169ce37a..3b6be08d8 100644 --- a/src/1Script.sln +++ b/src/1Script.sln @@ -67,6 +67,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OneScript.Web.Server", "One EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocumenterTests", "Tests\DocumenterTests\DocumenterTests.csproj", "{BD385142-E9B4-43C1-8F88-067F24E5AF6D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneScript.Debugger.Tests", "Tests\OneScript.Debugger.Tests\OneScript.Debugger.Tests.csproj", "{223C7CC3-5AAA-4C77-A628-1B2AB796B872}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -339,6 +341,18 @@ Global {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|Any CPU.Build.0 = Release|Any CPU {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|x86.ActiveCfg = Release|Any CPU {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|x86.Build.0 = Release|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Debug|Any CPU.Build.0 = Debug|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Debug|x86.ActiveCfg = Debug|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Debug|x86.Build.0 = Debug|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.LinuxDebug|Any CPU.ActiveCfg = Debug|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.LinuxDebug|Any CPU.Build.0 = Debug|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.LinuxDebug|x86.ActiveCfg = Debug|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.LinuxDebug|x86.Build.0 = Debug|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Release|Any CPU.ActiveCfg = Release|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Release|Any CPU.Build.0 = Release|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Release|x86.ActiveCfg = Release|Any CPU + {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -351,6 +365,7 @@ Global {0F5E6099-39BA-41CF-B55F-357F7DF4DE00} = {91059C5B-526C-4B81-B106-99DEFF542D1F} {2F264379-B3B4-44B3-9CBA-A4B0AF3D8785} = {91059C5B-526C-4B81-B106-99DEFF542D1F} {BD385142-E9B4-43C1-8F88-067F24E5AF6D} = {91059C5B-526C-4B81-B106-99DEFF542D1F} + {223C7CC3-5AAA-4C77-A628-1B2AB796B872} = {91059C5B-526C-4B81-B106-99DEFF542D1F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A4A871EF-C5A7-478F-907E-31C69A869973} diff --git a/src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs b/src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs new file mode 100644 index 000000000..52189992a --- /dev/null +++ b/src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs @@ -0,0 +1,12 @@ +using System; + +namespace OneScript.DebugProtocol +{ + [Serializable] + public class ExceptionBreakpointFilter + { + public string Id { get; set; } + + public string Condition { get; set; } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/IDebuggerService.cs b/src/OneScript.DebugProtocol/IDebuggerService.cs index d9edb6cb6..bc73e0689 100644 --- a/src/OneScript.DebugProtocol/IDebuggerService.cs +++ b/src/OneScript.DebugProtocol/IDebuggerService.cs @@ -5,6 +5,8 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; + namespace OneScript.DebugProtocol { /// @@ -19,10 +21,17 @@ public interface IDebuggerService void Execute(int threadId); /// - /// Добавление фильтров точек останова для исплючений + /// Добавление фильтров точек останова для исключений /// /// + [Obsolete("Используется только для совместимости нового адаптера со старыми binary версиями движка")] void SetMachineExceptionBreakpoints((string Id, string Condition)[] filters); + + /// + /// Добавление фильтров точек останова для исключений + /// + /// + void SetExceptionBreakpoints(ExceptionBreakpointFilter[] filters); /// /// Установка точек остановки diff --git a/src/OneScript.DebugProtocol/OneScript.DebugProtocol.csproj b/src/OneScript.DebugProtocol/OneScript.DebugProtocol.csproj index 38c5e6d49..71d116d9c 100644 --- a/src/OneScript.DebugProtocol/OneScript.DebugProtocol.csproj +++ b/src/OneScript.DebugProtocol/OneScript.DebugProtocol.csproj @@ -17,6 +17,6 @@ - + \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/StackFrame.cs b/src/OneScript.DebugProtocol/StackFrame.cs index a83ad3d16..549976d65 100644 --- a/src/OneScript.DebugProtocol/StackFrame.cs +++ b/src/OneScript.DebugProtocol/StackFrame.cs @@ -8,10 +8,11 @@ This Source Code Form is subject to the terms of the using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization; +using Newtonsoft.Json; namespace OneScript.DebugProtocol { - [DataContract, Serializable] + [DataContract, JsonObject, Serializable] public class StackFrame : IVariableLocator { [DataMember] diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs new file mode 100644 index 000000000..bbbf66a0e --- /dev/null +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -0,0 +1,60 @@ +using System; +using System.IO; +using System.Net.Sockets; +using System.Text; +using Newtonsoft.Json; +using OneScript.DebugProtocol.Abstractions; + +namespace OneScript.DebugProtocol.TcpServer +{ + public class JsonDtoChannel : ICommunicationChannel + { + private readonly TcpClient _tcpClient; + private readonly Stream _dataStream; + + private bool _enabled; + + public JsonDtoChannel(TcpClient tcpClient) + { + _tcpClient = tcpClient; + _dataStream = tcpClient.GetStream(); + } + + public void Dispose() + { + _dataStream.Dispose(); + _tcpClient.Close(); + _enabled = false; + } + + public void Write(object data) + { + if (!_enabled) + throw new ObjectDisposedException(nameof(JsonDtoChannel)); + + using var streamWriter = new StreamWriter(_dataStream, Encoding.UTF8, 1024, leaveOpen: true); + using var writer = new JsonTextWriter(streamWriter); + + JsonSerializer.CreateDefault().Serialize(writer, data); + writer.Flush(); + } + + public T Read() + { + return (T)Read(); + } + + public object Read() + { + if (!_enabled) + throw new ObjectDisposedException(nameof(JsonDtoChannel)); + + using var streamReader = new StreamReader(_dataStream, Encoding.UTF8, false, 1024, leaveOpen: true); + using var reader = new JsonTextReader(streamReader); + + return JsonSerializer.CreateDefault().Deserialize(reader); + } + + public bool Connected => _enabled && _tcpClient.Connected; + } +} \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs new file mode 100644 index 000000000..5f340ebdd --- /dev/null +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs @@ -0,0 +1,293 @@ + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using Newtonsoft.Json; +namespace OneScript.DebugProtocol.TcpServer +{ + public class JsonDtoConverter : JsonConverter + { + private const string TYPE_PROPERTY_NAME = "$type"; + private const string VALUE_PROPERTY_NAME = "$value"; + + public override void WriteJson(JsonWriter writer, TcpProtocolDtoBase value, JsonSerializer serializer) + { + switch (value) + { + case RpcCall rpcCall: + WriteCall(writer, rpcCall, serializer); + break; + case RpcCallResult rpcCallResult: + WriteCallResult(writer, rpcCallResult, serializer); + break; + default: + throw new ArgumentException($"Unknown type {value.GetType()}"); + } + } + + public override TcpProtocolDtoBase ReadJson(JsonReader reader, Type objectType, TcpProtocolDtoBase existingValue, + bool hasExistingValue, JsonSerializer serializer) + { + if (reader.TokenType != JsonToken.StartObject) + { + throw new JsonReaderException($"Unexpected token parsing {reader.TokenType} for {objectType}"); + } + + AdvanceReader(reader); + var typeName = ReadExpectedProperty(TYPE_PROPERTY_NAME, reader, serializer); + AdvanceReader(reader); + + Type requiredType; + if (objectType == typeof(TcpProtocolDtoBase)) + { + // нам не важен тип, прочитать надо тот, который указан в потоке. + requiredType = typeName switch + { + nameof(RpcCall) => typeof(RpcCall), + nameof(RpcCallResult) => typeof(RpcCallResult), + _ => throw new JsonSerializationException( + $"Unexpected object type in Json. Expected one of {objectType.Name}, got {typeName}") + }; + } + else if (typeName != objectType.Name) + { + // нам важен тип и он в потоке не такой + throw new JsonSerializationException($"Unexpected object type in Json. Expected {objectType.Name}, got {typeName}"); + } + else + { + requiredType = objectType; + } + + TcpProtocolDtoBase readResult; + if (requiredType == typeof(RpcCall)) + { + readResult = ReadRpcCall(reader, serializer); + } + else if (requiredType == typeof(RpcCallResult)) + { + readResult = ReadRpcCallResult(reader, serializer); + } + else + { + readResult = null; + Trace.Fail($"Unexpected type {requiredType}"); + } + + return readResult; + } + + private RpcCall ReadRpcCall(JsonReader reader, JsonSerializer serializer) + { + var value = new RpcCall(); + while (reader.TokenType != JsonToken.EndObject) + { + if (reader.TokenType != JsonToken.PropertyName) + { + throw new JsonReaderException($"Unexpected token parsing {reader.TokenType}, expected property name"); + } + + var propName = (string)reader.Value; + AdvanceReader(reader); + switch (propName) + { + case nameof(RpcCall.Id): + value.Id = serializer.Deserialize(reader); + break; + case nameof(RpcCall.ServiceName): + value.ServiceName = serializer.Deserialize(reader); + break; + case nameof(RpcCall.Parameters): + value.Parameters = DeserializeTypedArray(reader, serializer); + break; + } + AdvanceReader(reader); + } + + return value; + } + + private RpcCallResult ReadRpcCallResult(JsonReader reader, JsonSerializer serializer) + { + var value = new RpcCallResult(); + while (reader.TokenType != JsonToken.EndObject) + { + if (reader.TokenType != JsonToken.PropertyName) + { + throw new JsonReaderException($"Unexpected token parsing {reader.TokenType}, expected property name"); + } + + var propName = (string)reader.Value; + AdvanceReader(reader); + switch (propName) + { + case nameof(RpcCallResult.Id): + value.Id = serializer.Deserialize(reader); + break; + case nameof(RpcCallResult.ServiceName): + value.ServiceName = serializer.Deserialize(reader); + break; + case nameof(RpcCallResult.ReturnValue): + value.ReturnValue = ReadTypedValue(reader, serializer); + break; + } + AdvanceReader(reader); + } + + return value; + } + + private object[] DeserializeTypedArray(JsonReader reader, JsonSerializer serializer) + { + if (reader.TokenType != JsonToken.StartArray) + { + throw new JsonReaderException($"Unexpected token parsing {reader.TokenType}, expected array"); + } + + var data = new List(); + while (reader.TokenType != JsonToken.EndArray) + { + AdvanceReader(reader); + if (reader.TokenType == JsonToken.EndArray) + break; + + var item = ReadTypedValue(reader, serializer); + data.Add(item); + } + + return data.ToArray(); + } + + private object ReadTypedValue(JsonReader reader, JsonSerializer serializer) + { + AdvanceReader(reader); + var typeName = ReadExpectedProperty(TYPE_PROPERTY_NAME, reader, serializer); + AdvanceReader(reader); + + var type = GetSupportedType(typeName); + var value = ReadExpectedProperty(type, VALUE_PROPERTY_NAME, reader, serializer); + AdvanceReader(reader); + + if (reader.TokenType != JsonToken.EndObject) + { + throw new JsonSerializationException("Unexpected token parsing TypedValue " + reader.TokenType); + } + + return value; + } + + private Type GetSupportedType(string typeName) + { + bool isArray = false; + if (typeName.EndsWith("[]")) + { + isArray = true; + typeName = typeName.Substring(0, typeName.Length - 2); + } + + var baseType = typeName switch + { + nameof(Breakpoint) => typeof(Breakpoint), + nameof(StackFrame) => typeof(StackFrame), + nameof(ThreadStopReason) => typeof(ThreadStopReason), + nameof(Variable) => typeof(Variable), + nameof(ExceptionBreakpointFilter) => typeof(ExceptionBreakpointFilter), + nameof(RpcExceptionDto) => typeof(RpcExceptionDto), + nameof(String) => typeof(string), + nameof(Int32) => typeof(int), + nameof(Boolean) => typeof(bool), + _ => throw new JsonSerializationException($"Unexpected type name for typed value {typeName}") + }; + + return isArray ? baseType.MakeArrayType() : baseType; + } + + private T ReadExpectedProperty(string propertyName, JsonReader reader, JsonSerializer serializer) + { + return (T)ReadExpectedProperty(typeof(T), propertyName, reader, serializer); + } + + private object ReadExpectedProperty(Type targetType, string propertyName, JsonReader reader, JsonSerializer serializer) + { + if (reader.TokenType != JsonToken.PropertyName) + { + throw new JsonReaderException($"Unexpected token '{reader.TokenType}' while reading property {propertyName}"); + } + + var propNameInStream = (string)reader.Value; + if (propNameInStream != propertyName) + { + throw new JsonSerializationException($"Unexpected property {propNameInStream}, expected {propertyName}"); + } + + AdvanceReader(reader); + var value = serializer.Deserialize(reader, targetType); + if (value != null && value.GetType() != targetType) + { + throw new JsonSerializationException($"Unexpected object type returned: {value.GetType()}, Expected {targetType}"); + } + + return value; + } + + private static void AdvanceReader(JsonReader reader) + { + if (!reader.Read()) + { + throw new JsonReaderException($"Unexpected end of Json"); + } + } + + private void WriteCall(JsonWriter writer, RpcCall rpcCall, JsonSerializer serializer) + { + writer.WriteStartObject(); + WriteBaseClass(writer, rpcCall); + writer.WritePropertyName(nameof(rpcCall.Parameters)); + + writer.WriteStartArray(); + foreach (var callParameter in rpcCall.Parameters) + { + WriteTypedValue(writer, serializer, callParameter); + } + writer.WriteEndArray(); + + writer.WriteEndObject(); + } + + private void WriteCallResult(JsonWriter writer, RpcCallResult rpcCallResult, JsonSerializer serializer) + { + writer.WriteStartObject(); + + WriteBaseClass(writer, rpcCallResult); + writer.WritePropertyName(nameof(rpcCallResult.ReturnValue)); + WriteTypedValue(writer, serializer, rpcCallResult.ReturnValue); + + writer.WriteEndObject(); + } + + private static void WriteTypedValue(JsonWriter writer, JsonSerializer serializer, object callParameter) + { + writer.WriteStartObject(); + + writer.WritePropertyName(TYPE_PROPERTY_NAME); + writer.WriteValue(callParameter.GetType().Name); + + writer.WritePropertyName(VALUE_PROPERTY_NAME); + serializer.Serialize(writer, callParameter); + + writer.WriteEndObject(); + } + + private void WriteBaseClass(JsonWriter writer, TcpProtocolDtoBase dto) + { + writer.WritePropertyName(TYPE_PROPERTY_NAME); + writer.WriteValue(dto.GetType().Name); + + writer.WritePropertyName(nameof(dto.Id)); + writer.WriteValue(dto.Id); + + writer.WritePropertyName(nameof(dto.ServiceName)); + writer.WriteValue(dto.ServiceName); + } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/TcpServer/RpcCall.cs b/src/OneScript.DebugProtocol/TcpServer/RpcCall.cs index fb7ea0aed..09bdea77b 100644 --- a/src/OneScript.DebugProtocol/TcpServer/RpcCall.cs +++ b/src/OneScript.DebugProtocol/TcpServer/RpcCall.cs @@ -6,10 +6,12 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using Newtonsoft.Json; namespace OneScript.DebugProtocol.TcpServer { [Serializable] + [JsonConverter(typeof(JsonDtoConverter))] public class RpcCall : TcpProtocolDtoBase { public object[] Parameters { get; set; } diff --git a/src/OneScript.DebugProtocol/TcpServer/RpcCallResult.cs b/src/OneScript.DebugProtocol/TcpServer/RpcCallResult.cs index 9e8742ed9..a9d75c854 100644 --- a/src/OneScript.DebugProtocol/TcpServer/RpcCallResult.cs +++ b/src/OneScript.DebugProtocol/TcpServer/RpcCallResult.cs @@ -6,10 +6,12 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using Newtonsoft.Json; namespace OneScript.DebugProtocol.TcpServer { [Serializable] + [JsonConverter(typeof(JsonDtoConverter))] public class RpcCallResult : TcpProtocolDtoBase { public object ReturnValue { get; set; } diff --git a/src/OneScript.DebugProtocol/Variable.cs b/src/OneScript.DebugProtocol/Variable.cs index aa0681898..11ff6ee16 100644 --- a/src/OneScript.DebugProtocol/Variable.cs +++ b/src/OneScript.DebugProtocol/Variable.cs @@ -24,6 +24,7 @@ public class Variable [DataMember] public string TypeName { get; set; } + [DataMember] public int ChildrenHandleID { get; set; } } } diff --git a/src/OneScript.DebugServices/DefaultDebugService.cs b/src/OneScript.DebugServices/DefaultDebugService.cs index 0bfebeb16..bd302f89b 100644 --- a/src/OneScript.DebugServices/DefaultDebugService.cs +++ b/src/OneScript.DebugServices/DefaultDebugService.cs @@ -70,6 +70,11 @@ public void SetMachineExceptionBreakpoints((string Id, string Condition)[] filte machine.SetDebugMode(_threadManager, _breakpointManager); } + public void SetExceptionBreakpoints(ExceptionBreakpointFilter[] filters) + { + SetMachineExceptionBreakpoints(filters.Select(f => (f.Id, f.Condition)).ToArray()); + } + public Breakpoint[] SetMachineBreakpoints(Breakpoint[] breaksToSet) { var confirmedBreakpoints = new List(); diff --git a/src/Tests/OneScript.Debugger.Tests/OneScript.Debugger.Tests.csproj b/src/Tests/OneScript.Debugger.Tests/OneScript.Debugger.Tests.csproj new file mode 100644 index 000000000..c1f1e0862 --- /dev/null +++ b/src/Tests/OneScript.Debugger.Tests/OneScript.Debugger.Tests.csproj @@ -0,0 +1,32 @@ + + + + $(TargetFrameworkVersion) + disable + enable + + false + true + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + diff --git a/src/Tests/OneScript.Debugger.Tests/TestJsonSerializationForDto.cs b/src/Tests/OneScript.Debugger.Tests/TestJsonSerializationForDto.cs new file mode 100644 index 000000000..9db1dcd82 --- /dev/null +++ b/src/Tests/OneScript.Debugger.Tests/TestJsonSerializationForDto.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using AutoFixture; +using AutoFixture.Kernel; +using FluentAssertions; +using Newtonsoft.Json; +using OneScript.DebugProtocol; +using OneScript.DebugProtocol.TcpServer; +using Xunit; + +namespace OneScript.Debugger.Tests +{ + public class TestJsonSerializationForDto + { + [Theory] + [MemberData(nameof(DebuggerServiceCalls))] + public void CanSerializeAllMethodCallsForServer(RpcCall call, RpcCallResult? result) + { + // Не должен падать + var jsonCall = JsonConvert.SerializeObject(call); + string jsonResult = null; + if (result != null) + { + jsonResult = JsonConvert.SerializeObject(result); + } + + // должен суметь прочитать + var callFromJson = JsonConvert.DeserializeObject(jsonCall); + callFromJson.Should().BeEquivalentTo(call); + if (jsonResult != null) + { + var resultFromJson = JsonConvert.DeserializeObject(jsonResult); + resultFromJson.Should().BeEquivalentTo(result); + } + } + + public static IEnumerable DebuggerServiceCalls() + { + var allMethods = typeof(IDebuggerService).GetMethods() + .Where(mi => mi.GetCustomAttribute() == null); + + var fixture = new Fixture(); + foreach (var methodInfo in allMethods) + { + var parameters = methodInfo.GetParameters() + .Select(p => new SpecimenContext(fixture).Resolve(p.ParameterType)) + .ToArray(); + + var call = RpcCall.Create(nameof(IDebuggerService), methodInfo.Name, parameters); + var callResult = methodInfo.ReturnType == typeof(void)? + null: + RpcCallResult.Respond(call, new SpecimenContext(fixture).Resolve(methodInfo.ReturnType)); + + yield return new object[] { call, callResult }; + } + } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/IVariablePresentationHint.cs b/src/VSCode.DebugAdapter/Dap/IVariablePresentationHint.cs similarity index 98% rename from src/OneScript.DebugProtocol/IVariablePresentationHint.cs rename to src/VSCode.DebugAdapter/Dap/IVariablePresentationHint.cs index f54f4f1f6..e69dc6a63 100644 --- a/src/OneScript.DebugProtocol/IVariablePresentationHint.cs +++ b/src/VSCode.DebugAdapter/Dap/IVariablePresentationHint.cs @@ -5,7 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -namespace OneScript.DebugProtocol +namespace VSCode.DebugAdapter.Dap { public interface IVariablePresentationHint { diff --git a/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs b/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs index 15a2f2040..722b8ad7a 100644 --- a/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs +++ b/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs @@ -105,6 +105,11 @@ public void SetMachineExceptionBreakpoints((string Id, string Condition)[] filte WriteCommand(filters); } + public void SetExceptionBreakpoints(ExceptionBreakpointFilter[] filters) + { + WriteCommand(filters); + } + public Breakpoint[] SetMachineBreakpoints(Breakpoint[] breaksToSet) { WriteCommand(breaksToSet); From daa08947c6e60be9cfe858b3a118d244b51c6baa Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Tue, 15 Jul 2025 18:46:33 +0300 Subject: [PATCH 031/191] =?UTF-8?q?=D0=A7=D0=B5=D1=80=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=B8=D0=BA=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=82=D0=BE=D0=BA=D0=BE=D0=BB=D0=B0=20=D1=81=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B3=D0=BB=D0=B0=D1=81=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=D0=BC=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/1Script.sln | 15 ----- .../TcpServer/BinaryChannel.cs | 11 +++- .../TcpServer/FormatReconcileUtils.cs | 25 ++++++++ .../TcpServer/JsonDtoChannel.cs | 12 +++- .../Internal/DelayedConnectionChannel.cs | 54 ++++++++++++----- .../JsonChannelTest.cs | 59 +++++++++++++++++++ .../OneScript.DebugProtocol.Test.csproj | 1 + .../TestJsonSerializationForDto.cs | 0 .../OneScript.Debugger.Tests.csproj | 32 ---------- src/VSCode.DebugAdapter/DebugeeProcess.cs | 12 +++- .../OscriptDebugSession.cs | 2 +- .../Transport/DebugClientFactory.cs | 23 ++++++-- .../Transport/ProtocolVersions.cs | 9 ++- .../Transport/TransportProtocols.cs | 6 +- 14 files changed, 183 insertions(+), 78 deletions(-) create mode 100644 src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs rename src/Tests/{OneScript.Debugger.Tests => OneScript.DebugProtocol.Test}/TestJsonSerializationForDto.cs (100%) delete mode 100644 src/Tests/OneScript.Debugger.Tests/OneScript.Debugger.Tests.csproj diff --git a/src/1Script.sln b/src/1Script.sln index 3b6be08d8..2169ce37a 100644 --- a/src/1Script.sln +++ b/src/1Script.sln @@ -67,8 +67,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OneScript.Web.Server", "One EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocumenterTests", "Tests\DocumenterTests\DocumenterTests.csproj", "{BD385142-E9B4-43C1-8F88-067F24E5AF6D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneScript.Debugger.Tests", "Tests\OneScript.Debugger.Tests\OneScript.Debugger.Tests.csproj", "{223C7CC3-5AAA-4C77-A628-1B2AB796B872}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -341,18 +339,6 @@ Global {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|Any CPU.Build.0 = Release|Any CPU {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|x86.ActiveCfg = Release|Any CPU {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|x86.Build.0 = Release|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Debug|Any CPU.Build.0 = Debug|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Debug|x86.ActiveCfg = Debug|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Debug|x86.Build.0 = Debug|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.LinuxDebug|Any CPU.ActiveCfg = Debug|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.LinuxDebug|Any CPU.Build.0 = Debug|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.LinuxDebug|x86.ActiveCfg = Debug|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.LinuxDebug|x86.Build.0 = Debug|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Release|Any CPU.ActiveCfg = Release|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Release|Any CPU.Build.0 = Release|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Release|x86.ActiveCfg = Release|Any CPU - {223C7CC3-5AAA-4C77-A628-1B2AB796B872}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -365,7 +351,6 @@ Global {0F5E6099-39BA-41CF-B55F-357F7DF4DE00} = {91059C5B-526C-4B81-B106-99DEFF542D1F} {2F264379-B3B4-44B3-9CBA-A4B0AF3D8785} = {91059C5B-526C-4B81-B106-99DEFF542D1F} {BD385142-E9B4-43C1-8F88-067F24E5AF6D} = {91059C5B-526C-4B81-B106-99DEFF542D1F} - {223C7CC3-5AAA-4C77-A628-1B2AB796B872} = {91059C5B-526C-4B81-B106-99DEFF542D1F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A4A871EF-C5A7-478F-907E-31C69A869973} diff --git a/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs b/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs index 097727fc9..5d3c3a3af 100644 --- a/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs @@ -16,11 +16,16 @@ namespace OneScript.DebugProtocol /// /// TCP-канал, использующий стандартную Binary-сериализацию .NET /// + [Obsolete("Используется только со стороны адаптера, для работы со старыми версиями 1Script")] public sealed class BinaryChannel : ICommunicationChannel { private readonly TcpClient _client; private readonly NetworkStream _clientStream; +#if NET48 private readonly BinaryFormatter _serializer; +#else + private readonly IFormatter _serializer = null; +#endif private bool _enabled; @@ -28,8 +33,12 @@ public BinaryChannel(TcpClient client) { _client = client; _clientStream = _client.GetStream(); - _serializer = new BinaryFormatter(); _enabled = true; +#if NET48 + _serializer = new BinaryFormatter(); +#else + throw new NotSupportedException("Binary channel should be used only in .NET 48."); +#endif } public bool Connected => _enabled && _client.Connected; diff --git a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs index 8413244a4..fe661af16 100644 --- a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs +++ b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs @@ -41,5 +41,30 @@ public static bool CheckReconcilePrefix(byte[] data) return true; } + + public static bool CheckReconcileRequest(byte[] data) + { + for (int i = 0; i < FORMAT_RECONCILE_MAGIC.Length; i++) + { + if (data[i] != FORMAT_RECONCILE_MAGIC[i]) + return false; + } + + return true; + } + + public static int EncodeFormatMarker(short transport, short dataVersion) + { + var marker = transport << 16; + return marker | dataVersion; + } + + public static (int, int) DecodeFormatMarker(int marker) + { + var transport = marker >> 16; + var dataVersion = marker & 0x0000FFFF; + + return (transport, dataVersion); + } } } \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index bbbf66a0e..21a6d685b 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -12,18 +12,24 @@ public class JsonDtoChannel : ICommunicationChannel private readonly TcpClient _tcpClient; private readonly Stream _dataStream; - private bool _enabled; + private bool _enabled = true; public JsonDtoChannel(TcpClient tcpClient) { _tcpClient = tcpClient; _dataStream = tcpClient.GetStream(); } + + public JsonDtoChannel(Stream dataStream) + { + _tcpClient = null; + _dataStream = dataStream; + } public void Dispose() { _dataStream.Dispose(); - _tcpClient.Close(); + _tcpClient?.Close(); _enabled = false; } @@ -55,6 +61,6 @@ public object Read() return JsonSerializer.CreateDefault().Deserialize(reader); } - public bool Connected => _enabled && _tcpClient.Connected; + public bool Connected => _enabled && (_tcpClient?.Connected ?? true); } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs index 2401a0344..dbd7b500f 100644 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs @@ -6,9 +6,12 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using System.IO; using System.Net.Sockets; +using System.Text; using OneScript.DebugProtocol; using OneScript.DebugProtocol.Abstractions; +using OneScript.DebugProtocol.TcpServer; namespace OneScript.DebugServices.Internal { @@ -17,6 +20,12 @@ internal class DelayedConnectionChannel : ICommunicationChannel private TcpListener _listener; private ICommunicationChannel _connectedChannel; + // NB! должен быть согласован с перечислением TransportProtocols в адаптере + private const short JSON_FORMAT_MARKER = 2; + private const short SUPPORTED_FORMAT_VERSION = 4; + + private bool _reconciled; + public DelayedConnectionChannel(TcpListener listener) { _listener = listener; @@ -37,31 +46,46 @@ public void Write(object data) _connectedChannel.Write(data); } - private void MakeChannel() - { - if (_connectedChannel == null) - { - _listener.Start(); - var tcpClient = _listener.AcceptTcpClient(); - _connectedChannel = new BinaryChannel(tcpClient); - _listener.Stop(); - _listener = null; - } - } - - public T Read() { - MakeChannel(); + ReconcileFormat(); return _connectedChannel.Read(); } public object Read() { - MakeChannel(); + ReconcileFormat(); return _connectedChannel.Read(); } + private void ReconcileFormat() + { + if (_reconciled) + return; + + _listener.Start(); + var tcpClient = _listener.AcceptTcpClient(); + _listener.Stop(); + _listener = null; + + var tcpStream = tcpClient.GetStream(); + + var buffer = new byte[FormatReconcileUtils.FORMAT_RECONCILE_MAGIC.Length]; + tcpStream.Read(buffer, 0, buffer.Length); + + if (FormatReconcileUtils.CheckReconcileRequest(buffer)) + { + // Да, это наш фейковый заголовок + var formatInfo = FormatReconcileUtils.EncodeFormatMarker(JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); + + using var binaryWriter = new BinaryWriter(tcpStream, Encoding.UTF8, true); + binaryWriter.Write(FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX); + binaryWriter.Write(formatInfo); + } + _reconciled = true; + _connectedChannel = new JsonDtoChannel(tcpClient); + } + public bool Connected => _connectedChannel?.Connected ?? false; } } \ No newline at end of file diff --git a/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs b/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs new file mode 100644 index 000000000..c8dec5db6 --- /dev/null +++ b/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs @@ -0,0 +1,59 @@ +using System.IO; +using System.Net.Sockets; +using System.Text; +using FluentAssertions; +using Newtonsoft.Json; +using OneScript.DebugProtocol.TcpServer; +using Xunit; + +namespace OneScript.DebugProtocol.Test +{ + public class JsonChannelTest + { + [Fact] + public void TestObjectReading() + { + var dataStream = new MemoryStream(); + var streamWriter = new StreamWriter(dataStream, Encoding.UTF8, 1024, leaveOpen: true); + var rpcCall = RpcCall.Create("Test", "Hello World", 1, 2, new Breakpoint() + { + Line = 2, Condition = "true" + }); + + var jsonString = JsonConvert.SerializeObject(rpcCall); + streamWriter.Write(jsonString); + streamWriter.Close(); + dataStream.Position = 0; + + var channel = new JsonDtoChannel(dataStream); + var actual = channel.Read(); + actual.Should().BeEquivalentTo(rpcCall); + } + + [Fact] + public void TestObjectWriting() + { + var dataStream = new MemoryStream(); + var rpcCall = RpcCall.Create("Test", "Hello World", 1, 2, new Breakpoint() + { + Line = 2, Condition = "true" + }); + + var channel = new JsonDtoChannel(dataStream); + channel.Write(rpcCall); + dataStream.Position = 0; + var actual = channel.Read(); + actual.Should().BeEquivalentTo(rpcCall); + } + + [Fact] + public void TestReconcileMarker() + { + var encoded = FormatReconcileUtils.EncodeFormatMarker(2, 4); + var (transport, version) = FormatReconcileUtils.DecodeFormatMarker(encoded); + + Assert.Equal(2, transport); + Assert.Equal(4, version); + } + } +} \ No newline at end of file diff --git a/src/Tests/OneScript.DebugProtocol.Test/OneScript.DebugProtocol.Test.csproj b/src/Tests/OneScript.DebugProtocol.Test/OneScript.DebugProtocol.Test.csproj index 3bbc775ba..7fc6de69b 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/OneScript.DebugProtocol.Test.csproj +++ b/src/Tests/OneScript.DebugProtocol.Test/OneScript.DebugProtocol.Test.csproj @@ -17,6 +17,7 @@ + diff --git a/src/Tests/OneScript.Debugger.Tests/TestJsonSerializationForDto.cs b/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs similarity index 100% rename from src/Tests/OneScript.Debugger.Tests/TestJsonSerializationForDto.cs rename to src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs diff --git a/src/Tests/OneScript.Debugger.Tests/OneScript.Debugger.Tests.csproj b/src/Tests/OneScript.Debugger.Tests/OneScript.Debugger.Tests.csproj deleted file mode 100644 index c1f1e0862..000000000 --- a/src/Tests/OneScript.Debugger.Tests/OneScript.Debugger.Tests.csproj +++ /dev/null @@ -1,32 +0,0 @@ - - - - $(TargetFrameworkVersion) - disable - enable - - false - true - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - - diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index d0a1139d4..eafbdead2 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -235,8 +235,18 @@ public void Kill() public void SetExceptionsBreakpoints((string Id, string Condition)[] filters) { - if (ProtocolVersion > ProtocolVersions.Version1) + if (ProtocolVersion > ProtocolVersions.Version1 && ProtocolVersion < ProtocolVersions.Version3) + { _debugger.SetMachineExceptionBreakpoints(filters); + } + else if (ProtocolVersion >= ProtocolVersions.Version3) + { + _debugger.SetExceptionBreakpoints(filters.Select(t => new ExceptionBreakpointFilter + { + Id = t.Id, + Condition = t.Condition + }).ToArray()); + } } public Breakpoint[] SetBreakpoints(IEnumerable breakpoints) diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index c6488f555..967848323 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -186,7 +186,7 @@ public override void SetExceptionBreakpoints(Response response, dynamic argument { LogCommandReceived(); Log.Verbose("Exception breakpoints: {@Data}", arguments); - + var acceptedFilters = new List(); var filters = new List<(string Id, string Condition)>(); diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index 569526e4a..0aa9b4507 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -36,12 +36,13 @@ public OneScriptDebuggerClient CreateDebugClient() switch (_transport) { case TransportProtocols.Json: - throw new NotImplementedException(); + commandsChannel = new JsonDtoChannel(_tcpClient); + break; case TransportProtocols.Binary: commandsChannel = new BinaryChannel(_tcpClient); break; default: - throw new InvalidOperationException("Should not get here. [Transport protocol selection]"); + throw new InvalidOperationException($"Should not get here. [Transport protocol selection] {_transport}"); }; var client = new OneScriptDebuggerClient(commandsChannel, _eventsListener, _protocolVersion); @@ -88,9 +89,21 @@ private void ReconcileDataFormat(TcpClient client) return; } - var formatVersion = binaryReader.ReadInt32(); - Log.Verbose("Received format version {FormatVersion}", formatVersion); - _protocolVersion = ProtocolVersions.Adjust(formatVersion); + + var formatMarker = binaryReader.ReadInt32(); + var (transport, version) = FormatReconcileUtils.DecodeFormatMarker(formatMarker); + Log.Verbose("Received format marker {FormatVersion}. Transport {Transport}, Format {Format}", + formatMarker, + transport, + version); + + if (transport != (int)TransportProtocols.Json) + { + throw new ApplicationException($"Transport protocol is out of range {transport}"); + } + + _transport = TransportProtocols.Json; + _protocolVersion = ProtocolVersions.Adjust(formatMarker); Log.Verbose("Active protocol version {ProtocolVersion}", _protocolVersion); } else diff --git a/src/VSCode.DebugAdapter/Transport/ProtocolVersions.cs b/src/VSCode.DebugAdapter/Transport/ProtocolVersions.cs index 2f8eb2e07..04c7972b6 100644 --- a/src/VSCode.DebugAdapter/Transport/ProtocolVersions.cs +++ b/src/VSCode.DebugAdapter/Transport/ProtocolVersions.cs @@ -16,7 +16,7 @@ public static bool IsValid(int valueToCheck) public static int Adjust(int valueToAdjust) { - if (valueToAdjust < 0 || valueToAdjust > LatestKnownVersion) + if (valueToAdjust <= 0 || valueToAdjust > LatestKnownVersion) return SafestVersion; return valueToAdjust; @@ -36,6 +36,11 @@ public static int Adjust(int valueToAdjust) /// После появления условных брейкпоинтов /// public const int Version2 = 2; + + /// + /// Выделенный тип для параметра в SetExceptionBreakpoints + /// + public const int Version3 = 3; /// /// Значение, безопасное для всех версий движка @@ -45,6 +50,6 @@ public static int Adjust(int valueToAdjust) /// /// Контрольное значение /// - public const int LatestKnownVersion = Version2; + public const int LatestKnownVersion = Version3; } } \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs b/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs index 3a39a7c34..4edc259d8 100644 --- a/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs +++ b/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs @@ -2,9 +2,9 @@ namespace VSCode.DebugAdapter.Transport { public enum TransportProtocols { - Auto, - Binary, - Json, + Auto = 0, + Binary = 1, + Json = 2, Invalid, } } \ No newline at end of file From fa8e618ddbb7abc0bd5e2f95c7b99919d5f68038 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Wed, 16 Jul 2025 11:02:08 +0300 Subject: [PATCH 032/191] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= =?UTF-8?q?=D1=8E=D1=89=D0=B8=D0=B9=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D0=BD?= =?UTF-8?q?=D1=82=202.0-2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/JsonDtoChannel.cs | 2 +- .../TcpServer/JsonDtoConverter.cs | 78 +++++++++++-------- .../TcpServer/TcpProtocolDtoBase.cs | 2 + .../JsonChannelTest.cs | 44 ++++++++--- .../TestJsonSerializationForDto.cs | 24 +++++- 5 files changed, 105 insertions(+), 45 deletions(-) diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index 21a6d685b..aa60104f6 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -58,7 +58,7 @@ public object Read() using var streamReader = new StreamReader(_dataStream, Encoding.UTF8, false, 1024, leaveOpen: true); using var reader = new JsonTextReader(streamReader); - return JsonSerializer.CreateDefault().Deserialize(reader); + return JsonSerializer.CreateDefault().Deserialize(reader); } public bool Connected => _enabled && (_tcpClient?.Connected ?? true); diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs index 5f340ebdd..daca7d1eb 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs @@ -28,10 +28,7 @@ public override void WriteJson(JsonWriter writer, TcpProtocolDtoBase value, Json public override TcpProtocolDtoBase ReadJson(JsonReader reader, Type objectType, TcpProtocolDtoBase existingValue, bool hasExistingValue, JsonSerializer serializer) { - if (reader.TokenType != JsonToken.StartObject) - { - throw new JsonReaderException($"Unexpected token parsing {reader.TokenType} for {objectType}"); - } + CheckExpectedToken(reader, JsonToken.StartObject, $"ReadObject {objectType}"); AdvanceReader(reader); var typeName = ReadExpectedProperty(TYPE_PROPERTY_NAME, reader, serializer); @@ -82,10 +79,7 @@ private RpcCall ReadRpcCall(JsonReader reader, JsonSerializer serializer) var value = new RpcCall(); while (reader.TokenType != JsonToken.EndObject) { - if (reader.TokenType != JsonToken.PropertyName) - { - throw new JsonReaderException($"Unexpected token parsing {reader.TokenType}, expected property name"); - } + CheckExpectedToken(reader, JsonToken.PropertyName, "ReadRpcCall"); var propName = (string)reader.Value; AdvanceReader(reader); @@ -112,10 +106,7 @@ private RpcCallResult ReadRpcCallResult(JsonReader reader, JsonSerializer serial var value = new RpcCallResult(); while (reader.TokenType != JsonToken.EndObject) { - if (reader.TokenType != JsonToken.PropertyName) - { - throw new JsonReaderException($"Unexpected token parsing {reader.TokenType}, expected property name"); - } + CheckExpectedToken(reader, JsonToken.PropertyName, "ReadRpcCallResult"); var propName = (string)reader.Value; AdvanceReader(reader); @@ -139,11 +130,11 @@ private RpcCallResult ReadRpcCallResult(JsonReader reader, JsonSerializer serial private object[] DeserializeTypedArray(JsonReader reader, JsonSerializer serializer) { - if (reader.TokenType != JsonToken.StartArray) - { - throw new JsonReaderException($"Unexpected token parsing {reader.TokenType}, expected array"); - } - + if (reader.TokenType == JsonToken.Null) + return null; + + CheckExpectedToken(reader, JsonToken.StartArray, "TypedArray"); + var data = new List(); while (reader.TokenType != JsonToken.EndArray) { @@ -160,6 +151,13 @@ private object[] DeserializeTypedArray(JsonReader reader, JsonSerializer seriali private object ReadTypedValue(JsonReader reader, JsonSerializer serializer) { + if (reader.TokenType == JsonToken.Null) + { + return null; + } + + CheckExpectedToken(reader, JsonToken.StartObject, "TypedValue"); + AdvanceReader(reader); var typeName = ReadExpectedProperty(TYPE_PROPERTY_NAME, reader, serializer); AdvanceReader(reader); @@ -176,6 +174,14 @@ private object ReadTypedValue(JsonReader reader, JsonSerializer serializer) return value; } + private void CheckExpectedToken(JsonReader reader, JsonToken expectedToken, string context) + { + if (reader.TokenType != expectedToken) + { + throw new JsonReaderException($"Unexpected token {reader.TokenType}, ({context}). Expected {expectedToken}"); + } + } + private Type GetSupportedType(string typeName) { bool isArray = false; @@ -209,11 +215,8 @@ private T ReadExpectedProperty(string propertyName, JsonReader reader, JsonSe private object ReadExpectedProperty(Type targetType, string propertyName, JsonReader reader, JsonSerializer serializer) { - if (reader.TokenType != JsonToken.PropertyName) - { - throw new JsonReaderException($"Unexpected token '{reader.TokenType}' while reading property {propertyName}"); - } - + CheckExpectedToken(reader, JsonToken.PropertyName, $"reading expected property {propertyName}"); + var propNameInStream = (string)reader.Value; if (propNameInStream != propertyName) { @@ -243,14 +246,21 @@ private void WriteCall(JsonWriter writer, RpcCall rpcCall, JsonSerializer serial writer.WriteStartObject(); WriteBaseClass(writer, rpcCall); writer.WritePropertyName(nameof(rpcCall.Parameters)); - - writer.WriteStartArray(); - foreach (var callParameter in rpcCall.Parameters) + + if (rpcCall.Parameters != null) + { + writer.WriteStartArray(); + foreach (var callParameter in rpcCall.Parameters) + { + WriteTypedValue(writer, serializer, callParameter); + } + writer.WriteEndArray(); + } + else { - WriteTypedValue(writer, serializer, callParameter); + writer.WriteNull(); } - writer.WriteEndArray(); - + writer.WriteEndObject(); } @@ -265,15 +275,21 @@ private void WriteCallResult(JsonWriter writer, RpcCallResult rpcCallResult, Jso writer.WriteEndObject(); } - private static void WriteTypedValue(JsonWriter writer, JsonSerializer serializer, object callParameter) + private static void WriteTypedValue(JsonWriter writer, JsonSerializer serializer, object valueToWrite) { + if (valueToWrite == null) + { + writer.WriteNull(); + return; + } + writer.WriteStartObject(); writer.WritePropertyName(TYPE_PROPERTY_NAME); - writer.WriteValue(callParameter.GetType().Name); + writer.WriteValue(valueToWrite.GetType().Name); writer.WritePropertyName(VALUE_PROPERTY_NAME); - serializer.Serialize(writer, callParameter); + serializer.Serialize(writer, valueToWrite); writer.WriteEndObject(); } diff --git a/src/OneScript.DebugProtocol/TcpServer/TcpProtocolDtoBase.cs b/src/OneScript.DebugProtocol/TcpServer/TcpProtocolDtoBase.cs index b8d24f612..060fefaf6 100644 --- a/src/OneScript.DebugProtocol/TcpServer/TcpProtocolDtoBase.cs +++ b/src/OneScript.DebugProtocol/TcpServer/TcpProtocolDtoBase.cs @@ -7,10 +7,12 @@ This Source Code Form is subject to the terms of the using System; +using Newtonsoft.Json; namespace OneScript.DebugProtocol.TcpServer { [Serializable] + [JsonConverter(typeof(JsonDtoConverter))] public abstract class TcpProtocolDtoBase { public string Id { get; set; } diff --git a/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs b/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs index c8dec5db6..df79ae857 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs @@ -4,46 +4,68 @@ using FluentAssertions; using Newtonsoft.Json; using OneScript.DebugProtocol.TcpServer; +using OneScript.Exceptions; using Xunit; namespace OneScript.DebugProtocol.Test { public class JsonChannelTest { + [Fact] - public void TestObjectReading() + public void TestObjectWritingReadingCall() { var dataStream = new MemoryStream(); - var streamWriter = new StreamWriter(dataStream, Encoding.UTF8, 1024, leaveOpen: true); var rpcCall = RpcCall.Create("Test", "Hello World", 1, 2, new Breakpoint() { Line = 2, Condition = "true" }); - var jsonString = JsonConvert.SerializeObject(rpcCall); - streamWriter.Write(jsonString); - streamWriter.Close(); - dataStream.Position = 0; - var channel = new JsonDtoChannel(dataStream); + channel.Write(rpcCall); + dataStream.Position = 0; var actual = channel.Read(); actual.Should().BeEquivalentTo(rpcCall); } [Fact] - public void TestObjectWriting() + public void TestObjectWritingReadingResponseSuccess() { var dataStream = new MemoryStream(); var rpcCall = RpcCall.Create("Test", "Hello World", 1, 2, new Breakpoint() { Line = 2, Condition = "true" }); + + var rpcResponse = RpcCallResult.Respond(rpcCall, new Variable + { + Name = "Test", + Presentation = "1" + }); var channel = new JsonDtoChannel(dataStream); - channel.Write(rpcCall); + channel.Write(rpcResponse); dataStream.Position = 0; - var actual = channel.Read(); - actual.Should().BeEquivalentTo(rpcCall); + var actual = channel.Read(); + actual.Should().BeEquivalentTo(rpcResponse); + } + + [Fact] + public void TestObjectWritingReadingResponseException() + { + var dataStream = new MemoryStream(); + var rpcCall = RpcCall.Create("Test", "Hello World", 1, 2, new Breakpoint() + { + Line = 2, Condition = "true" + }); + + var rpcResponse = RpcCallResult.Exception(rpcCall, new RuntimeException("Test", "Test")); + + var channel = new JsonDtoChannel(dataStream); + channel.Write(rpcResponse); + dataStream.Position = 0; + var actual = channel.Read(); + actual.Should().BeEquivalentTo(rpcResponse); } [Fact] diff --git a/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs b/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs index 9db1dcd82..2869ed2d6 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs @@ -6,11 +6,10 @@ using AutoFixture.Kernel; using FluentAssertions; using Newtonsoft.Json; -using OneScript.DebugProtocol; using OneScript.DebugProtocol.TcpServer; using Xunit; -namespace OneScript.Debugger.Tests +namespace OneScript.DebugProtocol.Test { public class TestJsonSerializationForDto { @@ -36,6 +35,27 @@ public void CanSerializeAllMethodCallsForServer(RpcCall call, RpcCallResult? res } } + [Fact] + public void CanReadWriteCallWithNullParams() + { + var call = RpcCall.Create("Test", "Test", null); + var jsonCall = JsonConvert.SerializeObject(call); + var callFromJson = JsonConvert.DeserializeObject(jsonCall); + + callFromJson.Should().BeEquivalentTo(call); + } + + [Fact] + public void CanReadWriteResultWithNullValue() + { + var call = RpcCall.Create("Test", "Test", null); + var result = RpcCallResult.Respond(call, null); + var jsonResult = JsonConvert.SerializeObject(result); + var resultFromJson = JsonConvert.DeserializeObject(jsonResult); + + resultFromJson.Should().BeEquivalentTo(result); + } + public static IEnumerable DebuggerServiceCalls() { var allMethods = typeof(IDebuggerService).GetMethods() From 406756283550a2db6662b7ba49c878c866a35934 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Wed, 16 Jul 2025 15:34:03 +0300 Subject: [PATCH 033/191] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=BB=D0=B8?= =?UTF-8?q?=D1=86=D0=B5=D0=BD=D0=B7=D0=B8=D0=B9=20=D0=B2=20=D0=B8=D1=81?= =?UTF-8?q?=D1=85=D0=BE=D0=B4=D0=BD=D0=B8=D0=BA=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs | 8 +++++++- .../TcpServer/FormatReconcileUtils.cs | 8 +++++++- src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs | 7 +++++++ src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs | 6 ++++++ src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs | 8 +++++++- .../TestJsonSerializationForDto.cs | 7 +++++++ src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs | 8 +++++++- src/VSCode.DebugAdapter/ThreadStateContainer.cs | 8 +++++++- src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs | 8 +++++++- src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs | 8 +++++++- src/VSCode.DebugAdapter/Transport/TransportException.cs | 8 +++++++- src/VSCode.DebugAdapter/Transport/TransportProtocols.cs | 8 +++++++- 12 files changed, 83 insertions(+), 9 deletions(-) diff --git a/src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs b/src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs index 52189992a..0cb7e506e 100644 --- a/src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs +++ b/src/OneScript.DebugProtocol/ExceptionBreakpointFilter.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System; namespace OneScript.DebugProtocol @@ -9,4 +15,4 @@ public class ExceptionBreakpointFilter public string Condition { get; set; } } -} \ No newline at end of file +} diff --git a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs index fe661af16..2fb6baf77 100644 --- a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs +++ b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System; namespace OneScript.DebugProtocol.TcpServer @@ -67,4 +73,4 @@ public static (int, int) DecodeFormatMarker(int marker) return (transport, dataVersion); } } -} \ No newline at end of file +} diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index aa60104f6..21cb6897e 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -1,3 +1,10 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + using System; using System.IO; using System.Net.Sockets; diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs index daca7d1eb..9d7ec6c79 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System; using System.Collections.Generic; diff --git a/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs b/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs index df79ae857..709c1d744 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System.IO; using System.Net.Sockets; using System.Text; @@ -78,4 +84,4 @@ public void TestReconcileMarker() Assert.Equal(4, version); } } -} \ No newline at end of file +} diff --git a/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs b/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs index 2869ed2d6..53c3a87f5 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/TestJsonSerializationForDto.cs @@ -1,3 +1,10 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + using System; using System.Collections.Generic; using System.Linq; diff --git a/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs b/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs index 70d0ad543..1fa55e419 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System.Runtime.CompilerServices; using OneScript.DebugProtocol; using Serilog; @@ -58,4 +64,4 @@ private void LogEventOccured([CallerMemberName] string eventName = "") Log.Debug("Event occured {Event}", eventName); } } -} \ No newline at end of file +} diff --git a/src/VSCode.DebugAdapter/ThreadStateContainer.cs b/src/VSCode.DebugAdapter/ThreadStateContainer.cs index 7654ab52d..9dd792a98 100644 --- a/src/VSCode.DebugAdapter/ThreadStateContainer.cs +++ b/src/VSCode.DebugAdapter/ThreadStateContainer.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using OneScript.DebugProtocol; namespace VSCode.DebugAdapter @@ -23,4 +29,4 @@ public void Reset() public IVariableLocator GetVariableContainerById(int id) => _variableHandles.Get(id, null); } -} \ No newline at end of file +} diff --git a/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs b/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs index 4a2ac200e..5f8c9c9f4 100644 --- a/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System; using System.Net.Sockets; using System.Threading; @@ -56,4 +62,4 @@ private static void TryConnect(TcpClient client, Uri debuggerUri) Log.Debug("Connected to {Host}:{Port}", debuggerUri.Host, debuggerUri.Port); } } -} \ No newline at end of file +} diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index 0aa9b4507..49ad19e82 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System; using System.Diagnostics; using System.IO; @@ -124,4 +130,4 @@ private void SelectSafestFormat() _transport = TransportProtocols.Binary; } } -} \ No newline at end of file +} diff --git a/src/VSCode.DebugAdapter/Transport/TransportException.cs b/src/VSCode.DebugAdapter/Transport/TransportException.cs index 3b1635232..29d685f5d 100644 --- a/src/VSCode.DebugAdapter/Transport/TransportException.cs +++ b/src/VSCode.DebugAdapter/Transport/TransportException.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System; namespace VSCode.DebugAdapter.Transport @@ -8,4 +14,4 @@ public TransportException(string message) : base(message) { } } -} \ No newline at end of file +} diff --git a/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs b/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs index 4edc259d8..875a01d5a 100644 --- a/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs +++ b/src/VSCode.DebugAdapter/Transport/TransportProtocols.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ namespace VSCode.DebugAdapter.Transport { public enum TransportProtocols @@ -7,4 +13,4 @@ public enum TransportProtocols Json = 2, Invalid, } -} \ No newline at end of file +} From 2fea7ca02184754da2574dd40efa27bbc52eba9a Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Wed, 16 Jul 2025 15:45:07 +0300 Subject: [PATCH 034/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20Ordinal=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D1=81=D0=BE=D0=B2=D0=B5=D1=82=D1=83=20=D0=BA=D1=80=D0=BE?= =?UTF-8?q?=D0=BB=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs index 9d7ec6c79..4069482b0 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs @@ -191,7 +191,8 @@ private void CheckExpectedToken(JsonReader reader, JsonToken expectedToken, stri private Type GetSupportedType(string typeName) { bool isArray = false; - if (typeName.EndsWith("[]")) + bool isArray = false; + if (typeName.EndsWith("[]", StringComparison.Ordinal)) { isArray = true; typeName = typeName.Substring(0, typeName.Length - 2); From c8e4db1943bbc34b4109675a69828b71e48a5199 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Wed, 16 Jul 2025 15:48:08 +0300 Subject: [PATCH 035/191] =?UTF-8?q?=D0=9A=D1=80=D0=BE=D0=BB=D0=B8=D0=BA=20?= =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BA=D0=BE=D1=81=D1=8F?= =?UTF-8?q?=D1=87=D0=BD=D1=8B=D0=B9=20suggest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs index 4069482b0..5ff17a97e 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs @@ -190,7 +190,6 @@ private void CheckExpectedToken(JsonReader reader, JsonToken expectedToken, stri private Type GetSupportedType(string typeName) { - bool isArray = false; bool isArray = false; if (typeName.EndsWith("[]", StringComparison.Ordinal)) { From d8b4230fc8741d1703000bc13ba8df11717b2ac4 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Wed, 16 Jul 2025 16:16:25 +0300 Subject: [PATCH 036/191] =?UTF-8?q?=D0=9E=D1=82=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8E=20=D1=8F=D0=B7?= =?UTF-8?q?=D1=8B=D0=BA=D0=B0=208,=20=D1=82.=D0=BA.=20net4.8=20=D0=B5?= =?UTF-8?q?=D0=B5=20=D0=BD=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=B8=D0=B2=D0=B0=D0=B5=D1=82=20(=D1=85=D0=BE=D1=82?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=B4=20=D0=9C=D0=BE=D0=BD=D0=BE=20=D0=B8?= =?UTF-8?q?=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/JsonDtoConverter.cs | 3 +- src/VSCode.DebugAdapter/Program.cs | 10 ++-- .../Transport/DebugClientFactory.cs | 50 ++++++++++--------- .../VSCode.DebugAdapter.csproj | 2 +- 4 files changed, 35 insertions(+), 30 deletions(-) diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs index 5ff17a97e..d5486d635 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs @@ -73,8 +73,7 @@ public override TcpProtocolDtoBase ReadJson(JsonReader reader, Type objectType, } else { - readResult = null; - Trace.Fail($"Unexpected type {requiredType}"); + throw new InvalidOperationException($"Unknown type {requiredType}"); } return readResult; diff --git a/src/VSCode.DebugAdapter/Program.cs b/src/VSCode.DebugAdapter/Program.cs index 0884df150..5e05e4c6c 100644 --- a/src/VSCode.DebugAdapter/Program.cs +++ b/src/VSCode.DebugAdapter/Program.cs @@ -25,10 +25,14 @@ static void Main(string[] args) var listener = TcpListener.Create(4711); listener.Start(); - using var client = listener.AcceptTcpClient(); - using var stream = client.GetStream(); + using (var client = listener.AcceptTcpClient()) + { + using (var stream = client.GetStream()) + { + StartSession(stream, stream); + } + } - StartSession(stream, stream); } else StartSession(Console.OpenStandardInput(), Console.OpenStandardOutput()); diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index 49ad19e82..ce0eef0e5 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -85,32 +85,34 @@ private void ReconcileDataFormat(TcpClient client) { Log.Verbose("We have data available. Reading reconcile response"); var dataBuffer = new byte[requiredDataLength]; - using var binaryReader = new BinaryReader(stream, Encoding.ASCII, true); - binaryReader.Read(dataBuffer, 0, FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); - - if (!FormatReconcileUtils.CheckReconcilePrefix(dataBuffer)) + using (var binaryReader = new BinaryReader(stream, Encoding.ASCII, true)) { - Log.Verbose("Received data is not reconcile message"); - SelectSafestFormat(); - return; + binaryReader.Read(dataBuffer, 0, FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); + + if (!FormatReconcileUtils.CheckReconcilePrefix(dataBuffer)) + { + Log.Verbose("Received data is not reconcile message"); + SelectSafestFormat(); + return; + } + + + var formatMarker = binaryReader.ReadInt32(); + var (transport, version) = FormatReconcileUtils.DecodeFormatMarker(formatMarker); + Log.Verbose("Received format marker {FormatVersion}. Transport {Transport}, Format {Format}", + formatMarker, + transport, + version); + + if (transport != (int)TransportProtocols.Json) + { + throw new ApplicationException($"Transport protocol is out of range {transport}"); + } + + _transport = TransportProtocols.Json; + _protocolVersion = ProtocolVersions.Adjust(version); + Log.Verbose("Active protocol version {ProtocolVersion}", _protocolVersion); } - - - var formatMarker = binaryReader.ReadInt32(); - var (transport, version) = FormatReconcileUtils.DecodeFormatMarker(formatMarker); - Log.Verbose("Received format marker {FormatVersion}. Transport {Transport}, Format {Format}", - formatMarker, - transport, - version); - - if (transport != (int)TransportProtocols.Json) - { - throw new ApplicationException($"Transport protocol is out of range {transport}"); - } - - _transport = TransportProtocols.Json; - _protocolVersion = ProtocolVersions.Adjust(formatMarker); - Log.Verbose("Active protocol version {ProtocolVersion}", _protocolVersion); } else { diff --git a/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj b/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj index 8cbbf8210..7ca054e8a 100644 --- a/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj +++ b/src/VSCode.DebugAdapter/VSCode.DebugAdapter.csproj @@ -9,7 +9,7 @@ Debug;Release;LinuxDebug VSC debug adapter for 1Script AnyCPU - 8 + 7.3 1.7.0.0 1.7.0.0 true From 71836c64fcbfdcd343a30040fe2b2dd0b80e24a7 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Fri, 18 Jul 2025 11:04:30 +0300 Subject: [PATCH 037/191] =?UTF-8?q?=D0=A7=D0=B0=D1=81=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D1=87=D1=82=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=82=D0=BE=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Internal/DelayedConnectionChannel.cs | 17 ++++++++++++++++- .../Transport/DebugClientFactory.cs | 17 ++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs index dbd7b500f..ff8dd49a7 100644 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs @@ -71,7 +71,7 @@ private void ReconcileFormat() var tcpStream = tcpClient.GetStream(); var buffer = new byte[FormatReconcileUtils.FORMAT_RECONCILE_MAGIC.Length]; - tcpStream.Read(buffer, 0, buffer.Length); + ReadStream(tcpStream, buffer, buffer.Length); if (FormatReconcileUtils.CheckReconcileRequest(buffer)) { @@ -85,6 +85,21 @@ private void ReconcileFormat() _reconciled = true; _connectedChannel = new JsonDtoChannel(tcpClient); } + + private void ReadStream(Stream stream, byte[] buffer, int length) + { + int readPosition = 0; + int bytesReceived = 0; + + while (bytesReceived < length) + { + bytesReceived = stream.Read(buffer, readPosition, length - bytesReceived); + if (bytesReceived == 0) + throw new IOException("Unexpected end of stream"); + + readPosition += bytesReceived; + } + } public bool Connected => _connectedChannel?.Connected ?? false; } diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index ce0eef0e5..e50959a4b 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -87,7 +87,7 @@ private void ReconcileDataFormat(TcpClient client) var dataBuffer = new byte[requiredDataLength]; using (var binaryReader = new BinaryReader(stream, Encoding.ASCII, true)) { - binaryReader.Read(dataBuffer, 0, FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); + ReadStream(binaryReader, dataBuffer,FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); if (!FormatReconcileUtils.CheckReconcilePrefix(dataBuffer)) { @@ -125,6 +125,21 @@ private void ReconcileDataFormat(TcpClient client) } } + private void ReadStream(BinaryReader reader, byte[] buffer, int length) + { + int readPosition = 0; + int bytesReceived = 0; + + while (bytesReceived < length) + { + bytesReceived = reader.Read(buffer, readPosition, length - bytesReceived); + if (bytesReceived == 0) + throw new IOException("Unexpected end of stream"); + + readPosition += bytesReceived; + } + } + private void SelectSafestFormat() { Log.Verbose("Reconcilation failed, selecting safest format"); From f5368f9fa833d612ecdeec6ce6794e381ff0fb98 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Fri, 18 Jul 2025 11:15:58 +0300 Subject: [PATCH 038/191] =?UTF-8?q?=D0=A3=D0=BF=D1=80=D0=BE=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=87=D1=82=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/JsonDtoConverter.cs | 57 ++++++++++++------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs index d5486d635..91762997c 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs @@ -8,6 +8,7 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; using System.Diagnostics; +using System.Runtime.CompilerServices; using Newtonsoft.Json; namespace OneScript.DebugProtocol.TcpServer { @@ -82,26 +83,13 @@ public override TcpProtocolDtoBase ReadJson(JsonReader reader, Type objectType, private RpcCall ReadRpcCall(JsonReader reader, JsonSerializer serializer) { var value = new RpcCall(); - while (reader.TokenType != JsonToken.EndObject) + FillRpcDto(value, reader, serializer, (jsonReader, jsonSerializer, prop) => { - CheckExpectedToken(reader, JsonToken.PropertyName, "ReadRpcCall"); - - var propName = (string)reader.Value; - AdvanceReader(reader); - switch (propName) + if (prop == nameof(RpcCall.Parameters)) { - case nameof(RpcCall.Id): - value.Id = serializer.Deserialize(reader); - break; - case nameof(RpcCall.ServiceName): - value.ServiceName = serializer.Deserialize(reader); - break; - case nameof(RpcCall.Parameters): - value.Parameters = DeserializeTypedArray(reader, serializer); - break; + value.Parameters = DeserializeTypedArray(reader, serializer); } - AdvanceReader(reader); - } + }); return value; } @@ -109,9 +97,29 @@ private RpcCall ReadRpcCall(JsonReader reader, JsonSerializer serializer) private RpcCallResult ReadRpcCallResult(JsonReader reader, JsonSerializer serializer) { var value = new RpcCallResult(); + FillRpcDto(value, reader, serializer, (jsonReader, jsonSerializer, prop) => + { + if (prop == nameof(RpcCallResult.ReturnValue)) + { + value.ReturnValue = ReadTypedValue(reader, serializer); + } + }); + + return value; + } + + private void FillRpcDto( + TcpProtocolDtoBase value, + JsonReader reader, + JsonSerializer serializer, + Action readFunction, + [CallerMemberName] string caller = "" + ) + { + bool hasId = false, hasServiceName = false; while (reader.TokenType != JsonToken.EndObject) { - CheckExpectedToken(reader, JsonToken.PropertyName, "ReadRpcCallResult"); + CheckExpectedToken(reader, JsonToken.PropertyName, caller); var propName = (string)reader.Value; AdvanceReader(reader); @@ -119,18 +127,23 @@ private RpcCallResult ReadRpcCallResult(JsonReader reader, JsonSerializer serial { case nameof(RpcCallResult.Id): value.Id = serializer.Deserialize(reader); + hasId = true; break; case nameof(RpcCallResult.ServiceName): value.ServiceName = serializer.Deserialize(reader); + hasServiceName = true; break; - case nameof(RpcCallResult.ReturnValue): - value.ReturnValue = ReadTypedValue(reader, serializer); + default: + readFunction(reader, serializer, propName); break; } AdvanceReader(reader); } - - return value; + + if (!hasId || !hasServiceName) + { + throw new JsonSerializationException($"Required properties missing ({caller})"); + } } private object[] DeserializeTypedArray(JsonReader reader, JsonSerializer serializer) From c2e446991eb08ca876ff3d9991e2c3d086cbf509 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Fri, 18 Jul 2025 16:28:03 +0300 Subject: [PATCH 039/191] =?UTF-8?q?=D0=A3=D0=BF=D1=80=D0=BE=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8=20=D0=BE=D1=82?= =?UTF-8?q?=20=D0=BA=D1=80=D0=BE=D0=BB=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 26 ++++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index eafbdead2..1d0da524c 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -235,17 +235,23 @@ public void Kill() public void SetExceptionsBreakpoints((string Id, string Condition)[] filters) { - if (ProtocolVersion > ProtocolVersions.Version1 && ProtocolVersion < ProtocolVersions.Version3) + switch (ProtocolVersion) { - _debugger.SetMachineExceptionBreakpoints(filters); - } - else if (ProtocolVersion >= ProtocolVersions.Version3) - { - _debugger.SetExceptionBreakpoints(filters.Select(t => new ExceptionBreakpointFilter - { - Id = t.Id, - Condition = t.Condition - }).ToArray()); + case ProtocolVersions.UnknownVersion: + case ProtocolVersions.Version1: + // Version 1 doesn't support exception breakpoints + Log.Warning("Exception breakpoints not supported in protocol version {Version}", ProtocolVersion); + break; + case ProtocolVersions.Version2: + _debugger.SetMachineExceptionBreakpoints(filters); + break; + default: // Version 3 and higher + _debugger.SetExceptionBreakpoints(filters.Select(t => new ExceptionBreakpointFilter + { + Id = t.Id, + Condition = t.Condition + }).ToArray()); + break; } } From da2e218a0bfec632e242ba803eb767c9c9cdc357 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Fri, 18 Jul 2025 21:21:31 +0200 Subject: [PATCH 040/191] Create copilot-instructions.md --- .github/copilot-instructions.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 000000000..29652043f --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,11 @@ +Команда запуска полной сборки и прогона тестов на Linux: + +```sh +dotnet msbuild Build.csproj /t:"CleanAll;MakeFDD;GatherLibrary;ComposeDistributionFolders;Test" /p:Configuration=LinuxDebug /p:NoCppCompiler=True +``` + +Запуск приемочных тестов: + +```sh +dotnet oscript.dll tests/testrunner.os -runAll tests +``` From 46bee4d2916c65d3191ca031945b02c25a3a75d7 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Fri, 18 Jul 2025 21:23:19 +0200 Subject: [PATCH 041/191] Create copilot-setup-steps.yml --- .github/workflows/copilot-setup-steps.yml | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/copilot-setup-steps.yml diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml new file mode 100644 index 000000000..e1f8b7bb1 --- /dev/null +++ b/.github/workflows/copilot-setup-steps.yml @@ -0,0 +1,37 @@ +name: "OneScript Development Environment Setup" + +# Allow testing of the setup steps from your repository's "Actions" tab. +on: workflow_dispatch + +jobs: + # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. + copilot-setup-steps: + runs-on: ubuntu-latest + + # Set the permissions to the lowest permissions possible needed for your steps. + # Copilot will be given its own token for its operations. + permissions: + # Clone the repository to install dependencies + contents: read + + # Setup steps for OneScript development environment + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - run: git config --global core.quotepath false + + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: '6.0.x' + + - name: Установка OneScript + uses: otymko/setup-onescript@v1.5 + with: + version: stable + + - name: Установка зависимостей + run: | + opm install opm + opm update --all + From 8cf04903e0941e301f6d3ef6211f4fca89e9e592 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 21 Jul 2025 13:30:34 +0300 Subject: [PATCH 042/191] =?UTF-8?q?=D0=94=D1=80=D1=83=D0=B3=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B3=D0=BB=D0=B0=D1=81=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=81=D1=82=D0=B0=D1=80=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/1Script.sln | 15 +++++ .../OneScript.DebugProtocol.csproj | 2 +- .../TcpServer/BinaryFormatWriter.cs | 60 ++++++++++++++++++ .../TcpServer/FormatReconcileUtils.cs | 61 +++++++++++++++---- .../Internal/DelayedConnectionChannel.cs | 26 +------- .../OneScript.DebugProtocol.Test.csproj | 4 ++ .../ReconcileForOlderVersionTests.cs | 48 +++++++++++++++ .../VSCode.DebugAdapter.Tests.csproj | 23 +++++++ .../Transport/ConnectionFactory.cs | 4 ++ .../Transport/DebugClientFactory.cs | 24 +++++++- 10 files changed, 227 insertions(+), 40 deletions(-) create mode 100644 src/OneScript.DebugProtocol/TcpServer/BinaryFormatWriter.cs create mode 100644 src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs create mode 100644 src/Tests/VSCode.DebugAdapter.Tests/VSCode.DebugAdapter.Tests.csproj diff --git a/src/1Script.sln b/src/1Script.sln index 2169ce37a..2cc56c55e 100644 --- a/src/1Script.sln +++ b/src/1Script.sln @@ -67,6 +67,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OneScript.Web.Server", "One EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocumenterTests", "Tests\DocumenterTests\DocumenterTests.csproj", "{BD385142-E9B4-43C1-8F88-067F24E5AF6D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSCode.DebugAdapter.Tests", "Tests\VSCode.DebugAdapter.Tests\VSCode.DebugAdapter.Tests.csproj", "{861F70F4-B10D-4E4E-865C-B8E900391424}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -339,6 +341,18 @@ Global {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|Any CPU.Build.0 = Release|Any CPU {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|x86.ActiveCfg = Release|Any CPU {BD385142-E9B4-43C1-8F88-067F24E5AF6D}.Release|x86.Build.0 = Release|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.Debug|Any CPU.Build.0 = Debug|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.Debug|x86.ActiveCfg = Debug|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.Debug|x86.Build.0 = Debug|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.LinuxDebug|Any CPU.ActiveCfg = Debug|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.LinuxDebug|Any CPU.Build.0 = Debug|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.LinuxDebug|x86.ActiveCfg = Debug|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.LinuxDebug|x86.Build.0 = Debug|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.Release|Any CPU.ActiveCfg = Release|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.Release|Any CPU.Build.0 = Release|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.Release|x86.ActiveCfg = Release|Any CPU + {861F70F4-B10D-4E4E-865C-B8E900391424}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -351,6 +365,7 @@ Global {0F5E6099-39BA-41CF-B55F-357F7DF4DE00} = {91059C5B-526C-4B81-B106-99DEFF542D1F} {2F264379-B3B4-44B3-9CBA-A4B0AF3D8785} = {91059C5B-526C-4B81-B106-99DEFF542D1F} {BD385142-E9B4-43C1-8F88-067F24E5AF6D} = {91059C5B-526C-4B81-B106-99DEFF542D1F} + {861F70F4-B10D-4E4E-865C-B8E900391424} = {91059C5B-526C-4B81-B106-99DEFF542D1F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A4A871EF-C5A7-478F-907E-31C69A869973} diff --git a/src/OneScript.DebugProtocol/OneScript.DebugProtocol.csproj b/src/OneScript.DebugProtocol/OneScript.DebugProtocol.csproj index 71d116d9c..0dcac9887 100644 --- a/src/OneScript.DebugProtocol/OneScript.DebugProtocol.csproj +++ b/src/OneScript.DebugProtocol/OneScript.DebugProtocol.csproj @@ -7,7 +7,7 @@ Debug;Release;LinuxDebug 1Script Debug Protocol common objects and DTO's AnyCPU - + net48;$(TargetFrameworkVersion) diff --git a/src/OneScript.DebugProtocol/TcpServer/BinaryFormatWriter.cs b/src/OneScript.DebugProtocol/TcpServer/BinaryFormatWriter.cs new file mode 100644 index 000000000..d4842497f --- /dev/null +++ b/src/OneScript.DebugProtocol/TcpServer/BinaryFormatWriter.cs @@ -0,0 +1,60 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.IO; +using System.Text; + +namespace OneScript.DebugProtocol.TcpServer +{ + internal class BinaryFormatWriter : IDisposable + { + private readonly BinaryWriter _writer; + + public BinaryFormatWriter(Stream target) + { + _writer = new BinaryWriter(target, Encoding.UTF8, leaveOpen: true); + } + + public void WriteHeader(int rootId, int headerId) + { + _writer.Write((byte)0); + _writer.Write(rootId); + _writer.Write(headerId); + _writer.Write(1); + _writer.Write(0); + } + + public void WriteStringRecord(int objectId, string data) + { + var bytes = Encoding.UTF8.GetBytes(data); + if (bytes.Length > 127) + throw new ArgumentOutOfRangeException(nameof(data), "Length encoding not supported for strings more than 127 bytes"); + + _writer.Write((byte)6); + _writer.Write(objectId); + _writer.Write((byte)bytes.Length); + _writer.Write(bytes, 0, bytes.Length); + } + + public void WriteEnd() + { + _writer.Write((byte)11); + } + + public void Close() + { + Dispose(); + } + + public void Dispose() + { + _writer.Flush(); + _writer.Dispose(); + } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs index 2fb6baf77..6cc7a9990 100644 --- a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs +++ b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs @@ -5,24 +5,32 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; +using System.IO; +using System.Text; namespace OneScript.DebugProtocol.TcpServer { public static class FormatReconcileUtils { /// - /// Массив байт, который вызовет SerializationException при чтении его через BinaryFormatter - /// И при этом оставит поток пустым, для следующего валидного сообщения - /// [MS-NRBF] .NET Remoting: Binary Format Data Structure + /// Специальный пакет, который будет принят двоичным десериализатором старого движка, но который потом + /// упадет на приведении типов. + /// В новом движке он будет принят, как команда для обмена версией формата. /// - public static readonly byte[] FORMAT_RECONCILE_MAGIC = + public static byte[] GetReconcileMagic() { - 0x11, // RecordTypeEnum - 0,0,0,0, // RootId - 0,0,0,0, // HeaderId - 0x00, 0x0A, 0x00, 0x0A, // Version Major - 0xAA, 0xAA, 0xAA, 0xAA // Version Minor, - }; + using (var memoryStream = new MemoryStream(128)) + { + using (var writer = new BinaryFormatWriter(memoryStream)) + { + writer.WriteHeader(1, 1); + writer.WriteStringRecord(1, "1C1C1C"); + writer.WriteEnd(); + } + + return memoryStream.ToArray(); + } + } /// /// Ответ на запрос формата @@ -48,17 +56,29 @@ public static bool CheckReconcilePrefix(byte[] data) return true; } - public static bool CheckReconcileRequest(byte[] data) + public static bool CheckReconcileRequest(Stream stream) { - for (int i = 0; i < FORMAT_RECONCILE_MAGIC.Length; i++) + var magic = GetReconcileMagic(); + var buffer = new byte[magic.Length]; + ReadStream(stream, buffer, buffer.Length); + for (int i = 0; i < magic.Length; i++) { - if (data[i] != FORMAT_RECONCILE_MAGIC[i]) + if (buffer[i] != magic[i]) return false; } return true; } + public static void WriteReconcileResponse(Stream target, short transport, short version) + { + var formatInfo = EncodeFormatMarker(transport, version); + + using var binaryWriter = new BinaryWriter(target, Encoding.UTF8, true); + binaryWriter.Write(FORMAT_RECONCILE_RESPONSE_PREFIX); + binaryWriter.Write(formatInfo); + } + public static int EncodeFormatMarker(short transport, short dataVersion) { var marker = transport << 16; @@ -72,5 +92,20 @@ public static (int, int) DecodeFormatMarker(int marker) return (transport, dataVersion); } + + private static void ReadStream(Stream stream, byte[] buffer, int length) + { + int readPosition = 0; + int bytesReceived = 0; + + while (bytesReceived < length) + { + bytesReceived = stream.Read(buffer, readPosition, length - bytesReceived); + if (bytesReceived == 0) + throw new IOException("Unexpected end of stream"); + + readPosition += bytesReceived; + } + } } } diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs index ff8dd49a7..e9a37878d 100644 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs @@ -69,37 +69,15 @@ private void ReconcileFormat() _listener = null; var tcpStream = tcpClient.GetStream(); - - var buffer = new byte[FormatReconcileUtils.FORMAT_RECONCILE_MAGIC.Length]; - ReadStream(tcpStream, buffer, buffer.Length); - if (FormatReconcileUtils.CheckReconcileRequest(buffer)) + if (FormatReconcileUtils.CheckReconcileRequest(tcpStream)) { // Да, это наш фейковый заголовок - var formatInfo = FormatReconcileUtils.EncodeFormatMarker(JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); - - using var binaryWriter = new BinaryWriter(tcpStream, Encoding.UTF8, true); - binaryWriter.Write(FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX); - binaryWriter.Write(formatInfo); + FormatReconcileUtils.WriteReconcileResponse(tcpStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); } _reconciled = true; _connectedChannel = new JsonDtoChannel(tcpClient); } - - private void ReadStream(Stream stream, byte[] buffer, int length) - { - int readPosition = 0; - int bytesReceived = 0; - - while (bytesReceived < length) - { - bytesReceived = stream.Read(buffer, readPosition, length - bytesReceived); - if (bytesReceived == 0) - throw new IOException("Unexpected end of stream"); - - readPosition += bytesReceived; - } - } public bool Connected => _connectedChannel?.Connected ?? false; } diff --git a/src/Tests/OneScript.DebugProtocol.Test/OneScript.DebugProtocol.Test.csproj b/src/Tests/OneScript.DebugProtocol.Test/OneScript.DebugProtocol.Test.csproj index 7fc6de69b..bfb36c98c 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/OneScript.DebugProtocol.Test.csproj +++ b/src/Tests/OneScript.DebugProtocol.Test/OneScript.DebugProtocol.Test.csproj @@ -32,4 +32,8 @@ + + + + diff --git a/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs b/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs new file mode 100644 index 000000000..ce565ca7c --- /dev/null +++ b/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs @@ -0,0 +1,48 @@ + +using System; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using FluentAssertions; +using OneScript.DebugProtocol.TcpServer; +using Xunit; + +namespace VSCode.DebugAdapter.Tests +{ + public class ReconcileForOlderVersionTests + { + [Fact] + public void CanReadReconcileViaBinaryFormatter() + { + using (var stream = new MemoryStream(FormatReconcileUtils.GetReconcileMagic())) + { + var reader = new BinaryFormatter(); + var value = reader.Deserialize(stream); + value.Should().Be("1C1C1C"); + } + } + + [Fact] + public void ExchangeReconcileVersions() + { + using (var stream = new MemoryStream(FormatReconcileUtils.GetReconcileMagic())) + { + using(var response = new MemoryStream()) + { + if (FormatReconcileUtils.CheckReconcileRequest(stream)) + { + FormatReconcileUtils.WriteReconcileResponse(response, 1, 1); + } + + var data = response.ToArray(); + Assert.True(FormatReconcileUtils.CheckReconcilePrefix(data)); + Assert.Equal(FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length + sizeof(int), data.Length); + + var frmt = BitConverter.ToInt32(data, FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); + var (transport, version) = FormatReconcileUtils.DecodeFormatMarker(frmt); + Assert.Equal(1, transport); + Assert.Equal(1, version); + } + } + } + } +} \ No newline at end of file diff --git a/src/Tests/VSCode.DebugAdapter.Tests/VSCode.DebugAdapter.Tests.csproj b/src/Tests/VSCode.DebugAdapter.Tests/VSCode.DebugAdapter.Tests.csproj new file mode 100644 index 000000000..da0cc0ce0 --- /dev/null +++ b/src/Tests/VSCode.DebugAdapter.Tests/VSCode.DebugAdapter.Tests.csproj @@ -0,0 +1,23 @@ + + + + net48 + Debug;Release;LinuxDebug + AnyCPU + 7.3 + true + + + + + + + + + + + + + + + diff --git a/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs b/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs index 5f8c9c9f4..c43aff6c3 100644 --- a/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs @@ -24,6 +24,10 @@ public static TcpClient Connect(int port) var client = new TcpClient(); TryConnect(client, debuggerUri); + var waitSec = 15; + Log.Information("Waiting {waitSec} seconds", waitSec); + Thread.Sleep(waitSec * 1000); + Log.Information("Waiting completed"); return client; } diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index e50959a4b..37dee6e5f 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -61,7 +61,8 @@ private void ReconcileDataFormat(TcpClient client) { Log.Verbose("Sending reconcile message"); var stream = client.GetStream(); - stream.Write(FormatReconcileUtils.FORMAT_RECONCILE_MAGIC, 0, FormatReconcileUtils.FORMAT_RECONCILE_MAGIC.Length); + var magic = FormatReconcileUtils.GetReconcileMagic(); + stream.Write(magic, 0, magic.Length); var pollResult = client.Client .Poll(FormatReconcileUtils.FORMAT_RECONCILE_TIMEOUT.Milliseconds * 1000, SelectMode.SelectRead); @@ -93,6 +94,7 @@ private void ReconcileDataFormat(TcpClient client) { Log.Verbose("Received data is not reconcile message"); SelectSafestFormat(); + EmptyIncomingBuffer(client); return; } @@ -116,15 +118,34 @@ private void ReconcileDataFormat(TcpClient client) } else { + Log.Verbose("We waited for full reconcile data, but it hadn't arrived"); SelectSafestFormat(); + EmptyIncomingBuffer(client); } } else { + Log.Verbose("No reconciliation response"); SelectSafestFormat(); } } + private void EmptyIncomingBuffer(TcpClient client) + { + if (client.Available == 0) + return; + + var buf = new byte[1024]; + do + { + var hasBytes = client.Available; + var bytesRead = client.GetStream().Read(buf, 0, Math.Min(hasBytes, buf.Length)); + if (bytesRead == 0) + return; + + } while (client.Available > 0); + } + private void ReadStream(BinaryReader reader, byte[] buffer, int length) { int readPosition = 0; @@ -142,7 +163,6 @@ private void ReadStream(BinaryReader reader, byte[] buffer, int length) private void SelectSafestFormat() { - Log.Verbose("Reconcilation failed, selecting safest format"); _protocolVersion = ProtocolVersions.SafestVersion; _transport = TransportProtocols.Binary; } From 0aa5494396501f895b51c513f83ec025a8f5198a Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 21 Jul 2025 17:48:07 +0300 Subject: [PATCH 043/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=20=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B8?= =?UTF-8?q?=20JSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/JsonDtoChannel.cs | 50 +++++++++++++++---- .../Internal/DelayedConnectionChannel.cs | 3 +- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index 21cb6897e..5fcb17724 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -45,13 +45,22 @@ public void Write(object data) if (!_enabled) throw new ObjectDisposedException(nameof(JsonDtoChannel)); - using var streamWriter = new StreamWriter(_dataStream, Encoding.UTF8, 1024, leaveOpen: true); - using var writer = new JsonTextWriter(streamWriter); + var content = JsonConvert.SerializeObject(data); + var contentBytes = Encoding.UTF8.GetBytes(content); - JsonSerializer.CreateDefault().Serialize(writer, data); - writer.Flush(); - } + using (var bufferedStream = new MemoryStream(contentBytes.Length + sizeof(int))) + { + using (var writer = new BinaryWriter(bufferedStream, Encoding.UTF8)) + { + writer.Write(contentBytes.Length); + writer.Write(contentBytes, 0, contentBytes.Length); + bufferedStream.Position = 0; + bufferedStream.CopyTo(_dataStream); + } + } + } + public T Read() { return (T)Read(); @@ -61,13 +70,36 @@ public object Read() { if (!_enabled) throw new ObjectDisposedException(nameof(JsonDtoChannel)); - - using var streamReader = new StreamReader(_dataStream, Encoding.UTF8, false, 1024, leaveOpen: true); - using var reader = new JsonTextReader(streamReader); - return JsonSerializer.CreateDefault().Deserialize(reader); + using (var socketReader = new BinaryReader(_dataStream, Encoding.UTF8, true)) + { + var contentLength = socketReader.ReadInt32(); + var contentBuffer = new byte[contentLength]; + ReadStream(socketReader, contentBuffer, contentLength); + + using (var textReader = new StreamReader(new MemoryStream(contentBuffer), Encoding.UTF8, false)) + { + using var reader = new JsonTextReader(textReader); + return JsonSerializer.CreateDefault().Deserialize(reader); + } + } } + private void ReadStream(BinaryReader reader, byte[] buffer, int length) + { + int readPosition = 0; + int bytesReceived = 0; + + while (bytesReceived < length) + { + bytesReceived = reader.Read(buffer, readPosition, length - bytesReceived); + if (bytesReceived == 0) + throw new IOException("Unexpected end of stream"); + + readPosition += bytesReceived; + } + } + public bool Connected => _enabled && (_tcpClient?.Connected ?? true); } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs index e9a37878d..8905c594e 100644 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs @@ -22,7 +22,8 @@ internal class DelayedConnectionChannel : ICommunicationChannel // NB! должен быть согласован с перечислением TransportProtocols в адаптере private const short JSON_FORMAT_MARKER = 2; - private const short SUPPORTED_FORMAT_VERSION = 4; + // NB! должен быть согласован с файлом ProtocolVersions в адаптере + private const short SUPPORTED_FORMAT_VERSION = 3; private bool _reconciled; From 196ae54a1768703f09413568b8ac98227ffe7e28 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 22 Jul 2025 13:36:56 +0300 Subject: [PATCH 044/191] =?UTF-8?q?=D0=9E=D1=82=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=B4=D0=BB=D0=B8=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D0=B4=D0=B2=D0=BE=D0=B8=D1=87=D0=BD=D0=BE=D0=BC=20?= =?UTF-8?q?=D0=B2=D0=B8=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Internal/AutoPropertyExtensions.cs | 59 +++++++++++++++++++ .../BinaryFormatWriter.cs | 58 ++++++++++++++++-- .../TcpServer/DefaultMessageServer.cs | 9 ++- .../TcpServer/FormatReconcileUtils.cs | 7 ++- .../ReconcileForOlderVersionTests.cs | 25 +++++++- 5 files changed, 148 insertions(+), 10 deletions(-) create mode 100644 src/OneScript.DebugProtocol/Internal/AutoPropertyExtensions.cs rename src/OneScript.DebugProtocol/{TcpServer => Internal}/BinaryFormatWriter.cs (53%) diff --git a/src/OneScript.DebugProtocol/Internal/AutoPropertyExtensions.cs b/src/OneScript.DebugProtocol/Internal/AutoPropertyExtensions.cs new file mode 100644 index 000000000..92f094d22 --- /dev/null +++ b/src/OneScript.DebugProtocol/Internal/AutoPropertyExtensions.cs @@ -0,0 +1,59 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +/* + * Based on https://gist.github.com/NickStrupat/39e659e53a7aa000b737 + */ + +using System; +using System.Reflection; +using System.Runtime.CompilerServices; + +namespace OneScript.DebugProtocol.Internal +{ + internal static class AutoPropertyExtensions + { + private const string Prefix = "<"; + private const string Suffix = ">k__BackingField"; + + private static string GetBackingFieldName(string propertyName) => $"{Prefix}{propertyName}{Suffix}"; + + private static string GetBaseClassPrefix(Type baseClass) => baseClass.Name + "+"; + + public static FieldInfo GetBackingField(this PropertyInfo propertyInfo) + { + if (propertyInfo == null) + throw new ArgumentNullException(nameof(propertyInfo)); + if (!propertyInfo.CanRead || !propertyInfo.GetGetMethod(nonPublic: true) + .IsDefined(typeof(CompilerGeneratedAttribute), inherit: true)) + return null; + + var backingFieldName = GetBackingFieldName(propertyInfo.Name); + + var backingField = + propertyInfo.DeclaringType?.GetField(backingFieldName, BindingFlags.Instance | BindingFlags.NonPublic); + + if (backingField == null) + return null; + + if (!backingField.IsDefined(typeof(CompilerGeneratedAttribute), inherit: true)) + return null; + return backingField; + } + + public static string GetFieldSerializationName(this FieldInfo field, PropertyInfo property) + { + if (field.DeclaringType == property.ReflectedType) + { + return field.Name; + } + + // This is inherited prop + return GetBaseClassPrefix(field.DeclaringType) + field.Name; + } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/TcpServer/BinaryFormatWriter.cs b/src/OneScript.DebugProtocol/Internal/BinaryFormatWriter.cs similarity index 53% rename from src/OneScript.DebugProtocol/TcpServer/BinaryFormatWriter.cs rename to src/OneScript.DebugProtocol/Internal/BinaryFormatWriter.cs index d4842497f..1539526e4 100644 --- a/src/OneScript.DebugProtocol/TcpServer/BinaryFormatWriter.cs +++ b/src/OneScript.DebugProtocol/Internal/BinaryFormatWriter.cs @@ -7,9 +7,11 @@ This Source Code Form is subject to the terms of the using System; using System.IO; +using System.Linq; +using System.Reflection; using System.Text; -namespace OneScript.DebugProtocol.TcpServer +namespace OneScript.DebugProtocol.Internal { internal class BinaryFormatWriter : IDisposable { @@ -22,7 +24,7 @@ public BinaryFormatWriter(Stream target) public void WriteHeader(int rootId, int headerId) { - _writer.Write((byte)0); + WriteRecordType(0); _writer.Write(rootId); _writer.Write(headerId); _writer.Write(1); @@ -30,20 +32,59 @@ public void WriteHeader(int rootId, int headerId) } public void WriteStringRecord(int objectId, string data) + { + WriteRecordType(6); + _writer.Write(objectId); + + WriteStringValue(data); + } + + private void WriteStringValue(string data) { var bytes = Encoding.UTF8.GetBytes(data); if (bytes.Length > 127) throw new ArgumentOutOfRangeException(nameof(data), "Length encoding not supported for strings more than 127 bytes"); - - _writer.Write((byte)6); - _writer.Write(objectId); + _writer.Write((byte)bytes.Length); _writer.Write(bytes, 0, bytes.Length); } + public void WriteLibrary(Assembly assembly, int libraryId) + { + WriteRecordType(12); + _writer.Write(libraryId); + WriteStringValue(assembly.GetName().Name); + } + + public void WriteClassWithNoFields(Type type, int classId, int libraryId) + { + WriteRecordType(5); + + _writer.Write(classId); + WriteStringValue(type.FullName); + _writer.Write(0); // properties count + + _writer.Write(libraryId); + } + + private void WriteObjectArray(int objectId, object[] arr) + { + if (arr.Length != 0) + throw new ArgumentException("Only empty arrays mapping supported"); + + WriteRecordType(16); + _writer.Write(objectId); + _writer.Write(0); + } + + private void WriteNull() + { + WriteRecordType(10); + } + public void WriteEnd() { - _writer.Write((byte)11); + WriteRecordType(11); } public void Close() @@ -51,6 +92,11 @@ public void Close() Dispose(); } + private void WriteRecordType(byte type) + { + _writer.Write(type); + } + public void Dispose() { _writer.Flush(); diff --git a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs index fb2ca07c9..473a9f3d3 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs @@ -85,6 +85,11 @@ private void RunCommandsLoop() { _serverStopped = true; } + catch (ThreadInterruptedException) + { + // Сервер принудительно остановлен + _serverStopped = true; + } catch (Exception e) { var eventData = new CommunicationEventArgs @@ -97,6 +102,8 @@ private void RunCommandsLoop() OnError?.Invoke(this, eventData); } } + + _protocolChannel.Dispose(); }); _messageThread.IsBackground = true; @@ -117,8 +124,8 @@ public void Stop() if (_messageThread?.IsAlive == true) { - _protocolChannel.Dispose(); _messageThread.Interrupt(); + _protocolChannel.Dispose(); } } diff --git a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs index 6cc7a9990..a84f42c42 100644 --- a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs +++ b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs @@ -7,6 +7,7 @@ This Source Code Form is subject to the terms of the using System; using System.IO; using System.Text; +using OneScript.DebugProtocol.Internal; namespace OneScript.DebugProtocol.TcpServer { @@ -19,12 +20,14 @@ public static class FormatReconcileUtils /// public static byte[] GetReconcileMagic() { - using (var memoryStream = new MemoryStream(128)) + using (var memoryStream = new MemoryStream(256)) { using (var writer = new BinaryFormatWriter(memoryStream)) { writer.WriteHeader(1, 1); - writer.WriteStringRecord(1, "1C1C1C"); + writer.WriteLibrary(typeof(RpcCall).Assembly, 1); + writer.WriteClassWithNoFields(typeof(RpcCall), 1, 1); + //writer.WriteInstance(new object[]{Array.Empty(), "$NonExistentMethod$", nameof(IDebuggerService)}); writer.WriteEnd(); } diff --git a/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs b/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs index ce565ca7c..2b5da424a 100644 --- a/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs +++ b/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs @@ -3,6 +3,7 @@ using System.IO; using System.Runtime.Serialization.Formatters.Binary; using FluentAssertions; +using OneScript.DebugProtocol; using OneScript.DebugProtocol.TcpServer; using Xunit; @@ -16,11 +17,33 @@ public void CanReadReconcileViaBinaryFormatter() using (var stream = new MemoryStream(FormatReconcileUtils.GetReconcileMagic())) { var reader = new BinaryFormatter(); + var value = reader.Deserialize(stream); - value.Should().Be("1C1C1C"); + value.Should().BeEquivalentTo(new RpcCall()); } } + [Fact(Skip = "Manual run only")] + public void DumpBinaryStream() + { + const string filePath = ""; + using (var stream = new MemoryStream(FormatReconcileUtils.GetReconcileMagic())) + { + var serializer = new BinaryFormatter(); + var sampleCall = RpcCall.Create(nameof(IDebuggerService), "$NonExistent$"); + + using (var dest = new MemoryStream()) + { + serializer.Serialize(dest, sampleCall); + using (var file = new FileStream(filePath, FileMode.Create)) + { + dest.Position = 0; + dest.CopyTo(file); + } + } + } + } + [Fact] public void ExchangeReconcileVersions() { From a74ccf9fe6525a98cf8dbd23a14a50b8cbcb3672 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Wed, 23 Jul 2025 10:57:57 +0300 Subject: [PATCH 045/191] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=87=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82,=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=B8=D0=BC=D1=8B=D0=B9=20?= =?UTF-8?q?=D1=81=20=D0=B2=D0=B5=D1=82=D0=BA=D0=BE=D0=B9=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Transport/ConnectionFactory.cs | 6 +---- .../Transport/DebugClientFactory.cs | 27 ++++++++++++++----- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs b/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs index c43aff6c3..df14d95de 100644 --- a/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/ConnectionFactory.cs @@ -24,11 +24,7 @@ public static TcpClient Connect(int port) var client = new TcpClient(); TryConnect(client, debuggerUri); - var waitSec = 15; - Log.Information("Waiting {waitSec} seconds", waitSec); - Thread.Sleep(waitSec * 1000); - Log.Information("Waiting completed"); - + return client; } diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index 37dee6e5f..888f9342c 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -132,18 +132,33 @@ private void ReconcileDataFormat(TcpClient client) private void EmptyIncomingBuffer(TcpClient client) { - if (client.Available == 0) - return; + Log.Verbose("Reading out all incoming buffer"); + const int waitForDataInterval = 300; + const int gotNothingAttempts = 3; + + int gotNothingCount = 0; var buf = new byte[1024]; do { var hasBytes = client.Available; - var bytesRead = client.GetStream().Read(buf, 0, Math.Min(hasBytes, buf.Length)); - if (bytesRead == 0) - return; + if (hasBytes > 0) + { + gotNothingCount = 0; + var bytesRead = client.GetStream().Read(buf, 0, Math.Min(hasBytes, buf.Length)); + if (bytesRead == 0) + return; + } + else + { + gotNothingCount++; + } + + Log.Verbose("We have {Bytes} incoming bytes ({Attempt}). Waiting for more", hasBytes, gotNothingCount); + Thread.Sleep(waitForDataInterval); - } while (client.Available > 0); + } while (gotNothingCount < gotNothingAttempts); + Log.Verbose("Reading out completed"); } private void ReadStream(BinaryReader reader, byte[] buffer, int length) From c48dfe2dea94717418aedfea882485f745b001de Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Wed, 23 Jul 2025 11:13:17 +0300 Subject: [PATCH 046/191] =?UTF-8?q?=D0=98=D0=B7=D0=B1=D1=8B=D1=82=D0=BE?= =?UTF-8?q?=D1=87=D0=BD=D0=BE=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/OscriptDebugSession.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 967848323..0b06ae403 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -185,8 +185,6 @@ public override void Disconnect(Response response, dynamic arguments) public override void SetExceptionBreakpoints(Response response, dynamic arguments) { LogCommandReceived(); - Log.Verbose("Exception breakpoints: {@Data}", arguments); - var acceptedFilters = new List(); var filters = new List<(string Id, string Condition)>(); @@ -210,7 +208,6 @@ public override void SetExceptionBreakpoints(Response response, dynamic argument public override void SetBreakpoints(Response response, dynamic arguments) { LogCommandReceived(); - Log.Verbose("Breakpoints: {@Data}", arguments); if ((bool)arguments.sourceModified) { From a37efae6aa983c2d094dd3765996dc093b41cdfa Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Wed, 23 Jul 2025 13:22:15 +0300 Subject: [PATCH 047/191] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B0=20=D0=BB=D0=B8=D1=86=D0=B5=D0=BD=D0=B7=D0=B8?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReconcileForOlderVersionTests.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs b/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs index 2b5da424a..99236d778 100644 --- a/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs +++ b/src/Tests/VSCode.DebugAdapter.Tests/ReconcileForOlderVersionTests.cs @@ -1,3 +1,9 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ using System; using System.IO; @@ -68,4 +74,4 @@ public void ExchangeReconcileVersions() } } } -} \ No newline at end of file +} From 53987894ce4d2e61ad768b317961b1297a7f059a Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 27 Jul 2025 10:27:07 +0300 Subject: [PATCH 048/191] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=BD=D1=8F=D0=BB=20?= =?UTF-8?q?=D1=83=D1=80=D0=BE=D0=B2=D0=B5=D0=BD=D1=8C=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20=D0=BF=D1=80=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=BA=D0=BE=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index 888f9342c..94b6bdc39 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -113,7 +113,7 @@ private void ReconcileDataFormat(TcpClient client) _transport = TransportProtocols.Json; _protocolVersion = ProtocolVersions.Adjust(version); - Log.Verbose("Active protocol version {ProtocolVersion}", _protocolVersion); + Log.Debug("Active protocol version {ProtocolVersion}", _protocolVersion); } } else From cb47ba4d656b3bffa84ce6ef483a248fcf547d7c Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 27 Jul 2025 10:27:52 +0300 Subject: [PATCH 049/191] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=BF=D1=80=D0=B8=D0=B3=D0=BE=D0=B4=D0=B8=D0=B2?= =?UTF-8?q?=D1=88=D0=B8=D0=B9=D1=81=D1=8F=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Internal/AutoPropertyExtensions.cs | 59 ------------------- 1 file changed, 59 deletions(-) delete mode 100644 src/OneScript.DebugProtocol/Internal/AutoPropertyExtensions.cs diff --git a/src/OneScript.DebugProtocol/Internal/AutoPropertyExtensions.cs b/src/OneScript.DebugProtocol/Internal/AutoPropertyExtensions.cs deleted file mode 100644 index 92f094d22..000000000 --- a/src/OneScript.DebugProtocol/Internal/AutoPropertyExtensions.cs +++ /dev/null @@ -1,59 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -/* - * Based on https://gist.github.com/NickStrupat/39e659e53a7aa000b737 - */ - -using System; -using System.Reflection; -using System.Runtime.CompilerServices; - -namespace OneScript.DebugProtocol.Internal -{ - internal static class AutoPropertyExtensions - { - private const string Prefix = "<"; - private const string Suffix = ">k__BackingField"; - - private static string GetBackingFieldName(string propertyName) => $"{Prefix}{propertyName}{Suffix}"; - - private static string GetBaseClassPrefix(Type baseClass) => baseClass.Name + "+"; - - public static FieldInfo GetBackingField(this PropertyInfo propertyInfo) - { - if (propertyInfo == null) - throw new ArgumentNullException(nameof(propertyInfo)); - if (!propertyInfo.CanRead || !propertyInfo.GetGetMethod(nonPublic: true) - .IsDefined(typeof(CompilerGeneratedAttribute), inherit: true)) - return null; - - var backingFieldName = GetBackingFieldName(propertyInfo.Name); - - var backingField = - propertyInfo.DeclaringType?.GetField(backingFieldName, BindingFlags.Instance | BindingFlags.NonPublic); - - if (backingField == null) - return null; - - if (!backingField.IsDefined(typeof(CompilerGeneratedAttribute), inherit: true)) - return null; - return backingField; - } - - public static string GetFieldSerializationName(this FieldInfo field, PropertyInfo property) - { - if (field.DeclaringType == property.ReflectedType) - { - return field.Name; - } - - // This is inherited prop - return GetBaseClassPrefix(field.DeclaringType) + field.Name; - } - } -} \ No newline at end of file From 5c9d6081f9ce1545eaff995082e76fff2407815c Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 27 Jul 2025 11:18:44 +0300 Subject: [PATCH 050/191] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B1=D1=83=D1=8E=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=BD=D0=B5=D1=81=D1=82=D0=B8=20=D0=BE=D0=B1=D1=89?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BA=D1=83=D1=81=D0=BA=D0=B8=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0=20=D0=B2=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20?= =?UTF-8?q?=D0=B4=D0=B6=D0=B5=D0=BD=D0=BA=D0=B8=D0=BD=D1=81=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 89 ++++++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c7657a83f..5227824e1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -212,17 +212,7 @@ pipeline { unstash 'dist' unstash 'vsix' - dir('targetContent') { - sh ''' - ZIPS=../built - VSIX=../built/vscode - mv $ZIPS/*.zip ./ - mv $VSIX/*.vsix ./ - - TARGET="/var/www/oscript.io/download/versions/night-build/" - sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . $TARGET - '''.stripIndent() - } + publishRelease('night-build', false) } } @@ -234,42 +224,16 @@ pipeline { agent { label 'master' } options { skipDefaultCheckout() } - environment { - CODENAME = 'preview' - } - steps { cleanWs() - checkout scm + checkout scm // чтобы получить файл release-notes unstash 'dist' unstash 'vsix' - - dir('targetContent') { - sh ''' - ZIPS=../built - NUGET=../built/nuget - VSIX=../built/vscode - mv $ZIPS/*.zip ./ - mv $VSIX/*.vsix ./ - - TARGET="/var/www/oscript.io/download/versions/${CODENAME}/" - sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . $TARGET - '''.stripIndent() - } - dir('markdownContent') { - script { - def version="${env.VersionPrefix}-${env.VersionSuffix}".replaceAll("\\.", "_") - def targetDir='/var/www/oscript.io/markdown/versions' - - sh """ - cp ../install/release-notes.md "./${env.CODENAME}.md" - cp ../install/release-notes.md "./${version}.md" - - sudo rsync -rv . ${targetDir} - """.stripIndent() - } - } + // Положит файлы дистрибутива в целевую папку + publishRelease('preview', true) + // Положит описание для сайта + publishReleaseNotes('preview') } } @@ -294,3 +258,44 @@ pipeline { } } } + +def publishRelease(codename, isNumbered) { + dir('targetContent') { + sh """ + ZIPS=../built + NUGET=../built/nuget + VSIX=../built/vscode + mv $ZIPS/*.zip ./ + mv $VSIX/*.vsix ./ + + TARGET="/var/www/oscript.io/download/versions/${codename}/" + mkdir -p $TARGET + sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . $TARGET + """.stripIndent() + + if (isNumbered) { + def version="${env.VersionPrefix}-${env.VersionSuffix}".replaceAll("\\.", "_") + + sh """ + TARGET="/var/www/oscript.io/download/versions/${version}/" + mkdir -p $TARGET + sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . $TARGET + """.stripIndent() + } + } +} + +def publishReleaseNotes(codename) { + dir('markdownContent') { + def version="${env.VersionPrefix}-${env.VersionSuffix}".replaceAll("\\.", "_") + def targetDir='/var/www/oscript.io/markdown/versions' + + sh """ + cp ../install/release-notes.md "./${codename}.md" + cp ../install/release-notes.md "./${version}.md" + + sudo rsync -rv . ${targetDir} + """.stripIndent() + } +} + From 0cc0345875581fdd29f5bc938e3b03662b57ffa8 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 27 Jul 2025 11:49:20 +0300 Subject: [PATCH 051/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20jenkinsfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5227824e1..c7f4765be 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -230,10 +230,11 @@ pipeline { unstash 'dist' unstash 'vsix' - // Положит файлы дистрибутива в целевую папку - publishRelease('preview', true) // Положит описание для сайта publishReleaseNotes('preview') + + // Положит файлы дистрибутива в целевую папку + publishRelease('preview', true) } } @@ -265,12 +266,12 @@ def publishRelease(codename, isNumbered) { ZIPS=../built NUGET=../built/nuget VSIX=../built/vscode - mv $ZIPS/*.zip ./ - mv $VSIX/*.vsix ./ + mv \$ZIPS/*.zip ./ + mv \$VSIX/*.vsix ./ TARGET="/var/www/oscript.io/download/versions/${codename}/" - mkdir -p $TARGET - sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . $TARGET + mkdir -p \$TARGET + sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . \$TARGET """.stripIndent() if (isNumbered) { @@ -278,8 +279,8 @@ def publishRelease(codename, isNumbered) { sh """ TARGET="/var/www/oscript.io/download/versions/${version}/" - mkdir -p $TARGET - sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . $TARGET + mkdir -p \$TARGET + sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . \$TARGET """.stripIndent() } } From e75f33aa6a2faf7017049b7352059e3cdedb845b Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 29 Jul 2025 15:11:33 +0300 Subject: [PATCH 052/191] =?UTF-8?q?=D0=9A=D0=BE=D0=B4=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=BC=D0=BE=D0=B6=D0=B5=D1=82=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=B4=D0=B0=D0=B2=D0=B0=D1=82=D1=8C=20!Equals=20=D0=B4?= =?UTF-8?q?=D0=B0=D0=B6=D0=B5=20=D0=BD=D0=B0=20=D1=81=D0=BE=D0=B2=D0=BF?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=8E=D1=89=D0=B5=D0=B9=20=D0=BA=D0=BE=D0=B4?= =?UTF-8?q?=D0=BE=D0=B2=D0=BE=D0=B9=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=86=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs b/src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs index 25d08bd5c..f2c2c524b 100644 --- a/src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs +++ b/src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs @@ -55,10 +55,10 @@ private TextEncodingEnum(TypeDescriptor typeRepresentation, TypeDescriptor value public EnumerationValue GetValue(Encoding encoding) { - if (encoding.Equals(Encoding.GetEncoding(866))) + if (encoding.Equals(Encoding.GetEncoding(866)) || encoding.CodePage == 866) return Oem; - if (encoding.Equals(Encoding.GetEncoding(1251))) + if (encoding.Equals(Encoding.GetEncoding(1251)) || encoding.CodePage == 1251) return Ansi; if (encoding.Equals(new UnicodeEncoding(false, true))) @@ -72,8 +72,8 @@ public EnumerationValue GetValue(Encoding encoding) if (encoding.Equals(Encoding.Default)) return System; - - throw RuntimeException.InvalidArgumentValue(); + + throw RuntimeException.InvalidArgumentValue(encoding); } public static TextEncodingEnum CreateInstance(ITypeManager typeManager) From a9dcf848fe5fae1b1bf81ff32f84774615bf4ef1 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 29 Jul 2025 15:55:49 +0300 Subject: [PATCH 053/191] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20=D0=BF=D1=83=D1=82?= =?UTF-8?q?=D0=B8,=20=D0=BF=D0=BE=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=BC=D1=83=20=D0=B8=D1=89=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=BA=D1=81=D0=B8-=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D0=BE=D1=82=D0=B5=D0=BA=D0=B0=20NativeApi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/native-api.os | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/native-api.os b/tests/native-api.os index 438525b14..a422d2b40 100644 --- a/tests/native-api.os +++ b/tests/native-api.os @@ -50,7 +50,7 @@ Сборка = Новый Файл(ПутьБиблиотеки); Если Не Сборка.Существует() Тогда - ВызватьИсключение "Не собрана прокси-библиотека для NativeApi"; + ВызватьИсключение СтрШаблон("Не собрана прокси-библиотека для NativeApi: %1", ПутьБиблиотеки); КонецЕсли; КонецПроцедуры From 9e92e78ee937e4dab28c86f508a15280560137ad Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 29 Jul 2025 15:58:53 +0300 Subject: [PATCH 054/191] =?UTF-8?q?=D0=9E=D1=82=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BF=D0=BE=D0=BB=D0=BD=D0=BE=D1=81=D1=82=D1=8C?= =?UTF-8?q?=D1=8E=20LFS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index c815e3572..491571d38 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,4 @@ *.sh text eol=lf install/opm text eol=lf install/oscript text eol=lf -*.zip filter=lfs diff=lfs merge=lfs -text +#*.zip filter=lfs diff=lfs merge=lfs -text From f69ff53a0c4d68828693101aac043a63a365f9db Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 29 Jul 2025 15:59:05 +0300 Subject: [PATCH 055/191] =?UTF-8?q?=D0=90=D0=B4=D0=B0=D0=BF=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=B4=20=D0=B1=D0=B8=D0=B1?= =?UTF-8?q?=D0=BB=D0=B8=D0=BE=D1=82=D0=B5=D0=BA=D1=83=20DotNetZip.Original?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OneScript.StandardLibrary.csproj | 2 +- .../Zip/DotNetZipEncoding.cs | 57 ++++++++++++++++++ .../Zip/ZipReader.cs | 9 ++- .../Zip/ZipWriter.cs | 2 +- tests/zip/fixtures/testUTF8.zip | Bin 0 -> 196 bytes tests/{zip.os => zip/test-zip.os} | 29 ++++++++- .../test-zipfilereader-from-stream.os} | 0 7 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs create mode 100644 tests/zip/fixtures/testUTF8.zip rename tests/{zip.os => zip/test-zip.os} (97%) rename tests/{zipfilereader-from-stream.os => zip/test-zipfilereader-from-stream.os} (100%) diff --git a/src/OneScript.StandardLibrary/OneScript.StandardLibrary.csproj b/src/OneScript.StandardLibrary/OneScript.StandardLibrary.csproj index 9339b2dbd..b40bf2dc9 100644 --- a/src/OneScript.StandardLibrary/OneScript.StandardLibrary.csproj +++ b/src/OneScript.StandardLibrary/OneScript.StandardLibrary.csproj @@ -24,7 +24,7 @@ - + diff --git a/src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs b/src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs new file mode 100644 index 000000000..65ea00acb --- /dev/null +++ b/src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs @@ -0,0 +1,57 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.Reflection; +using System.Text; +using Ionic.Zip; + +namespace OneScript.StandardLibrary.Zip +{ + internal static class DotNetZipEncoding + { + private static volatile bool _encodingIsSet; + private static readonly object _locker = new object(); + + static DotNetZipEncoding() + { + _encodingIsSet = false; + } + + public static void SetDefault(Encoding encoding) + { + if (_encodingIsSet) + return; + + lock (_locker) + { + if (_encodingIsSet) + return; + + SetDefaultEncoding(encoding); + _encodingIsSet = true; + } + } + + private static void SetDefaultEncoding(Encoding encoding) + { + const string fieldName = "_defaultEncoding"; + + var field = typeof(ZipFile).GetField(fieldName, BindingFlags.Static | BindingFlags.NonPublic); + if (field == null) + throw new InvalidOperationException("Field for default encoding not found"); + + field.SetValue(null, encoding); + + if (!Equals(ZipFile.DefaultEncoding, encoding)) + { + throw new InvalidOperationException( + "Field is set, but property DefaultEncoding hasn't changed. Probably another property implementation in library"); + } + } + } +} \ No newline at end of file diff --git a/src/OneScript.StandardLibrary/Zip/ZipReader.cs b/src/OneScript.StandardLibrary/Zip/ZipReader.cs index ce29a1b81..ac16efd10 100644 --- a/src/OneScript.StandardLibrary/Zip/ZipReader.cs +++ b/src/OneScript.StandardLibrary/Zip/ZipReader.cs @@ -52,7 +52,7 @@ private void CheckIfOpened() public void Open(IValue filenameOrStream, string password = null, FileNamesEncodingInZipFile encoding = FileNamesEncodingInZipFile.Auto) { // fuck non-russian encodings on non-ascii files - ZipFile.DefaultEncoding = Encoding.GetEncoding(866); + DotNetZipEncoding.SetDefault(Encoding.GetEncoding(866)); if (filenameOrStream.SystemType == BasicTypes.String) { @@ -104,6 +104,13 @@ public void ExtractAll(string where, ZipRestoreFilePathsMode restorePaths = defa public void Extract(ZipFileEntryContext entry, string destination, ZipRestoreFilePathsMode restorePaths = default, string password = null) { CheckIfOpened(); + if (entry == null) + { + // Передали Неопределено + // TODO сделать более строгий маршалинг с учетом всех тыщ особенностей для строк и прочего + throw RuntimeException.InvalidNthArgumentType(1); + } + var realEntry = entry.GetZipEntry(); _zip.FlattenFoldersOnExtract = restorePaths == ZipRestoreFilePathsMode.DontRestore; realEntry.Password = password; diff --git a/src/OneScript.StandardLibrary/Zip/ZipWriter.cs b/src/OneScript.StandardLibrary/Zip/ZipWriter.cs index e345c535b..dbef29cc2 100644 --- a/src/OneScript.StandardLibrary/Zip/ZipWriter.cs +++ b/src/OneScript.StandardLibrary/Zip/ZipWriter.cs @@ -52,7 +52,7 @@ public void Open( ZipEncryptionMethod? encryptionMethod = default, FileNamesEncodingInZipFile encoding = FileNamesEncodingInZipFile.Auto) { - ZipFile.DefaultEncoding = Encoding.GetEncoding(866); // fuck non-russian encodings on non-ascii files + DotNetZipEncoding.SetDefault(Encoding.GetEncoding(866)); // fuck non-russian encodings on non-ascii files _filename = filename; _zip = new ZipFile(); _zip.AlternateEncoding = Encoding.UTF8; diff --git a/tests/zip/fixtures/testUTF8.zip b/tests/zip/fixtures/testUTF8.zip new file mode 100644 index 0000000000000000000000000000000000000000..75889de501dd72eb35214e8d8dee990149e55689 GIT binary patch literal 196 zcmWIWW@Zs#0D;7~zfoWYl;C0zWw0qpEiSRsE2$_cEf8d2lzP1* Date: Tue, 29 Jul 2025 20:42:10 +0300 Subject: [PATCH 056/191] =?UTF-8?q?Original=20=D0=B2=D1=81=D0=B5=20=D0=B5?= =?UTF-8?q?=D1=89=D0=B5=20=D1=83=D1=8F=D0=B7=D0=B2=D0=B8=D0=BC=20=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=BC=D0=B5=D0=B5=D1=82=20=D0=BD=D0=B5=D0=B7=D0=B0=D0=BA?= =?UTF-8?q?=D1=80=D1=8B=D1=82=D1=83=D1=8E=20CVE-2024-48510?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ProDotNetZip и его родитель DotNetZip.Semverd имеют коммит с исправлением: https://github.com/haf/DotNetZip.Semverd/commit/18486ad6d13742a07a6755ef6edf60d7458f1854 --- .../OneScript.StandardLibrary.csproj | 2 +- src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/OneScript.StandardLibrary/OneScript.StandardLibrary.csproj b/src/OneScript.StandardLibrary/OneScript.StandardLibrary.csproj index b40bf2dc9..1c2bbf009 100644 --- a/src/OneScript.StandardLibrary/OneScript.StandardLibrary.csproj +++ b/src/OneScript.StandardLibrary/OneScript.StandardLibrary.csproj @@ -24,8 +24,8 @@ - + diff --git a/src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs b/src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs index 65ea00acb..78563993f 100644 --- a/src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs +++ b/src/OneScript.StandardLibrary/Zip/DotNetZipEncoding.cs @@ -32,12 +32,17 @@ public static void SetDefault(Encoding encoding) if (_encodingIsSet) return; - SetDefaultEncoding(encoding); + SetDefaultEncodingViaProperty(encoding); _encodingIsSet = true; } } - private static void SetDefaultEncoding(Encoding encoding) + private static void SetDefaultEncodingViaProperty(Encoding encoding) + { + ZipFile.DefaultEncoding = encoding; + } + + private static void SetDefaultEncodingViaReflection(Encoding encoding) { const string fieldName = "_defaultEncoding"; From 077ea48e9648ca6998752a13206e6b9a85d940f5 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 3 Aug 2025 10:25:38 +0300 Subject: [PATCH 057/191] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B2=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/release-notes.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/install/release-notes.md b/install/release-notes.md index eb2f21be0..da03c57c8 100644 --- a/install/release-notes.md +++ b/install/release-notes.md @@ -1,16 +1,13 @@ -# Новое в версии 2.0.0-rc.7 +# Новое в версии 2.0.0-rc.8 -* Проведена масштабная доработка ядра в части управления потоками bsl и удаления глобальных статических классов. -* Нумерация версий ошибочно не соответствовала semver в части пре-релизного номера. Нумерация приведена к semver -* Полностью переписан генератор документации OneScriptDocumenter -* ВебСервер учитывает настройку FormOptions в appsettings.json -* Проведена оптимизация экранирования символов в ЗаписьJSON +* Заменена библиотека DotNetZip на форк ProDotNetZip из-за незакрытой уязвимости CVE-2024-48510 +* Существенно ускорена компиляция большого числа модулей. Запуск тяжелых приложений с множеством классов стал намного быстрее. +* Доработан отладчик и сервер отладки, введен новый протокол обмена данными для отказа от BinaryFormatter в рамках перехода на net8 +* Изменен формат конфигурации для включения лога отладки. См. каталог установки расширения и файл `VSCode.DebugAdapter.exe.config` +* Изменен вывод компилятора в случае ошибки. Изменена отметка отметка позиции ошибки в строке. Более точное позиционирование ошибки # Исправление ошибок -* Отладчик неверно шагает, не встает на строку КонецПроцедуры/Функции при обработке возврата -* Возвращено поведение загрузчика из версии 1 с приоритетом ключа lib.additional -* TestApp не добавлялся в состав дистрибутива SCD для Windows -* Поведение Соответствия с ключом Неопределено приведено к новым версиям платформы. -* Метод ЧтениеДанных.ПрочитатьБайт не выбрасывает исключение в конце потока -* Исправление английского варианта метода `КаталогПрограммы`. Теперь используется совместимое с 1С название `BinDir`. Старый (неверный) вариант `ProgramDirectory` также поддерживаются с выдачей предупреждения \ No newline at end of file +* Разрешены комментарии после аннотаций модуля +* Разрешено использование комментариев в строке с директивой Использовать +* Слово Ждать вне асинхронного метода не должно иметь специального значения From 603046fea2acae5f445900a3f37ad589d44d3f1b Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 3 Aug 2025 12:38:21 +0300 Subject: [PATCH 058/191] sudo --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index c7f4765be..81fe60bef 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -279,7 +279,7 @@ def publishRelease(codename, isNumbered) { sh """ TARGET="/var/www/oscript.io/download/versions/${version}/" - mkdir -p \$TARGET + sudo mkdir -p \$TARGET sudo rsync -rv --delete --exclude mddoc*.zip --exclude *.src.rpm . \$TARGET """.stripIndent() } From bd9b7e4c5039144f96f5a2ca6d97b0f22f9b2bdb Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Mon, 4 Aug 2025 11:57:53 +0300 Subject: [PATCH 059/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=BD=D0=B0=20net8=20(#1562)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Переключил платформу на net8 * Поднял номер версии сборки dev --- Build.csproj | 8 +++++--- Jenkinsfile | 2 +- src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs | 3 +++ src/TestApp/TestApp.csproj | 2 +- src/oscommon.targets | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Build.csproj b/Build.csproj index d50f3f220..9ce340219 100644 --- a/Build.csproj +++ b/Build.csproj @@ -14,6 +14,8 @@ Release $(MSBuildProjectDirectory)/src/1Script.sln + net8.0 + @@ -30,11 +32,11 @@ oscript.csproj - net6.0 + $(ActiveFramework) TestApp.csproj - net6.0-windows + $(ActiveFramework)-windows @@ -106,7 +108,7 @@ - + $(MSBuildProjectDirectory)/src/ScriptEngine.NativeApi/bin/$(Configuration) diff --git a/Jenkinsfile b/Jenkinsfile index 81fe60bef..d60d93856 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,7 +5,7 @@ pipeline { environment { VersionPrefix = '2.0.0' - VersionSuffix = 'rc.8'+"+${BUILD_NUMBER}" + VersionSuffix = 'rc.9'+"+${BUILD_NUMBER}" outputEnc = '65001' } diff --git a/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs b/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs index 5d3c3a3af..d806ef8e7 100644 --- a/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs @@ -8,9 +8,12 @@ This Source Code Form is subject to the terms of the using System; using System.Net.Sockets; using System.Runtime.Serialization; +#if NET48 using System.Runtime.Serialization.Formatters.Binary; +#endif using OneScript.DebugProtocol.Abstractions; +// ReSharper disable once CheckNamespace namespace OneScript.DebugProtocol { /// diff --git a/src/TestApp/TestApp.csproj b/src/TestApp/TestApp.csproj index 7d49eb936..241a30b6c 100644 --- a/src/TestApp/TestApp.csproj +++ b/src/TestApp/TestApp.csproj @@ -3,7 +3,7 @@ - net6.0-windows + net8.0-windows logo.ico WinExe diff --git a/src/oscommon.targets b/src/oscommon.targets index 2268a19aa..d47770e3a 100644 --- a/src/oscommon.targets +++ b/src/oscommon.targets @@ -7,7 +7,7 @@ Release x86 8.0 - net6.0 + net8.0 $(NoWarn);CS1591 False disable From e17fe9a6a7d94a9a4f7abf209f031ea5c91a9064 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Wed, 6 Aug 2025 08:10:25 +0200 Subject: [PATCH 060/191] =?UTF-8?q?=D0=A1=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D0=B5=D1=80-=D0=BE=D0=B1=D1=80=D0=B0=D0=B7?= =?UTF-8?q?=D0=B0=20v1=20=D0=BD=D0=B0=20Jenkins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-build.Jenkinsfile | 55 +++++++++++++++++++++++ install/builders/base-image/Dockerfile_v1 | 5 ++- install/builders/base-image/Dockerfile_v2 | 2 +- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 docker-build.Jenkinsfile diff --git a/docker-build.Jenkinsfile b/docker-build.Jenkinsfile new file mode 100644 index 000000000..59b810166 --- /dev/null +++ b/docker-build.Jenkinsfile @@ -0,0 +1,55 @@ +pipeline { + agent { + label 'linux' + } + + environment { + DOCKER_USERNAME = "evilbeaver" + } + + stages { + stage('Build v1') { + when { + anyOf { + branch 'release/latest' + expression { + return env.TAG_NAME && env.TAG_NAME.startsWith('v1.') + } + } + } + steps { + script { + def dockerTag = env.TAG_NAME ? env.TAG_NAME : 'latest' + def imageName = "${env.DOCKER_USERNAME}/onescript:${dockerTag}" + + docker.build( + imageName, + '--load -f install/builders/base-image/Dockerfile_v1 .' + ).push() + } + } + } + + stage('Build v2') { + when { + anyOf { + branch 'develop' + expression { + return env.TAG_NAME && env.TAG_NAME.startsWith('v2.') + } + } + } + steps { + script { + def dockerTag = env.TAG_NAME ? env.TAG_NAME : 'dev' + def imageName = "${env.DOCKER_USERNAME}/onescript:${dockerTag}" + + docker.build( + imageName, + '--load -f install/builders/base-image/Dockerfile_v2 .' + ).push() + } + } + } + } +} diff --git a/install/builders/base-image/Dockerfile_v1 b/install/builders/base-image/Dockerfile_v1 index 513cc9222..a1cc0c9db 100644 --- a/install/builders/base-image/Dockerfile_v1 +++ b/install/builders/base-image/Dockerfile_v1 @@ -8,4 +8,7 @@ LABEL MAINTAINER="EvilBeaver " ARG VERSION=stable RUN curl -L https://github.com/oscript-library/ovm/releases/latest/download/ovm.exe > ovm.exe \ - && mono ovm.exe use --install $VERSION \ No newline at end of file + && mono ovm.exe use --install $VERSION + +ENV OSCRIPTBIN=/root/.local/share/ovm/current/bin +ENV PATH="$OSCRIPTBIN:$PATH" diff --git a/install/builders/base-image/Dockerfile_v2 b/install/builders/base-image/Dockerfile_v2 index 689268ba0..7412f7d47 100644 --- a/install/builders/base-image/Dockerfile_v2 +++ b/install/builders/base-image/Dockerfile_v2 @@ -11,7 +11,7 @@ ARG VERSION="dev" RUN mono /var/ovm/ovm.exe install --fdd ${VERSION} # Основной образ -FROM mcr.microsoft.com/dotnet/aspnet:6.0-jammy +FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy RUN apt-get update \ && apt-get install -y locales \ From be55753e5b6a53df14e0bafe8603c72394e46126 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Thu, 7 Aug 2025 07:20:17 +0200 Subject: [PATCH 061/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20=D0=B2=20=D0=BE?= =?UTF-8?q?=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D0=BE=D0=B9=20=D0=B4=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=B8=D0=BD=D1=81=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 54 ++++++++++++++++++++++++++++++++++++--- docker-build.Jenkinsfile | 55 ---------------------------------------- 2 files changed, 50 insertions(+), 59 deletions(-) delete mode 100644 docker-build.Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile index d60d93856..807b2c2b0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -199,8 +199,9 @@ pipeline { } stage ('Publishing night-build') { - when { anyOf { - branch 'develop'; + when { + anyOf { + branch 'develop'; } } agent { label 'master' } @@ -217,8 +218,9 @@ pipeline { } stage ('Publishing preview') { - when { anyOf { - branch 'release/preview'; + when { + anyOf { + branch 'release/preview'; } } agent { label 'master' } @@ -257,6 +259,40 @@ pipeline { } } } + + stage ('Publishing docker-images') { + parallel { + stage('Build v1') { + agent { label 'linux' } + when { + anyOf { + branch 'latest' + expression { + return env.TAG_NAME && env.TAG_NAME.startsWith('v1.') + } + } + } + steps { + publishDockerImage('v1') + } + } + + stage('Build v2') { + agent { label 'linux' } + when { + anyOf { + branch 'develop' + expression { + return env.TAG_NAME && env.TAG_NAME.startsWith('v2.') + } + } + } + steps { + publishDockerImage('v2') + } + } + } + } } } @@ -300,3 +336,13 @@ def publishReleaseNotes(codename) { } } +def publishDockerImage(flavour) { + def dockerTag = env.TAG_NAME ? env.TAG_NAME : env.BRANCH_NAME + def imageName = "evilbeaver/onescript:${dockerTag}" + + docker.build( + imageName, + "--load -f install/builders/base-image/Dockerfile_${flavour} ." + ).push() +} + diff --git a/docker-build.Jenkinsfile b/docker-build.Jenkinsfile deleted file mode 100644 index 59b810166..000000000 --- a/docker-build.Jenkinsfile +++ /dev/null @@ -1,55 +0,0 @@ -pipeline { - agent { - label 'linux' - } - - environment { - DOCKER_USERNAME = "evilbeaver" - } - - stages { - stage('Build v1') { - when { - anyOf { - branch 'release/latest' - expression { - return env.TAG_NAME && env.TAG_NAME.startsWith('v1.') - } - } - } - steps { - script { - def dockerTag = env.TAG_NAME ? env.TAG_NAME : 'latest' - def imageName = "${env.DOCKER_USERNAME}/onescript:${dockerTag}" - - docker.build( - imageName, - '--load -f install/builders/base-image/Dockerfile_v1 .' - ).push() - } - } - } - - stage('Build v2') { - when { - anyOf { - branch 'develop' - expression { - return env.TAG_NAME && env.TAG_NAME.startsWith('v2.') - } - } - } - steps { - script { - def dockerTag = env.TAG_NAME ? env.TAG_NAME : 'dev' - def imageName = "${env.DOCKER_USERNAME}/onescript:${dockerTag}" - - docker.build( - imageName, - '--load -f install/builders/base-image/Dockerfile_v2 .' - ).push() - } - } - } - } -} From e6fb8191a2c030854bc61589d4033c84121f78b6 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Thu, 7 Aug 2025 09:07:26 +0200 Subject: [PATCH 062/191] develop -> dev --- Jenkinsfile | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 807b2c2b0..ddd71e23c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -273,7 +273,10 @@ pipeline { } } steps { - publishDockerImage('v1') + script { + def codename = env.TAG_NAME ? env.TAG_NAME : 'latest' + publishDockerImage('v1', codename) + } } } @@ -288,8 +291,10 @@ pipeline { } } steps { - publishDockerImage('v2') - } + script { + def codename = env.TAG_NAME ? env.TAG_NAME : 'dev' + publishDockerImage('v2', codename) + } } } } @@ -336,9 +341,8 @@ def publishReleaseNotes(codename) { } } -def publishDockerImage(flavour) { - def dockerTag = env.TAG_NAME ? env.TAG_NAME : env.BRANCH_NAME - def imageName = "evilbeaver/onescript:${dockerTag}" +def publishDockerImage(flavour, codename) { + def imageName = "evilbeaver/onescript:${codename}" docker.build( imageName, From ce7d401db6f3fdb5f8e063c150dbcc246aaea959 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 05:11:46 +0000 Subject: [PATCH 063/191] Bump actions/checkout from 4 to 5 Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/copilot-setup-steps.yml | 2 +- .github/workflows/rebase.yml | 2 +- .github/workflows/sonar.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index e1f8b7bb1..22525f14f 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -17,7 +17,7 @@ jobs: # Setup steps for OneScript development environment steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - run: git config --global core.quotepath false diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml index c06a1bcdf..bee4a270f 100644 --- a/.github/workflows/rebase.yml +++ b/.github/workflows/rebase.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the latest code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: token: ${{ secrets.GITHUB_TOKEN }} fetch-depth: 0 # otherwise, you will fail to push refs to dest repo diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 6dbadf7b4..48606f6d6 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -15,7 +15,7 @@ jobs: with: java-version: 17 distribution: temurin - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - name: Cache SonarQube packages From 5c3d0ca5810ad69c5b58cd191afaf56ff946d725 Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Mon, 18 Aug 2025 20:41:05 +0300 Subject: [PATCH 064/191] =?UTF-8?q?#1569=20=D0=A1=D0=B1=D1=80=D0=B0=D1=81?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=B5=D0=BC=20=D1=84=D0=BB=D0=B0=D0=B3=20?= =?UTF-8?q?=D0=A1=D1=82=D0=B0=D0=BD=D0=B4=D0=B0=D1=80=D1=82=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B8=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B5=20DLL.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/package-loader.os | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/install/package-loader.os b/install/package-loader.os index 915c41a15..176c3cfac 100644 --- a/install/package-loader.os +++ b/install/package-loader.os @@ -192,9 +192,9 @@ МажорнаяВерсия = Лев(СИ.Версия,1); Если МажорнаяВерсия = "1" Тогда - ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "net4")); + ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "net4"), СтандартнаяОбработка); ИначеЕсли МажорнаяВерсия = "2" Тогда - ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "dotnet")); + ОбработатьБиблиотекиCLR(ОбъединитьПути(Путь, "dotnet"), СтандартнаяОбработка); Иначе Вывести("Неизвестная мажорная версия системы: " + МажорнаяВерсия); КонецЕсли; @@ -203,17 +203,21 @@ КонецПроцедуры -Процедура ОбработатьБиблиотекиCLR(Путь) - КандидатыВКомпоненты = НайтиФайлы(Путь, "1script_*.dll"); +Процедура ОбработатьБиблиотекиCLR(Знач Путь, СтандартнаяОбработка) + + КандидатыВКомпоненты = НайтиФайлы(Путь, "1script_*.dll"); Для Каждого Кандидат Из КандидатыВКомпоненты Цикл + Если Не Кандидат.ЭтоФайл() Тогда Продолжить; КонецЕсли; Вывести("Загружаю файл " + Кандидат.Имя); ЗагрузитьБиблиотеку(Кандидат.ПолноеИмя); + СтандартнаяОбработка = Ложь; КонецЦикла; + КонецПроцедуры Процедура ОбработатьКомпонентыNativeApi(Путь) From 8c6177b3ab6b7c773431c266cbd2056dcaf84031 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 21:09:42 +0000 Subject: [PATCH 065/191] Bump actions/setup-java from 4 to 5 Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-java dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/sonar.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 48606f6d6..9c3d64d41 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -11,7 +11,7 @@ jobs: if: (github.repository == 'EvilBeaver/OneScript' ) && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name) steps: - name: Set up JDK 17 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: 17 distribution: temurin From 458a559d7e3476f0d5cdde448ce8c096b96bab90 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Fri, 22 Aug 2025 12:57:55 +0400 Subject: [PATCH 066/191] =?UTF-8?q?fix=20#1573:=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BD=D1=8B=D0=B9=20=D1=85=D0=B5=D1=88=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0=20=D0=B2=20=D1=82?= =?UTF-8?q?=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D0=B5=20=D0=BF=D0=BE=20=D0=B8?= =?UTF-8?q?=D0=BD=D0=B4=D0=B5=D0=BA=D1=81=D1=83=20+=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/BslDateValue.cs | 2 ++ src/OneScript.Core/Values/BslStringValue.cs | 2 ++ tests/ValueTableIndex.os | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/src/OneScript.Core/Values/BslDateValue.cs b/src/OneScript.Core/Values/BslDateValue.cs index 205dedd4a..79bb70161 100644 --- a/src/OneScript.Core/Values/BslDateValue.cs +++ b/src/OneScript.Core/Values/BslDateValue.cs @@ -44,6 +44,8 @@ public override bool Equals(BslValue other) return base.Equals(other); } + + public override int GetHashCode() => _value.GetHashCode(); public override TypeDescriptor SystemType => BasicTypes.Date; diff --git a/src/OneScript.Core/Values/BslStringValue.cs b/src/OneScript.Core/Values/BslStringValue.cs index b759c7c97..99c8ac1ea 100644 --- a/src/OneScript.Core/Values/BslStringValue.cs +++ b/src/OneScript.Core/Values/BslStringValue.cs @@ -45,6 +45,8 @@ public override bool Equals(BslValue other) return other is BslStringValue sv ? _value.Equals(sv._value) : base.Equals(other); } + public override int GetHashCode() => _value.GetHashCode(); + public override int CompareTo(BslValue other) { if (ReferenceEquals(null, other)) diff --git a/tests/ValueTableIndex.os b/tests/ValueTableIndex.os index eb46d3fbf..b1a0e1b45 100644 --- a/tests/ValueTableIndex.os +++ b/tests/ValueTableIndex.os @@ -25,6 +25,7 @@ ВсеТесты.Добавить("ТестДолжен_ПоведениеИндексовПриУдаленииКолонок"); ВсеТесты.Добавить("ТестДолжен_ПоведениеИндексовПриИзмененииЗначенийИндексированныхПолей"); ВсеТесты.Добавить("ТестДолжен_ПроверитьВыбросИсключений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьПоискПоИндексированнойКолонкеСЗаданнымТипом"); Возврат ВсеТесты; @@ -243,3 +244,22 @@ юТест.ПроверитьРавенство(ПоискПоИндексу[0][ИндексированноеПоле], ИскомоеЗначение, Пояснение); КонецПроцедуры + +// к issue #1573 +Процедура ТестДолжен_ПроверитьПоискПоИндексированнойКолонкеСЗаданнымТипом() Экспорт + + Т = Новый ТаблицаЗначений; + Т.Колонки.Добавить("К1",Новый ОписаниеТипов("Строка")); + Т.Индексы.Добавить("К1"); + + Т.Добавить().К1 = "Стр1"; + Т.Добавить().К1 = "Стр2"; + Т.Добавить().К1 = "Стр3"; + + + СтруктураПоиска = Новый Структура("К1", "Стр2"); + НайденныеСтроки = Т.НайтиСтроки(СтруктураПоиска); + юТест.ПроверитьРавенство(НайденныеСтроки.Количество(), 1); + юТест.ПроверитьРавенство(НайденныеСтроки[0].К1, "Стр2"); + +КонецПроцедуры From 971d555430406e9299a7420178c67d63fa2e07db Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Mon, 1 Sep 2025 16:21:30 +0400 Subject: [PATCH 067/191] =?UTF-8?q?fix=20#1577:=20=D1=81=D0=BE=D1=80=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BD=D0=B5=D1=83=D0=BF?= =?UTF-8?q?=D0=BE=D1=80=D1=8F=D0=B4=D0=BE=D1=87=D0=B8=D0=B2=D0=B0=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=D1=85=20=D1=82=D0=B8=D0=BF=D0=BE=D0=B2=20+=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Machine/GenericIValueComparer.cs | 2 +- tests/valuetable.os | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/ScriptEngine/Machine/GenericIValueComparer.cs b/src/ScriptEngine/Machine/GenericIValueComparer.cs index 4cb632e59..f6c83911b 100644 --- a/src/ScriptEngine/Machine/GenericIValueComparer.cs +++ b/src/ScriptEngine/Machine/GenericIValueComparer.cs @@ -39,7 +39,7 @@ public int GetHashCode(IValue obj) public int Compare(IValue x, IValue y) { - if (ReferenceEquals(x, default) && ReferenceEquals(y, default)) + if (ReferenceEquals(x, y)) return 0; if (x.SystemType == y.SystemType) diff --git a/tests/valuetable.os b/tests/valuetable.os index 4bdbcdedd..7e9d7c987 100644 --- a/tests/valuetable.os +++ b/tests/valuetable.os @@ -43,6 +43,8 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьСверткуПоКолонкамСуммированияСРазнымиТипами"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСверткуПоОднойКолонкеСРазнымиТипами"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуНеупорядочиваемыхТипов"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуРазныхТипов"); Возврат ВсеТесты; КонецФункции @@ -779,3 +781,26 @@ юТест.ПроверитьРавенство( СтрТЗ2[КолонкаСуммы], Количество, СтрШаблон("Сумма колонки %1 для значения %2 типа %3", КолонкаСуммы, Значение, ТипЗнч(Значение)) ); КонецПроцедуры + +// к issue #1577 +Процедура ТестДолжен_ПроверитьСортировкуНеупорядочиваемыхТипов() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + ТЗ.Добавить().Тест = Неопределено; + ТЗ.Добавить().Тест = Неопределено; + + ТЗ.Сортировать("Тест"); +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьСортировкуРазныхТипов() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + ТЗ.Добавить().Тест = Тип("Строка"); + ТЗ.Добавить().Тест = Неопределено; + ТЗ.Добавить().Тест = Новый Структура; + ТЗ.Добавить().Тест = null; + + ТЗ.Сортировать("Тест"); +КонецПроцедуры From 04bf94988ab84f07270a06fc17542119c28abec2 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Wed, 3 Sep 2025 14:14:07 +0400 Subject: [PATCH 068/191] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BD=D0=B0=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD?= =?UTF-8?q?=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ScriptEngine/Machine/GenericIValueComparer.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ScriptEngine/Machine/GenericIValueComparer.cs b/src/ScriptEngine/Machine/GenericIValueComparer.cs index f6c83911b..1c072f78e 100644 --- a/src/ScriptEngine/Machine/GenericIValueComparer.cs +++ b/src/ScriptEngine/Machine/GenericIValueComparer.cs @@ -5,6 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; using System.Collections.Generic; using OneScript.Values; using ScriptEngine.Machine.Contexts; @@ -42,7 +43,7 @@ public int Compare(IValue x, IValue y) if (ReferenceEquals(x, y)) return 0; - if (x.SystemType == y.SystemType) + if (x is IComparable && x.SystemType == y.SystemType ) return x.CompareTo(y); else return x.ToString().CompareTo(y.ToString()); From b048edf9f5ecd2d8b7546442d805ef9562ce6b55 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Wed, 3 Sep 2025 15:11:27 +0400 Subject: [PATCH 069/191] =?UTF-8?q?=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=B8=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/valuetable.os | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/valuetable.os b/tests/valuetable.os index 7e9d7c987..d7b57bf1c 100644 --- a/tests/valuetable.os +++ b/tests/valuetable.os @@ -790,7 +790,10 @@ ТЗ.Добавить().Тест = Неопределено; ТЗ.Добавить().Тест = Неопределено; - ТЗ.Сортировать("Тест"); + ТЗ.Сортировать("Тест"); // не должно упасть + + юТест.ПроверитьРавенство(ТЗ[0].Тест, Неопределено); + юТест.ПроверитьРавенство(ТЗ[1].Тест, Неопределено); КонецПроцедуры Процедура ТестДолжен_ПроверитьСортировкуРазныхТипов() Экспорт @@ -798,9 +801,18 @@ ТЗ.Колонки.Добавить("Тест"); ТЗ.Добавить().Тест = Тип("Строка"); - ТЗ.Добавить().Тест = Неопределено; + ТЗ.Добавить().Тест = "Стр2"; + ТЗ.Добавить().Тест = "СтрЪ"; ТЗ.Добавить().Тест = Новый Структура; ТЗ.Добавить().Тест = null; + ТЗ.Добавить().Тест = Тип("Булево"); + + ТЗ.Сортировать("Тест"); // не должно упасть - ТЗ.Сортировать("Тест"); + юТест.ПроверитьРавенство(ТЗ[0].Тест, Null); + юТест.ПроверитьРавенство(ТЗ[1].Тест, Тип("Булево")); + юТест.ПроверитьРавенство(ТЗ[2].Тест, "Стр2"); + юТест.ПроверитьРавенство(ТЗ[3].Тест, Тип("Строка")); + юТест.ПроверитьРавенство(ТипЗнч(ТЗ[4].Тест), Тип("Структура")); + юТест.ПроверитьРавенство(ТЗ[5].Тест, "СтрЪ"); КонецПроцедуры From 15235dcf3d004c4e5ce866ac72b43b6c574a378a Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 4 Sep 2025 00:15:35 +0400 Subject: [PATCH 070/191] =?UTF-8?q?=D1=81=D1=80=D0=B0=D0=B2=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=20=D0=BF=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Collections/ValueTable/ValueTable.cs | 13 +++--- .../Machine/GenericIValueComparer.cs | 26 +++++++++++- tests/valuetable.os | 40 +++++++++++++++++++ 3 files changed, 72 insertions(+), 7 deletions(-) diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs index c891bb429..0c3cdb7d3 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs @@ -636,14 +636,15 @@ private class RowComparator : IComparer { readonly List Rules; - readonly GenericIValueComparer _comparer = new GenericIValueComparer(); + readonly GenericIValueComparer _comparer; - public RowComparator(List Rules) + public RowComparator(IBslProcess process, List Rules) { - if (Rules.Count() == 0) + if (Rules.Count == 0) throw RuntimeException.InvalidArgumentValue(); this.Rules = Rules; + _comparer = new GenericIValueComparer(process); } private int OneCompare(ValueTableRow x, ValueTableRow y, ValueTableSortRule Rule) @@ -661,7 +662,7 @@ public int Compare(ValueTableRow x, ValueTableRow y) int i = 0, r; while ((r = OneCompare(x, y, Rules[i])) == 0) { - if (++i >= Rules.Count()) + if (++i >= Rules.Count) return 0; } @@ -678,9 +679,9 @@ public int Compare(ValueTableRow x, ValueTableRow y) /// /// СравнениеЗначений - правила сравнения значений при наличии различных типов данных в колонке. [ContextMethod("Сортировать", "Sort")] - public void Sort(string columns, IValue comparator = null) + public void Sort(IBslProcess process, string columns, IValue comparator = null) { - _rows.Sort(new RowComparator(GetSortRules(columns))); + _rows.Sort(new RowComparator(process, GetSortRules(columns))); } /// diff --git a/src/ScriptEngine/Machine/GenericIValueComparer.cs b/src/ScriptEngine/Machine/GenericIValueComparer.cs index 1c072f78e..2cfbf9ca4 100644 --- a/src/ScriptEngine/Machine/GenericIValueComparer.cs +++ b/src/ScriptEngine/Machine/GenericIValueComparer.cs @@ -9,11 +9,25 @@ This Source Code Form is subject to the terms of the using System.Collections.Generic; using OneScript.Values; using ScriptEngine.Machine.Contexts; +using OneScript.Execution; namespace ScriptEngine.Machine { public class GenericIValueComparer : IEqualityComparer, IComparer { + private readonly IBslProcess _process; + private readonly Func _comparer; + + public GenericIValueComparer() + { + _comparer = CompareAsStrings; + } + + public GenericIValueComparer(IBslProcess proc) + { + _process = proc; + _comparer = CompareByPresentations; + } public bool Equals(IValue x, IValue y) { @@ -38,6 +52,16 @@ public int GetHashCode(IValue obj) return CLR_obj.GetHashCode(); } + private int CompareAsStrings(IValue x, IValue y) + { + return x.ToString().CompareTo(y.ToString()); + } + + private int CompareByPresentations(IValue x, IValue y) + { + return ((BslValue)x).ToString(_process).CompareTo(((BslValue)y).ToString(_process)); + } + public int Compare(IValue x, IValue y) { if (ReferenceEquals(x, y)) @@ -46,7 +70,7 @@ public int Compare(IValue x, IValue y) if (x is IComparable && x.SystemType == y.SystemType ) return x.CompareTo(y); else - return x.ToString().CompareTo(y.ToString()); + return _comparer(x,y); } } } diff --git a/tests/valuetable.os b/tests/valuetable.os index d7b57bf1c..a637cd7f4 100644 --- a/tests/valuetable.os +++ b/tests/valuetable.os @@ -45,6 +45,7 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуНеупорядочиваемыхТипов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуРазныхТипов"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуПоПредставлению"); Возврат ВсеТесты; КонецФункции @@ -816,3 +817,42 @@ юТест.ПроверитьРавенство(ТипЗнч(ТЗ[4].Тест), Тип("Структура")); юТест.ПроверитьРавенство(ТЗ[5].Тест, "СтрЪ"); КонецПроцедуры + +Процедура ТестДолжен_ПроверитьСортировкуПоПредставлению() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + ТекстКласса = + "Процедура ОбработкаПолученияПредставления(Представление, СтандартнаяОбработка) + | СтандартнаяОбработка = Ложь; + | Представление = ""Представление0""; + |КонецПроцедуры"; + КлассИзСтроки0 = ЗагрузитьСценарийИзСтроки(ТекстКласса); + + ТекстКласса = + "Процедура ОбработкаПолученияПредставления(Представление, СтандартнаяОбработка) + | СтандартнаяОбработка = Ложь; + | Представление = ""Представление1""; + |КонецПроцедуры"; + КлассИзСтроки1 = ЗагрузитьСценарийИзСтроки(ТекстКласса); + + ТекстКласса = + "Процедура ОбработкаПолученияПредставления(Представление, СтандартнаяОбработка) + | СтандартнаяОбработка = Ложь; + | Представление = ""Представление3""; + |КонецПроцедуры"; + КлассИзСтроки3 = ЗагрузитьСценарийИзСтроки(ТекстКласса); + + ТЗ.Добавить().Тест = КлассИзСтроки3; + ТЗ.Добавить().Тест = "Представление2"; + ТЗ.Добавить().Тест = КлассИзСтроки0; + ТЗ.Добавить().Тест = КлассИзСтроки1; + + ТЗ.Сортировать("Тест"); + юТест.ПроверитьРавенство(Строка(ТЗ[0].Тест), "Представление0"); + юТест.ПроверитьРавенство(Строка(ТЗ[1].Тест), "Представление1"); + юТест.ПроверитьРавенство(ТЗ[2].Тест, "Представление2"); + юТест.ПроверитьРавенство(Строка(ТЗ[3].Тест), "Представление3"); + +КонецПроцедуры + From 888250a35d8765954007d24bb76f6969ac970814 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Sep 2025 07:12:11 +0000 Subject: [PATCH 071/191] Bump actions/setup-dotnet from 4 to 5 Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 4 to 5. - [Release notes](https://github.com/actions/setup-dotnet/releases) - [Commits](https://github.com/actions/setup-dotnet/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-dotnet dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/copilot-setup-steps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 22525f14f..d2571c4b6 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -21,7 +21,7 @@ jobs: - run: git config --global core.quotepath false - - uses: actions/setup-dotnet@v4 + - uses: actions/setup-dotnet@v5 with: dotnet-version: '6.0.x' From e6f553c304ae7b584870d42232faddecaea85370 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 5 Sep 2025 13:24:10 +0300 Subject: [PATCH 072/191] =?UTF-8?q?=D0=94=D1=80=D1=83=D0=B3=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D1=85=D0=BE=D0=B4=20=D0=BA=20=D1=83=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D0=B8=D0=BC=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contexts/ContextMethodAttribute.cs | 2 +- .../Contexts/ContextMethodInfo.cs | 39 ++++++----- .../Contexts/DeprecatedNameAttribute.cs | 28 ++++++++ .../Binary/GlobalBinaryData.cs | 2 +- src/OneScript.StandardLibrary/FileContext.cs | 2 +- .../Http/HttpRequestContext.cs | 4 +- .../Secondary/MarkupProvider.cs | 16 +++-- .../SystemGlobalContext.cs | 2 +- .../Machine/Contexts/ContextMethodMapper.cs | 68 ++++++++++++++----- .../HelperClasses/TestContextClass.cs | 4 +- 10 files changed, 119 insertions(+), 48 deletions(-) create mode 100644 src/OneScript.Core/Contexts/DeprecatedNameAttribute.cs diff --git a/src/OneScript.Core/Contexts/ContextMethodAttribute.cs b/src/OneScript.Core/Contexts/ContextMethodAttribute.cs index 78c4c5626..498c53e2d 100644 --- a/src/OneScript.Core/Contexts/ContextMethodAttribute.cs +++ b/src/OneScript.Core/Contexts/ContextMethodAttribute.cs @@ -11,7 +11,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.Contexts { - [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] + [AttributeUsage(AttributeTargets.Method)] public class ContextMethodAttribute : Attribute, INameAndAliasProvider { private readonly string _name; diff --git a/src/OneScript.Core/Contexts/ContextMethodInfo.cs b/src/OneScript.Core/Contexts/ContextMethodInfo.cs index 362a2e209..4d9afa526 100644 --- a/src/OneScript.Core/Contexts/ContextMethodInfo.cs +++ b/src/OneScript.Core/Contexts/ContextMethodInfo.cs @@ -9,6 +9,7 @@ This Source Code Form is subject to the terms of the using System.Globalization; using System.Linq; using System.Reflection; +using System.Threading; using OneScript.Commons; using OneScript.Execution; @@ -20,36 +21,40 @@ namespace OneScript.Contexts public sealed class ContextMethodInfo : BslMethodInfo, IObjectWrapper { private readonly MethodInfo _realMethod; - private readonly ContextMethodAttribute _scriptMark; public ContextMethodInfo(MethodInfo realMethod) + : this(realMethod, realMethod.GetCustomAttribute(false) + ?? throw new ArgumentException("Method is not marked with ContextMethodAttribute")) { - _realMethod = realMethod; - try - { - _scriptMark = - (ContextMethodAttribute) GetCustomAttributes(typeof(ContextMethodAttribute), false).First(); - } - catch (InvalidOperationException e) - { - throw new ArgumentException("Method is not marked with ContextMethodAttribute", e); - } } public ContextMethodInfo(MethodInfo realMethod, ContextMethodAttribute binding) { _realMethod = realMethod; - _scriptMark = binding; InjectsProcess = _realMethod.GetParameters().FirstOrDefault()?.ParameterType == typeof(IBslProcess); + IsDeprecated = binding.IsDeprecated; + IsForbiddenToUse = binding.ThrowOnUse; + Name = binding.Name; + Alias = binding.Alias; + } + + public ContextMethodInfo(MethodInfo realMethod, DeprecatedNameAttribute deprecationInfo) + { + _realMethod = realMethod; + InjectsProcess = _realMethod.GetParameters().FirstOrDefault()?.ParameterType == typeof(IBslProcess); + Name = deprecationInfo.Name; + Alias = null; + IsDeprecated = true; + IsForbiddenToUse = deprecationInfo.ThrowOnUse; } public override Type ReturnType => _realMethod.ReturnType; public override ParameterInfo ReturnParameter => _realMethod.ReturnParameter; - public bool IsDeprecated => _scriptMark.IsDeprecated; + public bool IsDeprecated { get; } - public bool IsForbiddenToUse => _scriptMark.ThrowOnUse; + public bool IsForbiddenToUse { get; } public override object[] GetCustomAttributes(bool inherit) { @@ -88,9 +93,9 @@ public override MethodInfo GetBaseDefinition() public override ICustomAttributeProvider ReturnTypeCustomAttributes => _realMethod.ReturnTypeCustomAttributes; - public override string Name => _scriptMark.Name; - - public override string Alias => _scriptMark.Alias; + public override string Name { get; } + + public override string Alias { get; } public override Type DeclaringType => _realMethod.DeclaringType; diff --git a/src/OneScript.Core/Contexts/DeprecatedNameAttribute.cs b/src/OneScript.Core/Contexts/DeprecatedNameAttribute.cs new file mode 100644 index 000000000..24414db23 --- /dev/null +++ b/src/OneScript.Core/Contexts/DeprecatedNameAttribute.cs @@ -0,0 +1,28 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; + +namespace OneScript.Contexts +{ + /// + /// Позволяет объявить терм (имя или алиас), как устаревший. + /// + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field, + AllowMultiple = true)] + public class DeprecatedNameAttribute : Attribute + { + public DeprecatedNameAttribute(string name, bool throwOnUse = false) + { + Name = name; + ThrowOnUse = throwOnUse; + } + + public string Name { get; } + public bool ThrowOnUse { get; } + } +} \ No newline at end of file diff --git a/src/OneScript.StandardLibrary/Binary/GlobalBinaryData.cs b/src/OneScript.StandardLibrary/Binary/GlobalBinaryData.cs index c1033cfaf..f5f34141a 100644 --- a/src/OneScript.StandardLibrary/Binary/GlobalBinaryData.cs +++ b/src/OneScript.StandardLibrary/Binary/GlobalBinaryData.cs @@ -158,7 +158,7 @@ public static IAttachableContext CreateInstance() /// /// Массив объектов типа ДвоичныеДанные. /// Тип: ДвоичныеДанные. - [ContextMethod("ConcatenateBinaryData", IsDeprecated = true)] + [DeprecatedName("ConcatenateBinaryData")] [ContextMethod("СоединитьДвоичныеДанные", "ConcatBinaryData")] public BinaryDataContext ConcatBinaryData(ArrayImpl array) { diff --git a/src/OneScript.StandardLibrary/FileContext.cs b/src/OneScript.StandardLibrary/FileContext.cs index 67747f3c5..8c1a435ed 100644 --- a/src/OneScript.StandardLibrary/FileContext.cs +++ b/src/OneScript.StandardLibrary/FileContext.cs @@ -111,7 +111,7 @@ public string Extension } } - [ContextMethod("Exist", IsDeprecated = true)] + [DeprecatedName("Exist")] [ContextMethod("Существует","Exists")] public bool Exists() { diff --git a/src/OneScript.StandardLibrary/Http/HttpRequestContext.cs b/src/OneScript.StandardLibrary/Http/HttpRequestContext.cs index a18a8c6c9..d28946b1a 100644 --- a/src/OneScript.StandardLibrary/Http/HttpRequestContext.cs +++ b/src/OneScript.StandardLibrary/Http/HttpRequestContext.cs @@ -76,14 +76,14 @@ public IValue GetBodyFileName() /// Установить тело запроса из объекта ДвоичныеДанные /// /// - [ContextMethod("SetBodyFromBinary", IsDeprecated = true)] + [DeprecatedName("SetBodyFromBinary")] [ContextMethod("УстановитьТелоИзДвоичныхДанных", "SetBodyFromBinaryData")] public void SetBodyFromBinary(BinaryDataContext data) { SetBody(new HttpRequestBodyBinary(data)); } - [ContextMethod("GetBodyAsBinary", IsDeprecated = true)] + [DeprecatedName("GetBodyAsBinary")] [ContextMethod("ПолучитьТелоКакДвоичныеДанные", "GetBodyAsBinaryData")] public IValue GetBodyFromBinary() { diff --git a/src/OneScriptDocumenter/Secondary/MarkupProvider.cs b/src/OneScriptDocumenter/Secondary/MarkupProvider.cs index cdc173ddc..ec4a1f790 100644 --- a/src/OneScriptDocumenter/Secondary/MarkupProvider.cs +++ b/src/OneScriptDocumenter/Secondary/MarkupProvider.cs @@ -51,16 +51,20 @@ public static INameAndAliasProvider GetEnumValueMarkup(FieldInfo target) public static ContextMethodAttribute GetMethodMarkup(MethodInfo target) { - try + var markup = target.GetCustomAttribute() + ?? throw new ArgumentException($"Method {target} is not marked with method attribute"); + + if (markup.SkipForDocumenter) { - return target - .GetCustomAttributes() - .Single(attr => !attr.IsDeprecated && !attr.SkipForDocumenter); + throw new ArgumentException($"Method {target} is skipped for documentation"); } - catch (InvalidOperationException e) + + if (markup.IsDeprecated) { - throw new ArgumentException($"Method {target} is not marked with method attribute", e); + throw new ArgumentException($"Method {target} is deprecated"); } + + return markup; } public static INameAndAliasProvider GetMemberDocumentationMarkup(MemberInfo target) diff --git a/src/ScriptEngine.HostedScript/SystemGlobalContext.cs b/src/ScriptEngine.HostedScript/SystemGlobalContext.cs index ce018cea6..3dc6bebb8 100644 --- a/src/ScriptEngine.HostedScript/SystemGlobalContext.cs +++ b/src/ScriptEngine.HostedScript/SystemGlobalContext.cs @@ -160,7 +160,7 @@ public FixedArrayImpl CommandLineArguments /// Каталог исполняемых файлов OneScript /// /// - [ContextMethod("ProgramDirectory", IsDeprecated = true)] + [DeprecatedName("ProgramDirectory")] [ContextMethod("КаталогПрограммы","BinDir")] public string ProgramDirectory() { diff --git a/src/ScriptEngine/Machine/Contexts/ContextMethodMapper.cs b/src/ScriptEngine/Machine/Contexts/ContextMethodMapper.cs index 9d59cabef..28f05a4b8 100644 --- a/src/ScriptEngine/Machine/Contexts/ContextMethodMapper.cs +++ b/src/ScriptEngine/Machine/Contexts/ContextMethodMapper.cs @@ -88,12 +88,21 @@ public int Count } } - private List MapType(Type type) + private static List MapType(Type type) { - return type.GetMethods() - .SelectMany(method => method.GetCustomAttributes(typeof(ContextMethodAttribute), false) - .Select(attr => new InternalMethInfo(method, (ContextMethodAttribute)attr)) ) - .ToList(); + var mappedMethods = new List(); + foreach (var methodInfo in type.GetMethods() + .Where(method => Attribute.IsDefined(method, typeof(ContextMethodAttribute)))) + { + var mainMarkup = methodInfo.GetCustomAttribute(); + var mainMapping = new InternalMethInfo(methodInfo, mainMarkup); + mappedMethods.Add(mainMapping); + mappedMethods.AddRange(methodInfo.GetCustomAttributes() + .Select(deprecation => new InternalMethInfo(methodInfo, deprecation)) + ); + } + + return mappedMethods; } private class InternalMethInfo @@ -115,10 +124,36 @@ public InternalMethInfo(MethodInfo target, ContextMethodAttribute binding) return isFunc ? CreateFunction(_clrMethod) : CreateProcedure(_clrMethod); }); } + + public InternalMethInfo(MethodInfo target, DeprecatedNameAttribute deprecation) + { + _clrMethod = new ContextMethodInfo(target, deprecation); + MethodSignature = CreateMetadata(target, deprecation.Name, null, true, deprecation.ThrowOnUse, + _clrMethod.InjectsProcess); + + _method = new Lazy>(() => + { + var isFunc = target.ReturnType != typeof(void); + return isFunc ? CreateFunction(_clrMethod) : CreateProcedure(_clrMethod); + }); + } public ContextCallableDelegate Method => _method.Value; - private static MethodSignature CreateMetadata(MethodInfo target, ContextMethodAttribute binding, bool hasProcessParam) + private static MethodSignature CreateMetadata(MethodInfo target, ContextMethodAttribute binding, + bool hasProcessParam) + { + return CreateMetadata(target, binding.Name, binding.Alias, binding.IsDeprecated, binding.ThrowOnUse, + hasProcessParam); + } + + private static MethodSignature CreateMetadata( + MethodInfo target, + string name, + string alias, + bool isDeprecated, + bool throwOnUse, + bool hasProcessParam) { var parameters = target.GetParameters(); var isFunc = target.ReturnType != typeof(void); @@ -152,17 +187,16 @@ private static MethodSignature CreateMetadata(MethodInfo target, ContextMethodAt } - var scriptMethInfo = new MethodSignature(); - scriptMethInfo.IsFunction = isFunc; - scriptMethInfo.IsExport = true; - scriptMethInfo.IsDeprecated = binding.IsDeprecated; - scriptMethInfo.ThrowOnUseDeprecated = binding.ThrowOnUse; - scriptMethInfo.Name = binding.Name; - scriptMethInfo.Alias = binding.Alias; - - scriptMethInfo.Params = paramDefs; - - return scriptMethInfo; + return new MethodSignature + { + IsFunction = isFunc, + IsExport = true, + IsDeprecated = isDeprecated, + ThrowOnUseDeprecated = throwOnUse, + Name = name, + Alias = alias, + Params = paramDefs + }; } private static ContextCallableDelegate CreateFunction(ContextMethodInfo target) diff --git a/src/Tests/OneScript.Core.Tests/HelperClasses/TestContextClass.cs b/src/Tests/OneScript.Core.Tests/HelperClasses/TestContextClass.cs index 6baac6e5f..6f602b806 100644 --- a/src/Tests/OneScript.Core.Tests/HelperClasses/TestContextClass.cs +++ b/src/Tests/OneScript.Core.Tests/HelperClasses/TestContextClass.cs @@ -33,9 +33,9 @@ public void ObsoleteMethod() // Do nothing } + [DeprecatedName("ObsoleteAlias", throwOnUse: false)] + [DeprecatedName("VeryObsoleteAlias", throwOnUse: true)] [ContextMethod("ХорошийМетод", "GoodMethod")] - [ContextMethod("ObsoleteAlias", IsDeprecated = true, ThrowOnUse = false)] - [ContextMethod("VeryObsoleteAlias", IsDeprecated = true, ThrowOnUse = true)] public void GoodMethod() { // Do nothing From a52aac6034061f5299449f51197b94b0ea5d7828 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 5 Sep 2025 13:50:52 +0300 Subject: [PATCH 073/191] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20Deprec?= =?UTF-8?q?atedName=20=D0=BA=20=D0=BF=D0=B5=D1=80=D0=B5=D1=87=D0=B8=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contexts/DeprecatedNameAttribute.cs | 2 +- .../Binary/StreamEnums.cs | 4 +- .../Machine/Contexts/ContextDiscoverer.cs | 10 +++++ .../ObsoleteEnumTest.cs | 41 +++++++++++++++++++ .../OneScript.StandardLibrary.Tests.csproj | 1 + 5 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/Tests/OneScript.StandardLibrary.Tests/ObsoleteEnumTest.cs diff --git a/src/OneScript.Core/Contexts/DeprecatedNameAttribute.cs b/src/OneScript.Core/Contexts/DeprecatedNameAttribute.cs index 24414db23..0a8c413d0 100644 --- a/src/OneScript.Core/Contexts/DeprecatedNameAttribute.cs +++ b/src/OneScript.Core/Contexts/DeprecatedNameAttribute.cs @@ -12,7 +12,7 @@ namespace OneScript.Contexts /// /// Позволяет объявить терм (имя или алиас), как устаревший. /// - [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field, + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Enum, AllowMultiple = true)] public class DeprecatedNameAttribute : Attribute { diff --git a/src/OneScript.StandardLibrary/Binary/StreamEnums.cs b/src/OneScript.StandardLibrary/Binary/StreamEnums.cs index 07bf24a5d..6af701493 100644 --- a/src/OneScript.StandardLibrary/Binary/StreamEnums.cs +++ b/src/OneScript.StandardLibrary/Binary/StreamEnums.cs @@ -5,6 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using OneScript.Contexts; using OneScript.Contexts.Enums; namespace OneScript.StandardLibrary.Binary @@ -37,7 +38,8 @@ public enum FileAccessEnum ReadAndWrite } - [EnumerationType("ПозицияВПотоке", "StreamPosition")] + [DeprecatedName("StreamPosition")] + [EnumerationType("ПозицияВПотоке", "PositionInStream")] public enum StreamPositionEnum { [EnumValue("Начало", "Begin")] diff --git a/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs b/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs index f971cb5d4..fc70f8c7d 100644 --- a/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs +++ b/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs @@ -153,6 +153,16 @@ private void RegisterSimpleEnum(Type enumType, IRuntimeEnvironment environment) { Globals.RegisterInstance(enumType, instance); environment.InjectGlobalProperty(instance, enumTypeAttribute.Name, enumTypeAttribute.Alias, true); + + // Deprecations + foreach (var deprecation in enumType.GetCustomAttributes()) + { + if (deprecation.ThrowOnUse) + throw new NotSupportedException( + $"{nameof(deprecation.ThrowOnUse)} is not supported for enums yet. ({enumType})"); + + environment.InjectGlobalProperty(instance, deprecation.Name, true); + } } } diff --git a/src/Tests/OneScript.StandardLibrary.Tests/ObsoleteEnumTest.cs b/src/Tests/OneScript.StandardLibrary.Tests/ObsoleteEnumTest.cs new file mode 100644 index 000000000..08768b7dd --- /dev/null +++ b/src/Tests/OneScript.StandardLibrary.Tests/ObsoleteEnumTest.cs @@ -0,0 +1,41 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System.Collections.Generic; +using Moq; +using OneScript.Contexts; +using OneScript.Contexts.Enums; +using ScriptEngine; + +namespace OneScript.StandardLibrary.Tests +{ + public class ObsoleteEnumTest + { + private List _messages; + + public ObsoleteEnumTest() + { + var mock = new Mock(); + mock.Setup(x => x.Write(It.IsAny())) + .Callback(str => _messages.Add(str)); + + _messages = new List(); + LogWriter = mock.Object; + SystemLogger.SetWriter(LogWriter); + } + + private ISystemLogWriter LogWriter { get; set; } + + [DeprecatedName("NonActual")] + [EnumerationType("Актуальное", "Actual")] + public enum TestEnum + { + One, + Two + } + } +} \ No newline at end of file diff --git a/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj b/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj index c1249e061..4d93b540e 100644 --- a/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj +++ b/src/Tests/OneScript.StandardLibrary.Tests/OneScript.StandardLibrary.Tests.csproj @@ -11,6 +11,7 @@ + runtime; build; native; contentfiles; analyzers; buildtransitive all From ce76736d680bfbf2e47eaa5a8c12b09f852524e1 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 5 Sep 2025 17:57:52 +0300 Subject: [PATCH 074/191] =?UTF-8?q?=D0=9C=D0=B5=D1=85=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=83=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B2=D0=BE?= =?UTF-8?q?=D0=B9=D1=81=D1=82=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contexts/ContextMethodInfo.cs | 10 -- .../Contexts/ContextPropertyAttribute.cs | 4 + .../Contexts/ContextPropertyInfo.cs | 15 +- .../Exceptions/RuntimeException.cs | 7 + .../Machine/Contexts/ContextMethodMapper.cs | 19 +- .../Machine/Contexts/ContextPropertyMapper.cs | 162 +++++------------ .../Machine/Contexts/PropertyTarget.cs | 169 ++++++++++++++++++ .../HelperClasses/TestContextClass.cs | 4 + .../ObsoleteMethodAttributeTest.cs | 24 +++ 9 files changed, 270 insertions(+), 144 deletions(-) create mode 100644 src/ScriptEngine/Machine/Contexts/PropertyTarget.cs diff --git a/src/OneScript.Core/Contexts/ContextMethodInfo.cs b/src/OneScript.Core/Contexts/ContextMethodInfo.cs index 4d9afa526..fca7f5fe3 100644 --- a/src/OneScript.Core/Contexts/ContextMethodInfo.cs +++ b/src/OneScript.Core/Contexts/ContextMethodInfo.cs @@ -37,16 +37,6 @@ public ContextMethodInfo(MethodInfo realMethod, ContextMethodAttribute binding) Name = binding.Name; Alias = binding.Alias; } - - public ContextMethodInfo(MethodInfo realMethod, DeprecatedNameAttribute deprecationInfo) - { - _realMethod = realMethod; - InjectsProcess = _realMethod.GetParameters().FirstOrDefault()?.ParameterType == typeof(IBslProcess); - Name = deprecationInfo.Name; - Alias = null; - IsDeprecated = true; - IsForbiddenToUse = deprecationInfo.ThrowOnUse; - } public override Type ReturnType => _realMethod.ReturnType; diff --git a/src/OneScript.Core/Contexts/ContextPropertyAttribute.cs b/src/OneScript.Core/Contexts/ContextPropertyAttribute.cs index 35350670a..32f34e2e9 100644 --- a/src/OneScript.Core/Contexts/ContextPropertyAttribute.cs +++ b/src/OneScript.Core/Contexts/ContextPropertyAttribute.cs @@ -40,5 +40,9 @@ public ContextPropertyAttribute(string name, string alias = "") public string Name => _name; public string Alias => _alias; + + public bool IsDeprecated { get; set; } + + public bool ThrowOnUse { get; set; } } } \ No newline at end of file diff --git a/src/OneScript.Core/Contexts/ContextPropertyInfo.cs b/src/OneScript.Core/Contexts/ContextPropertyInfo.cs index 5b7d9b2db..b83f06447 100644 --- a/src/OneScript.Core/Contexts/ContextPropertyInfo.cs +++ b/src/OneScript.Core/Contexts/ContextPropertyInfo.cs @@ -20,11 +20,16 @@ public class ContextPropertyInfo : BslPropertyInfo, IObjectWrapper { private readonly PropertyInfo _realProperty; private readonly ContextPropertyAttribute _scriptMark; - + public ContextPropertyInfo(PropertyInfo wrappedInfo) + : this(wrappedInfo, wrappedInfo.GetCustomAttribute(false)) + { + } + + public ContextPropertyInfo(PropertyInfo wrappedInfo, ContextPropertyAttribute binding) { _realProperty = wrappedInfo; - _scriptMark = (ContextPropertyAttribute)_realProperty.GetCustomAttributes(typeof(ContextPropertyAttribute), false).First(); + _scriptMark = binding; } public override object[] GetCustomAttributes(bool inherit) @@ -69,7 +74,7 @@ public override MethodInfo[] GetAccessors(bool nonPublic) public override MethodInfo GetGetMethod(bool nonPublic) { - return _scriptMark.CanRead ? _realProperty.GetGetMethod(nonPublic) : null; + return CanRead ? _realProperty.GetGetMethod(nonPublic) : null; } public override ParameterInfo[] GetIndexParameters() @@ -79,7 +84,7 @@ public override ParameterInfo[] GetIndexParameters() public override MethodInfo GetSetMethod(bool nonPublic) { - return _scriptMark.CanWrite ? _realProperty.GetSetMethod(nonPublic) : null; + return CanWrite ? _realProperty.GetSetMethod(nonPublic) : null; } public override object GetValue(object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture) @@ -97,5 +102,7 @@ public override void SetValue(object obj, object value, BindingFlags invokeAttr, public override bool CanWrite => _scriptMark.CanWrite; public override Type PropertyType => _realProperty.PropertyType; public object UnderlyingObject => _realProperty; + public bool IsDeprecated => _scriptMark.IsDeprecated; + public bool IsForbiddenToUse => _scriptMark.ThrowOnUse; } } \ No newline at end of file diff --git a/src/OneScript.Core/Exceptions/RuntimeException.cs b/src/OneScript.Core/Exceptions/RuntimeException.cs index c47be307b..d9df3618e 100644 --- a/src/OneScript.Core/Exceptions/RuntimeException.cs +++ b/src/OneScript.Core/Exceptions/RuntimeException.cs @@ -33,6 +33,13 @@ public static RuntimeException DeprecatedMethodCall(string name) $"Вызов безнадёжно устаревшего метода {name}", $"Call to deprecated method {name}"); } + + public static RuntimeException DeprecatedPropertyAccess(string name) + { + return new RuntimeException( + $"Обращение к безнадёжно устаревшему свойству {name}", + $"Access to deprecated property {name}"); + } public static RuntimeException MethodNotFoundException(string methodName) { diff --git a/src/ScriptEngine/Machine/Contexts/ContextMethodMapper.cs b/src/ScriptEngine/Machine/Contexts/ContextMethodMapper.cs index 28f05a4b8..0cec69071 100644 --- a/src/ScriptEngine/Machine/Contexts/ContextMethodMapper.cs +++ b/src/ScriptEngine/Machine/Contexts/ContextMethodMapper.cs @@ -98,7 +98,11 @@ private static List MapType(Type type) var mainMapping = new InternalMethInfo(methodInfo, mainMarkup); mappedMethods.Add(mainMapping); mappedMethods.AddRange(methodInfo.GetCustomAttributes() - .Select(deprecation => new InternalMethInfo(methodInfo, deprecation)) + .Select(deprecation => new InternalMethInfo(methodInfo, new ContextMethodAttribute(deprecation.Name, default) + { + IsDeprecated = true, + ThrowOnUse = deprecation.ThrowOnUse + })) ); } @@ -124,19 +128,6 @@ public InternalMethInfo(MethodInfo target, ContextMethodAttribute binding) return isFunc ? CreateFunction(_clrMethod) : CreateProcedure(_clrMethod); }); } - - public InternalMethInfo(MethodInfo target, DeprecatedNameAttribute deprecation) - { - _clrMethod = new ContextMethodInfo(target, deprecation); - MethodSignature = CreateMetadata(target, deprecation.Name, null, true, deprecation.ThrowOnUse, - _clrMethod.InjectsProcess); - - _method = new Lazy>(() => - { - var isFunc = target.ReturnType != typeof(void); - return isFunc ? CreateFunction(_clrMethod) : CreateProcedure(_clrMethod); - }); - } public ContextCallableDelegate Method => _method.Value; diff --git a/src/ScriptEngine/Machine/Contexts/ContextPropertyMapper.cs b/src/ScriptEngine/Machine/Contexts/ContextPropertyMapper.cs index 9b97c2a38..96c975743 100644 --- a/src/ScriptEngine/Machine/Contexts/ContextPropertyMapper.cs +++ b/src/ScriptEngine/Machine/Contexts/ContextPropertyMapper.cs @@ -11,121 +11,15 @@ This Source Code Form is subject to the terms of the using System.Reflection; using OneScript.Contexts; using OneScript.Exceptions; +using OneScript.Language; namespace ScriptEngine.Machine.Contexts { - public class PropertyTarget - { - private readonly BslPropertyInfo _propertyInfo; - - public PropertyTarget(PropertyInfo propInfo) - { - _propertyInfo = new ContextPropertyInfo(propInfo); - Name = _propertyInfo.Name; - Alias = _propertyInfo.Alias; - - if (string.IsNullOrEmpty(Alias)) - Alias = propInfo.Name; - - IValue CantReadAction(TInstance inst) - { - throw PropertyAccessException.PropIsNotReadableException(Name); - } - - void CantWriteAction(TInstance inst, IValue val) - { - throw PropertyAccessException.PropIsNotWritableException(Name); - } - - if (_propertyInfo.CanRead) - { - var getMethodInfo = propInfo.GetGetMethod(); - if (getMethodInfo == null) - { - Getter = CantReadAction; - } - else - { - var genericGetter = typeof(PropertyTarget).GetMembers(BindingFlags.NonPublic | BindingFlags.Instance) - .Where(x => x.MemberType == MemberTypes.Method && x.Name == nameof(CreateGetter)) - .Select(x => (MethodInfo)x) - .First(); - - var resolvedGetter = genericGetter.MakeGenericMethod(propInfo.PropertyType); - - Getter = (Func)resolvedGetter.Invoke(this, new object[] { getMethodInfo }); - } - } - else - { - Getter = CantReadAction; - } - - if (_propertyInfo.CanWrite) - { - var setMethodInfo = propInfo.GetSetMethod(); - if (setMethodInfo == null) - { - Setter = CantWriteAction; - } - else - { - var genericSetter = typeof(PropertyTarget).GetMembers(BindingFlags.NonPublic | BindingFlags.Instance) - .Where(x => x.MemberType == MemberTypes.Method && x.Name == nameof(CreateSetter)) - .Select(x => (MethodInfo)x) - .First(); - - var resolvedSetter = genericSetter.MakeGenericMethod(propInfo.PropertyType); - - Setter = (Action)resolvedSetter.Invoke(this, new object[] { setMethodInfo }); - } - } - else - { - Setter = CantWriteAction; - } - } - - public Func Getter { get; } - - public Action Setter { get; } - - public string Name { get; } - - public string Alias { get; } - - public bool CanRead => _propertyInfo.CanRead; - public bool CanWrite => _propertyInfo.CanWrite; - - public BslPropertyInfo PropertyInfo => _propertyInfo; - - private Func CreateGetter(MethodInfo methInfo) - { - var method = (Func)Delegate.CreateDelegate(typeof(Func), methInfo); - return inst => ConvertReturnValue(method(inst)); - } - - private Action CreateSetter(MethodInfo methInfo) - { - var method = (Action)Delegate.CreateDelegate(typeof(Action), methInfo); - return (inst, val) => method(inst, ConvertParam(val)); - } - - private static T ConvertParam(IValue value) - { - return ContextValuesMarshaller.ConvertValueStrict(value); - } - - private static IValue ConvertReturnValue(TRet param) - { - return ContextValuesMarshaller.ConvertReturnValue(param); - } - - } - public class ContextPropertyMapper { private List> _properties; + private IdentifiersTrie _propertyNumbers; + private readonly object _locker = new object(); private void Init() @@ -137,16 +31,50 @@ private void Init() { if (_properties == null) { - _properties = FindProperties(); + var localProps = MapProperties(); + _propertyNumbers = new IdentifiersTrie(); + for (int idx = 0; idx < localProps.Count; ++idx) + { + var propInfo = localProps[idx]; + + _propertyNumbers.Add(propInfo.Name, idx); + if (propInfo.Alias != null) + _propertyNumbers.Add(propInfo.Alias, idx); + } + + _properties = localProps; } } } - private List> FindProperties() + private static List> MapProperties() { - return typeof(TInstance).GetProperties() - .Where(x => x.GetCustomAttributes(typeof(ContextPropertyAttribute), false).Any()) - .Select(x => new PropertyTarget(x)).ToList(); + var mappedProperties = new List>(); + foreach (var propertyInfo in typeof(TInstance).GetProperties() + .Where(x => Attribute.IsDefined(x, typeof(ContextPropertyAttribute)))) + { + var propertyMarkup = propertyInfo.GetCustomAttribute(); + var bslProp = new ContextPropertyInfo(propertyInfo, propertyMarkup); + var mainMapping = new PropertyTarget(bslProp); + mappedProperties.Add(mainMapping); + + foreach (var deprecation in propertyInfo.GetCustomAttributes()) + { + var deprecatedMarkup = new ContextPropertyAttribute(deprecation.Name) + { + CanRead = bslProp.CanRead, + CanWrite = bslProp.CanWrite, + IsDeprecated = true, + ThrowOnUse = deprecation.ThrowOnUse + }; + + bslProp = new ContextPropertyInfo(propertyInfo, deprecatedMarkup); + var deprecatedMapping = new PropertyTarget(bslProp); + mappedProperties.Add(deprecatedMapping); + } + } + + return mappedProperties; } public bool ContainsProperty(string name) @@ -187,8 +115,10 @@ public int Count private int GetPropertyIndex(string name) { Init(); - return _properties.FindIndex(x => String.Equals(x.Name, name, StringComparison.OrdinalIgnoreCase) - || String.Equals(x.Alias, name, StringComparison.OrdinalIgnoreCase)); + if (_propertyNumbers.TryGetValue(name, out var index)) + return index; + + return -1; } } } diff --git a/src/ScriptEngine/Machine/Contexts/PropertyTarget.cs b/src/ScriptEngine/Machine/Contexts/PropertyTarget.cs new file mode 100644 index 000000000..be25b109b --- /dev/null +++ b/src/ScriptEngine/Machine/Contexts/PropertyTarget.cs @@ -0,0 +1,169 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.Linq; +using System.Reflection; +using OneScript.Contexts; +using OneScript.Exceptions; + +namespace ScriptEngine.Machine.Contexts +{ + public class PropertyTarget + { + private readonly ContextPropertyInfo _propertyInfo; + private volatile bool _deprecationIsWarned = false; + + internal PropertyTarget(ContextPropertyInfo propInfo) + { + _propertyInfo = propInfo; + Name = _propertyInfo.Name; + Alias = _propertyInfo.Alias; + + if (string.IsNullOrEmpty(Alias)) + Alias = propInfo.Name; + + IValue CantReadAction(TInstance inst) + { + throw PropertyAccessException.PropIsNotReadableException(Name); + } + + void CantWriteAction(TInstance inst, IValue val) + { + throw PropertyAccessException.PropIsNotWritableException(Name); + } + + if (_propertyInfo.CanRead) + { + var getMethodInfo = propInfo.GetGetMethod(); + if (getMethodInfo == null) + { + Getter = CantReadAction; + } + else + { + var genericGetter = typeof(PropertyTarget).GetMembers(BindingFlags.NonPublic | BindingFlags.Instance) + .Where(x => x.MemberType == MemberTypes.Method && x.Name == nameof(CreateGetter)) + .Select(x => (MethodInfo)x) + .First(); + + var resolvedGetter = genericGetter.MakeGenericMethod(propInfo.PropertyType); + + Getter = (Func)resolvedGetter.Invoke(this, new object[] { getMethodInfo }); + } + } + else + { + Getter = CantReadAction; + } + + if (_propertyInfo.CanWrite) + { + var setMethodInfo = propInfo.GetSetMethod(); + if (setMethodInfo == null) + { + Setter = CantWriteAction; + } + else + { + var genericSetter = typeof(PropertyTarget).GetMembers(BindingFlags.NonPublic | BindingFlags.Instance) + .Where(x => x.MemberType == MemberTypes.Method && x.Name == nameof(CreateSetter)) + .Select(x => (MethodInfo)x) + .First(); + + var resolvedSetter = genericSetter.MakeGenericMethod(propInfo.PropertyType); + + Setter = (Action)resolvedSetter.Invoke(this, new object[] { setMethodInfo }); + } + } + else + { + Setter = CantWriteAction; + } + } + + public Func Getter { get; } + + public Action Setter { get; } + + public string Name { get; } + + public string Alias { get; } + + public bool CanRead => _propertyInfo.CanRead; + public bool CanWrite => _propertyInfo.CanWrite; + + public BslPropertyInfo PropertyInfo => _propertyInfo; + + private Func CreateGetter(MethodInfo methInfo) + { + var method = (Func)Delegate.CreateDelegate(typeof(Func), methInfo); + + if (_propertyInfo.IsForbiddenToUse) + { + return inst => throw RuntimeException.DeprecatedPropertyAccess(Name); + } + + if (_propertyInfo.IsDeprecated) + { + return (inst) => + { + if (!_deprecationIsWarned) + { + SystemLogger.Write($"ВНИМАНИЕ! Обращение к устаревшему свойству {Name}"); + _deprecationIsWarned = true; + } + + return ConvertReturnValue(method(inst)); + }; + } + else + { + return inst => ConvertReturnValue(method(inst)); + } + } + + private Action CreateSetter(MethodInfo methInfo) + { + var method = (Action)Delegate.CreateDelegate(typeof(Action), methInfo); + + if (_propertyInfo.IsForbiddenToUse) + { + return (inst, val) => throw RuntimeException.DeprecatedPropertyAccess(Name); + } + + if (_propertyInfo.IsDeprecated) + { + return (inst, val) => + { + if (!_deprecationIsWarned) + { + SystemLogger.Write($"ВНИМАНИЕ! Обращение к устаревшему свойству {Name}"); + _deprecationIsWarned = true; + } + + method(inst, ConvertParam(val)); + }; + } + else + { + return (inst, val) => method(inst, ConvertParam(val)); + } + } + + private static T ConvertParam(IValue value) + { + return ContextValuesMarshaller.ConvertValueStrict(value); + } + + private static IValue ConvertReturnValue(TRet param) + { + return ContextValuesMarshaller.ConvertReturnValue(param); + } + + } +} \ No newline at end of file diff --git a/src/Tests/OneScript.Core.Tests/HelperClasses/TestContextClass.cs b/src/Tests/OneScript.Core.Tests/HelperClasses/TestContextClass.cs index 6f602b806..0ce5e9f00 100644 --- a/src/Tests/OneScript.Core.Tests/HelperClasses/TestContextClass.cs +++ b/src/Tests/OneScript.Core.Tests/HelperClasses/TestContextClass.cs @@ -41,8 +41,12 @@ public void GoodMethod() // Do nothing } + [DeprecatedName("OldBslProp")] [ContextProperty("СвойствоBsl","BslProp")] public string BslProp { get; set; } + + [ContextProperty("УстаревшееСвойство","ObsoleteProperty", IsDeprecated = true)] + public string ObsoleteProp { get; set; } public override bool IsIndexed => true; diff --git a/src/Tests/OneScript.Core.Tests/ObsoleteMethodAttributeTest.cs b/src/Tests/OneScript.Core.Tests/ObsoleteMethodAttributeTest.cs index 2deae0ae4..cb2cae052 100644 --- a/src/Tests/OneScript.Core.Tests/ObsoleteMethodAttributeTest.cs +++ b/src/Tests/OneScript.Core.Tests/ObsoleteMethodAttributeTest.cs @@ -31,6 +31,30 @@ public ObsoleteMethodAttributeTest() private ISystemLogWriter LogWriter { get; set; } + [Fact] + public void TestLoggingOfObsoletePropAccess() + { + dynamic instance = new TestContextClass(); + var value = instance.ObsoleteProperty ?? ""; + instance.УстаревшееСвойство = value; + + _messages.Should().HaveCount(1, "must be only one warning"); + _messages.Should().Contain(item => + item.IndexOf("ObsoleteProperty", StringComparison.InvariantCultureIgnoreCase) >= 0 + || item.IndexOf("УстаревшееСвойство", StringComparison.InvariantCultureIgnoreCase) >= 0); + } + + [Fact] + public void TestLoggingOfObsoleteName() + { + dynamic instance = new TestContextClass(); + var value = instance.СвойствоBsl ?? ""; // обычное имя + instance.OldBslProp = value; + + _messages.Should().HaveCount(1, "must be only one warning"); + _messages.Should().Contain(item => item.IndexOf("OldBslProp", StringComparison.InvariantCultureIgnoreCase) >= 0); + } + [Fact] public void TestLoggingOfObsoleteCall() { From c9c832f411e960ebfc4f5aa5776a027516584a3e Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Wed, 10 Sep 2025 12:28:16 +0300 Subject: [PATCH 075/191] =?UTF-8?q?#392:=20=D0=97=D0=B0=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D0=A2=D0=B5=D0=BA=D1=83=D1=89=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=B8=D1=88=D0=B5=D1=82=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA?= =?UTF-8?q?=D0=BE=20=D1=82=D0=B5=D0=BA=D1=83=D1=89=D0=B5=D0=B5=20=D1=81?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=BE=D1=8F=D0=BD=D0=B8=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Xml/XmlWriterImpl.cs | 34 +++- tests/xmlwrite.os | 149 ++++++++++++++++++ 2 files changed, 182 insertions(+), 1 deletion(-) diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs index 4a6522d4f..0bdf31b0b 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs @@ -183,7 +183,39 @@ public void WriteText(string text) [ContextMethod("ЗаписатьТекущий","WriteCurrent")] public void WriteCurrent(XmlReaderImpl reader) { - _writer.WriteNode(reader.GetNativeReader(), false); + var nodeType = reader.NodeType.UnderlyingValue; + switch (nodeType) + { + case XmlNodeType.Element: + CopyElementAndAttributes(reader, this); + break; + case XmlNodeType.Attribute: + WriteAttribute(reader.Name, reader.Value); + break; + case XmlNodeType.EndElement: + WriteEndElement(); + break; + case XmlNodeType.Text: + WriteText(reader.Value); + break; + default: + break; + } + } + + private static void CopyElementAndAttributes(XmlReaderImpl reader, XmlWriterImpl writer) + { + writer.WriteStartElement(reader.Name); + var attributeCount = reader.AttributeCount(); + if (attributeCount != 0) + { + for (var attributeIndex = 0; attributeIndex < attributeCount; attributeIndex++) + { + var attributeName = reader.AttributeName(attributeIndex); + var attributeValue = reader.GetAttribute(ValueFactory.Create(attributeIndex)); + writer.WriteAttribute(attributeName, attributeValue.ExplicitString()); + } + } } [ContextMethod("ЗаписатьТипДокумента","WriteDocumentType")] diff --git a/tests/xmlwrite.os b/tests/xmlwrite.os index 5d594c3b1..32467ac07 100644 --- a/tests/xmlwrite.os +++ b/tests/xmlwrite.os @@ -26,8 +26,16 @@ ВсеТесты.Добавить("ТестДолжен_ЗаписатьВСтрокуБезПробелаПередЗакрытием"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПравильныйВыводПробелСлэша"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекст"); + + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_БезЧтения"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_НачалоЭлемента"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_НачалоВложенногоЭлемента"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлемента"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_КонецЭлемента"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Текст"); Возврат ВсеТесты; + КонецФункции Процедура ТестДолжен_ЗаписатьВСтроку() Экспорт @@ -272,3 +280,144 @@ юТест.ПроверитьРавенство(Результат, "123"); КонецПроцедуры + + +Процедура ТестДолжен_ЗаписатьТекущий_БезЧтения() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("", ПолученныйТекст, "Ничего не прочитано - ничего не пишется"); + +КонецПроцедуры + +Процедура ТестДолжен_ЗаписатьТекущий_НачалоЭлемента() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ЧтениеXML.Прочитать(); + + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("", // dotnet автоматом закроет элемент + ПолученныйТекст, + "Первый элемент"); + +КонецПроцедуры + +Процедура ТестДолжен_ЗаписатьТекущий_НачалоВложенногоЭлемента() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ЧтениеXML.Прочитать(); + ЧтениеXML.Прочитать(); + + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("", // dotnet автоматом закроет элемент + ПолученныйТекст, + "Второй элемент"); + +КонецПроцедуры + +Процедура ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлемента() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ЧтениеXML.Прочитать(); + ЧтениеXML.Прочитать(); + + ЧтениеXML.ПервыйАтрибут(); + ЧтениеXML.СледующийАтрибут(); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("<эл inner2=""456"" />", // dotnet автоматом закроет элемент + ПолученныйТекст, + "Второй атрибут"); + +КонецПроцедуры + +Процедура ТестДолжен_ЗаписатьТекущий_КонецЭлемента() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ЧтениеXML.Прочитать(); + ЧтениеXML.Прочитать(); + + ЧтениеXML.ПервыйАтрибут(); + ЧтениеXML.СледующийАтрибут(); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + + ЧтениеXML.Прочитать(); + ЧтениеXML.Прочитать(); + ЧтениеXML.Прочитать(); + + юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, + ТипУзлаXML.КонецЭлемента, + "Спозиционированы на КонецЭлемента"); + + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("<эл inner2=""456""/>", + ПолученныйТекст, + "Закрытие элемента"); + +КонецПроцедуры + +Процедура ТестДолжен_ЗаписатьТекущий_Текст() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ЧтениеXML.Прочитать(); + ЧтениеXML.Прочитать(); + ЧтениеXML.Прочитать(); + + юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, + ТипУзлаXML.Текст, + "Спозиционированы на Текст"); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("<эл>Some Text", + ПолученныйТекст, + "Текст"); + +КонецПроцедуры + +Процедура ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML) + + ПодопытныйТекст = + " + | Some Text + |" + ; + ЧтениеXML = Новый ЧтениеXML; + ЧтениеXML.УстановитьСтроку(ПодопытныйТекст); + + ПараметрыЗаписи = Новый ПараметрыЗаписиXml(, , Ложь); // без переносов + + ЗаписьXML = Новый ЗаписьXML; + ЗаписьXML.УстановитьСтроку(ПараметрыЗаписи); + +КонецПроцедуры From 43543b97a3a87307a52cfc566d4443cdb4baedcc Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Wed, 10 Sep 2025 18:25:24 +0400 Subject: [PATCH 076/191] =?UTF-8?q?fix=20#1582:=20=D0=BE=D0=B1=D1=89=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD=D0=B8?= =?UTF-8?q?=D0=BC=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/BslBooleanValue.cs | 2 +- src/OneScript.Core/Values/BslDateValue.cs | 2 +- src/OneScript.Core/Values/BslNumericValue.cs | 2 +- src/OneScript.Core/Values/BslStringValue.cs | 2 +- src/OneScript.Core/Values/IBslComparable.cs | 13 +++++++++++++ src/ScriptEngine/Machine/GenericIValueComparer.cs | 4 ++-- 6 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 src/OneScript.Core/Values/IBslComparable.cs diff --git a/src/OneScript.Core/Values/BslBooleanValue.cs b/src/OneScript.Core/Values/BslBooleanValue.cs index 4963cd83f..16b9fc476 100644 --- a/src/OneScript.Core/Values/BslBooleanValue.cs +++ b/src/OneScript.Core/Values/BslBooleanValue.cs @@ -12,7 +12,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.Values { - public sealed class BslBooleanValue : BslPrimitiveValue + public sealed class BslBooleanValue : BslPrimitiveValue, IBslComparable { public static readonly BslBooleanValue True = new BslBooleanValue(true); public static readonly BslBooleanValue False = new BslBooleanValue(false); diff --git a/src/OneScript.Core/Values/BslDateValue.cs b/src/OneScript.Core/Values/BslDateValue.cs index 79bb70161..4287bcc28 100644 --- a/src/OneScript.Core/Values/BslDateValue.cs +++ b/src/OneScript.Core/Values/BslDateValue.cs @@ -12,7 +12,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.Values { - public sealed class BslDateValue : BslPrimitiveValue + public sealed class BslDateValue : BslPrimitiveValue, IBslComparable { private readonly DateTime _value; diff --git a/src/OneScript.Core/Values/BslNumericValue.cs b/src/OneScript.Core/Values/BslNumericValue.cs index 2bfb57a55..e32ffff73 100644 --- a/src/OneScript.Core/Values/BslNumericValue.cs +++ b/src/OneScript.Core/Values/BslNumericValue.cs @@ -14,7 +14,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.Values { - public sealed class BslNumericValue : BslPrimitiveValue, IEquatable + public sealed class BslNumericValue : BslPrimitiveValue, IEquatable, IBslComparable { private static readonly BslNumericValue[] _popularValues = new BslNumericValue[10]; static BslNumericValue() diff --git a/src/OneScript.Core/Values/BslStringValue.cs b/src/OneScript.Core/Values/BslStringValue.cs index 99c8ac1ea..700af157c 100644 --- a/src/OneScript.Core/Values/BslStringValue.cs +++ b/src/OneScript.Core/Values/BslStringValue.cs @@ -10,7 +10,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.Values { - public sealed class BslStringValue : BslPrimitiveValue + public sealed class BslStringValue : BslPrimitiveValue, IBslComparable { private readonly string _value; diff --git a/src/OneScript.Core/Values/IBslComparable.cs b/src/OneScript.Core/Values/IBslComparable.cs new file mode 100644 index 000000000..a075e42aa --- /dev/null +++ b/src/OneScript.Core/Values/IBslComparable.cs @@ -0,0 +1,13 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +namespace OneScript.Values +{ + public interface IBslComparable + { + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/GenericIValueComparer.cs b/src/ScriptEngine/Machine/GenericIValueComparer.cs index 2cfbf9ca4..2d9780f07 100644 --- a/src/ScriptEngine/Machine/GenericIValueComparer.cs +++ b/src/ScriptEngine/Machine/GenericIValueComparer.cs @@ -66,8 +66,8 @@ public int Compare(IValue x, IValue y) { if (ReferenceEquals(x, y)) return 0; - - if (x is IComparable && x.SystemType == y.SystemType ) + + if (x is IBslComparable && x.SystemType == y.SystemType ) return x.CompareTo(y); else return _comparer(x,y); From b3e8482b288462f226e5791464aa7ba8866d346d Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Wed, 10 Sep 2025 18:52:50 +0400 Subject: [PATCH 077/191] =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D1=81?= =?UTF-8?q?=D0=BE=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BC=D0=B8=D1=82=D0=B8=D0=B2=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D1=82=D0=B8=D0=BF=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/valuetable.os | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/tests/valuetable.os b/tests/valuetable.os index a637cd7f4..6dc68f8ce 100644 --- a/tests/valuetable.os +++ b/tests/valuetable.os @@ -43,6 +43,11 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьСверткуПоКолонкамСуммированияСРазнымиТипами"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСверткуПоОднойКолонкеСРазнымиТипами"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Чисел"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Булевых"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Дат"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Строк"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуНеупорядочиваемыхТипов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуРазныхТипов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуПоПредставлению"); @@ -783,6 +788,73 @@ СтрШаблон("Сумма колонки %1 для значения %2 типа %3", КолонкаСуммы, Значение, ТипЗнч(Значение)) ); КонецПроцедуры +Процедура ТестДолжен_ПроверитьСортировку_Чисел() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + ТЗ.Добавить().Тест = 5; + ТЗ.Добавить().Тест = 10; + ТЗ.Добавить().Тест = -2; + + ТЗ.Сортировать("Тест"); + + юТест.ПроверитьРавенство(ТЗ[0].Тест, -2, "ТЗ[0]"); + юТест.ПроверитьРавенство(ТЗ[1].Тест, 5, "ТЗ[1]"); + юТест.ПроверитьРавенство(ТЗ[2].Тест, 10, "ТЗ[2]"); +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьСортировку_Булевых() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + ТЗ.Добавить().Тест = Истина; + ТЗ.Добавить().Тест = Ложь; + ТЗ.Добавить().Тест = Истина; + + ТЗ.Сортировать("Тест"); + + юТест.ПроверитьРавенство(ТЗ[0].Тест, Ложь, "ТЗ[0]"); + юТест.ПроверитьРавенство(ТЗ[1].Тест, Истина, "ТЗ[1]"); + юТест.ПроверитьРавенство(ТЗ[2].Тест, Истина, "ТЗ[2]"); +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьСортировку_Дат() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + Сегодня = ТекущаяДата(); + Пустая = '0001-01-01 00:00'; + ТЗ.Добавить().Тест = Сегодня; + ТЗ.Добавить().Тест = Сегодня + 2; + ТЗ.Добавить().Тест = Сегодня - 2; + ТЗ.Добавить().Тест = Пустая; + + ТЗ.Сортировать("Тест"); + + юТест.ПроверитьРавенство(ТЗ[0].Тест, Пустая, "ТЗ[0]"); + юТест.ПроверитьРавенство(ТЗ[1].Тест, Сегодня - 2, "ТЗ[1]"); + юТест.ПроверитьРавенство(ТЗ[2].Тест, Сегодня, "ТЗ[2]"); + юТест.ПроверитьРавенство(ТЗ[3].Тест, Сегодня + 2, "ТЗ[3]"); +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьСортировку_Строк() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + ТЗ.Добавить().Тест = "Ели"; + ТЗ.Добавить().Тест = "ежи"; + ТЗ.Добавить().Тест = "Ёлки"; + ТЗ.Добавить().Тест = "ёжики"; + + ТЗ.Сортировать("Тест"); + + юТест.ПроверитьРавенство(ТЗ[0].Тест, "ежи", "ТЗ[0]"); + юТест.ПроверитьРавенство(ТЗ[1].Тест, "ёжики", "ТЗ[1]"); + юТест.ПроверитьРавенство(ТЗ[2].Тест, "Ели", "ТЗ[2]"); + юТест.ПроверитьРавенство(ТЗ[3].Тест, "Ёлки", "ТЗ[3]"); +КонецПроцедуры + + // к issue #1577 Процедура ТестДолжен_ПроверитьСортировкуНеупорядочиваемыхТипов() Экспорт ТЗ = Новый ТаблицаЗначений(); From 94a5c42c32806efd715db4d02393c5ca1e6569e6 Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Wed, 10 Sep 2025 23:06:45 +0300 Subject: [PATCH 078/191] =?UTF-8?q?#1585=20=D0=9F=D0=B0=D1=80=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=80=20=D1=87=D1=82=D0=B5=D0=BD=D0=B8=D1=8F=20XML?= =?UTF-8?q?=20=D0=98=D0=B3=D0=BD=D0=BE=D1=80=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=D0=A2=D0=B8=D0=BF=D0=94=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.StandardLibrary/Xml/XmlReaderSettingsImpl.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/OneScript.StandardLibrary/Xml/XmlReaderSettingsImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlReaderSettingsImpl.cs index d34cf3f9e..67643b7c4 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlReaderSettingsImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlReaderSettingsImpl.cs @@ -106,6 +106,7 @@ public static XmlReaderSettingsImpl Constructor( IgnoreComments = ignoreComments, IgnoreProcessingInstructions = ignoreDataProcessorInstructions, IgnoreWhitespace = ignoreSpaceCharacters, + DtdProcessing = ignoreDocumentType ? DtdProcessing.Ignore : DtdProcessing.Parse, }; return new XmlReaderSettingsImpl( @@ -128,6 +129,7 @@ public static XmlReaderSettingsImpl Create() IgnoreComments = true, // отличается от конструктора скрипта IgnoreProcessingInstructions = false, IgnoreWhitespace = true, + DtdProcessing = DtdProcessing.Ignore, }; return new XmlReaderSettingsImpl("1.0", context, settings); From eaf98222f21a873ddd43e6dca7a3c4db91a4599f Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Wed, 10 Sep 2025 23:09:01 +0300 Subject: [PATCH 079/191] =?UTF-8?q?#1586=20=D0=9F=D1=80=D0=BE=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=BA=20=D0=BF=D1=80=D0=BE=D0=B1=D0=B5=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D1=81=D0=B8=D0=BC=D0=B2=D0=BE=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D1=81=D0=BB=D1=83=D0=B6?= =?UTF-8?q?=D0=B5=D0=B1=D0=BD=D1=8B=D1=85=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=BE=D0=B2=20XML.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Xml/XmlReaderImpl.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/OneScript.StandardLibrary/Xml/XmlReaderImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlReaderImpl.cs index d2813068d..d560c2b5c 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlReaderImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlReaderImpl.cs @@ -387,6 +387,16 @@ private void V8CompatibleSkip() [ContextMethod("Прочитать", "Read")] public bool Read() + { + var readingDone = ReadInternal(); + if (readingDone && _reader.NodeType == XmlNodeType.XmlDeclaration && _settings.IgnoreXMLDeclaration) + { + readingDone = ReadInternal(); + } + return readingDone; + } + + private bool ReadInternal() { if (_reader == null) return false; @@ -396,6 +406,15 @@ public bool Read() _emptyElemReadState = EmptyElemCompabilityState.EmptyElementRead; return true; } + else if (_reader.NodeType == XmlNodeType.XmlDeclaration || _reader.NodeType == XmlNodeType.DocumentType) + { + var readingDone = _reader.Read(); + while (readingDone && _reader.NodeType == XmlNodeType.Whitespace) + { + readingDone = _reader.Read(); + } + return readingDone; + } else { bool readingDone = _ignoreWSChanged ? ReadWhenStateChanged() : _reader.Read(); From ce17020c1de04c208f03ce9d8c2fb4e91c40a3a3 Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Wed, 10 Sep 2025 23:40:19 +0300 Subject: [PATCH 080/191] =?UTF-8?q?=D0=A1=D1=80=D0=B0=D0=B2=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=20=D1=83=D1=87=D0=B5=D1=82=D0=B0=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0=20=D0=B2=20testrunner.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/testrunner.os | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/tests/testrunner.os b/tests/testrunner.os index 658573b34..6c413590b 100644 --- a/tests/testrunner.os +++ b/tests/testrunner.os @@ -82,6 +82,18 @@ КонецЕсли; КонецПроцедуры +Процедура ПроверитьРавенствоСтрокБезУчетаРегистра(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = "") Экспорт + Если нрег(ПервоеЗначение) <> нрег(ВтороеЗначение) Тогда + Если ТипЗнч(ПервоеЗначение) = Тип("Строка") и ТипЗнч(ВтороеЗначение) = Тип("Строка") Тогда + ВызватьИсключение ИсключениеНеравенстваСтрок(ПервоеЗначение, ВтороеЗначение, Истина) + " + |" + ДопСообщениеОшибки; + КонецЕсли; + + СообщениеОшибки = "Сравниваемые значения ("+ПервоеЗначение+"; "+ВтороеЗначение+") не равны, а хотели, чтобы были равны." + ФорматДСО(ДопСообщениеОшибки); + ВызватьИсключение(СообщениеОшибки); + КонецЕсли; +КонецПроцедуры + Процедура ПроверитьНеРавенство(ПервоеЗначение, ВтороеЗначение, ДопСообщениеОшибки = "") Экспорт Если ПервоеЗначение = ВтороеЗначение Тогда СообщениеОшибки = "Сравниваемые значения ("+ПервоеЗначение+"; "+ВтороеЗначение+") равны, а хотели, чтобы были не равны." + ФорматДСО(ДопСообщениеОшибки); @@ -196,20 +208,28 @@ Возврат СтрЗаменить(СтрЗаменить(Строка, Символы.ПС, "\n"), Символы.ВК, "\r"); КонецФункции -Функция ИсключениеНеравенстваСтрок(ПервоеЗначение, ВтороеЗначение) - ДиапазонОтНачала = 5; - ДиапазонВКонце = 5; - СтрокаНабора = " "; // длина = 2*ДиапазонОтНачала +Функция ИсключениеНеравенстваСтрок(ПервоеЗначение, ВтороеЗначение, Знач БезУчетаРегистра = Ложь) + ДиапазонОтНачала = 17; + ДиапазонВКонце = 17; + СтрокаНабора = СтрСоединить(Новый Массив(2*ДиапазонОтНачала), " "); МинДлина = Мин(СтрДлина(ПервоеЗначение), СтрДлина(ВтороеЗначение)); ИндексРазличия = МинДлина + 1; Для Сч = 1 По МинДлина Цикл + Символ1 = Сред(ПервоеЗначение, Сч, 1); Символ2 = Сред(ВтороеЗначение, Сч, 1); + + Если БезУчетаРегистра Тогда + Символ1 = нрег(Символ1); + Символ2 = нрег(Символ2); + КонецЕсли; + Если Символ1 <> Символ2 Тогда ИндексРазличия = Сч; Прервать; КонецЕсли; + КонецЦикла; ОтступНачала = ИндексРазличия - ДиапазонОтНачала; From 87679600e378e62dc9e9e0c779f432bb975ceb1a Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Wed, 10 Sep 2025 23:41:05 +0300 Subject: [PATCH 081/191] =?UTF-8?q?#392=20=D0=9A=D0=BE=D0=BF=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B5=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20xml=20=D0=B8=20=D1=82?= =?UTF-8?q?=D0=B8=D0=BF=D0=B0=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Xml/XmlWriterImpl.cs | 11 ++ tests/xmlwrite.os | 102 ++++++++++++++---- 2 files changed, 90 insertions(+), 23 deletions(-) diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs index 0bdf31b0b..7f03c66b4 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs @@ -189,6 +189,12 @@ public void WriteCurrent(XmlReaderImpl reader) case XmlNodeType.Element: CopyElementAndAttributes(reader, this); break; + case XmlNodeType.XmlDeclaration: + WriteXMLDeclaration(); + break; + case XmlNodeType.DocumentType: + CopyDocumentType(reader, this); + break; case XmlNodeType.Attribute: WriteAttribute(reader.Name, reader.Value); break; @@ -203,6 +209,11 @@ public void WriteCurrent(XmlReaderImpl reader) } } + private static void CopyDocumentType(XmlReaderImpl reader, XmlWriterImpl writer) + { + writer.WriteDocumentType(reader.Name, reader.Value); + } + private static void CopyElementAndAttributes(XmlReaderImpl reader, XmlWriterImpl writer) { writer.WriteStartElement(reader.Name); diff --git a/tests/xmlwrite.os b/tests/xmlwrite.os index 32467ac07..161f36f65 100644 --- a/tests/xmlwrite.os +++ b/tests/xmlwrite.os @@ -34,6 +34,8 @@ ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_КонецЭлемента"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Текст"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ОбъявлениеИТипДокумента"); + Возврат ВсеТесты; КонецФункции @@ -300,7 +302,9 @@ ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); - ЧтениеXML.Прочитать(); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); ПолученныйТекст = ЗаписьXML.Закрыть(); @@ -316,8 +320,11 @@ ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); - ЧтениеXML.Прочитать(); - ЧтениеXML.Прочитать(); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); ПолученныйТекст = ЗаписьXML.Закрыть(); @@ -333,8 +340,11 @@ ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); - ЧтениеXML.Прочитать(); - ЧтениеXML.Прочитать(); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); ЧтениеXML.ПервыйАтрибут(); ЧтениеXML.СледующийАтрибут(); @@ -354,8 +364,11 @@ ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); - ЧтениеXML.Прочитать(); - ЧтениеXML.Прочитать(); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); ЧтениеXML.ПервыйАтрибут(); ЧтениеXML.СледующийАтрибут(); @@ -363,13 +376,10 @@ ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); - ЧтениеXML.Прочитать(); - ЧтениеXML.Прочитать(); - ЧтениеXML.Прочитать(); - - юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, - ТипУзлаXML.КонецЭлемента, - "Спозиционированы на КонецЭлемента"); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.Текст, "Some Value"); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.КонецЭлемента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.КонецЭлемента, ""); ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); @@ -386,13 +396,13 @@ ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); - ЧтениеXML.Прочитать(); - ЧтениеXML.Прочитать(); - ЧтениеXML.Прочитать(); - - юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, - ТипУзлаXML.Текст, - "Спозиционированы на Текст"); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.Текст, "Спозиционированы на текст Some text"); ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); @@ -405,15 +415,55 @@ КонецПроцедуры +Процедура ТестДолжен_ЗаписатьТекущий_ОбъявлениеИТипДокумента() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенствоСтрокБезУчетаРегистра( + "<эл/>", + ПолученныйТекст, + "Объявления и тип документа"); + +КонецПроцедуры + Процедура ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML) ПодопытныйТекст = - " + " + | + | | Some Text |" ; + + ПараметрыЧтения = Новый ПараметрыЧтенияXml( + , // Версия + , // Язык + , // ПробельныеСимволы + , // ТипПроверкиПравильности, + Ложь, // ИгнорироватьОбъявлениеXML + Ложь, // ИгнорироватьТипДокумента + Ложь, // ИгнорироватьИнструкцииОбработки + Ложь, // ИгнорироватьКомментарии + Ложь, // ИгнорироватьПробельныеСимволы + Ложь, // СекцииCDATAКакТекст + Истина // ИспользоватьИгнорируемыеПробельныеСимволы + ); + ЧтениеXML = Новый ЧтениеXML; - ЧтениеXML.УстановитьСтроку(ПодопытныйТекст); + ЧтениеXML.УстановитьСтроку(ПодопытныйТекст, ПараметрыЧтения); ПараметрыЗаписи = Новый ПараметрыЗаписиXml(, , Ложь); // без переносов @@ -421,3 +471,9 @@ ЗаписьXML.УстановитьСтроку(ПараметрыЗаписи); КонецПроцедуры + +Процедура ПрочитатьИПроверитьТип(Знач ЧтениеXML, Знач ТипУзла, Знач Сообщение = Неопределено) + ЧтениеXML.Прочитать(); + юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, ТипУзла, Сообщение); +КонецПроцедуры + From a857edeaca80954e4c1ff5191e76cd43a9f43c6a Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 11 Sep 2025 10:41:12 +0400 Subject: [PATCH 082/191] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=D1=80=D0=B8=D0=B9=20=D0=BA=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80?= =?UTF-8?q?=D1=84=D0=B5=D0=B9=D1=81=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/IBslComparable.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/OneScript.Core/Values/IBslComparable.cs b/src/OneScript.Core/Values/IBslComparable.cs index a075e42aa..3c577dc18 100644 --- a/src/OneScript.Core/Values/IBslComparable.cs +++ b/src/OneScript.Core/Values/IBslComparable.cs @@ -7,6 +7,10 @@ This Source Code Form is subject to the terms of the namespace OneScript.Values { + /// + /// - , /. + /// GenericIValueComparer . + /// public interface IBslComparable { } From e9dd9ec08b7fc699890a8cac695c5159e6923fab Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Thu, 11 Sep 2025 11:47:12 +0300 Subject: [PATCH 083/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BE=D0=BF?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=81=D1=82=D1=80=D0=B0=D0=BD=D1=81=D1=82=D0=B2=20?= =?UTF-8?q?=D0=B8=D0=BC=D0=B5=D0=BD=20=D0=BF=D1=80=D0=B8=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B8=20=D0=B0?= =?UTF-8?q?=D1=82=D1=80=D0=B8=D0=B1=D1=83=D1=82=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Xml/XmlWriterImpl.cs | 44 ++++++++- tests/xmlwrite.os | 96 ++++++++++++++++++- 2 files changed, 134 insertions(+), 6 deletions(-) diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs index 7f03c66b4..15b47d6e8 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs @@ -196,7 +196,7 @@ public void WriteCurrent(XmlReaderImpl reader) CopyDocumentType(reader, this); break; case XmlNodeType.Attribute: - WriteAttribute(reader.Name, reader.Value); + CopyAttribute(reader.Name, reader.Value, reader, this); break; case XmlNodeType.EndElement: WriteEndElement(); @@ -223,12 +223,50 @@ private static void CopyElementAndAttributes(XmlReaderImpl reader, XmlWriterImpl for (var attributeIndex = 0; attributeIndex < attributeCount; attributeIndex++) { var attributeName = reader.AttributeName(attributeIndex); - var attributeValue = reader.GetAttribute(ValueFactory.Create(attributeIndex)); - writer.WriteAttribute(attributeName, attributeValue.ExplicitString()); + var attributeValue = reader.GetAttribute(ValueFactory.Create(attributeIndex)).ExplicitString(); + CopyAttribute(attributeName, attributeValue, reader, writer); } } } + private static void CopyAttribute(string attributeNameIn, string attributeValue, XmlReaderImpl reader, XmlWriterImpl writer) + { + var splittedName = splitName(attributeNameIn); + if (!string.IsNullOrEmpty(splittedName.prefix)) + { + var readerNsContext = (XmlNamespaceContext)reader.NamespaceContext; + var writerNsContext = (XmlNamespaceContext)writer.NamespaceContext; + if (splittedName.prefix.Equals("xmlns", StringComparison.Ordinal)) + { + writer.WriteNamespaceMapping(splittedName.localName, attributeValue); + return; + } + else + { + var uri = readerNsContext.LookupNamespaceUri(splittedName.prefix); + if (uri is BslStringValue) + { + var value = uri.ExplicitString(); + var curentPrefix = writerNsContext.LookupPrefix(value); + if (!(curentPrefix is BslStringValue && curentPrefix.ExplicitString().Equals(splittedName.prefix, StringComparison.Ordinal))) + { + writer.WriteNamespaceMapping(splittedName.prefix, value); + } + splittedName.prefix = value; + } + } + } + writer.WriteAttribute(splittedName.localName, splittedName.prefix, attributeValue); + } + + private static (string prefix, string localName) splitName(string nameOrLocalName) + { + var parts = nameOrLocalName.Split(':'); + if (parts.Length > 1) return (parts[0], parts[1]); + if (parts[0].Equals("xmlns", StringComparison.Ordinal)) return (parts[0], ""); + return ("", parts[0]); + } + [ContextMethod("ЗаписатьТипДокумента","WriteDocumentType")] public void WriteDocumentType(string name, string varArg2, string varArg3 = null, string varArg4 = null) { diff --git a/tests/xmlwrite.os b/tests/xmlwrite.os index 161f36f65..7da5d430b 100644 --- a/tests/xmlwrite.os +++ b/tests/xmlwrite.os @@ -31,6 +31,9 @@ ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_НачалоЭлемента"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_НачалоВложенногоЭлемента"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлемента"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСОпределениемПространстваИмен"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСПерекрывающимОпределениемПространстваИмен"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСЛишнимПереопределениемПространстваИмен"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_КонецЭлемента"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Текст"); @@ -358,6 +361,95 @@ КонецПроцедуры +Процедура ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСОпределениемПространстваИмен() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ЧтениеXML.Пропустить(); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + + ЧтениеXML.ПервыйАтрибут(); + ЧтениеXML.СледующийАтрибут(); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство( + "<эл xmlns:ins=""inner namespace mapping"" ins:attr=""1"" />", // dotnet автоматом закроет элемент + ПолученныйТекст, + "Автоматически добавляется определение пространства имен"); + +КонецПроцедуры + +Процедура ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСЛишнимПереопределениемПространстваИмен() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ЧтениеXML.Пропустить(); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + + ЧтениеXML.ПервыйАтрибут(); + ЧтениеXML.СледующийАтрибут(); + + ЗаписьXML.ЗаписатьНачалоЭлемента("корень"); + ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("ins", "inner namespace mapping"); + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство( + "<корень xmlns:ins=""inner namespace mapping""><эл ins:attr=""1"" />", // dotnet автоматом закроет элементы + ПолученныйТекст, + "Определение пространства имен не добавляется"); + +КонецПроцедуры + +Процедура ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСПерекрывающимОпределениемПространстваИмен() Экспорт + + // BSLLS:LineLength-off + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + ЧтениеXML.Пропустить(); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, ""); + + ЧтениеXML.ПервыйАтрибут(); + ЧтениеXML.СледующийАтрибут(); + + ЗаписьXML.ЗаписатьНачалоЭлемента("корень"); + ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("ins2", "inner namespace mapping"); + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство( + "<корень xmlns:ins2=""inner namespace mapping""><эл xmlns:ins=""inner namespace mapping"" ins:attr=""1"" />", // dotnet автоматом закроет элементы + ПолученныйТекст, + "Определение пространства имен добавляется, так как не совпадают префиксы"); + // BSLLS:LineLength-on +КонецПроцедуры + Процедура ТестДолжен_ЗаписатьТекущий_КонецЭлемента() Экспорт Перем ЧтениеXML, ЗаписьXML; @@ -378,8 +470,6 @@ ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.Текст, "Some Value"); ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.КонецЭлемента, ""); - ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); - ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.КонецЭлемента, ""); ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); @@ -445,6 +535,7 @@ | | | Some Text + | |" ; @@ -476,4 +567,3 @@ ЧтениеXML.Прочитать(); юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, ТипУзла, Сообщение); КонецПроцедуры - From 44a55bda8a59dcaa52ce66381c678448b7cd2645 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 11 Sep 2025 14:06:30 +0400 Subject: [PATCH 084/191] =?UTF-8?q?=D0=B2=D1=8B=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Exceptions/ComparisonException.cs | 40 +++++++++++++++++++ .../Exceptions/RuntimeException.cs | 14 ------- src/OneScript.Core/Values/BslObjectValue.cs | 5 +-- .../Values/BslPrimitiveValue.cs | 2 +- src/OneScript.Core/Values/EnumerationValue.cs | 2 +- src/OneScript.StandardLibrary/GuidWrapper.cs | 2 +- .../Machine/Contexts/ContextIValueImpl.cs | 2 +- 7 files changed, 45 insertions(+), 22 deletions(-) create mode 100644 src/OneScript.Core/Exceptions/ComparisonException.cs diff --git a/src/OneScript.Core/Exceptions/ComparisonException.cs b/src/OneScript.Core/Exceptions/ComparisonException.cs new file mode 100644 index 000000000..9a6cbb99e --- /dev/null +++ b/src/OneScript.Core/Exceptions/ComparisonException.cs @@ -0,0 +1,40 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using OneScript.Localization; + +namespace OneScript.Exceptions +{ + public class ComparisonException : RuntimeException + { + public ComparisonException(BilingualString message) : base(message) + { + } + + public static ComparisonException NotSupported() + { + return new ComparisonException(new BilingualString( + $"Сравнение на больше/меньше для типа не поддерживается", + $"Greater-than/Less-than comparison operations are not supported")); + } + + public static ComparisonException NotSupported(string type) + { + return new ComparisonException(new BilingualString( + $"Сравнение на больше/меньше для типа '{type}' не поддерживается", + $"Greater-than/Less-than comparison operations are not supported for '{type}'")); + } + + public static ComparisonException NotSupported(string type1, string type2) + { + return new ComparisonException(new BilingualString( + $"Сравнение на больше/меньше типов '{type1}' и '{type2}' не поддерживается ", + $"Greater-than/Less-than comparison operations are not supported for '{type1}' and '{type2}'")); + } + } +} \ No newline at end of file diff --git a/src/OneScript.Core/Exceptions/RuntimeException.cs b/src/OneScript.Core/Exceptions/RuntimeException.cs index c47be307b..f5819b957 100644 --- a/src/OneScript.Core/Exceptions/RuntimeException.cs +++ b/src/OneScript.Core/Exceptions/RuntimeException.cs @@ -118,20 +118,6 @@ public static RuntimeException InvalidNthArgumentValue(int argNum) $"Invalid value for argument number {argNum}"); } - public static RuntimeException ComparisonNotSupportedException() - { - return new RuntimeException( - "Сравнение на больше/меньше для данного типа не поддерживается", - "Greater-than/Less-than comparison operations are not supported"); - } - - public static RuntimeException ComparisonNotSupportedException(string type1, string type2) - { - return new RuntimeException( - $"Сравнение на больше/меньше для данного типа не поддерживается {type1} <-> {type2}", - $"Greater-than/Less-than comparison operations are not supported for {type1} <-> {type2}"); - } - public static RuntimeException IndexedAccessIsNotSupportedException() { return new RuntimeException( diff --git a/src/OneScript.Core/Values/BslObjectValue.cs b/src/OneScript.Core/Values/BslObjectValue.cs index 10226630d..e34e8ed1c 100644 --- a/src/OneScript.Core/Values/BslObjectValue.cs +++ b/src/OneScript.Core/Values/BslObjectValue.cs @@ -14,10 +14,7 @@ public abstract class BslObjectValue : BslValue { public override int CompareTo(BslValue other) { - var msg = new BilingualString("Сравнение на больше/меньше для данного типа не поддерживается", - "Comparison for less/greater is not supported for this type"); - - throw new RuntimeException(msg); + throw ComparisonException.NotSupported(); } public override bool Equals(BslValue other) diff --git a/src/OneScript.Core/Values/BslPrimitiveValue.cs b/src/OneScript.Core/Values/BslPrimitiveValue.cs index 24bc8000d..0e13ef9f4 100644 --- a/src/OneScript.Core/Values/BslPrimitiveValue.cs +++ b/src/OneScript.Core/Values/BslPrimitiveValue.cs @@ -31,7 +31,7 @@ public override int CompareTo(BslValue other) typeOfOther ??= GetType().ToString(); } - throw RuntimeException.ComparisonNotSupportedException(typeOfThis, typeOfOther); + throw ComparisonException.NotSupported(typeOfThis, typeOfOther); } public override bool Equals(BslValue other) => false; diff --git a/src/OneScript.Core/Values/EnumerationValue.cs b/src/OneScript.Core/Values/EnumerationValue.cs index 4d91d31bb..e2602ec0d 100644 --- a/src/OneScript.Core/Values/EnumerationValue.cs +++ b/src/OneScript.Core/Values/EnumerationValue.cs @@ -48,7 +48,7 @@ public override string ToString() public override int CompareTo(BslValue other) { - throw RuntimeException.ComparisonNotSupportedException(); + throw ComparisonException.NotSupported(); } public override bool Equals(BslValue other) diff --git a/src/OneScript.StandardLibrary/GuidWrapper.cs b/src/OneScript.StandardLibrary/GuidWrapper.cs index 5054a0640..b892e5021 100644 --- a/src/OneScript.StandardLibrary/GuidWrapper.cs +++ b/src/OneScript.StandardLibrary/GuidWrapper.cs @@ -62,7 +62,7 @@ public override int CompareTo(BslValue other) { GuidWrapper otherUuid = other.GetRawValue() as GuidWrapper; if (otherUuid == null) - throw RuntimeException.ComparisonNotSupportedException(); + throw ComparisonException.NotSupported(); return _value.CompareTo(otherUuid._value); } diff --git a/src/ScriptEngine/Machine/Contexts/ContextIValueImpl.cs b/src/ScriptEngine/Machine/Contexts/ContextIValueImpl.cs index e3eaec6ef..51e0ef754 100644 --- a/src/ScriptEngine/Machine/Contexts/ContextIValueImpl.cs +++ b/src/ScriptEngine/Machine/Contexts/ContextIValueImpl.cs @@ -62,7 +62,7 @@ public override TypeDescriptor SystemType public override int CompareTo(BslValue other) { - throw RuntimeException.ComparisonNotSupportedException(); + throw ComparisonException.NotSupported(); } #endregion From 1d81fccfb20c61959fe07913a2a109f6cbe35bd6 Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Thu, 11 Sep 2025 13:22:40 +0300 Subject: [PATCH 085/191] =?UTF-8?q?CDATA=20=D0=B2=20=D0=97=D0=B0=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=B0=D1=82=D1=8C=D0=A2=D0=B5=D0=BA=D1=83=D1=89?= =?UTF-8?q?=D0=B8=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Xml/XmlWriterImpl.cs | 3 ++ tests/xmlwrite.os | 36 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs index 15b47d6e8..ec723c3ce 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs @@ -201,6 +201,9 @@ public void WriteCurrent(XmlReaderImpl reader) case XmlNodeType.EndElement: WriteEndElement(); break; + case XmlNodeType.CDATA: + WriteCDATASection(reader.Value); + break; case XmlNodeType.Text: WriteText(reader.Value); break; diff --git a/tests/xmlwrite.os b/tests/xmlwrite.os index 7da5d430b..9e403c056 100644 --- a/tests/xmlwrite.os +++ b/tests/xmlwrite.os @@ -36,6 +36,7 @@ ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСЛишнимПереопределениемПространстваИмен"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_КонецЭлемента"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Текст"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_CDATA"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ОбъявлениеИТипДокумента"); @@ -505,6 +506,26 @@ КонецПроцедуры +Процедура ТестДолжен_ЗаписатьТекущий_CDATA() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + ДойтиДоИмени(ЧтениеXML, "cdata"); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.СекцияCDATA); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ЗаписьXML.ЗаписатьСекциюCDATA(", к которому добавили ещё текст"); + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("<эл>", + ПолученныйТекст, + "CDATA"); + +КонецПроцедуры + Процедура ТестДолжен_ЗаписатьТекущий_ОбъявлениеИТипДокумента() Экспорт Перем ЧтениеXML, ЗаписьXML; @@ -536,6 +557,7 @@ | | Some Text | + | |" ; @@ -563,6 +585,20 @@ КонецПроцедуры +Функция ДойтиДоИмени(Знач ЧтениеXML, Знач Имя) + + Пока ЧтениеXML.Имя <> Имя Цикл + + Если Не ЧтениеXML.Прочитать() Тогда + Возврат Ложь; + КонецЕсли; + + КонецЦикла; + + Возврат Истина; + +КонецФункции + Процедура ПрочитатьИПроверитьТип(Знач ЧтениеXML, Знач ТипУзла, Знач Сообщение = Неопределено) ЧтениеXML.Прочитать(); юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, ТипУзла, Сообщение); From b06bff445d212629bf134a3a247539d078c1e7dc Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Thu, 11 Sep 2025 13:57:00 +0300 Subject: [PATCH 086/191] =?UTF-8?q?=D0=9A=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B8=D0=B8=20=D0=B2=20=D0=97=D0=B0=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=B0=D1=82=D1=8C=D0=A2=D0=B5=D0=BA=D1=83=D1=89?= =?UTF-8?q?=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Xml/XmlWriterImpl.cs | 15 +++++++ tests/xmlwrite.os | 43 +++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs index ec723c3ce..81ab3ec51 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs @@ -207,6 +207,21 @@ public void WriteCurrent(XmlReaderImpl reader) case XmlNodeType.Text: WriteText(reader.Value); break; + case XmlNodeType.Whitespace: + case XmlNodeType.SignificantWhitespace: + WriteText(reader.Value); + break; + case XmlNodeType.Comment: + WriteComment(reader.Value); + break; + case XmlNodeType.Entity: + case XmlNodeType.EntityReference: + case XmlNodeType.EndEntity: + case XmlNodeType.ProcessingInstruction: + case XmlNodeType.Document: + case XmlNodeType.DocumentFragment: + case XmlNodeType.Notation: + throw new RuntimeException(new Localization.BilingualString($"Копирование узла {nodeType} не поддерживается")); default: break; } diff --git a/tests/xmlwrite.os b/tests/xmlwrite.os index 9e403c056..761a7c84a 100644 --- a/tests/xmlwrite.os +++ b/tests/xmlwrite.os @@ -37,6 +37,8 @@ ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_КонецЭлемента"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Текст"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_CDATA"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Комментарий"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ПолноеКопирование"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ОбъявлениеИТипДокумента"); @@ -526,6 +528,46 @@ КонецПроцедуры +Процедура ТестДолжен_ЗаписатьТекущий_Комментарий() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + ДойтиДоИмени(ЧтениеXML, "БлокСКомментарием"); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.Комментарий); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + + ЗаписьXML.ЗаписатьТекст("Текст"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); // можем записать ещё раз + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("<эл> Текст", + ПолученныйТекст, + "Комментарий"); + +КонецПроцедуры + +Процедура ТестДолжен_ЗаписатьТекущий_ПолноеКопирование() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + Пока ЧтениеXML.Прочитать() Цикл + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + КонецЦикла; + + ЗаписьXML.Закрыть(); + +КонецПроцедуры + Процедура ТестДолжен_ЗаписатьТекущий_ОбъявлениеИТипДокумента() Экспорт Перем ЧтениеXML, ЗаписьXML; @@ -558,6 +600,7 @@ | Some Text | | + | <БлокСКомментарием> |" ; From 655afbe165bf0e6fcdbda71c03d0c781c3cbfd60 Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Thu, 11 Sep 2025 14:24:05 +0300 Subject: [PATCH 087/191] =?UTF-8?q?=D0=9E=D0=BF=D0=B5=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs index 81ab3ec51..f62278464 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs @@ -265,8 +265,8 @@ private static void CopyAttribute(string attributeNameIn, string attributeValue, if (uri is BslStringValue) { var value = uri.ExplicitString(); - var curentPrefix = writerNsContext.LookupPrefix(value); - if (!(curentPrefix is BslStringValue && curentPrefix.ExplicitString().Equals(splittedName.prefix, StringComparison.Ordinal))) + var currentPrefix = writerNsContext.LookupPrefix(value); + if (!(currentPrefix is BslStringValue && currentPrefix.ExplicitString().Equals(splittedName.prefix, StringComparison.Ordinal))) { writer.WriteNamespaceMapping(splittedName.prefix, value); } From ed060afc25c26d1bd4ed352e51eb69c1d9fb0858 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 11 Sep 2025 17:45:22 +0400 Subject: [PATCH 088/191] =?UTF-8?q?=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BE=D0=B1=20=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Exceptions/ComparisonException.cs | 2 +- src/OneScript.Core/Values/BslPrimitiveValue.cs | 5 ++++- tests/engine-behaviors.os | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/OneScript.Core/Exceptions/ComparisonException.cs b/src/OneScript.Core/Exceptions/ComparisonException.cs index 9a6cbb99e..4ec535336 100644 --- a/src/OneScript.Core/Exceptions/ComparisonException.cs +++ b/src/OneScript.Core/Exceptions/ComparisonException.cs @@ -19,7 +19,7 @@ public ComparisonException(BilingualString message) : base(message) public static ComparisonException NotSupported() { return new ComparisonException(new BilingualString( - $"Сравнение на больше/меньше для типа не поддерживается", + $"Сравнение на больше/меньше для данного типа не поддерживается", $"Greater-than/Less-than comparison operations are not supported")); } diff --git a/src/OneScript.Core/Values/BslPrimitiveValue.cs b/src/OneScript.Core/Values/BslPrimitiveValue.cs index 0e13ef9f4..01f08121b 100644 --- a/src/OneScript.Core/Values/BslPrimitiveValue.cs +++ b/src/OneScript.Core/Values/BslPrimitiveValue.cs @@ -31,7 +31,10 @@ public override int CompareTo(BslValue other) typeOfOther ??= GetType().ToString(); } - throw ComparisonException.NotSupported(typeOfThis, typeOfOther); + if (typeOfThis == typeOfOther) + throw ComparisonException.NotSupported(typeOfThis); + else + throw ComparisonException.NotSupported(typeOfThis, typeOfOther); } public override bool Equals(BslValue other) => false; diff --git a/tests/engine-behaviors.os b/tests/engine-behaviors.os index f35fefe8a..13b4a36da 100644 --- a/tests/engine-behaviors.os +++ b/tests/engine-behaviors.os @@ -683,9 +683,10 @@ "Рез = (ХешФункция > СтатусСообщения);", Ошибка, "Для перечислений разных типов" ); + ОшибкаДляТип = "Сравнение на больше/меньше для типа 'Тип' не поддерживается"; юТест.ПроверитьКодСОшибкой( "Рез = (ТипЗнч(истина) > ТипЗнч(0));", - Ошибка, "Для значений типа 'Тип'" ); + ОшибкаДляТип, "Для значений типа 'Тип'" ); юТест.ПроверитьКодСОшибкой( "Массив = Новый Массив(1); From 8d71eee26c3e6ab9e80a4ff56609c9721eb689ce Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 11 Sep 2025 21:50:31 +0400 Subject: [PATCH 089/191] =?UTF-8?q?=D0=BF=D0=BE=20coderabbit=20review:=20?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=B8=20=D1=82=D0=B8=D0=BF=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/BslPrimitiveValue.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OneScript.Core/Values/BslPrimitiveValue.cs b/src/OneScript.Core/Values/BslPrimitiveValue.cs index 01f08121b..b3c0cc6dd 100644 --- a/src/OneScript.Core/Values/BslPrimitiveValue.cs +++ b/src/OneScript.Core/Values/BslPrimitiveValue.cs @@ -27,8 +27,8 @@ public override int CompareTo(BslValue other) } catch (InvalidOperationException) // если тип не зарегистрирован { - typeOfThis ??= GetType().ToString(); - typeOfOther ??= GetType().ToString(); + typeOfThis ??= this.GetType().ToString(); + typeOfOther ??= other.GetType().ToString(); } if (typeOfThis == typeOfOther) From 52c170d27633985f62f8401e18d2f01da459a105 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Fri, 12 Sep 2025 00:46:06 +0400 Subject: [PATCH 090/191] =?UTF-8?q?=D1=81=D1=80=D0=B0=D0=B2=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=BD=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=20=D0=B2=20=D0=B1=D0=B0=D0=B7=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B0=D1=81=D1=81;=20=D1=83=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Exceptions/ComparisonException.cs | 2 +- src/OneScript.Core/Values/BslBooleanValue.cs | 1 - src/OneScript.Core/Values/BslDateValue.cs | 3 -- src/OneScript.Core/Values/BslNumericValue.cs | 1 - src/OneScript.Core/Values/BslObjectValue.cs | 5 ---- .../Values/BslPrimitiveValue.cs | 28 ------------------- src/OneScript.Core/Values/BslStringValue.cs | 4 +-- src/OneScript.Core/Values/BslValue.cs | 27 ++++++++++++++++-- src/OneScript.Core/Values/EnumerationValue.cs | 5 ---- .../Machine/Contexts/ContextIValueImpl.cs | 9 ------ src/Tests/OneScript.Core.Tests/ValuesTest.cs | 7 ++--- tests/engine-behaviors.os | 15 ++++++---- 12 files changed, 41 insertions(+), 66 deletions(-) diff --git a/src/OneScript.Core/Exceptions/ComparisonException.cs b/src/OneScript.Core/Exceptions/ComparisonException.cs index 4ec535336..482abfd4c 100644 --- a/src/OneScript.Core/Exceptions/ComparisonException.cs +++ b/src/OneScript.Core/Exceptions/ComparisonException.cs @@ -33,7 +33,7 @@ public static ComparisonException NotSupported(string type) public static ComparisonException NotSupported(string type1, string type2) { return new ComparisonException(new BilingualString( - $"Сравнение на больше/меньше типов '{type1}' и '{type2}' не поддерживается ", + $"Сравнение на больше/меньше типов '{type1}' и '{type2}' не поддерживается", $"Greater-than/Less-than comparison operations are not supported for '{type1}' and '{type2}'")); } } diff --git a/src/OneScript.Core/Values/BslBooleanValue.cs b/src/OneScript.Core/Values/BslBooleanValue.cs index 16b9fc476..c87ccd889 100644 --- a/src/OneScript.Core/Values/BslBooleanValue.cs +++ b/src/OneScript.Core/Values/BslBooleanValue.cs @@ -57,7 +57,6 @@ public override string ToString() public override bool Equals(BslValue other) { - if (other is null) return false; if (ReferenceEquals(this, other)) return true; return other switch diff --git a/src/OneScript.Core/Values/BslDateValue.cs b/src/OneScript.Core/Values/BslDateValue.cs index 4287bcc28..6023afce0 100644 --- a/src/OneScript.Core/Values/BslDateValue.cs +++ b/src/OneScript.Core/Values/BslDateValue.cs @@ -25,9 +25,6 @@ private BslDateValue(DateTime value) public override int CompareTo(BslValue other) { - if (ReferenceEquals(null, other)) - return -1; - if(other is BslDateValue d) return _value.CompareTo(d._value); diff --git a/src/OneScript.Core/Values/BslNumericValue.cs b/src/OneScript.Core/Values/BslNumericValue.cs index e32ffff73..8d3464fd0 100644 --- a/src/OneScript.Core/Values/BslNumericValue.cs +++ b/src/OneScript.Core/Values/BslNumericValue.cs @@ -84,7 +84,6 @@ public bool Equals(BslNumericValue other) public override bool Equals(BslValue other) { - if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return other switch diff --git a/src/OneScript.Core/Values/BslObjectValue.cs b/src/OneScript.Core/Values/BslObjectValue.cs index e34e8ed1c..610b28be8 100644 --- a/src/OneScript.Core/Values/BslObjectValue.cs +++ b/src/OneScript.Core/Values/BslObjectValue.cs @@ -12,11 +12,6 @@ namespace OneScript.Values { public abstract class BslObjectValue : BslValue { - public override int CompareTo(BslValue other) - { - throw ComparisonException.NotSupported(); - } - public override bool Equals(BslValue other) { return ReferenceEquals(this, other); diff --git a/src/OneScript.Core/Values/BslPrimitiveValue.cs b/src/OneScript.Core/Values/BslPrimitiveValue.cs index b3c0cc6dd..33a990ade 100644 --- a/src/OneScript.Core/Values/BslPrimitiveValue.cs +++ b/src/OneScript.Core/Values/BslPrimitiveValue.cs @@ -5,38 +5,10 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; -using OneScript.Exceptions; - namespace OneScript.Values { public abstract class BslPrimitiveValue : BslValue { - public override int CompareTo(BslValue other) - { - if (other == null) - return -1; - - string typeOfThis = null; - string typeOfOther = null; - - try - { - typeOfThis = this.SystemType.Name; - typeOfOther = other.SystemType.Name; - } - catch (InvalidOperationException) // если тип не зарегистрирован - { - typeOfThis ??= this.GetType().ToString(); - typeOfOther ??= other.GetType().ToString(); - } - - if (typeOfThis == typeOfOther) - throw ComparisonException.NotSupported(typeOfThis); - else - throw ComparisonException.NotSupported(typeOfThis, typeOfOther); - } - public override bool Equals(BslValue other) => false; } } \ No newline at end of file diff --git a/src/OneScript.Core/Values/BslStringValue.cs b/src/OneScript.Core/Values/BslStringValue.cs index 700af157c..ab2d11078 100644 --- a/src/OneScript.Core/Values/BslStringValue.cs +++ b/src/OneScript.Core/Values/BslStringValue.cs @@ -49,8 +49,8 @@ public override bool Equals(BslValue other) public override int CompareTo(BslValue other) { - if (ReferenceEquals(null, other)) - return -1; + if (ReferenceEquals(this, other)) + return 0; if (other is BslStringValue s) return String.Compare(_value, s._value, StringComparison.CurrentCulture); diff --git a/src/OneScript.Core/Values/BslValue.cs b/src/OneScript.Core/Values/BslValue.cs index 092cfdf24..14d1596b9 100644 --- a/src/OneScript.Core/Values/BslValue.cs +++ b/src/OneScript.Core/Values/BslValue.cs @@ -27,7 +27,30 @@ public virtual string ToString(IBslProcess process) return ToString(); } - public abstract int CompareTo(BslValue other); + public virtual int CompareTo(BslValue other) + { + if (other is null) + return -1; + + string typeOfThis = null; + string typeOfOther = null; + + try + { + typeOfThis = this.SystemType.Name; + typeOfOther = other.SystemType.Name; + } + catch (InvalidOperationException) // если тип не зарегистрирован + { + typeOfThis ??= this.GetType().ToString(); + typeOfOther ??= other.GetType().ToString(); + } + + if (typeOfThis == typeOfOther) + throw ComparisonException.NotSupported(typeOfThis); + else + throw ComparisonException.NotSupported(typeOfThis, typeOfOther); + } public abstract bool Equals(BslValue other); @@ -76,7 +99,7 @@ public static explicit operator DateTime(BslValue target) => public virtual IValue GetRawValue() => this; - private BslValue UnwrapReference(IValue v) + private static BslValue UnwrapReference(IValue v) { if (v is IValueReference r) return r.BslValue; diff --git a/src/OneScript.Core/Values/EnumerationValue.cs b/src/OneScript.Core/Values/EnumerationValue.cs index e2602ec0d..7d5da02be 100644 --- a/src/OneScript.Core/Values/EnumerationValue.cs +++ b/src/OneScript.Core/Values/EnumerationValue.cs @@ -46,11 +46,6 @@ public override string ToString() public override IValue GetRawValue() => this; - public override int CompareTo(BslValue other) - { - throw ComparisonException.NotSupported(); - } - public override bool Equals(BslValue other) { return ReferenceEquals(other?.GetRawValue(), this); diff --git a/src/ScriptEngine/Machine/Contexts/ContextIValueImpl.cs b/src/ScriptEngine/Machine/Contexts/ContextIValueImpl.cs index 51e0ef754..e8d8d07ac 100644 --- a/src/ScriptEngine/Machine/Contexts/ContextIValueImpl.cs +++ b/src/ScriptEngine/Machine/Contexts/ContextIValueImpl.cs @@ -58,15 +58,6 @@ public override TypeDescriptor SystemType #endregion - #region IComparable Members - - public override int CompareTo(BslValue other) - { - throw ComparisonException.NotSupported(); - } - - #endregion - #region IEquatable Members public override bool Equals(BslValue other) diff --git a/src/Tests/OneScript.Core.Tests/ValuesTest.cs b/src/Tests/OneScript.Core.Tests/ValuesTest.cs index 3a06461ba..5e22c455a 100644 --- a/src/Tests/OneScript.Core.Tests/ValuesTest.cs +++ b/src/Tests/OneScript.Core.Tests/ValuesTest.cs @@ -177,8 +177,8 @@ public void Invalid_Comparison_Num_And_String() var num1 = ValueFactory.Create(1); var num2 = ValueFactory.Create("2"); - Assert.ThrowsAny(() => num1.CompareTo(num2)); - Assert.ThrowsAny(() => num2.CompareTo(num1)); + Assert.ThrowsAny(() => num1.CompareTo(num2)); + Assert.ThrowsAny(() => num2.CompareTo(num1)); } [Fact] @@ -187,8 +187,7 @@ public void Invalid_Comparison_Undefined() var v1 = ValueFactory.Create(); var v2 = ValueFactory.Create(true); - //TODO: типизировать исключение ComparisonNotSupportedException - Assert.ThrowsAny(() => v1.CompareTo(v2)); + Assert.ThrowsAny(() => v1.CompareTo(v2)); } [Fact] diff --git a/tests/engine-behaviors.os b/tests/engine-behaviors.os index 13b4a36da..5349cdfdd 100644 --- a/tests/engine-behaviors.os +++ b/tests/engine-behaviors.os @@ -666,34 +666,39 @@ Процедура ТестДолжен_ПроверитьСравнениеНаБольшеМеньше() Экспорт - Ошибка = "Сравнение на больше/меньше для данного типа не поддерживается"; - + Ошибка = "Сравнение на больше/меньше для типа 'СтатусСообщения' не поддерживается"; юТест.ПроверитьКодСОшибкой( "Рез = (СтатусСообщения.БезСтатуса <= СтатусСообщения.БезСтатуса);", Ошибка, "Для одинаковых значений перечислений" ); + Ошибка = "Сравнение на больше/меньше типов 'ЦветКонсоли' и 'СтатусСообщения' не поддерживается"; юТест.ПроверитьКодСОшибкой( "Рез = (ЦветКонсоли.Черный < СтатусСообщения.БезСтатуса);", Ошибка, "Для значений перечислений разных типов" ); + Ошибка = "Сравнение на больше/меньше для типа 'ПеречислениеКодировкаТекста' не поддерживается"; юТест.ПроверитьКодСОшибкой( "Рез = (КодировкаТекста >= КодировкаТекста);", Ошибка, "Для одинаковых перечислений" ); + + Ошибка = "Сравнение на больше/меньше типов 'ПеречислениеХешФункция' и 'ПеречислениеСтатусСообщения"; юТест.ПроверитьКодСОшибкой( "Рез = (ХешФункция > СтатусСообщения);", Ошибка, "Для перечислений разных типов" ); - ОшибкаДляТип = "Сравнение на больше/меньше для типа 'Тип' не поддерживается"; + Ошибка = "Сравнение на больше/меньше для типа 'Тип' не поддерживается"; юТест.ПроверитьКодСОшибкой( "Рез = (ТипЗнч(истина) > ТипЗнч(0));", - ОшибкаДляТип, "Для значений типа 'Тип'" ); - + Ошибка, "Для значений типа 'Тип'" ); + + Ошибка = "Сравнение на больше/меньше типов 'Массив' и 'Структура' не поддерживается"; юТест.ПроверитьКодСОшибкой( "Массив = Новый Массив(1); |Структура = Новый Структура; |Рез = (Массив > Структура);", Ошибка, "Для объектов разных типов" ); + Ошибка = "Сравнение на больше/меньше для типа 'Массив' не поддерживается"; юТест.ПроверитьКодСОшибкой( "Массив = Новый Массив(1); |Массив2 = Новый Массив(1);; From c571c4da48a0c3cd1d349ddd36813ffcdda85621 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Fri, 12 Sep 2025 01:20:11 +0400 Subject: [PATCH 091/191] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/engine-behaviors.os | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/engine-behaviors.os b/tests/engine-behaviors.os index 5349cdfdd..7901869f1 100644 --- a/tests/engine-behaviors.os +++ b/tests/engine-behaviors.os @@ -51,7 +51,7 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьПродолжениеВложенныхПопыток"); ВсеТесты.Добавить("ТестДолжен_ПроверитьИнформацияОбОшибкеВнеИсключения"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПередачуПараметровПоСсылке"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьСравнениеНаБольшеМеньше"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьОшибкиСравненияНаБольшеМеньше"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧто_ЭтотОбъект_НедоступенДляЗаписи"); ВсеТесты.Добавить("ТестДолжен_ПроверитьОперацииСДатой_Сложение"); @@ -664,7 +664,7 @@ КонецПроцедуры -Процедура ТестДолжен_ПроверитьСравнениеНаБольшеМеньше() Экспорт +Процедура ТестДолжен_ПроверитьОшибкиСравненияНаБольшеМеньше() Экспорт Ошибка = "Сравнение на больше/меньше для типа 'СтатусСообщения' не поддерживается"; юТест.ПроверитьКодСОшибкой( @@ -681,7 +681,7 @@ "Рез = (КодировкаТекста >= КодировкаТекста);", Ошибка, "Для одинаковых перечислений" ); - Ошибка = "Сравнение на больше/меньше типов 'ПеречислениеХешФункция' и 'ПеречислениеСтатусСообщения"; + Ошибка = "Сравнение на больше/меньше типов 'ПеречислениеХешФункция' и 'ПеречислениеСтатусСообщения' не поддерживается"; юТест.ПроверитьКодСОшибкой( "Рез = (ХешФункция > СтатусСообщения);", Ошибка, "Для перечислений разных типов" ); @@ -704,7 +704,6 @@ |Массив2 = Новый Массив(1);; |Рез = (Массив <= Массив2);", Ошибка, "Для одинаковых объектов" ); - КонецПроцедуры Процедура ТестДолжен_ПроверитьЧто_ЭтотОбъект_НедоступенДляЗаписи() Экспорт From 5e4e5a82b00b91c292c20829ae7906c270f7c144 Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Tue, 16 Sep 2025 09:17:09 +0300 Subject: [PATCH 092/191] =?UTF-8?q?=D0=A1=D1=81=D1=8B=D0=BB=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D1=83=D1=89=D0=BD=D0=BE=D1=81=D1=82=D1=8C?= =?UTF-8?q?=20=D0=B2=20=D0=97=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=D0=A2=D0=B5=D0=BA=D1=83=D1=89=D0=B8=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Xml/XmlWriterImpl.cs | 4 +- tests/xmlwrite.os | 42 +++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs index f62278464..f3edbf7ce 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs @@ -214,8 +214,10 @@ public void WriteCurrent(XmlReaderImpl reader) case XmlNodeType.Comment: WriteComment(reader.Value); break; - case XmlNodeType.Entity: case XmlNodeType.EntityReference: + WriteEntityReference(reader.Name); + break; + case XmlNodeType.Entity: case XmlNodeType.EndEntity: case XmlNodeType.ProcessingInstruction: case XmlNodeType.Document: diff --git a/tests/xmlwrite.os b/tests/xmlwrite.os index 761a7c84a..ecf438a74 100644 --- a/tests/xmlwrite.os +++ b/tests/xmlwrite.os @@ -38,6 +38,7 @@ ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Текст"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_CDATA"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Комментарий"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_СсылкаНаСушность"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ПолноеКопирование"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ОбъявлениеИТипДокумента"); @@ -591,6 +592,45 @@ КонецПроцедуры +Процедура ТестДолжен_ЗаписатьТекущий_СсылкаНаСушность() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ДойтиДоИмени(ЧтениеXML, "entity"); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.СсылкаНаСущность); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("<эл>&СсылкаНаСущность;", + ПолученныйТекст, + "Ссылка на сущность"); + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ДойтиДоИмени(ЧтениеXML, "entity2"); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.Текст); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.СсылкаНаСущность); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + юТест.ПроверитьРавенство("<эл>Это &СсылкаНаСущность;", + ПолученныйТекст, + "Ссылка на сущность внутри текста"); + +КонецПроцедуры + Процедура ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML) ПодопытныйТекст = @@ -601,6 +641,8 @@ | | | <БлокСКомментарием> + | &СсылкаНаСущность; + | Это &СсылкаНаСущность; |" ; From 26c189f3ce2b286a4be84484aef32331f5672964 Mon Sep 17 00:00:00 2001 From: Sergey Batanov Date: Tue, 16 Sep 2025 09:38:38 +0300 Subject: [PATCH 093/191] =?UTF-8?q?=D0=98=D0=BD=D1=81=D1=82=D1=80=D1=83?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D0=B8=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B8=20=D0=B2=20=D0=97=D0=B0=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D0=A2=D0=B5=D0=BA=D1=83=D1=89=D0=B8=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Xml/XmlWriterImpl.cs | 4 +- tests/xmlwrite.os | 71 +++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs index f3edbf7ce..466cd7b16 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterImpl.cs @@ -217,9 +217,11 @@ public void WriteCurrent(XmlReaderImpl reader) case XmlNodeType.EntityReference: WriteEntityReference(reader.Name); break; + case XmlNodeType.ProcessingInstruction: + WriteProcessingInstruction(reader.Name, reader.Value); + break; case XmlNodeType.Entity: case XmlNodeType.EndEntity: - case XmlNodeType.ProcessingInstruction: case XmlNodeType.Document: case XmlNodeType.DocumentFragment: case XmlNodeType.Notation: diff --git a/tests/xmlwrite.os b/tests/xmlwrite.os index ecf438a74..5b3e4665f 100644 --- a/tests/xmlwrite.os +++ b/tests/xmlwrite.os @@ -40,6 +40,7 @@ ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Комментарий"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_СсылкаНаСушность"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ПолноеКопирование"); + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ИнструкцииОбработки"); ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_ОбъявлениеИТипДокумента"); @@ -631,6 +632,67 @@ КонецПроцедуры +Процедура ТестДолжен_ЗаписатьТекущий_ИнструкцииОбработки() Экспорт + + Перем ЧтениеXML, ЗаписьXML; + + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); + + ДойтиДоИмени(ЧтениеXML, "PI"); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ИнструкцияОбработки); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + + // Несовместимость: dotnet всегда добавляет пробел, даже если нет текста инструкции + юТест.ПроверитьРавенство("<эл>", + // ^ + ПолученныйТекст, + "Инструкция обработки"); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.КонецЭлемента); + ЧтениеXML.Прочитать(); + + // + + ПодготовитьЗаписьXML(ЗаписьXML); + ДойтиДоИмени(ЧтениеXML, "PI"); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ИнструкцияОбработки); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + + юТест.ПроверитьРавенство("<эл>", + ПолученныйТекст, + "Инструкция обработки с текстом"); + + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.КонецЭлемента); + ЧтениеXML.Прочитать(); + + // + + ПодготовитьЗаписьXML(ЗаписьXML); + ДойтиДоИмени(ЧтениеXML, "PI"); + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ИнструкцияОбработки); + + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); + ЗаписьXML.ЗаписатьКонецЭлемента(); + + ПолученныйТекст = ЗаписьXML.Закрыть(); + + юТест.ПроверитьРавенство("<эл>", + ПолученныйТекст, + "Инструкция обработки с текстом и служебными символами"); + +КонецПроцедуры + Процедура ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML) ПодопытныйТекст = @@ -643,6 +705,9 @@ | <БлокСКомментарием> | &СсылкаНаСущность; | Это &СсылкаНаСущность; + | + | + | |" ; @@ -663,6 +728,12 @@ ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ПодопытныйТекст, ПараметрыЧтения); + ПодготовитьЗаписьXML(ЗаписьXML); + +КонецПроцедуры + +Процедура ПодготовитьЗаписьXML(ЗаписьXML) + ПараметрыЗаписи = Новый ПараметрыЗаписиXml(, , Ложь); // без переносов ЗаписьXML = Новый ЗаписьXML; From be9169a3d06e943d383434998928810601b441fc Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Fri, 26 Sep 2025 16:26:50 +0400 Subject: [PATCH 094/191] =?UTF-8?q?=D1=81=D0=BE=D1=80=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BD=D0=B5=D1=81=D0=BE=D0=B2=D0=BF?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=8E=D1=89=D0=B8=D1=85=20=D1=82=D0=B8=D0=BF?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Machine/GenericIValueComparer.cs | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/ScriptEngine/Machine/GenericIValueComparer.cs b/src/ScriptEngine/Machine/GenericIValueComparer.cs index 2d9780f07..3609ceb6d 100644 --- a/src/ScriptEngine/Machine/GenericIValueComparer.cs +++ b/src/ScriptEngine/Machine/GenericIValueComparer.cs @@ -10,6 +10,7 @@ This Source Code Form is subject to the terms of the using OneScript.Values; using ScriptEngine.Machine.Contexts; using OneScript.Execution; +using OneScript.Types; namespace ScriptEngine.Machine { @@ -18,6 +19,10 @@ public class GenericIValueComparer : IEqualityComparer, IComparer _comparer; + static private readonly ListorderedTypes = new List + { BasicTypes.Undefined, BasicTypes.Null, BasicTypes.Boolean, + BasicTypes.Number, BasicTypes.String, BasicTypes.Date, BasicTypes.Type }; + public GenericIValueComparer() { _comparer = CompareAsStrings; @@ -62,12 +67,28 @@ private int CompareByPresentations(IValue x, IValue y) return ((BslValue)x).ToString(_process).CompareTo(((BslValue)y).ToString(_process)); } + private int CompareByTypes(IValue x, IValue y) + { + var ix = orderedTypes.IndexOf(x.SystemType); + var iy = orderedTypes.IndexOf(y.SystemType); + + if (ix >= 0) + return (iy >= 0) ? ix-iy : -1; + else if (iy >= 0) + return 1; + + return _comparer(x,y); + } + public int Compare(IValue x, IValue y) { if (ReferenceEquals(x, y)) return 0; - if (x is IBslComparable && x.SystemType == y.SystemType ) + if (x.SystemType != y.SystemType ) + return CompareByTypes(x,y); + + if (x is IBslComparable) return x.CompareTo(y); else return _comparer(x,y); From 4c5da556f02b94b78063deeb57e4ef5e509b7ed0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 08:48:40 +0000 Subject: [PATCH 095/191] Initial plan From 9f47c0f96dd1a32fe45552b985b081066329d7a4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 08:54:07 +0000 Subject: [PATCH 096/191] Initial exploration of debug adapter reconnection issue Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- opm.ospx | Bin 0 -> 412012 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 opm.ospx diff --git a/opm.ospx b/opm.ospx new file mode 100644 index 0000000000000000000000000000000000000000..0e3e6dd33a11b2de21da2dfbaba6838738d7ce4c GIT binary patch literal 412012 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

BY_P4SSB>y=i&?gg~#J71;5s5Q8iVU&PC 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

YpVg^Su4;Xy(_c$tUN}z*2DV9-a0qdp& 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

  • rC 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 Kke==V;sOA${>X6v literal 0 HcmV?d00001 From dc909b33106a4385570ff132cf12781d85b210d3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 08:58:08 +0000 Subject: [PATCH 097/191] Fix debug adapter reconnection in attach mode - Modified DefaultDebugService.Disconnect to not throw StopServiceException when terminate=false - Updated DelayedConnectionChannel to support reconnection by keeping listener alive - Modified DefaultMessageServer to continue on IOException/ObjectDisposedException instead of stopping - Added thread-safe reconnection logic with proper state reset Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- opm.ospx | Bin 412012 -> 0 bytes .../TcpServer/DefaultMessageServer.cs | 11 +- .../DefaultDebugService.cs | 5 +- .../Internal/DelayedConnectionChannel.cs | 128 ++++++++++++++---- 4 files changed, 117 insertions(+), 27 deletions(-) delete mode 100644 opm.ospx diff --git a/opm.ospx b/opm.ospx deleted file mode 100644 index 0e3e6dd33a11b2de21da2dfbaba6838738d7ce4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412012 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

    BY_P4SSB>y=i&?gg~#J71;5s5Q8iVU&PC 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

    YpVg^Su4;Xy(_c$tUN}z*2DV9-a0qdp& zQTPd9VarBK`t42QdzwcE0j}&HeeX(po!)dOq@Ta)egNCrwie$8uQIEMsESqGEk!P* zXp4$>2jPFiOE{4@4vPH3FVen*>aB~E6ea1z=N z%_?OU4c2XGYA(^kI zvTdQ(_J~d0S*P@6aZdD-#Co+fa%mG^M}x0gOw93&@h!*s+>_!;T*Eb-fRF})ahq<6vyK%jewr$;C+?Fd_2i{L8#lR zF1usPR=#*+JJI|sOr+;X=$?6p)e(ZOx=((32X+i<$MohrEn&y`ZM7Nh8M8F#88t5L zzBbmAHg7NhRqKQ3eNdKW4$%-+kR^prQlwLb3lp(4NJ$WkXTUjs+>08RDKx1kc_|6a zEF3j#JPGJ5Q?T~xL72P`8et4l`$U8Yg%oICWVmQq-j6DCmugSX+hV;8A zr%8^DJXgiqu9;>V)-O#5cR!>@ER+vMr0!+UWiW}Ws_M3RDN@KeV-6yt@@R3StJxHhHSTX%_Wlcw2w!Yxpzgl~E#xMhK=SF!7+o zwU`{fvdQqbf>0RzXAzQh^pe~mFrFU|V1YQ=Lw9jd*0@S%HK=FMxFm3F$o5-X8(*`u z$$%I3p;b*6O=C0|QVN8-5MEjQ46LndlBLRYXjLbYZ>NjZu|9g8T;Wqba`yVDWYmk> zj0<_oC2?60l_n`?40uF_?GAo~mD-XtHhwq8*$qsqmc<93ADC(n&Uh^fz$hb+^_Xs- z4*b!uu;I%*@$?GxpGHwvn<{61LZ3|hX%sS_aYO2F8^!P7d**`Y0%zO*9M|XK{;oL? zlPA~x){_FRPx@VwMPya{CSwu=r3M8)%m(2u zuUT4>!?y=x%%Df2oPSlXI10|(0G-I9{V@Bu*im`h9>HT)VL+~NWa)q{=xg6%|1-i# z@WLbBPlUUl2&Mn8AY}U6E}i)YLnhZhq}0kk7*0tIC?JHcY?oj-{6IdmZI8Db44w5& z|Bc~b@^1_+Gg3W_6V*BH#IoB?hz6ygi@MCsx|#Vu8FJ`XqfIPG(5ZbgRKEXYhz9(T zd_vThb!73p9a)W8PMgc9MJqQrn2N-#xxir1RCR({gew&|k_*|x2+0joNnm$aAY21# zB`ZM-Vmyk$y2Sc6IflCzC_?XXC@)+$I6Rs@H^cl!=TQ`INu|;a^qg)N!sY|_OkhjE zK8nnqp33nsSc2?#ZMJ1x@B*mOFH^m``3R2HY>_ogf}pBxrD3KaL~586)-kFGjXE=# zq+&e?=8luuQmZtqf#bO9y*#UC@~^UASLS@If1uQ_L)y&%TERim!OMWX$X4biOcwkVx9uy9&`cyVdsLOEr@^j2?=%|cyA9fRb`qz8K z_7c?5bWKKQiX}!P*-oV4(%J%CarDsbi0%4(Lj*D0x5V-nDN#Pz5O_UWtY$3;`xzrO zY?*t5;-J7CH!g0U)rbVIzWkzYzLlHJ9JchFif5eb9qQ-fL)+$x)w-64tixgV|AYzQ zAtgf&u~32X2{YgmrvCqLF#opuBFMtFnB^}3o|66{|C1)8+<*W=Wt)0s65ES_-&Z0j zWJQ7^{*ibQCL|wZl*nJ(DO^F{=?86|}csd|I#{6Kv>F7D0_ z$w05V#DeV30b&0+i|(EN5j+2#_nnmKCcfgI>K!fqsZU^k9^HVnoz(<=Y7yZRrsm%V z+5UU!)AI>4X|`i7?mwb%{qH%}Z$NWC|N6XUF6#4&-g}3H>-Rkxns5p%`OtIs9b@}Sso@7SYxz)_47NI{wu|M-hZT+?Y}AM)4rSj zntskj{asW4$M(;^1}@upUb}t)givd>eK=wYA8ce-*6n7Y&#F4$v@+VXaQO10~-8fQnk<6yX}frg|p4t2N}voC_F?Zx`sx>I+r(mewbg-gS27+c~lA27r9cx zcfFZEuQ8H@Dp-r?Q_H$6;(=jXfqY9brKpvVrbPo|?%_+;g_J2-VIu@T&^op#d5Gn4 z0JqJSOCUTgiVnC}$G!up=di0TnK3dqcRS7`;68ahEGO|@AzcGZA@V?U3B~TNqbK*4 ziP&aZf0daKHA`zV#>Tfyu$oSIGAOPF)4#*6y2cTfiTUnl`bQjdCsv2B@1bw)N(JIF zzqQX_x@9)$621kWEM*}80F?eF&)=rZ`X;7kmUh1%)B7L$l>a<5{o}0JUuBW1t<{DA z!Y|ywO9mPY5*nPdcNPBJL$o6I8*o{rbF#uzB`M{Vq1kuJWL@qAQ|<2lb4jnzZq20& zuPUy5MvN*kW_$DPjJ02Fo7eHj?L*Fbi264H;C1F1+h=qs)^Z-0uiX0EcS`yv%p1YT z&%M@_9SkNvlazfWA;$MMLhZ}B+h>Tk4VJ=K4{E|+1D99;45qEO0KJMgJYuKhp!IH& zoGY2-va>Qn26qMlF&NHb-Bk)@0w0du~|_eX^%p>`g!5c!hL4YK>=j`w`x zqHIH;D?z)R7Ib-cMnasQtbk(VLsWz?qq04Jz0oBe3HBOPl?d+(@>gK%(PZhS|8nd zZqr2L5)8*79*KcD3dtAHCXjIV6&Ge=9^7_|ToFbZQbsZ-!%(jDF~Djn+zLJvE`#~d zfdKLwryS4<3RKTixP6$=(A*7U?5$4Ya!s?(2lC^k8dV#|rE)=!y9QtKeLHA+cOxaO zu|&H9uafJNvM#UVvC(m9avFs#g^Rd>KC^KuIum@(ROk{ak|74B+OnB)CpgBLJJ~T# zfRZm-WQ01!9#nP<)13ncxOvqDB+-jz1~+=9B5b&_vf@T%Z#lAxZ+a5pA^M+PX>K*k zW&G2XZa-bg;@@_q#LuwzNB{ZvB<=U#{!(|%rhZ=W+X2?b+1mewgEgu4*)0el@Uknt z8=96`5f#;qCxkiJE=OxrP`av#w81cHXk#P&rVXNKj zaK3!$1v4!dqQwu42o6M7-OBm;Hv;d)v$CklDrhd+jC7-j^bnzt)>viVG(iVB# zMOLubufFNPF4dh4YP3kub^?7Oi=zTf1_Amy(?NQ;kET$@~ zVCJbO4mSXHgu^j7Scem4BWMtyH!&7A3-yqGDVILDclkMK@osf+iY zTXQb#7*&M;!l;1vmU-rR21cW3WXkXABv;NO@`Fr}L2(epgdtQBz&P3H5rIaey}y|y zmO}T6pN+w&FjqHk%V4t+SUf(%T3+>M3Kz#+r!etPMo;8ZKhqjHB=`l_j|}%{l6gV{ zR~_NR{ye=$0`izcyT>f@g<_6Qo;S`*Ki>?q1@YlQpISaJ%fo9a!W+N97)hlZzVtts z@b$7R7=c5;_F>a;sjD^er*$#8;gBQ?&!rw{z7%6yA(fxpb&GWk*mztDnQx#@<$MdH zlKvvOREZK-)w;ZsQuA%~(xrWJKyD83fHUY0dOmjbcB=Sak{frJ?d1YQZYuS=f@ zbWwWw=km|2bX7^;e5#75?+El!_D3)*9Dcpb(DxE0|o#f_iy{*|GDY? z&%NzE@DK0$tE^JlvO-ow=(Z!cVxWPbWYP7qzAnBOO;@W#&tLS&vGF&OjG+J(MS=C$ zlXdJco3d+O>+GNW`V8ggJgu1?QvtG(5ue6<=gYh^d0u04`8uf2aTL!i=h2^+=|of` zsn`Dy>>O+1ZC*k-a{cIgy2p8h+20NkchfG;BfiRd>_m3VM8Y|&JxQs9n5moXBmtf^ z-EjQm`!RPg-52$Ew7o$7erZ_p%i(Eu$Li{8#rgru|7g`j54mR#y4xb*ikR~_4a7lS z5KpB59btV^JQqX)3t60LmvKFuwdM;G^4k%Qu7zDNjLsY{&oe*pfq)!<02zL>8-yJO zrO?3YTar_v;7uS7hScQZlYQe5% zv!y)nMj{dEBF%#qfCyc{2s8hAE&|2!{7`@s!QfIVFXRwT{l0J;dDys~JMLBI`!!`e z%={~b?}>StfE2D{#19222&#q%&)}3@56e;{XKgG8Dswgl;f;Z7Z7}6On9hi-Od>}? zY&EG5a=6%qO-FY#at)J$d?}oX2O}epi!R7IKnQ=YCL(?I+g8A6aT* z-frTyj;WY?d(ovEOgqAG_0C?H%?s4yx#ghgiC>~xpk_#zp&;{OHJo0-+JiOwF=99& zNcn)i>v-`t#yI3!0jO9V&pCT`*v+S-Khk-81k`Us@GQiTIdi#vzMza|;T^FByk*!AM$jBS&wA<;c)VVQvFdYMd)`Px zgt*WmsPBiw?E#52=x=IcZ~# zZgG`MB&X|{SOy5eTm@xac&0jCql z+Q!j`AU$$>^u&;FOvd-x310UViQufskQkgC4!c#1lZaGdgw9{d35Wv2a}{>E^Piqg z#;I|37^Ra}6#y0?onHh!5vU4Ba$^|di>{6W8N7=}K|AmvH#@)gMLy-l&miq<7ZF4A z3S5Vl&hG}3Jpc6RIy6#GSmCZlPJM$k7izCJpBmak5ayu8z`zpul~7=?ii$VDWk#oT zX1gd8Y@wFn7DGgxsv>st1ForhVj^SowYN!sNs(2uQArLF8Xu?BGFMqVH3TJlh3|gj zJ3h6r&2QTY#n_*$ydWG&^a@msk@*T3d@&%1L^qW>%w~;g%|4TM1}cnmB4W z7%_v#^)96;8v8VH=AqJB0KMUI&{Qos%hU3JAkzv4tr7tXjI02vF4^!7+RAd!^Vn;> zxMkA7y{#NAe>9>wgvWF(#JN*IzTr0F@(|3Oj8kgfSEm$}xn2Z?3G5A+uqSGX_!USU zFeYoutvS7Qf}@V@`4Dm=M_#pXFOi&_>ZjE8>4ILclD_!jooY$4t^FKTgQtol!pItR zth}p3XuF_xfKEp;OIdDk!a45D=u@ozP#9XLt`?>iYy06AP7jBPx1x2us96o!5pAT^ z@+0M@cu

    Ex%pkp#lE#(UcbIUCMo+A$d*v*V0Rq@~x%t7O;s}T{z8zwLmLMlzM#v z)P<6aU8=X+b5;wRCeJsuJ?=Tvizo*grFxy14{{qWprai2y#sx zh7%rgZAIO?Uv8{qfnj6POWAd4GF(;>HUe<4k0R{K=-vIrTp8ffjuxsM6@49u4`6Rm zcZ$ZEQxEwq(N3iJN8D+Zw_o~&>rmQgQ(6qBY->%atgU&o2u^i-qG4UVlw_tYqW^J_IR&bJb|!`IA0_wIFIlL- zzfX<+e8_D|FEK@+*^W6QI6DrvWIo~;+URcA4+}1CpE|CiA{--hc*z)0yVN}}{~pXY zlYGN_Ou-B6hbo+uo?Zyzs}tGA@Q%{MadqXXP75A%(@P31HU_BM`;bNbbNb7$q5_O- z5%Q4N540niCDdrLWCpZ#NyS2NBx{QsEGalk_4eiH%!6+0|4AW{cq~} zKQ|t0XN%^7|7ha;3k$ByvmX^m~POd-q*sqqoAO?M2rt`;+t#dB&?(cWYNxIQhPdT*@sD zw3jrk6>3QJz*=zxOD(U612K*-RNt5nSR`Ocb#82>GP{&;C>q&lIY6T}ke}zjLOliY0i(=-a)DsE43{}U z8c(63V!tX&73kjsS|?*N5M=P=DYv_zdd0m>Y?6DhHQl42Q1A}Y46GyEF&gY220P)t zkQQ|>;9l3OKDnYcQ<}jpxRx4p3Kg9tmU+}R z$pp#{Bt3Qug)IafBf6U+yVD|LTES^bPRo*;iNc7NS^frX35@5@Sq{4?3h_ncBW^fnbFu1Oe|rim^Z^_*B?$`;0i;6Aq#O`@YM3Lx|vC5dc!Sk zI`Qk$Y?$;B^ceT16t(JTB{~~W4WWB#dTqkA)Af<2E@&+7I!+)`D;pw-c_O1%NvyGc zNbqs4v??AkG@S`}v?G4Wtf{R?=Mgj-2IKpzyX!aEMSf`g3*h?{4OBJ3!xI?(>~_R< zN$E8L-DASu39WU6Mq2_SHZmtOvQKMqZ@iA+%7K6}uZcozXc5bgc+!c#X z41Mi+;h875M$|b__(O=j_rDC;cPS!~x&Q$H_CEbq?SJXB|J~I6pZo1oXk~M5r-nuBEipyKoArN5JFd}E&aj-RCqunP*@@kMuuMoUqaXT zjV^Hr-~|*&ZZ9q-FDEZCiCcw3xV8}vP+hl#D@*dhVOZmdlG4`Jf-V`_?Hk8`K;Ra? z$i#VY)1NR^#i+nPNXU!0d!Q2QBGeAr9#Tt6rAuuWtL)aoR77V6EgX=ka1M&W#Cfq8CXGURzbpUWiR%SyG!r=Fyya>A=_cM#7%0$n={0;4=)2 zS*dW#M3_0R*OMIH;Q8KNK{wLAjcX@)&+$Vt%#Guw{$00L5}+gTBYgaWCCP{%+_CEg zz5pBrzA2xz8>VI2P3kh3<^9;`77|UIZL;XQvk&U>mHVF;2O@SRYK2eSTAx2w|F)t1 z>(k?Zf6+jl=z|PkKndRK*oD*WC9KHB3#q=1M3a)GOcbf7#(WVT^Aj9#HVi z>%++8C~!nY`w5y=LXh8!gNGZeyu!+cCsBSYulRw@CjXZ$PlA0EU$}t)0IBj`lH4RUQA7d}%V45D_`Lvllhb?Vdxl#8ogakHnt@P53m?hlKJuL zlAJML@xo7qYuZFuP?&_s(8B~teTjdXF(oli*6vvfSO?lizm6#*A=D0Pg^AFc^gih@ zf7c)s{H%|jU&bUSb~~I2z+#wqxOi64?6T9s5VQ^fw~-x88L*=cWyA*cper|58%ACm4sAD1XViA~U_ zY?ue-tqr+JQKG6?A65j)JSgh;m1vZD)UB!e20Y2>VRDliAItHX)3nt<4ZB9Fco{cs zr}7A@J!@odHB-rs9@Z^m)t)tRkg61RzkFD?MARC7-K6Sf1j}(0=R|keH9g;@{?Y~W zR$20ZelKcKiQXxKhK1Q-5!}%eD@NZxtg9o=j^8!bLSrxZ$mxJx6${Hefl0pwLhXit z?b!fooU}(NW~hz3S$dVudb!lCzVqnV0vX&@^1^+&?w^(a3+YwT?TFpgjSk)V$I)=` zNh@__2=95Y7ohNh$oFP_g^fp>4lU&kHqrt%U~Q}q=?8g)&yoV6(;8% z-D{bC$NRIfa}{I^Pkb8t^Jix0{r{)2|FeDDeBLuR*D}v0nok-dhpCU zlk9gF>pkeySV|UJC`y$lkv|vh@o?9hX{UZ?in$OOauYv=o9|c81c+&TfzN zs|RKNC3YFB-q;lB8u%k;+n*qLh;Q50I-d;P&(2T?+>xNVUXnH zO!p(?0~%3y);ZW73C&K0zF?ykEQAwojHDc7Da8t(G&q;up2uQf`@rvILJ(%5+Y3x% zZR| zz^Nwf68rrQkr+}TzUJ`98|W6~jT9=PCU*7<4VdYD$UTfkh3QpvkVf(Be>IP zlYz+Xot~iWTUm7-v0msieIx0*#q~Mz-36Jyx%o%VWlt*N|Im7`N#`5;O4%JEZ4QLU z@whUJafB&-Ce~fab%eWbURpuT!%3ZuYqJ@Mk_8ZdI-|>`2m_~n?X&9(`=!M~%i34U zAyDmh(|r|U0wf$cZ!raRJsrB7PJ$Nq<-b&I2vP-7223bsx}U~h2k_rKY1P=?*4EI@ z#F_rL=cF3j+nHIK|1&2FaEqT=9GD0EtMu;i?vWKVa&j~BDz}reO2iNdrcqrIT6~PoA5gSDPQH@VpwjgyyEF0lan7 zTa8&DKv7i?w!Kflg#h^TZ4INSk`TcI0Nhgiv)hu96c&|J7NxT_`FC$?Nz2xGvl;O{ zRzGlkLFIPVoLqK&*pjgq zU-#u+i}2+44+49;c{*Ot_vN&bYZ`rQopiZr-x*$r2RnK!e#j_K$eYbDzmTgwjoW=E zpULt6DJOMvSy2AE|5Q7K#r_ELGv-EQvxX0hgbBNsjrhd*I$yCPTK z9#5aq&VcLYR&P^zo;6*#RAn2k#NC62KYL7BH+{W_W>B90of+a| zA?_p5uBcq9x~be0ys3S!^G$df`P5U1Q*&0bJwB?cbH2_0m+`qxhF@D^&P4Gbc(AMN zc8%-S6p|;Fw?J;EWy>;+dX^1aQ!`TjF6)AA(OHM8@f81?<=3YEnhUk^uN*d(sCs4J zIw?-@;FhIT$C$UTd-r^0t?DMV$}^wBO9n(5oBPxSNeZ%di4EJQ*-&XrT;CMxQZdKm z||PQg0H6Wv=&zEIeoZP4x%kAr{(RDK+{1G;fR#F!p~>QV%%$mZqk1E7=fzZg9%XJY@+MJ z*mxyu7F1kY@i`j^(a0A-K2RGx;>Z>VeN)Cn>4tM!e_|FvyPHM=WmDuG{0L(u5^6R=JDKFz|u?VT#04a!&Wrc7SnnZO;nmtR2 zm=WafU{!X$<*tpvaRW_s(TQ8lF;v?ukG}$Yw|5yQMma+eSo+r&6&+efGAK%G)k4wE z)Y7DA%P|Hd<;Ez0k#e0-0rC^yK$GiiB&4?S+67pgluo$HL2P0K`-#IVt`^&eEImNS z&=rQT4w^VDwPO}85s*|HI3KZctgP(}OSEYvJzENRJyRav5qu?80-e#v6RfS^ih>@= zL4e^$Xuxm>=m>f2)yVX3j9c@C{lHWzyIIdmWlFKk!YNj2jg1dVQiY1^dRfJ}pR=nf z90ZgZYeCuc)3IK!yq(FerZR(T++ayNlOfXj*gNa)@EW|T3@A&qP1jxv`Jua()zr0f z+x%w0v;Y8;u&tYxN9MA?CKDiXABacIYaIIBq#gx8 z_BCS5h!4#VsuY~rO$d@g{{UQ@Q~ebsC+QooowJ#yGaOj$=(|n(012WbXf^K_ z*<=}GTQG8YV28LIxba~MFM#ymGK#nOfo1NIF;oyui(L>B8RxLj-ml02{3RdT!01b8 zs>JpNn)-MV9Atzn(32lu)7~OSp)fzb1N>ZV3$NHFe+}plUi7E8wo;)?OBGSNCf;DA z-Zufv2i@vT)!KSM0hUlytz#5XIxF@Ye|MdY=i>v-sg<^(O|L3%zgU>JQt<;$blEt} zv>0)K#YMtJ;zsO@(6EHe@U}!rMX~Ma)$WDtT~ULo#myEF(m%rChXm!h$h&8eN9sfI zF4#Vt>aN$~FKCb48|%S_+Er*C(t?$6oLOI-uRupzKRm00#SOVa>>mACQ|4MKEumWa%BT3kF|w_ZGm9uHhnTY0urRr~ae!jMziQzh#6)2><;`!E zvMT5i_bH>nPPZPp1@CPxj{Tur_WC_uyUPs$8(t+6k zq|2M0^wv~P;C)16Jimt`$d{I>Eh^oe;jL;WMw29(?>nRi3MHxe$&v1y8l*|^-hwtj z@mVl(j>_YT9ZAB1vKIRh8D6BM<37g#>|&GWc!Q}JkqdU6B(g5QUmUjjIAt#31`$W` zFk8x`aSKNS^Ff*6Y(+hS24I~jq9LR!mQ%4XB3_Z)I|+x2?6vuBb8?&RYxaBlz(v{D z6NnBp!gFS!5K_ND)ahnsoKwZG<`Za7B7=v$hjof=9`Ad--$u8}mRxZ)lMG31W@1=k zffzK~tl_InZg7<25m`}j z^&A#~SbDQ+uXuB$a^^eC8CZnk*iL4ADQYbB(Y)A+8{L@uB4`tt74X>X!a%LgPNeS= zP#xumtGPBfz!=GC;_gJ3LH#(Ta79q+2>_ITHBoSZN!m}{$)C?xdM^>47IPE5yfV18 z2AP(m2k#Uq!V#28$i$Xs`_XrgKWNGHWsWz#cvPe3)g3`FM)5}PfaNb zC?QvU_!jv*`i)%uu0m#WvZklo!<*J#j*eb_ zy5`ti{dQleyOV=IOMixb`sOs5hx0@2-P6wxY5?1x)LmSdMXY(xM#03$;>)nbuHd>u zRjugGkeMNxz5CDWA1@C-8e}r{Gx@V}dfGE{{9PZX)?Qr6dN@0LURX)EU!2~({C?36 z94x*4d^JBO;znvN*)wz9q7%TF*d%T?*T1u<2i2SK}*d3V;wX#nzFkp(;__}Nw z-h(!5T}3!O7Ma`&<2zQ0)nLS=aA&i~$pEP~jWvR~!rF%E#g=0;V2ZAoJ!ZS&_YD>C zp#w8p)SviQkc;9}+?Rm?LT^pG=Zl)MI2j(1Xt|An{`V*3?kbDt5 zC`qK{t$hvQb;g5>5hINDn+>Pcz{-cnZUQJ+ELJtBNB%Lsb2|1{oQY8zBd4f%7<{Cs zusH%;qf|2}I3@f7n_whw)OHZZC+j|PcoqCqk10%IrTIQB6)Z37k%|}wE|F@H4+)Yj z`IUO#6Iu#aWkvFvmcmnurocx#BpuR2YYuz^A9puDspRvY=eHTuiwz5f{h|86S)HE2 zqIW&r1muq5Q8q2G?tP~-i6`7hp}|NzC&21vdstrPR*e<_o>6p2V+-s|YaA0aG1XAy z31x^yeBksa?-IZk{60^=;0JfhEa8UCun~wj_CkxvEuqbCPa4boS><3(qFeXqW7`%E z)h6?N21Z7E2j&8K$wTLlk#{$36LhakFztS}Qa+eZAHwRD=>!v4z<_4=5ETmCr8UxqK&E zC6VE1dWWhD55$G!KMb9H)%<+d^%e^n7Qp?Kwe$MW_aQnjE|ZWjc35I_8;-^UrO(Ut z9`qF6n3cb}lE5GmbH1{ehkiiAW?*K3)F?SgJQZ}zLWK(hOCkDWI;!X`4S%K!?1s08 z%Nr`~7xo8eM+|@Cp6`6y^fo=eg-0gcwaOzR@|t+U@I2iIG1U)R_o4@p@Nl~$)Bw1~ zif_COU#McDr)8MFyDdu2@)3i(y_Qc6_5l95HV?+ZsNVXlscC@#KCA2hsWz9BSNW{Y z|J}O$d%Ua_Fe6Op6JID?{Ay7}ye?%PiV(W(sGhO6QSbzYc;3$wgB`T*vSN?R!)?=Lc<*l5>Mxpg*PW3IkxMg z4w0$H61`T|Pm?adC`>T;SS`7bYGJWrNzepOdl_rl1K^?vdNW?CqvsdD=bxN5=sNL~ zylJ6S8?hwEhJ`~C?CKUtVdv-t9z&@P67TATF3HkK3gEVuOe!=Zn$47O(LT&8xcuEq z<Uj%~t1if)8kk${XO+ z*4T?vqRtF@2XCk#t|Q8f%8&6REyAWv&ogUZi4LQxmMI@I&M+barz~kXS!R-^?GhAr z0Gf*vW2S7ubzU&?YqO%ZblVGn0C4f~ulB$9zW7%{ zJ<%WaR~_qa`oo~T>CanhRj>M^p}pxIttl|cj*pMXj*3vIEu9>l&U8~<41WxP<+kG* zNb(x$Uo#iy!%33 z+a6mK#m}zr?Mq*BJS}MlEGVH?Q6Q1U5HbZk4@s%s##fK1izc^aI?stvAw?imR3r!x zMQKt!cEai{ve=LQN&bCqb05u`EEX$Jd5Pt5=SQ8MyQ#^w38Op=l?uJ8LNjwS^LzZC zy*6pMzJ=Uo8|M+p>}q_FZ|ULVN+=V0B-hm9in_YaTdw?(CMVCTPX)#LZIoTbFk1qs z!aaCX>Tg0Pq1gH+;On3@jdaP*h{WQoE6&6dQK>Yn`DeJOEdBX9hZ6RQxm41A1?dPV zT~=FnE7nmD4t#{LRtc4&YV_i)JGTWJF+mWfqFz$5N;efhVyRy1m6T%f70kYi^<7l7 z>0zK2qPGi6kV6Ny2e*7J2PTg^*s*y|PSl9)EX}LrC6o{<(dP&?4^(yXMX7UPr=Teg zkQAX9E3O22*j$4%%mGU=CB|<&dv$a+ax+VhyA zWSy*w$@XjhoB9rIk9rqURfT&Bz={zHo5`gOzc2n*fTQr9Z}iZ=3NBB8eWQ=d)|P31 z35@{x@Ug*zhHo)v#QTGLqN9AVP##hEQoe>Nnzy0xI2pSZv{lAeceQai?NiZVwz7$S zUI08-=4bZnQv_C9ZIi5H1rT6nwE3|Z2CpjA50ReIMJeq3V52bl3~ zz@U<^;cmRBw=>u|XqT6<;}^@?666q$@WcAK3||g?DU^$!Y-`L={%p@z?!%~3%mx7Rc>(Ay!;~Ix;aza0%7ioB7+$Igsh`(mIO0-ANKtNb{aMfIj0YV z=-m0&qE*&FBx9FL@Q5Clj&a5~rjbjxUpfw@UKf4TcL5M<>lEyoJxeG+x~@*@GK^C= z-aO~nh-a68ri&%fwB*~5nuc@I2N~l{>T6oZ{`W778E!=9@|g`)Hb(>26*;d>N)GZ> zboQkZYBk-g2+>ITwsaioYCjs)8r=@noo+q2zx_&^)EO?T2%WUH57uT%@1do3CA#>i z?Aqmg0r{DG*3efJo$>WoAn-0#bvT_uF85EA4G*r+ik^Y%;a_#rVIew* zL3s9}yua2A@d`e1kecEt0CvsM%HO;FR9+du_ZexN@9**-D2JwNGv5MmUPnU% z$YzPBtl!x0GkT+PBA>&*w96Q$oFRO|EP#_0yWsN_MXzas59|P5zN+ z7`a;7nEc&?l>c2C7pgoV1uTfr34RMd6Wll&o{Pd^9`QF4I)OucH>(J6VyS%GyNO@8FQ0aVGN3>Ntcd7-;~T6!X_85E&e# z3)CvNnEd&wqU?79T&-7lLP;-e7MAXuvm2?*r4J*)upaktBNv^C+1&^Zl56={6AlNw z=MW0Tmj;(|?7J?;zuEaBdmv5Fo8ANan`wo&YciUcU~iOX?5aI&sRO;a3?6(Nn|u_xh3M zmpGG?+T+28ioU$vMCsaWS7lA28we%fj8;vU^(BY~+T5NExRpqv%3CQabBIoZ`q#`0 znqe2Wg^hHfrO7T+Q#3>Vh|cV;arfXMjKg=6pDeY(5z=L_NtWE{4|QfBzQ)IMY!0`f zgzSyDVc?zr@@-=TW@LP?V`V=oOHO^yfS5dm-9>}W_rJ^~n?G~2;Hc*|vCmB6mHacS z{d*So`$4vz-$wnjUBB-@YyEvIK=*9t?+;dM{QGCJOKQjneoNy1Apy*z=6}yQv}S(G zIl5nKFlfI7lxs9W7pVkk+e_eZD8ZE(M;8r?MFdkR7Os*Ns^+5*!l?=nC=}v#ICedl z+17l7rhSB8b*(*kHCTJE@LR~>P&T`}9eZE-Uad^7UPX*(C(pmDm3io&Uz#)B>ad#X zbDf!6N~7ngQ?!8!UCrUL=a(+0RWoQ}5yiok#aEkX05ppomBfq~I2)+x|~ z0Cyrf0klPoZiQ)nBf)vH^`s03y%8;XHZ^Q{ z(~XG%W^T0&Bdml^&4pG+NI0OL`Hb?e|Z8Qw)MP&(|9Ek4Cd4v51ykw%7D;R*z zwk*!HWC;;^a!U|W?!8!t?$uvkZQHhX+qQY$nK=`8-h1ZG znYkY-GS-I`v5=MZ%gU?=>_Gx9YSxWMu~P1Z;037O`cD``&&K9wPg|#Yjam=Ac?Y;N#oe`1gz+|s@f?4cT_sdDZ5Nsu))PlW)em)_^;V_tin0%_r0Vmnga^8B6>CN`NLF5>l|Xx@woRlB}8qK7%ikh|}} zD{X{E{7;7yaUTY=Gf zfC^m-xc$ub(P#h9I!jI+ev&Cp+WZpE+6`4^-e z+B_4fKx;`CI)8G^`%#-w=F&lOiWsH~retT5=LKC>4Hzq6kTu=^B{=n(+bLsy%D0T6E4Lf*XB-<*3$MTu979P4u9jp`9s6G z!^+hbxAe@xy)LbuQ0#kmPMuC1^fDWvK9ZG)L)9LQ%-fd?%Fk^@CpO{PI z8_XwSace10hie$m_HkHo4<&EE<9k%Byp(ZoV89W3JU~%~+XSVFq^89rDwifMVdLX2 znsW8O9f$IPMf0H2k1q@Id!8fe|JhQR9o>uPmsrw1om1R@RZgC3&sOUf=+lZhy&sZ( zt;``Ka|0g9Z@)ZQR&sDV%rhlJO4)U=+E`bi5JzjrAky@e3LnO?FBZo) z+)6mPFYzJukDS(E^N<)1svM3;E9d8Sxj!^l8qna1j|EtKNSSUb{YgIxukEfec3!E+ zRvui4nlQJPw~7=!iv7tR`|J?eNk`7{vho{0@`Y_nV_9u?f2H0v2*ua>csW|DwxtKb zZv@wBEgWtwtPi8T@z{l68FC$c<#&s*?yNjf*7}~Pr55)CudhjSUYS&ZZdIi5(f<8; zzbEcKZ0_)b@3G5t?d{mRWCFwecVvY76~v#o!fD|3HTTs-kxTBKauSwG6d8U9JH!7! z>;|F!BhY)Zs6RM@00A*V0s)EtHv|2D2#mU<)Fe**QmlTRklF+5UXuw zX!besO4i3etMdR}1Dxjspl>kQb{?gvcaL30>gmBu%rG>JI}XLn1b1(f{lq##)eXd? za6)*Bc?C<0{C)=BIAjKzs{0CViw$MALsC07BXKc-X!8$ZVmQzMzpJ1_2xMZ=TRSV_ zOdUzvJBKrz>p&jCt@Aq}!+PH&>>(*>Cu$7o3Yaye+qE9m(a5(p@>!43{16&N|5WP; zXE32cuD{8mjP!pjwmOM=QmRI32U4GB2pY8r$;(rm4ww)9ZOy+2TY4M7vDhyW+XZ6H zokQd^1-T?`M~VGOgi-!bo6mDiW-zo01^O(CcY!oB?xdrdPMMZ#8YNevRDRu=dj1te zB9Rqd&$v)Mqpumn0gT7%8h7P&Jx7;D{KR|J|5jng%99NtQJB3Gd9@j`R1EaAkMd26 zsG@1}AUK4OCxyvIGb1gX@oDottkxExA%;<5#P)RhWgK-o>ny8AcD*iyCVFgQX>$t<*-nsYP%`0|&hmMff>YYM zR?lkf1)tl_7<59(`+Mp=T50^-^Rz7)iUDH;E6(7fo$Qbdzo!=-f9r)6J}^WI?`dy^ zg4C6WaAoARK3@+Ct%ncdz9-SdMx0-9FcE2^z4P;j?y(haf?s5S4v!0!x971-rR8Um zg9NtiK;RSXpJk8X2$(i4)IVkd?f(b9=l`4y|M`Lb|5^wA-y0!gBK}SK{JZ`4`LV3E zWrre;+9OxoH8}P=shW&!uQF;_cG#5E?i~d2+etAfX)a5N(hVw^OG-)v#)^;-F>;%L zZA4Bcd##q?fy6h|?_}!o`tsVQ>l-E@BxNgyw|6Jo`8fNlc8fM8#D_L(0bskHB)*^= zZz63A{e*4jn~bZ8zN6pHRD`#GeUMbS>!_S-v`&@Ee&?b$Mwgm17UxySwp6Nsa92gi zzo&-Fu6|ViIFyr;;yvkHvTzle!u?W(aU8AGoeNZzml zbqZiiS6L1l`yE|k#K_Ld$x7*N3W&^udQ;&8%uW=lfPBUAsH$%Ah54wq0%cAvk(_-X zt5kYa5Sr*Nn}BAro$>DP4A_g~X}`-Y>T9Lq=m z2i^Q(t>R!C3B@Zu$@GemKBagOnz`5iY3};uuEZ=SK@E2PCDc;}Zo=DKS*Z*_+2Go5 z7?UWJDa}auOR&HK(sX*IP68?O7#VXMC;-k@-l>M(Uq_7Kpt#C)#++TEWCoHwhJxoIbdc}u2rKjBjJY)hQXweIQG|M<&YaRmH3124etDAUoyOIiYt-u zc?{U5955ew%QBAV4{!&7cmzk?rs@;j+gRKqPIXbb9}<3>xu6JI$Of?-viZgDuBdJp zcyJ}d2$7&jZw!vMZ4a@ALjOYQ#G#_$&LFQA)HGXt!K~q}d-B-H#rm>@9JQ?r*57AM zrdQ?tUK19_eWaoyy1lxd(N|_g_Np-Btw7pYo0#smVRccBIgAM2aaAzIo=8rpUBA(-Ow zI(LIunZ039c?w^JS7Srj-y!2F44T%iz9%$4OXqIrU$tX&ZYefyVN0rpB5gis9g9Iq z44#Q0l*x^|`Sh)Qoswx7>Et;eS@8q3!YYdTG1?U2IF+$ebOl#86GTC$B9k~*a9mR& z(O8a*YgH}W)&<;)n~Y&m3r-?pR16z+J&lA1^PXgW*HQbIp@JE{diPA6>DIwuqlKnp zar#7c!|evUfNRSR;CoG4Ry+mP!r?|iOv)q?tXEamO)jHn90T^Gf$g9}Y4~& z{HU*eULx*rxO^sw6#93S68NMTzPKxMf1fi&CFh16^#>xWT;riN_*E5F^{TEox@w?O z*DoiRu|gvBA%|`6VLe!PbV`P*TIa=e8h)S6o3Lu=em2JL$R+1kltdqneCOas^?Ca? zeBsVwev!XOuW+r%<-QGJrj)R^E??A9gT5FXJK?}gMfJ!n#pQ-Gx=7vOGTI`yGY*fU zkH?I$i9Mi)W7>v;kQ2_s;h=bd@1^UaG{Ua95aaRJB+j`t_}22*)WLz&GOz)`fmm=V z8=9bmPQEroOCPriRJ@4H{5v{YdKz8ScG@ISNZ{HKu88@db*ifLd#bMI; z9fZ$N{=?~t5^nhgDpD6yXAraqxCniD(2MiZkVec0JU{sZ-HYi~iLNAr&R+}^KUGvw z%8ILPwpI%G742d-ev`(T0W?pAmG9SF%i@0hgFM` z`h)rX>^XXNBYb)Mo6q+RXpb?M$jhT7_v(tB05mVr;upHC;Si^h4(Lkg%J=5@Vf z4s2Mnw_JsQAMSgBubI^HxL*-ZyMSK=af$5OpN4mCbP_1G)qN6o=}dx6i0zY(#>5&Y zryJRUz4IS&={Jt3mz0!7di4+MBsUnYd0B` zSX<3~dG0Xz<7UE3i7`|5kg*ywj1ELpIe)Tn&ESd;-<(@)$^DQR_%SAgdAN3AH;Zpd zje_@I&80thj5zoBG)Rgzge9Hx?ytkTsh=INd(`AV!y=sRGB9j9z34vbrnuk29hw?4 z=XW{D>87GE9ruu%Rea_xau}_UAf8?o)>s5*UP*Lh!gnK-LM_vnj$YST+1&CR2CK~V zZFWg4{N*4O%Y$YamPryeQoc^)(`s-~Da_xtIJ-iV>OFS@+$6a<){~mv*Md5R*dOlm zNsa<3(+ZuPyZdx?bgsV)4asJQ2+&+3ci84UneJM?M;Lt4DYU&f)1huxqsA%HiR>zA z{LbG1y+sz#TUo3d;ADrj)HIE5_lkkPRCbjeEYeq8g>qjwlD~DgIe$i;x3Y+sh9yM zJ6!r#6-TwofFIC*E)GeSB>L$=00E7Y00Alg|J64CmGu9=tC~l^zp4F08@zumCTUH| z;fSN^Vn_N@xUvO<@g~?15jRM5O%Wxbuh%hpASc)u1H;e6h35r%BqvrA;6OrX6J?D7 z?qYa(%w9t)>Bs30H?_YiuQPKC1@#Ef^3Sd-z3p?n&zGvtzi(cfbkLmSTTF%VCgVOy zu+Jke%PSRT9WH_|$4g(IM`9VDpxpCPm$C3#P0^>-=DT9c8ijHT*CQ`0POPN65zmow zn~wUAlF?J^ehd`(yY!9a?>?9X(5(tm}Cgoj;y$=g^(BtLsaQ zn?pHvG2~X3Q*V8GFF&?#=WY`=Q*7D%hz@W5kxg<^PMEIUjMr$5UJ(zq+93#dOJco3 z>U#0d>~wb5HLzInZ4Aff@~C1%LFX*PXaZ^(w`(>C@ByeWz%S$-eGxX$>nd3d;A0!8 zKybyuKfIpFKu#)kUx=1?g!z}1vQHQgU@xPr1(AZg`-rlCjqAZh-rxyckV0mVgUI^W zmXvisXf)$_Cwm9&NZXBtz^E}p5{{4pgy1OPtW>KJ5OfzAqAB+*f(qKntQi*IK~5EJ z*ij(~xJc%(80sKkGh0^paGno)+bqr*Q+VF+4$gra&`ylP&%_j(p?HRF<&2MFW%P>M z@zK<%qS;TV+^^fP<8E;OP{pj?g|xYZG%eFnIc=)Wa=LX`G1~Kk$WIBnuxIbGD-t*m zV_(NvMZ}j86IJVhotxB+-yMrt#7S0nX723SvC7$?-06Ga9!^dc!Z$bb#VBN-NP z6H=VihZ|7CAqig;%6BLsWiWz;Cd{u~IL~+eP4q?y3>Aq3hv3odVieNeQBD=0BZZ8YL;M)4LkS2Q-(<00m&Mdr*ju%73D1qV0Hr) zB$4ys_rK{EroE;-GwqIlKoY@>Xv*mzL@jEW@4U+lDKb?f96Bn8Mba~Mvm>Ox!c+db zd}uSc0uTr-4eGQnADfPQ=_6W@K?0XZzuT_Kq3^`z@1E%=9C=MH;X-U+mt>2yS;e#; z|JKIHmR9)VrgwLM^BKW*uvd<&zU<%{*+TKo)GQw9-U_#82t-~UwNERx4Fc$WinJkN zAvOJKU=Y12-RR%%#kZd{hFT!*9Rtg3anZ799l*Zc8B|k#eQ4O|Mt3-!&8wQvWtuxKG4C#@sV+_EhaeHMYfP zm>t_3lj>6^w(Q}_kJYTO-~Y6E-)g)bdB>f8EoF(ThL8_jzCDzR`3vn=b5N&~sZFb& z*abCy<-!BnTis3(8}q9cp^+y+tE^qRMyK&Yhs$OyUi?W?`rK!U2SJ4Nb?fPD*LUi1 zT0bq7+P(LksS7C&TjqypFJ6A9?1Hr8nHquGS9)Zita*Jg(gt6(TjT^OFa8zU=bbG( z$=;xTw5kBG&6Z~o)L>ceG$_~Qa{kv&3AKFj6Rh5A9&baaQVGwS1p~N6!*a)0bmg-}Y z4I%2YUpKl&)R%!@7gW~8R|P9Y=_irtDS{e>r{NB+hS2duptqs1esbBg=6Rp;syS>Q z@Qq1{;bZfaVKTE9t9lIjtCe(POy_0pTuj~s&u9z zUhkq&5%~AQ6|&!g^cDgsyK_0utL!0`ZoWvBGH-h!T+#NMSjcDnX%$)nF3KYV*M8AJS_bfpDdCW(SS^R? z!no0B%FaKQ0EtE)M--Opr@tkA3(a!6XLQa8El6AuuyJ-xwwv!-QBri#|BKHNd zA&S0>XN21XjXD^&CrpLjM|q_WyU|^905B}c*=ND)wfOtNqmoIK={W{EQ9zq^a#_{b$RYI4+9+>@5U)P8!prmha z>IrksR#4Fm%?Qq{Q~uE#=8EIFimh`WH)8!>whk&0qjM7&$1z9lU#L7j)s z;zr`zIHcT*pu@?|a|sVhu$AjDi+Wvp4uZkwK$G5;NpSqFia^_z66(a91L?INoT0Rh zGCl`Ed)906aqZlOT#@Khf>k3h6dNFo75fQ&|Hg9ZZ;HZD#={4Vl%AYd2kidBm>v}* z%qzs-?F!I@8!fj?6n>5bXHz6kgcn^G`~;{8Njcha24(o_DAb9H*3A8;2;ft;!VV{O zh(Zi+nS^JBA$(eHre?44^I?8JJ;yJi{x#J`vJuS;fgn@XX)04LqHPZ5=2E8M=0C zjux0Lj#bJUDDlTtr*4!Ki+si=f@aXQtLpV|E&NR5&2k81UQMi%CJokz^rmZANCL3o zdQ`+)G7#W19uxSSox=l<1;jQ#U7}=2zR1^lRzeG=gd?r+7K7E+q7Uf!!GF!;E|0Kh zs7%uvBA`6(D@_8%LWL?Z9N2={Xg|&yV~7h8a5iBBH&UNDHV1+g3_BF-^bEXazWHl-%zeki!^=dnv!K|;aJ>?$A~5+ zUKOUS*WVsPcW!oShjC>sb-l zJO-Zr&^*_#3xkOqds?w>VXq3#IWEA9$lye9CtnBLT!6isO$Na6UlV*Y6U?DXDU+qA zqU1t_J8mTmwAX^m;~gZ!;kSCi&i6zLD?9L>treIh|2jQklnOo5wJUZ?t3Iwlqz8zT zz79$h8X(%vO-l*6V$`>#s+6!SwYXeI-od9wURQ;Pxjd4MPMf^ z_!pqQhrQQVSx*YiN#UuHu@l=OnuM2&sP3soDAOKIiR%lO{Coq;&pIqV$`RX7k}@_a zuGXvC?;GR5lMCjpfre9nIY5TaKyz_BJ<`BUg7&-Q3tc*){7HG6Zlb@YgU%6meK+s~vTlYp=iSGL zYjKk%?tvxs(TmTlM ziqmo=1g3P593hU@e7BbMc4$wt*@U5mc~fajIA*Ra-2%?>wzrXfsGo_^!a;N3II{p& zA2WP}#EP`aRB1bOhb1~w$q`bXs$=Jhh#2Tx;<$GG#vc<$P#?T@+~!x zQw1ADro1gGoW4G#b+QsuPDf?~Zh1WbVrQ>M-AjFlOn5K6l`;ae(g9~&8kImvtr`rA zW#LPQ*kW&dB<*}^lFy*0Fj2I0@>!9~{nAPm0))qkWyxGL(M$KZx))2pk&?|l{P{{56S;p|eQ31W zAJsG_x0O>8l&Jh>frItPEVx#bxjkjUMcd5#r!DF6Eh_o*V zLb>SmGLzPKk5nbpv9&bi-JJ|ZcejO)fog_J-CD2w@DCT3Rw5%@(TIs(wppi-5NjrT&P_r-By4 z9m{bR$Fh*fvLZSQE{e_9YRH1bpvbtphM%p6yP65jkr4Uj6d3BX+ih}#dT)dN1|A4OuU4N}gg{4iq z49v13v7gFyJg0L;&Uk7ba&h>U5-XpwqoyA7_RqL0=AiBpmQ*`u;_gaImv3uPmuXhj z48+IQ25V;&t4F9!$-CyCk4vL*YsPehnJYxTfZ&23rZK7^DJ79h~Dy1rhRhH5H-+VTF^^^HQ%<;Y3Jr`J$3a^`H=(V+7(yLW#Ixc)24B@x@%Gt!Q+O0C}m*`oyzih6KCz_?_n-aDmZ^S`KNxqH+>!l z^>utcXy4ujm#wK?XUe2%MuE7A+}NbP;UqhunB9vlLK&?$q69D=eCsz#6>#Y#JR^vI zZTV4Q=U}Qjb2{{e*Lgu|2rp@gf~BmN#c)G5=tmc2S-X$qAjZge_>2Nva_e$|YJB6| z9S`FeuR_EwJ%w;xmMoSCO9xu^Vua_=81~?|3;pPand^?5Ue&Mj)qzCnCInp!j9iLp z%+a!qzfv>ASgszC^y*=iB8#a!f}Qm_2!-)ru$5gmh92%+M$AkwC4~^cwYC3Vbcti7 z1Y|V9d5JzTLD!fX>dhCSW?&c!bfFC~HgMFIx!q}`&2u^s+6*`C3OHxowq82540#{E zN8VSu)E#LxOJ~OArV>nTC}AJxmx9dc$FmEzAR4vapocudza2xf&ufyw0UY-B-aKzNb z)35pd?tEi8>km7h_h=Rh&5+|v{BRj;325VH=*vbbIpI5tC&%$$O#?1EP)8=JEHS*D zmRkeamZ_P)6x1d!12GOWpJsmWtcSiK@?9LftueV`cvB}%6gDOqPND?^@Xx$P-S%Ef zUQz3G)v1d+(S@;wCip+HZeJk|R~C8HtJ~&{>H_@%f5Nmz>TB8?SNTks)z>Z-ooiQx zOOwQdNSC5p6p6d6sc$;m^GCgTawq=Icz%iDfreCJ7ukG+!D`)ljSb<##wq1i50e}} z+wXjr{2t2WpLk4u;-Knym>v9#nHN8!)ofbQmhAyIIKAG&sDLB;u>-C!QM$k@Q@EHC zZ2SUqZDpl-$YMp{9I#c|Hm2r|?Hs0-xIyECRGYJ-kjJ>72fYIBTAkx5X$UtK9$U!u zgM)Ei40FMp4l|XQYiP%e#(%+tX5DzHk!bFsQDD(R3tnJa=$54pnb%3GxIu8&tnCHq zlI8f^RyYkE3zwQIe4>bMnFdywXA$d5tyH^NTzDk#yD0+H1PK>CwGMeN)BHxSN>K%N zc^`oN&gfy_CFdJB@rqW}hKQwj@_AsdwIu|H7m{K=`7%VH`0=uGuaujOB(qpTa<^E7 zvw9n^l#3Cb#uTAlEO(13)e=-qU`qYdkqY$#W3{@xLPI6zoyj$lL`5n_*ZmJUvU3r# zUO=yqX+ZNb;3_owZg6kitlNAT^GsD*iYkCaiJeLfWZd_TNkpK}c{w*gKB4X9`4$zDjxK+QfqdQ{BK*^@ z4$C&jr7bo(t+v!GD>oM~k4+TT-&vHdS!Z8EC#SE$R;vI>ufY8x=}4%tD?Z5_y=YGp zENBtUP8DfK?ZWV0>&W}qzLY=m{IEZI#(v=HN~eY7L6bn>HKrJix;>&T3%( zR7IYpFcyYi)Zj?s_7V1V?Z+MI1mLiw^@I;k$8{zjeJ82Jp9UiZiX1b~{q`BSg(men zMUzJsuhdr3O~&__6PLxX{oRZ^S)o^i12$@5nKNW9g2kk-}%~|kGJ@4`<6*>q-_!XJMNWX^s?@T;z@H5h3~>I&qPPOqvxZ|w+9&0o$KNN zYCm^5yaE-^CIZVu;?sTKAEJ=^Bc+}c4sq7M3i^ugp)T5tG*xf>|6Gt+`JErJ2n__J zN(%(U{Xg4@`Zvbj|1Q1!H+H4gt^V!w&Vn%hKeby8YiZk~h@<+&`43xAN6}6RfkY|D z1gVJRNmYpa={W>XQW24oKrMsoB4t$PB()L|75Odn3)#2g5F?92uImk^vA5X2;3PX^ zD<>nTo5a;Zv7ejU`FN_`=Y;8Fwtqgf=S#iKA@HuXtKYr-r1l=-K^^19DIR}7BfiyR zws!Ca{sF(gkB>i~cduUIHOT&*`V-0w@73A|;oJ5;toOXOez;=&Ew9wPv@#TA=h)Ui zqxFsOpw{3B>E@N1;Y%Lle1Lwfu26R4*;*pFH;&`>;vMxUrJalDgU?`vq<4y&;qp$N zVJ>**Dr)9vr*7@T@%{U7Q%P0-1G4J99Km*v|JENyf~Xx&(mKz+Z$~zLJIZ+*1eyj= z*U@LhfrLq_Y6B3k{#H&89{@u`_;MBF@dtalCDz)$w{}oM)EBID0EKw*K+$9SJQ2Xe zeDKKXH$Vu>g&4){Uyr!~ax4awVHlY?*$C?mFT>;E2i`WgCZj_#+KV-UHVGdP2i&H8 zEe`~YEK)fiSE9fyK15$nJ?gp}*||N>e2rIvA`8_&3P{N>!Oacb>fD5+^f64xOdLvR zKx0%Is3=$b45SDNTCzE~t03d8)kYtPyP+{dajd=FHpjkmQCBWdN5;0ywOP{HHBZfv zD2REp=z-R|jJNJOaGXI^$FQ%vJ4-9WwBE>0PeJu0G^aH=z20w~i5~HSHc!)as!rfNc^_+YiNE`c@MrfTEi5R| zBKl4rVk`RK;Zi*%)vBFnVw1Jma(DXKfc0BBFP6Aw_NPcSJjMCXvS(1e)Ew zmam3xrZ!d&4y;HQ>75qA!EGPL-&05naW&_rKq;iTxJ|m{1sXczf?+Y`NDFuqhs#yX zAOy_}I#L0JLpv)Sg5HG z)tSRp;(V^$DVKu4F}6bAX1Mz?3LR^}LJO=K#^BH+LI{QyA{p|zCLxx}ufwyj=1enGwiQGl&(s#XE&e&I3!`r(qLFm!Yy`* zXFZEiDk^E_$;i}NS=KrXn4A`79$gX|uErFkn{lCl?1to0d7fA{ zs3v6dJs|GmYLAygaCJWDK0fgzD`X7Un$r`k`vUS)mQcXS%ecZM@_a<3L%IcInhVXw z4~(twYvA?cgS{ml_c2|}P)Lk|W93D&Q9^M+))dJxJTtN9K_LgqpTZNgnDUtzqr!q5 z*IV4ta)?`|e)#DT2WmH=H$53WKM$bjt>@@ncB8a~Y0T=&UBr3}0?AInV7EG z9Binl%tBfuOo(X%p7UZ=AzvsaIE~14qFJOd4c4O7qDrX?^e}>;B(N0e1aIYsMv}RI zO$Ia5jiGiJrh0K%e1TR>eIP|A=tS2L8t}V=xE09Cg3%%C3tf= zDRM+!!f$$e?yol0TkTR=qLm{tM^fehu*@O_qam82ABMIzBd)LQZgk9_pa#J?6=amH zaln4$lH?3lmPN=|^OHWV4+3IVx5&iAgzZ!NJg70SZ@h-yR?jK`LRw1OF{pE|ph21f z-M@KQ1{-#<#mJ)^5oF<+LFZVYqY|eeaQXP|cLLv5i7IIZSay#>BB`hOWAQU$q>Ae+ zd(Ndev+J;bm=cOCl$aOezzt(uN(YNAyr}Som9H0NPO52dDUOgv>kiMA)RjCrLO&(a zim#tXevbxZ-en=wru*U&$>D)KQ0t;EI2Ab!Q*Ue} zn+4@_G~^?;{6%WaW)6lYN(1T5NDPc5u)Y}LLTLmn5!9I2`R;KwUgZj5BbVDWn9suI zx+)!5!V4=RPLSfMWp?_Qs=48_L1`ddd}j{&r3NJ>c5N0UCX+7~F<;R7@= z6I@$K{@iG*89k?#Tafqg0V?BL4b|Akkq4bOL)Pf$7qjk)sY~e0``*MOxda7W%H8mI zePHRcjC~uHzGY~p6cV5hetS*X_YwCLBP%qi)#1G#*2YH21tG74_0CVjmFQ}KxQY@_ z5OV{*B7k5Atb;E*!Ro)rB%6ZO@*5JivEaFQ$A*-xeEJ`l>h-9tyY^;Xll_N6a_5z9 zluxr!$+^(ha=qwmo%CBi4`ijKH@t%`1eLK-?gV276u9C<*wMxI;4LT9b%`Xq=?zk zrN}k4`~gE-irRGpyj&nfp;=EAq!{b4zG92$S&_}~{bKn2G4OBWZX0;et=1V~rEYkD zOQWSF|E0mH0(sx&;foz2U>VO*hWJq<=D)l%dn(!9)#*cS8Jsp2my?2*np|FG7BJ1( z;qHyfQ8CD6Lu9< zWoEvn3giDwKNRb!aqZ)uh-AE2F)~jmZf5clUWK%c>REVXsj%a|(l2Fwcnlw5*n)G6 zI%lt=yzpB&ISSa`vZiUZj$Ut?jV{Oz;IrU$1)a~~rU%dmQM_-W(%Pm4fz8~CJWq1l zX?QmWJzgd#6bi>6g}_W+%@cxcUqeb)N6DH%s)(Ztxd4mGIyVX3sT$AGSwcmQ(u-MY z&3_^{kXR+*9u2ZuQ4*m9Yy{XpQf4KDZNH5-L%0?;(}@j3Mtne(u7wH80Jk_HIRhs! zl<5{&+=bmF1EHsZ8I}!=tPRKHI?O!E9Pg}@_P)7_d1d{q#AXdC!Gbbv@(zPhh5pC( zex#%@Ng)b(H^+a7z`}nFqW?r=8ag|hI=TFh=#tW5os04dzyX89dp>smkNrRBlJw|h zvUYw_mU5N<&X*iU&!V&GsCzOR47L3i!laksO(-tv?-I`p(vHaC z;R;dGVXwDgsdo*T49KN!&~ks!xe(s54uF!<+|$M>ap!*|PD%m76lN{+%98%^i2MH- z6#vDG{!al6ge`9E{{me2e_LHSZukKP*sa7i;pA>d7#JZ-uheo@Tata1X2H$aKw?L5 zkYD=;S8u*It65iccjYr}4iZb}BTHI@PnJ+DE$<}ZR%P6+dh0BsRE4ko(dz5Mo9B`y z+n^-ZX$;ZO&~14PUSamEJi^W)6XxUMF1eWKhA{Lh=?(p?X4Y0P_8J<+jEHLZineUA zp}p?gZ^~Ey0s2c}uOg@9z(dpt3Uwn`MHVB}kGVK@4_!6*3@W0uA|L?v^ zywae8h}B#Aj3m>z>D)yINcFd%{WBv{G(;k>{}9(O7U)G51&D~!ca3%3BJvNO|418t z#@IU*732{bWR9n2ydTUOhvYlPapPQrcV1JB@f_7#llQIV+NP1}0_}k9k=-Tmo$*t2 z@eX?VmdPn@E|^J>MUW6E04oXJm`+iG3YDQpR-_KR`_!8rCxkQXcxNz~qV_tMzpw=d z7~=!s9!V>aAET@4K$5oz?tWPXoVj$Q6yTfzScc>bGdNN)u>!ml7WTj#^N6`NtC9zs zt!R4-Uj^?snbi@IdUtbO#fD-LdnG#P;q%GD@RhIyH)ta|^Wze5ql&AyzPu`sk5k!J zl#d*5!n=-^mu=1IVG(}y^r~-G{64z1a{bB23i-bLoRaaIaZi~ri@cdK3R_U593U4n zbaf9SMgzlHLzdAP0(lJOV;4hkU}KzQwm|V?>5T}F>lBcZed~D&4!X7I6#>j57kk}c zl8%GbRo_et3-y=9%lWTt-k~fWRMc%JD@A4 zpT>YJ-7vgF+-W(~M9=PRZr?V^Oq2;+`45c|k+29*v_E0@4GA}QLgi|YTxxel+ORtaLnTfG`;Z^u6w)*7pdx?K^ z@W2BX_on;=!v;TA{jTCqNtzNPwSM85z%v6m9@JYDM=dD`TyiV*U>F8`LSm{0vZ4z5 z{Z6{e?|q)(G3!QVL*{}93ldtRuz;hYJ7&0Y`)g#yc-kg^l$}5h^Fv`DzSM9Q_bv!J z$=uiV{s8~sfNl@C=oi#j2!cy#<Jht6udsB9aD&$*j;tlN6JUVUq9X_Q;&Sz1W;4B5dRwlO@%{8-cGd zj)+fndh5F=p&{TEvVv6OR@UmJ0-pa0besH<1$q&zlNR<(<6GK~{V9Q3!=HY0;aQc; zdqxOP18DIhUY@t`su1d?t>v>G( z2zDS~b-3BIOkWi`ETXQipXY{L;EFx{0Vo?Nv)SUBST=1}W9aCRRg`43Wh8oIQz!?q zg|bP6{ip@e#&~w$Rq(Y{V-oZ57s+3O88fj&i=qY|Y?1=H9-g7quU9t|!|7Ztt$5xH zF~Cy*W@m5)cNngx7)wPNz*snS@+_0*;||ETb$6);_%Q{X^02=FZxNO(BtCucqSywQ z}Mh8{24oGy3onGJ6!B|%z8M}Eg%Y+VJbX6vf3y2VzNu@DH8Hw(~cSNg|y2 zTs-kPFTIu7qCiGexe{hIfPUQL_~Y-HN83)#EESTB>#FxfvZv+z?PW3<=jammkgK$v z5V!;6`F`Ft4bs_H`vNLjRLLyoDOvJloxfKjR#f>kY|)p_y1f>j=Zs3C&pvg``_qOH ztlf;-4VFlG&1n}Zo|GdxaZB3I3TI-8ye#{d%<&WS4n{dcr6ns;Mf7=kA=Jp2#qZI} za}v2K5%GU*N2u%v>_^%K3HToGamz9hur6z3ZlL!jir;kIYynI)A!Yw+ zs|#_U#8=(lDM3^tpZU4%`D8T8MaLRCVj|>#K`h@$yXD#1C8vr@r?6mau@F1T95Fg= z@6v46T1q)Y7<4S&r!k}4;c?wgA;)l)T1DUrkRMf#)hoE6$`dZju`&(PMTWVq_W<{- z^!0qwfjqC>GQPUSX0GDjOrvYuN;kuy$%Y&K|&9i%=^8271 zE#M3k(Sb(4PPZ5tSK84Kzn4K3@S~23>wqDj%WN-AwXOBj0XG+bmx%@sl8fUG_57pn;&Gk;6@p!2x(2FRijR;rI_L z&(9dx?}@~-FC@o{CI?&!cqJzc!;ch@(B&$IDwiu|dJ-V9~k zO#UXNNSBJr1Ve0T)6}sl3;HUt=d@nfJS)sPyI5@QQwh6(src#fztL(`Y~gGb?z4X^ z{J2>bq##yf(uPxzx<)deW$YhsLk1|Ew&YNu3-#tG^Om@Cf7jpcGNvm(drv`$Xbgvsdlx};Lj#sqH5XLq>U z=nBUr6oKMAr({P^oy-^?e~8-GmNw3fn5u*ihMnx27ae+;@P_}zA>Ts@%IaN{KONVk z=@Y-o+R&s~!C~OCGts%TVU$niWMB9l`pFVRFcH~OX-30D1I%F;;SsDRn~^>x1o+4; z1MS>2Z5QE&P(}+1Cn6-Hch-1GQ=u0vi}g z?|<{9b6zLGv^9F>MJ&{@i~uK4j!ChAiFjzagb}_#@z)8FJo3dh5i1>R(CbL9H$}~; z$}G`j@+||QoES%>#Hp)t9ym+KhV7#h@^NL6_~Rjja!aBIpw;lkr44%Jj)kAIy`A|#+L7VF^??VLxXS>xxeMI!N`ijf<+*$5RC(f$%G2q+>%7SO;RBUIsHY?mE@!(#c_u>M zKwOWua6}jFcN*I^C%Fsno+jfzG&$Vm@A#R1^HChmEE}Nyoi!o4Qyl#o!8C8(r`M2>Uf70=ccK=h6V}j)q)g99 zXPyohhGk1A|jIUiDIMg#BK%$eo!x&cRNtAHDgKrGim5j^)^gE|K1q_&7@05a>`faC(Ceq69F-W z`WY7MargsSg+-ZOJ`}_x}Sg zl(f)YAKoB07~&O)^&M~2O}r}KYr`PvK~Ix`?j#97!VnBfjuByR?yOX_t^4azQ{Au| z7d*k|VJAhbtU=Hiy$6`?hSWFIIqxLL36t*67A4jj34?C@oNwd_4UH}pdHS?upT`c{ zf}B*6sb%6c(DZjYs*GXhStp@Ph5eW(%E2J$R zCOA&b1|)(o@LIoDs7>%oj+!Uk$y^69bN4qvS(Pa;eEPA!#hB^!_)J<%+>s{qto z?`CbX+d|E7ZFoW(6432XiCyrupd8S?zlPABZJ{Am>N1cj5Q21U;< z3(mn5sbH@7;K zROCe}Mb#xWz-ZK+!@Kl1MnXsxX)Q{P=CeV?_Sq=ta699=4ze&D$25-oQ&Mnj?PJF2(JC> zi((1YXC>0=QY!Nv41ErGDbz%y%qbsVJlZ}Va>{-WzYl3st=)Fm{ms+{60G2a$j2&^ z6_sYH5zOhFMh`BcQtQ*Xvob@lU(Vy-4G*=-=5f`es}0cbTW2P4SIj1GO=YMO!bhz( zo-lP+y>%9N*J(NrSAq3rAsl4X)>;~VI-WG9Y5SM;G=D__o{;Y}lx_?~-Mv*NN3U|X znUkK-goob~Y?p4#+H0$)-)C!iG`0+0EHsror${}`IDLR8V~?`0BbZEHIa4ZaSRLJ# z3{Hu)r79iFLvLwGpJ<8Z3Vi|*72e9&$$bf%9XORyPqck=(t>5I)MFKF_H*W#filnw z(&ZZ4RI1CSV~L$~w7@1eec#pbbvb@1YbD*uNwb4>X2&Y(CNHo?6ioO(zS;Xbf1SLN z%V$#g&8bkP;LIoU_xL?5&Dnito_zijE8a+FmF*8q$AAX|09Ydj0HFCFSh0tzou$ja z!HWZcqOnI5|Kh{{z<=;!tr;gQaRk00WtpoH1%&KZijdjfS4@|?74keMWCLv}g~-Oq z+VVmPrpVd~EyH*;gfmpH+~K|DkKjx%rCSp&w|hq%y2Y z$H}Pg5=OSYfQesrsL+p!5}r|V7UhK@s9&*Tb1VdH8Wc3-^5#TG@$3d8D()7={gbA= zXIM$JJw;M-p|cshVmdog6i4&kTz2E*CA)Rh-FU3|9?EU?22!=kwe>{G5anI#tOMjp zc7JLMi{3ghV+}CX&)W=EgH+}lD{QU8m3AKotItgKYp5vmeSi?W#=RSEWil8#fL` zbdi(}CNm=Ao0;NsbAUMHU%w|TXxJvqmJ~0UHA5UozhB4Jh9*_-)OiC*^1%cRZaBi4 z4a%j?W(Y!4-(#-2_y8A5Db!?$Bv?~R+pWFZ51lr(*&>vFdYt2UrK00{QM#OWwA?j++>sD-C(yX(!!_#edfCIk;FuB%s zOQHT48A=*4#Gi2K2iD^(V&Xj#cILVbeCcIGDI$B0WeS*6(u2>AMst-)QuadLc?!Z+ zIq`!&K(RD*uAV`Z{tV?0n~s-&S(2nJYoiou@R`ynKyf73Lfuc=l&WJZ+5j}-RKW4o zMkF7wBBwH=XJlaDqdxO8%SXbQ1Jyh{R;hq{g|=N__9V7*VaMZ@I#n&nuI@8$x{N7I!bDz_HPZPV{VPada4Dr~6K8a$2Vx!7 zx>?$S-K32k4(TjQ?ZgxYgX2P}kxz#i@6=)c2hJyyKSxP}wtGJOG^Oxo*&a#ksO*%| zlo<*(1j02XB4b)0Tm$mJQ0Wq_e=sP5w8Q8x8SOn+9~t$*sJZwB+(H$u3YyBWH95!P z>BNN7%yDT0DuIzNsMK`O2iY%jN{81}i&>?_-MPq(udxUC(6x}w{ZJUJ${dmY-9);mqTWLddv9E)Eq$j5HU!K2b=RNva zV?K0h)*nkMBOO<4m6vD|N0OO>043XC_IOVkYHjh>xEt1wg~}p59U$qrehAE!^DmXfn*WRPlIo$#P!?rM2;i5Fk@@ScO3AmLzR8RgK6hB=mBR>$Ra=g_fy5E_#pPZnLc+H3{h)We0|=+>lg! zX_CKN=cM&jc!krNDRk)$HsgM5`$0t=bvWAQO(?ThC|7`?52a?K&PPGksSJ$bZ8HL6 zBobqc3Djdd$e`(O9shk1B-%$Fv7SxbfGrswOMv^Xzvoc4gZY(rJVkOqaqvm!++tG#*Q4aB0_Jeykq084QSM^){|;P)Ee2cweS|m zFjcG=F`ghK)7WCz%C0>vOCe%6CCp9(rXFK!ofhx_R|+JjH0B z;DMLLB+oKwa)h|F3cwcwm2H#()6K9dLOc}*2?~j=DGsh-OjZ#CS-D!lGSaOrjt*e= zwtYGoAjJsc&Q3Ym5Q8N=to;wPx-$$g<)P*K`w{E_f6X)RdR4IF$sf>ON&dTP(X!WA z$}pF>I5V@zhTRzeI|-LfBKJX*mUzy}>JGYFfLFJJ&#*IrLX&o1t4V1AMj9IVy8vK) z#UzSo&dor9n5TD(FXdra!F)qZCG71$P*?G(Id_-b7`e2pEb4hc>UYc>3VI?q@c4nq zY%dyaw4uoO^G(;`yUh0h>Zs|?z*@m#;)X7Q>ZV~<=K2qZ!r&X235j}O;{6aF$z~%T zKQonVAUeMA8yL5kPa5{ba>OwrJU(e@C}>CVgMJoTsrPsi(LQ#|K$sKb{B#%_?BuiP z0)>eX9O1$Xqb%AX6OvZLa%o>sZtcq~EtPj?cm5IlPSYUP9wGYl^D1sJc<#sOd{?9 ze@Mbh?qDUem#yCCS1Xgd0ewf&5wBwh%4@s6Jgssu@c{h^>QLITS<5F5hUPvs+7(C# z%L^9Br5<-$7-nw2=Yhc)tlx!*P)MhiKI*GN3fgBDj2Mm0jBsLSiKSOR2wnM$YoFPi znA|B`RZAY)Y0l~+#Z8e|0)RZukPKeSWc;Gz>rf6c@8MJREu0h>H{W0tE z=+MX>IHG-*(%B!RGrZn;9^&r+{ZRQza1`ZqAo}}pnMo}h1eskL6qS1s7&8#F)cl(9 zPkJ1+ik*+>AsT31PS<=LW6dMpPVv><%m5rS-r+)xF=~ZIzMU0l9_oQ(&!**Fw=_o8 z$_H-peO{QHGpgVlPhAquaOEQMg=*1~)hRq)wY7Xl@afgn(Daj~>eTmAq3osf`1p6; zpm}J&0sqzAdgUl*%U+o)P| z;{2{_9|P~E#=HMz!So##aT6)-02%TLvd&FlGT!xRzl#Q57-)2VXyL*+^~$|Z&U;vE zacuUg+-?;&Izp&z{E6xmDg2#qmu4^osNnK?E|u<)%MZNx(hb_02rR)O?kt%$*cV~l zA5NyTP<9FLtrlyR>}hm zFr!rx?<;I4r@iyEUo=icVU;Z*#{4loyr(Apka+{+F`_x0a z?URY&Q3M$$Xl0OJAjLso7p`C&BSQENAQ3|Mp*A6=WaHzG#77MNPhiHmkLv`a7<`90j=$DW~j?={L%sbv9Bf08lqXT@R+55QAXOjnkY+?f2ANH2Hzv z7YAhP9pUOOMz-4?NmfsEwPD2RpH^JHM!*_^7rDrqfgrJ(V+hc7!2s~w&K&prU*y93 zm9dn-p!Jug&U#8qeWSmDFxn87J+~%4k+jW2H#{>!P*LO3WJdnnG4H2wbZ6E{LcO9~ z*Cl?`GgF){4elqeIbOc!->SY<_`*4m-!Ts}g))@6yXztyg4lhScO>fKgV+V8Z>uvn zOt%!f%@$IXLQ7Uoh`~E|H~RoBtAr8f!A2^Mk8V$C!M;55AZ>Z#UOwET$_i(VoSDM6 z>wOCe@*b)1j0z#`g(bfIM4|N~eEUo5KH}jwvbqW9u#&*|#Ra>G&@RC&+Hqhfu-t!A zh=4F6{=`zs9Y}(8)F-2XPkh3Sl(na0?Ix@Xr1vgGIZyhTI%!BppO>XACi_&R8@7r? zXiqo$d@3ZTGOwc`G+1~cT1LAYa(?)zgGZV9t2Ow^pH-Ne5SDEAc)UR^Wy57W>*#$a za;Z?IlGc2OdA(J*@gdng@qKKzSf@sfSqL9XRJhX}gdIh+4cu7e_>^z4m zeW`G9QT9j3Dl~kPW}zvEOz_Snz4;6EoZ+z<8d!&_{DIsr!1XkV&Jl}Og&X1L^a(Sc zLkjzZ$1y0KaE^k(OSbSFt2wJtjbB4OxQ?#TTv{Te7V4FBL{(5>(ovkdy#(vZ-n;^UTR)S(eN*UVXjYzU~8e)i^5s zh|xB6e-*z;j`I^#pG4v#Xu8M+4uhq>>Fi-kGHg!(A&HoQ?wV1fwB zwjzxz_vEP_?Pkw~cb36x*oXm&t`(qUi{#>hGBsW&jxgD;;(e?Ez0rRBw(x}+5s>Ui zR4Kmv9SWT_oQtiFmSo^H2JupN3L*5C{L*PmqhIEcAldujhRh1Gqt)|vab^1~ZCa<+ z)6`_98TuwVWt5UL!>zrNlea(W_qE!#r@cD!v^{NK^(0lJw^cU?zO~V=EBKDz)*4Wt zS3-SEiiHz+)5cc0_2He8$*l6x(b=WF(Fm?c5bSSUK%DWo8r8-cBq_8Feu^Kv5#j27 zGizsBrw8hd<^xRO>|CT~n6-u7vMF(m4FdhL5vy?& z`UiQ)BiR=SZAyAim-RGe+3&CMsZn@vB)LVWut!O+t)QnaUb z*bcrk=1&kYpg)5^4@XfMAhrTb^9YGR40W8=@6*?_^O`VE=Jg0Y@;7#@_3xtM45!iH zFepX~8-?Rrj9e{3kfa6I0#;6w>wM!p;^!~`oFXw60paktj)~8b+@RnroLEPT6M#KT0I2I33w!tc#-6+P(olt&<_)TZxFMMnXW5I_!s-6mn?1`Gjte zAE3V8kdY<`@E%%{Om#6gCGCB?7v)^moi{f4yPRRp$L}-|O+bAYq%kU4=#Tez=*7(S;?{bvU`%d%4L9~ zS(7FP2af0RI|(Z=u3}5XdbL5SOVZ_RW{wG(k3>S>>+G^s57tt<#GsvvI$G%`Z`BnP z4+ZzrS@5ibIEVgyFVcFRjmA>K_?w0OTnVp;JLDoAY9m!Qsh8MH&=*&GKAVYwTrClZ zUuDAfE>D2(poEK_0$5CtleiUi9Gu5^!<1ZMLMLy48Dt?SfuV%CN7Zj5rH;a!1RA)K z7UU0c<9c<9q;C@4BYjVP#^roWnTt;cee$W+cnsNnvCXvqxVP|l8-r(*I@${NJdNwL z&PY8M%z8bniFmKx7+gcF^M)A-GI6J>?gQdCD6QeFWr+Etoq5CYvO=8F+!2{dhKz6K zKsaqIA}B4U67%_pi~j}?mJyRZT*=P`6GjOs{5x7qmy7@sW=jo|Kzt0BGTOK&hsuYks3 zjAanx%V7dtWpt?)LHw@v$5SiAwbXgoUH;cs%UAoQ=r>tfdK$E;Q#>G z|HtY2&#T1$mN5&8ZuEBs4siRgO#HX{)Gs7K6x}6#MN9U4nYh}>J)s!K1F zQhD?8P~&UAvrRQ0b=4WLE|hsHsI8V_$T|!4odW!%aWjv!A?3$h!mvnnM_=@`*3gDx z3Z0MB5IB}Zbz7Al0g3Gy>#F|r7S?5#RIw;MhU)OpC&=>>Xhge}2d>j~EHh&)K0BG_ zX3T>Q2J^HCLWqW@gPbUCBKrXU2^hLyr~;4j$OVUhuTrguh8a~5ZKbA^HNXh=fF0(& zhWln?sI5a20ufstBU&)3&6)U8CF+wd46P(Zp}L`th4UR^P78YlK_T#(B+zhg>{rQW z_J9e~2#ii$p-RgZ%|k>m@WE2&d$R#03@8u>&KCuBJqk^ebHLa3sI7t!9IIBLV(M;! z^X0yO1lu!9>8XS&$^qdLAlMF{)=ZUwP+Eq9$6~h;lI|P)p#$=b?=G?t*A;@dlVZtP zCkFMU$tn&Btd5f%p4SJD|LyDu=D`6BJjx8=&a)pvcb{O%JR%`*C-#w6+)_xQ+oR{H zyX1HaKjI1oXFSbRNOn`QA7_Xx&6?`XQuG32l?HPZKD64?tP~y&1q_H23D}aHEhvuy{O9*bB4uT=MwJMczifGVMPu64F*)U+=ZH_Okpsme<_QIzbDqa6LsLFX! zZcIbFF?keT-Pet6)Nw8%l{-k8EOn-fm4D*c)z6U3w4Xv6!A`jS0(&xhGrRY{UP!YWsvxvof7(-~qXXtW2bZm^(|BD4>6l;i+f z8Z9LO5k))WBmMA=KQZv)SUrV<6hwtF{Xr3_O;welu~Dl$2%#>CS_HkuVPqO zF#(DUr_5=+^$yuzWM{K8x(fU!qXI?9GLQI5*ADuXby_S)zEC=pBD+$C>OAS0B?NSh zui9dNcY$pBJltz_?-NVIUFo>>*wco^Vh_WhzRXtRR(G(6u0fn~e-n#)^L`zD4VtC; zMq{7MpVw=M&N<9&ITT*aT+Q%J{!;dto++?NeoF2?dsq6enQ|_+wQu%U&-MZR_vP&V z*1P|1^tpjKOXuHa$bUs&C26@K29)g=6t(9_Z3Luzl2BIYSp(9#3Q;5R2JHd3cm!w- zr+6ZYzVa*7?7w6f!zfnLSj^hB#?Ot z`DGn599aJ(BP-C1aVaKWq`W`FDko2gN>$}n$6H4URhG~=%57u$83r6Aja~!HFxe^3 zZqKTo5k7o3k{#>4x#mKdZAn=(1igJAJG;!GWPh{_cKdg`#mv&J)s)F4O+yL#M71e< zh!(Oi?iN=DdJ_Y6Q)TWnJ0muY-*jUqxtXn=tYzv+jhD#0&8oxR=vGnN0I9 zog%Wdy^n^$e@fS_@sN~}u_vgTL;7oca{v2OiocDoiM{c^5mGNSWGk9mumo6)?u^6y zm*o7TeWkl&Pcnk&|LZ4eb~l>#YB!W87eZ-RI06NQa#9;56hsCEvOOYN;oi+0zk>uE zBRe`MzySw=6kbq^Ua$Lm{i%=P0l$Q=)4a2)%G+$!xCz|)T<%#;-re=7j<2(_v+cE= zgWl}-j*-rEv?e3#h-Zg34ocbWf$yt@qK_sG3{OTH_egWM@-B7h2xBYzywxaeG$=xy$(BH=b8V8%p@!U3b$u{)O~+dOIh~ME)`{ znf*n$2Ajqj{u*4x?(BXryz|C!!NZrj`!IcR)b3*RxT#&kJPZ57_6jc#@~>yxaFVch zJH&5>JKuyZ&H!=b6^`(t!NcuX@O)vG_j@n};W3U{Rsr%s>;dn$Ekn00pXo+0`_wcT zu8r^!#AHI=(EEopqQMx*>Qipa3!Udu$Z~fme$f_2A#FwDu1Jc<#>kHfZ|327KG=lHT*0Hen~F+ zkS4FPDmwL*dBG~%bBh^W}6|kK*LZ8uS zRx*G3t>-Q{UhweV;4fbK0D#a4JBi_v?Tw2N_9{FtO2;gh+(yUjcSf7_`t!|Z&i=Gx z>2f-~&4MYBOm`}P62=ruqDv7{R{CZ<+=P=Q%7FAri4pjemY;TKT#r0ThYtZpn*@<~ z!oTwZesy49Tg|3~L2oExST$;+FatF^1N%9xO>>8PL-S&VFzQD0Dc+7%f2adZNWJ7V^8+ zaEDx?m)nl^WG)y_HiKAxGOXFq3+kMNs{2C82v-)9^@rD*IRJ)-*nLoZ)e#E@k-a34 zKR&zX)d#-%u+y#%B zAlbMx8nEFh=a09=N9rHlzK;KixBV6lyI6i6MGEnsbW0gt|F(jR{CF%*w={s_;WV>y zx?$8Mz**=@74t~;?ki;X>nqghwf|jU6hyAg4fk_jV0E5?x7o9ISvTA(N{<(PTY-ld zOpXFiz#gQ_d{ z%B#(G=vM^Qq2J{;Lxb$R=P?=qao$j|V+3r&Mf(DCKFw$f?C@Q@7lV{v<`RSiNBkbp zZ+4TREu>6(+1qe82u=Ta@=T4*ZkN95_dP!YsGePHhW^Euzgx}+`|YQ8ojHG&d}EM# zJdO}oDiL1PL^zE{fF&g%Y#E)Gq4;)VBohnDe-_t>qp*E2UG0R9Nb>Xz1AScD z8lcT`nwSWM|2ujuvXz`QA_Uoq%K&iZ)4&Hg1(MeQ4lST%gpD2!WG4|$| zC{N ze3EeDc=u7Q!S_Um`1|&4OE2blu86NN6Hh56-H*9pGD_+ANBGC@G9BAkbu^Lb5prY7 zrEavQRvdS~J586G2C)3}ZUU+&Qd&zPOF77!nV?Rl+77OWjh;B&ATk+Q1O%sR5h0}1 z#Fp~ZD^A;f+P?}n+@$ng`(ult+%;~C?tg#k9#$hcQZI~uiX5`M;1vrGXx6K&l=P%#48+__5Q~0s%p}jf$)Vr3A z8K|0WNN9ndj-zH$ES~b5= z=4J}(^=Rhl-x=lJ{7|Cn;=EEw-ZpckU1t|(_w@}w+l1yx9%^=w;klfolfhwL$bA(B zA!66L)^bv)-v`6agw5;<%txX{eWjqH$ya;}0~#n4WY~f5P=*K1KM{8#8L(dLmJF=e zy41uXB5K|vA-ZhMeJ(Ma!vNQ5%+GhQ=@%dO0+51__Cx&*jq^df$N<_SGwjoL6K=%6$DxohNk#B0En+vpc8E`hmU<%9V>I$27+LL*t8mvh{dwM&?!kdpC<>PXa~Ing~sY4UK!=bM#3w@3R8C(9S= z|Iz>L-sV6Q;WPZMPGVDyrgDX9ejMsn+eTMFRqLYNv%BPg*KipYsUlcx))gwkLN@f( zPw)Y5{y2}us#$3}IVy<+H+^B2qygWb8Af0!0iw%XfJHxi7jfAwxchkwVlYIF$Y|;j z57dwpjs&N8LEX^td%7wO1nwoNDWBQ&Qb$OTb9`apiI_rcBQ%oTa2L5w8Tw**kgH{0 z*s5TpqaqvP!z=1B20Ki(d~cy%(VBJyGA@X4(m#FZDwaNqYWz-ARqp$-Y-P3qp6=Bt zH!GB4-oC5xFhb6sp|@~k%0u23tya+Xx!Y_a$s=dN4$3dGFu2lW7FBu1F5(EgE5|sJ z_33sb`>wS+i0l?l>>PFP#0kR9?8~fTD3Xn6dKxH zw<#_6#Y}m+FEMz+S^e*kf<%Z{7NJoZT!U!y1;Wi%Fv)7*CU6UGVvsme8RE3C7MCtA zUGj}n9L5J)sK>TTs6#y~!7dNCU7fFBXYd6_(7t;=?@(u9VE^W!!`VEKco&IzJ&x6N z%VrF9^f-R8k89*zyV0b4*2X8lZg%szu}}muRTAgzn!zq%tp;$vHoPi(yJ!fv!(lI0 z;Tj~*L`XF21oETqMJkcv)#|AIU8I#tqq%MAyFX3*Z;q!?DhZSlx$E}I_r4K=%YQC| z)FBDUypbG$)#9hY!)EeVVo+w5PgbVbp7wlr@^>ZTz8WT03354NoGbA#^I4l<74!Tj z*6$82%Ry6eIOzM_UKj9wA&BE;@0V0EDBbBS`JfBUVmR|es7~t*Zxd?Agckf71Itud zU@7HdbLDXA>hY*T`V?mkG$~J%(;k%PfZx+!g}?oUx0tTBC$M$V!gM6uop9dvoOC|z zWMHo1sMW=SKs>6nG$#r?n>gL>)*0F?jp+>=rl=N4ymmUz#6XUfed9WkvbCeXLGR{FWaHTc7_Er9TJJ#9 ziGg>H-a&uRToK9OUZF_)6HthKH|3#Z3Mx6j2BdK6k14hbsFTW>#A(i%nP^pl6fEKL_Bd;h48;T6=OJ(?j|_-HH?Bba&$Snu z|AdH?)AvgvZkJ`YNx5w0h}kBSJ}~9aq>-ODCgISI*FDFZLoM+Pn-?j&8=9&DSc| zH9w@@St38w(i!#+1dwbhb!4aXs(7ZvA3+KzceT@<3(UL|d5SO3jc1hm4f?h}>c{Zj zELtj@YCe*sdXW<@3cA#~qVbJHd-|=jDAe-kEhL)Q#o56GI$1KFv8>NVL(Zm)LK4lc zt9mYwCF>|m`7MKb0i7(|yn%0isGZhIY4_GdIVl^?2Pme$9iJ&%O5oq zumQ8{`!_G~xhWI$!(ld;c1ZS_njN^NH}Y3Z-k;C2k~F`kZD)3U-=~wSEp6*@ect1$ zy5n>FN7Xg!l-J|KA!W=j;^7OQ*aUKPV!hm;8rdI-yD*GlbjfO18*5UQg1h?`kiZGPtyr(QWsDZ>p#l%>*iYld(;@_Ub`ohxU5jB$ zw2{`m#zt==v3u1~oI#LK{?Pt(Qd&MS5&eU;T!lzBYb+)%c4!L!JuEEh{Bf)Pb;YoFviJ|4|j=`@|FooWv>&h$eq0FIMnVia1_uyJ6wF=MDXcpTFhc$Un zgR&>tOVW$9nH}rv(0?k1=nMZoDM;Tua2`|FpFg*Xirs25Xc50%m9##;@yZ^ZBCB@3)uhts`YN<+_Exquk>P{v=vuzOnFL zGi*JK=&Cv$2)Dv-jGFc|i{##f^}e(M86Rt)T?CKvO15tyPxLx2tJ~ zn>7T53SoisyPzyO%M0u{{>JdxPsbq*7V-E@NkzEmCkLiWsN~0=e~SAW*LaX=7x}>T zCj|GzAw{Vkco*xt$XZ=2qA&DSpk{&hzGms$+-c?$va?SDP)op1e*GK&jw z{|hJDvO135-&UznO!5DY|7c(F>e}OsCCnYyVN}ca+coQCIQ80O@?dyE0BsKu)&&u~ zqHrg+MwnA+EK0n&dyI6PopMkY!_o=m1|DWqCQ~4z8HGluF z)YF%&sT*DGUayaLS^2D&+OLm$@HTUEdY$om*>`Wgpgz$#^TWCiO-FGTO+@}E{w5zA z;pwa0A2PUBL8^*RQ`!R#2@c;{#pD-fPRuaVGsU@0(IuQF%hHC_HxV!|2&gdPk2GQ zp>UsML+y0&$d0pb9P&*3=rCc%GV?bKZ>*+q@lhH!N`t_BFmy1eY4{2GQ>9PQ&sKQh zh+jZ8MxgN?bg74Oj^xN7>Br(gXT{kC79EsaaiU3)0E~&wf6|hWk}@D1!e5Il;HoOf z$o=%G`RKg&`&nC!;-3zM^C1B^`t7(eks@GBkwU+(35Jf2F&l;_-J{?gF|VO(v4Pic zrRopka$q2P)R{n>O7bKPBkUb3Z$U8*I02A;*pQ~&z{ev&0vy++V7Yi# z$7b@dY{zIudKbymm_aTDfHPnHe|e1VW4{?X?wN@@NB?r9G%yPv>9nz#Z%u>}<8K80 z4CYymN4X^Xwv0C=v^G2h={O|TpbAa3-~en@tAhSvBg^^>d`;Uil7%4xh*G=wuKjcf z+Na<%P%OjX!hlk2`6lP?0qd%Je2I!{bUEyWBu@>-Sma=t<32t5g9LTucL2h z&1+Mj#);PRE`eY$;2R0^N2_X5s`&)mSKA(my@x5N({QLkORk_kJdQKyQ+?#fxA{%D z69oAvyC z06sv$zbRo<;SMm8QcVogSGD0JULYwVM>2?9Sv3P!EtwDYXh$)2%aG#~J&=c5^f;3j z4+KS0-J)bYvXdF7@dP|=8p9bs9`-{FQ$@IL#1DW7b0G&)v8-n+3nA5iBCJ{;waqUi zjJR?6Bq^Dis4jc2g_fi*9>I7n z=Br}6%=kCYg|+Sr*txi)X&)flwtvhYSW_CXbW&boLafTRGf<(g7!CR{NbV&_p(XFwgJb2;jDj(hm<1)~XG2~p8l`DKF=tlhWVPr3 znt`Zp&4@y{h$j(+@R88cgNnclTk&$;=ew^}FVP@lkP{2jD$wuoW$Q03u)4SuMAfXg zaD%8{q*KR7&}2n}_NWmO!Szs1fEgRSF+>hBusq)R%RTjx!hx+Difm9~i3SGD?Y_f7 z6D9#3A*rz0?$wh`@P=MQ?&bL&Jw>CvL-4E%mzJ ziE=xEQRwi7=7rT1=B!LS;KFL|@6WZj@pGvYIEdgbfLrxBHgC) z)rhw08j!Z92zinjw2rnd`@?LuCbm{xfx;nMLm5HD97@UK&`X43wOcub$K3oQ z@!4^M^|+q+IF%jS_LgsQ(yv=gwQ4{nRIOC|D1e|AA8IX9`>!NQ%pMayQtyIICo=#> z4MG@gsMdLiR{^OZoy4I{2uB$_-t2H5@Kgg{!%q13_?;t(`e7WrF=VwXWp!Z<^Zj2A z7L7};{O`565G)?7F1s>sd97$GnOzBoACw;e zwHKbcfnSu$U;P12pJXQ374OUMFH0n!>ycOdl7Ft$e?ZPHi2Dzse<)%BrJ`L(*-arr zDqA2zGASDX_DPHb2e~+t4vvi&VQS>J<1IM$smZN%Sxk|oaJ^PpXor$)s_oeRD3UOqqKg{XuQG;r7LKQ}T7 z=?{#B&Cs_d{MLV}m196B6}XZrT(3W=K}pOdjgf_i!gY!`!p{kL zeNK9QhT!!SDW;g#qC2r)L&$2tyuZBfW9)Rc&lG;<^u=^ioqAVMM$a zCZj&lIn6lS@z&PpjBalJot)!cRMa@Gx%^RL2T(4M=h%Uvn>j&JkMwi(WLTR;rRqs> zi7ngaGNjJu?Y3*ee^_c!7oHU{+f!uGNVx%VBWYW>=Nbp0O-oO+J0$TyX{N!GF5<%^ z)t$B zG}H0B5bPW=0X;4wKON!RXx8{Q(iHGQjZsUo`X8o8tvgFtHH8Vt)-7!b5kM?ILR)%S zo{>lN7!LOEAnAJJ6CDa!4=aZ;y>6~B)mTNG?g2o5sB><55C#c-IU7bIZrsrCYAAV7 zcl#BlUnZ^>A+SqFDaw@jPa6YL*N3e+6i=Tmulktjq#|gU)k!(@^tTfHLN?y*Aq`i& zFE7yGRM<%96kbsIleEKJro*S$piVUFju2NORk}y}evD1n3roHgQ!vry+p5IrXh~pF z0Sw$B33ny23)S3pBhHn}bqGS0+9LG+eD#vLU&lnZERQt-;)~}LGPcIe&OwmbxY)x>XkeB2kNO{x3mzq6<{biLcMKM7g{YAO#KuGH zTq{BDdYrF~PEj^Y)hZ3b{X-q93Far7VvjTJ@9*Kn(^HU33E1yo=pl#oW7_Hri!8+HUpUE9x{X$QFgSH8b>M7Jw%Zq~hPF*jv{DAQ zIudY4^>xMzw`*JH7rZ*y|=q^Uupl zJKkNz1?_&B9RcnuUs#b#?jYeOz0(V*G7bK3TJHx z&SOFg%@=4k){8()(KE51RCW9)PQVerkD-;A3>b(M=a9v4gS|wA0}LODB*X{TLeq_L zi9iYIMqzV5AETlx$qUl{vknbEV2K^})Q>mCTmEZtxXy85EY=4&Mthh*x?dBXldNbI z1grzK7i3-c8Bdo3?cJWjC0s@;!V}P)hB!oP)aRT1O2=MtM=7Gbo>k%g+?bU~jw*xU zQ7jLbUipLqi$|?eOsxxuS>Qsh78Ii_4UrX(E4zv_)J2-#o$|u>3e#8G_;TJxUfw9N zm5AON?WRu=<Gjc|Q90HK zss+r_kUXw56+d87tu`tKu6$GWEmgfafPdX`-vh)R*{!&RxT%DM;x|>Qy7l$PFDzh+ z>Cpm%=7b5A)tWJ4)K%2dB`G@T*vdy*@oQDSKO%4ABnN-m=an2x9djn#Xjb1BV=_%3 zR54Uv9xB&$0$n4nw%PW>+uz0I;vR~VYnJ-fI zplrc0)v$$yK0zZ@<8}B`kkA#S%ISMparl!8q3%P*Geyg7;X#K;jU1xm)5#~*2+7n4 zP0m8EXH#HTG7SguHCS;`Y*DkT{}^aDWSNUOlxZYg>g83TTci1ZFk>PL=$N5%w zXC}}@Yk;m)zq^lheh?#%NyG%)$(l`BjlVQRWGG7DiEW5;icAJVH#&k2h?BU5i{9Ew zd8?2kYuuAvl-HNauqOufLFKbaVKBKgb7}=Y7L2wt{~y-gDN2{7+Y&DBvTfV8ZP!!Y zW!tuG+qS*Swr$(q|NHgVXY}dro6~=H<`}VJ<%o;Ch?p_gS~D`$V=-9jw0FtTDG`VM zHh--5;^4DuFa}58*?u_a!7d5ur=WvQo{>ZeTrXD(X^espT!b=fA*mZ}LN;@E6tNd>ms1%)|BTXRtHQ{4!G z9d-hc7LDQ;M=aI52&VXG7a`_`DX@si}HK~ai6mIASB zfu2*P90+5E<{a)&xtW#ai7|@|I$UID`I_qF*n&;Z41m5!)kaxTc>nw#&2 zV=Xmk>v)k_oi6jaL5`XSF~dNz3)^R7StMent!w7BW*b4}mcdAC-(JiSE8TO~O$f|9 zl$(sCNYzUK6lDYIY0SS>=plS*x?H~FCY@I8w&-O7H{IGOX9|Qf$2tgw_|+Q^ReCo# zRW>#&Z7Ty#DkBlJI-Mk7#a;f|_USlwG=)PPL1M&Dp-)pFmlGV^4@5?b+XEa_ZH(Uz z#O5DbtF#cQv-<4nNJ*DA*YVymoN_OW>pFi3Ni20Rp@jetRTE99I5ap!9*7!cv0AH5 zm_yN9%@;JEg}{roAsBFHIj^llvV#u@CG8Gi1+?W3hND=ElZ;ECd3gprh`fGiPv6Xc z`@U{LivEtrH!z`wj9`nSwlTv9rq5mQM^PQy~=}@E4-M$l-ugY$Kro2g{IwS72C&+QBPf0RC zEK=w?J@SDb*b-31%*tYm`XNU%r@Dr(Uv2Pv{0K@lP*M1#Ue8cSv<+?m4M&QK0mF@1 z0%&}Z6B5Ci_0l@$82HhfZgIm{@->28c?|>VYY}h&eW4l7hc7Uj?gh z>D~F4MMyTMHhFxSTaDn|vA-SjrAYd|XE-SK(CqqEU;~g$V zq1SPNs6v+b76oQORj%VOf@TZpGM6-c z-2K3l+cs5sUTUstnGP#dxYYA`D0;zd>7XH4=hjFg{$|UAP`avLm&!Ny8Y5@a1LiLw zpOh*HSQD})Am(SG7_sNtDAsT5Tv9oMkC2#uVpufFY`syVtH-?0m3IWLRZSN6qYPLS zOIncOcVU`NRz{8zS^#9Jo)C@AK0cPgp0K4@Gc>~FxKYnbl+1#U%~%k=%z46sau=qw zhv-Q}+C}rPJ%4o}kaJ)8FjPJV_L;P@na~@vpZDP$Fxfh~g@w&UXNZm!@VleU(iEYy ziRg%=LbFOLCAJc}7uHB>#)W2SntNq&Z>d$g2!A~6gPR)2m1S6ODox$X)yOMel@W#x zX8D69fH)h^1Ox+}1*ISyVSI$MfVo0@bN_c;b3#1%h#r0t(a(vH)vqAzhbetdlOQ7B ziZT`q-a}bCTGFj#i)B?v#_NmK8W7v0Ccr4nhl z_srFz8K*h%Ed5kJdVMb2Fl$zQEAm^6AOs7nK>2TH8(+RO$vE9UH+6Kp*6wz9dUurV z%O`QZ7ay6m%U4M*B&1kX1tf7$AN%}zF#-DZ#&ms1(C-dUo~C(l#D?jLSVaIU!u>Mo zO{_0Y>l9Xq9O9Y7cirAyV9*ibzv}SHygu*8W(72sB0Msi7oee@V`4t+8Mu)~ne)>c zm#WM^zMK?6eOx*bQhN5G7kdq;$ z#?6p5bG#8f!Ued;C%NB#y{y_RDNydsKG=aX=fQmSWeA}7nho3@qxj029zjJ2-4NGG z;P#e&KYSPOsU8LQCpB#!0?Y+XPLg(+lX&f+?Q^*Xr8B$Ho&VT$T&nw|m zKNp-#z`Iu&K)=x%cldCT#R39HezfM9$dXS_d|X16epVG;m9dDnE~9G_wu(0zoD^1v zk4LBYTGo1eJsB|FbKUf4VxVhkV|Wu+;FcPFEggltPmRoMFkqkQq0rKLnO9tyh?E2I zC#S85NWB;9)F$jRH+xLbd0S|1j_gBnof zuEwZl@~OJkqJB@Q=|Cv^pcDNy!ic>Eek2Zb2xRNYWR3@48<;4)X(NNV!~uK zWvpGgd&)NbUBV3U!us%9wuJ$B4& zPGdoL9DT#JadrV={%hcislkCS%OI<4?Q`}lGxg;;fX{j=NT{a9mA}LA$PjYhlEM1O zipK!s8l0;!Hw@pk{uaB!P&u{fsq>*5qE6t;*nk_ZyCU0)h4i&NIue!Op-y#TBE&Oz z7q-zo4g%f$)Y0I0y?+h<+gaxn^r0qARiAWg8&;AratGB~^r{=nT%o@Us~>E!Y#j(T z^(B|dpWG%e)NbzsJVinJeRwI^YXM-y%BVn3MNRxrS7~caf-e0}Q1-Tt6?_j{C$KsR z2;H7V4rue74$HC3dn7XhI&?TVTf9lqwSKT~aEqvF{h6L=ACB2oTQT2dQOP4;UetMx z%J(#Aet@-Q@&Yw0?Q1=c&r>V|^h)6P#;)woT0(G)u&$;^TxRE-_m=S!T%;@R2E`8s zj2xKf$~W6)J~+yi5mpLw0^_P)zR)Ogv%V%WHwTIJy4(I_(?;9YIgxaxAe;uTF|}C= zh)oqi%!-n+_&u*VyTq!)sgZ!#j`lh>z}Z^0%CbvwJl6Og!!@4fc{<;2ABXM4Oaz}f%j&ku68CF2$zN%%SzPr@)HgWEYaFDc73wk{|oUo#IfrTHuRsK*db$QPDC6z} zH+lVnCy_VXOx*BTX3LV&_>t7XphYOzq7tOPuX+#pc&SD^?XrV0dDV zzlNYM6>uy-D_3P3jGSGRmmW z2$G6_PrVbvc$>B)ecyK?Cgx5% zq`U0OR3G-u)>zf4rO`1eS(+>8}azcdt+A31#X>yIf=@@1&)+`ctyRq?6Z z7;PCn&Lx?Oz&BjQ1e9k)t`}E^2~2mf;{^?~GgmGHU}q(m8>CsQJ5A%5pskFy%}m-Zei;rCCe$C+9| z7=*I%-%@oJ5V$7VVr02^4X)BfUnyk8d^DME`|{&8_L;L^F#Pj;aWMwhO8J+&7gg(3 zWZ1I1-@s%xJGGC8f`5JH_8r{kqQbR;K$F1t*3T2n=OV+kf}Lk^^;Yc`3W6yoou&3C z6uNH8NQiQj7|j}YW9O91@mmMO;ICT=iLG&44GkLqb`Nf09F2O=czX$AX3LrJQrEr_{4y#^?Wz$EdK{wE@lw&$Gc#aOZk&nkho$}_=EgY46pd&I(x zq_!qpBr8T*C{Y#c8*L1xbGtn+ZOdB3%4tF^hrGbrLzH*aSv*a#Yf$su#Aqj?g5=gy z?X9&#V@E~^a>cE$DNHcSTt#>B7GEviJs54#rG|o>ii!~eD}V6LEw|hjGYdij^rB@s z05eF=4U3?}T{GO!9`a1iD2!ANJ7DRsr)lGpJ8%WHdy_1mVkx&6z8Hnlgr1oaYLz4` z78U;Zj2Vh(Ze(yh%}v@_B$YK6;8e~@^<_GStBxSd@l?0s==-f2?PYn00gA=f36Yf znGg7-opF{O?MUxt9NeQe=$o=)3`M3D_9J0rOv{v;M=s){=?C5kus!^Anq- z(B_nP9HvD+@Q>$o5X+v!=jy^@GsdJx5o4im(D{zFtiMJ>?v!ryCq z8D~0|3n0>v?14@5pP1++(1-vq5zT$7!n}0w#uNC_lVXi=m(sQ{F_qyjBs;>w3^#BR z_+r5mS)iZlg$QK&C*(;Ltt_y@XQ13R(a+NMj{EPJI*vXYtCdstxDz0`h3u*+DVX9FxnMYhE_A@;6Klxr^8mQZVz zIdg$f@lD->!r>=KN6{f9Eq3Y_PQ;9Q05z>`DO=u&9&{u{AvD>BV64BkXYPWqSE$~; z01BCo)_ra32&J0@5!$L|Ak~|Qy#)MLm~#4M2e|elh6xjC$7yPl{{7LF%MmD=aNv{| z5Gfd!;&@vJzD|Bd<7oqq1a)DT5Nalq;-{yEwHVAMf3zOna@WJSFi z3f}s}XCg1VOkPf|G>piJC#bo_W$s!>abH1@d5&Wlj#@=AiXl6w;$^7nU|Kn{bnUnK z!2Dyw2pEux&g$r=+y}N}VZ}tj9!q!MfwZvo@u|cpzwuCxvk)J!;QB&6wX9AD`(%9b zb26A|dm4a8*9_BU%@3*yS-edb4K1u+-s(wGo6^~T?O z_rc&u_c!?I^pR8@O)*#j*KD%1xMp~ghnEMi{&C6Vh|P_^&o7~PTCmWIvlnNsr&}Zn zS5Emwd#!`$k~8&8p?mHRM*xN-vw7Rdm9fi9xwp`wfIoM-wDC+{OT3bo>9XcgSS(Nw zzhZ;&4XlYi!KolChNI8;KGANq7(!WtbO#&8e3=ie^A$l{X?H&5M36JIMcw%Yk3fmQ776F}SN?^q84pY}Wr%l7qHGK`u~ss?<9Or1tz7s=dkAM`x`z1J zebJ3+gwZTGb*^xUZgZtN?BMp0=xl($V7a32NpjgQB&+2?>oH=3VVV15uU5v6h?56!HY<2cn$#pzN zc~Zl$y3D-e(e6{#wyV8artJxwsdU}(hB-Am#%RbfW!LjV&!4PF4BdG+1rmd(-pBH% z#@p=;-GFm2dd!NU$=dyn&x7PF(+1AXiCjSa^~CU|2tjsVTN&Tjb7vsZKj}USGqO-n z6!IgM+?Qe&@|H`rV`d72K>K{oo+lc_>6fYT^HvEFX;YomOtl{jwESf^-}Bme(u!g)Up;;-X5O z49^Oi%~rjCu+cgfz2nx?f7AEP6vOz6BPM;s$K*GsrTd`#FPA#{e#ZoH%=B<<-y?x1 zf{fZ54#31!l-2J*zqn{BdIdcMw)RqQztT#q8gVv(^lOP`;WxB>%3!CEWf8qANgOj_ zWlCgBEG&DPJ~K1o8QA!fs*BWw{Wb@$5sOsyEz$s1^me_fRA_k!XPm9JWkt5K^;LO# z)1uht8p$KFM%xdo^3E;C>-aI+(u+>xpl}TrzD0>i=*pG|NH@@e-WUUYcBSE z1R$W~U?3ow|1$!V_fOYJlG;FemFqa(XKtpzj(t{L! z@2}6i411Eq{PgDTPVc6B&2xm{HvR z2_Hx!9vKd+Ey$q$l_IVvCuXf}KLMjC&YXN6Zn#e%hkR=yggp{HoB?h$m!ey!;Tocs z<(*RKwzdN$mDCMcmKD;$19P4p@&m{Xf4aJUA`&E864uG zQQ#VcAbIZ05fSDskxu6mJbu=mQ4$vl5?jDCpSwG08L9Qh(`T`X;u)dUA}k56s!02t zGVw1A0ibrdWHPb@OWQY&QYryrKX_nOj8J&UZJYQSsYWP37o|{wp$LaZIVs*4&R`wF zu{%>f)oa2mBP1!R8A?((WCJUiZXgq3qma&MRzGW^E(#CT9K0)%yzC+Tks;yhFGE(D z`OT&`un8y`BNAmRD#^5jN277_c?3jBytcHD$8q$iVTF$6JIEo-uzy~Rm393BX!ZEx z39<)Rt^_@{$--WR?k}WW5$qRS?iVK8;pP1ErdzFEly;gu*w0YTr322-W&+0(1k#1q z9=#kCaj>_=NZEi^}1>SKS2T5@vGN5=78b;w^-ulyt7mTF`v1Rhc&6LBWWXQ4WI+C(gyC0_!qMVXLu~?FkI;S}1o-J8S6dcP4e` z5vP2ywVB%NcA{G?D{*i$rl4HDvS;mj0KP+dg4 z&A)TLvOJv7(Vnu0u8|e{Rp*HIX5M|Ft9Sg2P|-kV;5JJOV?C^gG+H%&{q-WrX{Bok zy~2$-UwAo0yWGt=y9~E|G_F1GFePj#Mdm(n}%_it~ z6pT@^b;oRyH8qpYR&o!NBFp1wpUna3g!t?x*y@s0nWwhgjwV#-qbV)8s}x(~QWt2T zr2F&r3Pu;R)#Z8(UekM_yR#Cby+A4t|P`HZ?;xLYNR|&DT|FAUmLlO87S$H-94R%66mTY`=2DAS@;>I z^m^2(ab6-7=E-?E1Rv2%<5~kAZ{L!tp#lOk&G`9f@%qxxpcqgX@#}W1}^-HUPaloA~v2ZgA$f(~U<69yx{))H(asYX2 zjueEb6=RxhQP=2oh}gE%8^V)&%;WUx2PBsRIj|~`(^uz<95`(BJoJv4LaZD3j%t~v z=u}~dq&T@seWJonX`b}bJmNc^BmLNva&vs(h;|7k*1cc;4@&uM7dvb$x z^>ALvsJ{c?_Jr871MP_(dBf0M^O2-n0IQIi$m6`yARL&eZZmYG7E z6?bv7%433U#QyAtEZ$$HWAQGNBK%5~bk#9)DDyIpVhgBU5s&)W+NoH1QphX36!!X_ zvQj?Sqyp44_9aboP_wHKF$;K|y{ zY3PCAXl5@R*|Vj>nT?~-B6dMkuH&phsO}G^+!hpiE?93(gu@xjDm0~(yo(r!@0ZqY zKRq$LGH+#gOFTkzu|4I6=~NzY0edgKdn`v2O%A~9BF+}xYC;VtJzF$2V#QP@2>^GY zV%=6wBeLJle-;%Q-1Zn^P^ux+j+eZ4l##SZ*eO`_@HJ^zj?rlyE~l>K^*&~T&l)5? zS_0k05oPkHbUDAnicKpfxHtrYQE~+#E29*e0P2k>Ur2idWX7>)AMr0Qa2cG;4>T`C z^`9WfZhBJg#^V}Y8|>X{ONnP3Pdn3I1s8$?^3~1DZE<*MAZ@7ahymKr8_IL?>T|T` z219hss7=!A6tC7Tjgxl^f^D6%3u(jm7_L%|o=q#1btIqUJ_ZPT3tP$t&74Rmh_8=I z&b<+X8}FKm#0quA_B8i=s-P-1EC}I&csu3q7;op^&uXVxcJzMl$0gcr^xHj~TG)|` zOsLY_El=PS0+&itv|6}otaKIBs%$hXm(!;YM!*OM=Z6L z>%!{W2~JSu-`FG0mPH1=k~~$dC3G%_)|a8amD)-?&QzRa-;DLYN#W+JCTm_5glN-x zE$Zzo&B7ZX*^0-?NjBYa$D^6>p3g@uJP(o7nA{bDD)GV?ZKy#mTG5xYJAMh8;Yf+| z#j(~+RJ7^+6xK(ok9*b~I&bNQR&;kwk{`3#V-ptjW<*|_PMTF|P#|i+;qs;kn2oyU zY3L(5i?=rWQf1&C*<-uj-g6aCOeBp6gFTNuO3u# z>;_kg-%1!eCAVr&6?N9Nfoo9PER#jx_+LsUnmcgY;iF*;#+caxU1Q)n4W8->%!D%8 zgmur(_F2bK2Zzwk&$?)#50HsZE=1*1o#j8DV|6y$N1CY4Zme~Fs8;L2cZ5$U51UpP z&S0}mrqYEEUR`VqP%?|#-28!c;EHDaPU3A|GMg5z1CP#Z>KO2z?qE7;YxOCIugiHGYi7F zJ_8oczf5U8*Jq&LW)#Aptny!ChM3O-IlFG>%7*YvkMv2QcT?C+T6v8n$|7`Re>JkRp~1+i;%-@pF7Z^Jux z0Cjkt;dON7MKO|v!CND`+oY-o+Q^Ql+s#9i6S=8gb#T-`463++{`vDVv_jLwd(*2I z{;oh_(*9Ca;o56!^7DQ*g~{P3LDur*vCY3qRL)2TZ8jHom#x7Y2UPi0EbvE5=xh;x z)>ogbr@~5RehF)5&o^I)Yd6zabqZRcK^aCZ=i*X=oq?sVs#DGdIR5Hn#8A|38^(Gh zR_CG$6z5B>XY;&&ym|Q-7)q7x*_!54#+QGP?yxbu;SO2JAI#VNZ05qKca2;twng&b z4&Lm1d@3#K8jLo6vPq8}7&5+((re&-Y^JQDmS(X+gr)OjVObjSM`UzT zqr;U)%}kGHhlFO8?&6A!8_6_;fLwN+XMlJ23d$Ea^r(wIF$dY_Ou}|&PL0he(yJZx zPN=ntU2qDJI`aC(u7v~p?@Qd7I`!vfDR7_y-um23E!~s9*hP@%6}|dsK(3b=3wn!r zlH=1$4w#!lS;xFwQ(AfkeD0U12?Eg(|9_usJdT!az zPSEyL&4X8Iyu(W&fQKTR{ar!^%CDE!$WjJ_%wbba4);^-I}ZZ)LihNsQJB5%a)mUm zJe#9d>2If~(%o6X>!C&?M?G%|d)M(GTq79dRDbm+v8N93?4aDh)5vij08KTdO0(I) z9n369Gqfig28VWP38aPB$t&YEAK#mX3%BE9y{Y%-%`y*1@8{#iG>)H6kLTma@onu^ zhvOxEZ`+;U|Hwe3sy@no?W#$QKmY-;(*B>8U@UB%O&o0vtQo9L+)W(+m+VB=T+3YN ze861Gy#Ie87h$`4#Q(1xMD1Od*uU(5_{&Y;F7Q=by;Z4ptYxNHL`&vxER=8QH-lzO~`t&#!w$KG@%uTrU z-Vl$}u7u%lGQ`_v0ulK;TF?~~r?tNoq~2^gFAx(aK-P70-Y$RL#Fe4&mrBUIZqhnD z`ORZx*A!{|CL#xzSKiop$0&I-x;yL#fL9#0P#beQF7xdg1|Ql42i5M#cZvq=cKZw= zz9)p!SBRgOtVoXNR)Rw_wrlkli0 zclwdX)T`v2rd309%%tzlOe=7ADPR(-F^thJL)t z%VMn_*rqvSe=%C~PUf=dRsp(=NDF67Y>ni*;XWIWy33VPJhpKY%uPmMKmTe-Z5DgJIwO+sj?>dNLA2PQ!&cGA=umoHR zA(D7x1teFq)0!6_o`evM(4(&D6^>yJQtsP8272V6SU%}3AM0RlC~|d9aKhK83$6Gbt1WJYRRMltZ8^n9y#dE><&{P;AYM zTmDNMeY729QgAZ~Wx6E!P>8>xMI)j514D6pCyptADJc;=DcCETa9Og}gUaimOfl_&s~TwZ!*_#~Jw(0-hYHz-LQ z%jqC7ko8*A*iD++K)V+Av5#RQ^&Rob(oR5VOMH)irCW$~8SQzo-Js(q)#ww!$C zoYrgxN2X$DN+efOn2wPVrNQrE91MJ8`0PoRn+0 zqniBjsj{5kD>z2=@p(dT!89^^<#^SVtFguib!9JJR~a@4G@xf8c5rS=#OK(x4hJ0w zi^Gctn+$Y5{^V6;Xix5gs@o`nu5eYz2tl9!bH%<&H*PJt@^2g-5$Gg$U9W zkJ$9T&irZvo@Dhhd-M;Qu|TMaLl#$~k)N8*#jI%d8RGAd|3*)(ck4nMfff4>c3O<;hrm{@QdM6=lUDm#%FOr;i|bwJ|pEYx}Rq;JSux~L-;0p4$}VSNl%ORSFH{w`{5p46h5#|r0bM)kIFxB!qZ6e5*?J)rAat>-@>TQyA{bLAt^dvbhkvauXN97K zs_W)EOhQ&M%sjXrPJZHR@Hxab6pG!Zvo$Sa#TuS8) zniJwZaPdLYz&kuEaA#3AcLK%#98Y(GWBiF6rm1aGs{S4KhcDAnHrU<*{dcL3#uF43 zxa0-dd$=Hh3xz#7wvryk6B_#{YZ;>0Q%%d5;ugwNfQ|oqf{KTYL8nj=ClSGG-DF8k z&F6NGvRLw)21BDyvzZ${N0&7KK|sF0K}1M8giVM}9wcI%2P4UTd{C*Zt!w$sfx$`SbMbcVjslgqNkosom z1B)gfbDZc@7$uie`!1W+tRD2ki%lCcX4w8C)7QiEI?c5n#HL#VI%F8(-eD^VGiWxp z;Ka6dBKG0Y-aFsV^=UP|k#Hy@`-n1JSdtG#O;Yywa}m2#Wh!>1=oAr159@kZxg_=6 zqz39aj$)uGGqvexVZ2R|8qiYV(&+a@rjAmgjdOw1xj=cG*srA2pFpF!ZMBz2H=Hc; z+w^dZl+>mY0Q0e`a)ikle-{n>K?ur`cRvzh~h<(dl^j4Qx!3J+#ok?Qwi$$hVnlb4g{#|SQH=CcU|F1}@a{qg6 zQP}R^lB)mi_W=I=FUcGJVJSE%tBF88Ea>iVBCrlZQc}!|5{%?uqC_i*5pX~H%kE~4 zsHy*4fb>UkUly~?Zyq|Da;ActtL*pplPs<#gz|zaXA#hga}mqKHnH5D`7lc(C!3}N zP8OEP%+5-LatYlB)aQ2v3OTpq<^kX8Zcwe8wW*=}%omXvw6och=2ft1W zl${;r>CuJ*8_ydrQQXf+ihGO^Kl=3@z(~R9F)KxosP2s*LOanJQCm=Rqs!p?pNZzX zI2{TuKiFojOBD(r@5pZCk4r}D6wySPMh%A@M5Fg~h{b&JOO0aR8_)!j9HT}00|Rb^ zZWBWw>+#)D%@Oeib%$@y8EuTA4imKQjK<=-k4bS4NdY^P5EaB^6}C|!kaI@Lf`N>i zvfSSjLn1$jfu)4XMsdJ$rD&T9kOqh1AkVVg(ug;aY_sXg2xvYb`7uFfp!7Q2e^`8> zO3>ln=7Gox3Lfr;t6!e^!Sb1$h4n&O`kd&`ivk*&C#(PB@2zHVN`i8xFcu_Fbe5umP$loMX)OK(jHMX zRTvit@zXh??hpP7S!9nlG(eS)E_ma?MAq8F+`5NGm`ueB zBe7-u?Yc3oAbg-rFGD19zGnq zj$D|bxiQvbazdY;vZqXtij_8UhmL6FM*)R_LWWt_5P*1*Y{-R1mT0dG)^c#361DxC zClyA_H2e9g`~*DM*IOnevpu5KWC?)-V=6!N0MZ!w57;2-{ltntPEcmWkm8^9lEevx z)2P_}koH!K0%Q`lvp3&hDge;~R+^4B$kw!PGut7u%NhX`6 z0R~jNP(6h0>-W72JYYPMQtNV|@Nr92jm}CGZ=RC1?GN9CSx5eVnb{G+5ts815!}Yd z_`FwRGRgw&DH{8K3O1L>Ggy@+=>nzJa+7aCl*4MLFMbsKD?(YK3&xMCQN3XvN!d9Z z?=-1TV<0w98^DK)?87fMt|3b~f__2pLIIi{;Odr~+P7naue$!&s-Q&X8$@dn^=WEu zYx(^QY-{+P)Y?`v)Y(?6Qcu!oTY0c9+5OM3NX#DfI0Fs@w2uV@Wd8pU78CykfOENX zee=oHV@fy`w3eEk#M8FD=$J94YU|k?{aKX1q)@q`#d#Vv3t;APrRG z<5U|{B7q@p`%U;e_#>u(h9Ae3#P@;pv63+`u0%;^o5?n zH})=kn6}a`^D?eZnm7>r9F$yvTA+Hc+QY8_8D?^>~U+4*ol5;wTXTlP> z{3SxD>Xz}7o@BJ{k)G$PNlyUlkn5l3O*h=8zz6FWs#elLUX1PV$V`X%sHV=M{_5aF zryG^09FZqCor{zUkrM7@LIBYxq;MKxWJtgNnAT<6y;F->KKFz3yh8F zlXSau?U^t&{`elJjHizhNb})#00l);xYcTx-p&i2_ zf8Lx7jnh6#53`pBm_ql4%Z^6!Sz|ScD^cS(SE%j@Re&D?hMC;(wq0vugIuO75u`|( z&*Zf7&~}*FVbQ?NolIWmuk(XBMM&oc9&^iWS1P`H?=Bzo{D46r{N1!acPlg;J+qe8 z9|OI>ZpF!=A;FI>6p%lGL}DZs8!D++Vtm1^(H{|wvQOc2lzG#h5Wa-7Jz59FxEZVq zs2K0hwPwK6QTi*thSqR@8#xn&5)E)@k00P#q2$43JGISGA-xt)rq$LH{$-zi9ahm>1dCGoO zeOgXVu>d5#l{s|%QN0bk^cgwGAN*ucQG<_t!*b5>dJ=PPaC#zC!E2>8-P2CMYjjm?Ow~|f%2FZ&z)e&(U)Mx2pK+t=hPTB zsph>Xdn4WwSG!!6QK`8E$ELHrbXtCiUZ{;&p^`lTQy1|!KnV?F=%7^&znb!~lh{HO zpULzqEh32MQkO|Km#Ny@cXJdQR`fvh^4eIcrDKPMrZ~qdXiVH>x-TY)cqS=tn(09w zZI=RIMSVG9H=E5b2OU9RZPGWdFCf9w?PhI09_ccB+@Z2)KkYQY3LFc)sAcnB+QlkC z`@GSmUiL_P!!CCUOHrH`f67w>!j62+65vwusc<9ktYWdF@ut^pYoF=%3>>qeiKok6 znPfwaCn!F`01r&>hiZzP1S8XvEZrmkbEn)+a{WUIIRVoKkSIBm#gWHBEJvk;k*r944q>zW|Izl1 z(YbETma%Q)jcwbuZQHhO+ctKb9ox2TXJ=<8eZG79>+W-V^cYwD@2T~B&YH7oRjns7 zy*1TUfd+jso!PCZSTH|dx=RI_pS}sXN+xqSxo<(+Pf_DhbP;n?v9=zl6<8Pm+5Uu$ zl<_m}NuhJqxSVQe!1r2GG8$&ugSXzwOw!sMmu>W^KdL2e-{nYvasg(E zC;NbHXhH8W|1vjpz7!~F9t4uz8sxWRH54q3r>{+|I%m@arpPWL*~|)VE&Z}6p)_v9 zeHw_qPbPpi@$C3KaJ0cwOS-E*ke3)+O@dwR`He~9W&5r}j#XM{HjGpP(}WsS{>G*nf8T^N&Q5X0ml<|K0x0Tno=4ZYJlIfjtNmNFuL z&PYshz9>*>DPzk$V%@OmBvGbMG+X?uChbs%$i}7q&a%i~WEaHfms*$h>)xqB z^s}#h`xTR|gW)}t(bvD(9KvM^vO5I^0wRV00y6w>Bv#Hs{Cv}26zZHW`pe?=%s2mI z!RX&JO`CM|FZ4Oy{Z~5uGj3Dek{=XA@@qF>x)=H1=g4wK=Sr2v(=g zc!XsMIL@Lnl;Nl(B@Z>7o1M+#vM8S+e`tI5oW)k~B=?gi1@M$F9xy$K(t8CS;aWuV zSb-{(&cu64@`5h{CqE{l5-o~dcR!!NL3fote3COAqLd~$a=~TGeMS=AEMBCEN^bF} zW=1wlI+RMpp(GK=h)!NpCwL-Iis@hnP(}uSz=rD>YRe6pkj5!a78|&R9V7B4x^%}r zbBZI7RLnm$7fN84W=K7GH*UvEABy4kd&}bJv?@@4p=-Eoyd0ptyp`&gYdhC2`OoUgq&6}b z_u#y0S5b-KH*NIQhr!t@2N{F1m$C=c62bWg!`+GO8AN( zJ1sL5yZ)Jb*>5#mLD(qcVbXlPJ@-c7Qgc(I*)K^QCSN|OI_u+XTgcyacB;}|*$wOc zlqOqtTQ)SmXqf-px?P{*M>ujkL%Zh9RhFl}TR0_}g>W1E9h;jE2>9=RVN>%jY`Xt9 zV)K8O9vSnEebztC|o1g3pf5}WP$C{MLHN154X}^NS(4U6}?GLq?Zw{ zzNU`wgryWGqw1%L3?1zp#Alo#KLis3EltjdtVa4w+B;rk2h}5wG&($9%cbQ!JS!Uz zpU03yAwqF2YzQKn0e^IK&OaGiu$Vw~AyO5Cp4n!%`ou?KYEQ46nk05%ZL*|?6^j_2 z1H$0!NTxy3ZTrcw171xPUpNF(GRFuZ8p8om{z75aI#RA$#ZKL{Rb#vpI@~)hIyU-uX)PojT!xL-(sg)$zgZnl!yk32&iKV^Z^-cq&KRK?N1}^b z`_|7|ONOz0z2!;9tr|m?l*|4PaLONaU=$y@*@GwVS35vRTeN86FB#2gSsU<+mD7Xu zc4IsJnP^Yk-KF2gvAu}y-#5zNlClP~eK*rh_gi-TvxPaf;%x1qdpRXWukTO)Cco}= zt+GDA00Eh(0Rb8R_hWb=;XhqI{}ZqOjBj-B>~T3zzHRxyiv|N<0X0c31=L#%C|DzU z{CFT>k_*qk#<(*D+?WO-1b|YFZYjhy1xQ;}8hx4eCzxa0o$17G8D}YajbytMV>BxO zJy$L^LI6wd!7ZjQrTe>t|3JkdxIj?91TT8`A-K=|y#pd)oAzg9!iWj~sYNW|W5OZy z+%WLb_X#SOJTFE!=<7)a9C!IV(}@M6A?DW$L}cE;or^#1>jut|!$|!4nF{{_Rfzig z9+-dGeAiGR!@_BnjrhAmq-&v5a2|e3KR67gG3NT%hR3-9HX+YhScIgd0&fI;1>9G~ z!Ynoyo7p!u!6(yCcFWE{0uv+~L~!%vRAfjBK}a(3c*I{m51>jrCsvTlMW%FNm&|&# zrEQDaNl(x3#Bjl1_i!Dzt!{^KV32a4#D?)gTWFZ2^MpD#KY|)fx(KG-$q|x)WmV`; z%3B&%$CSUy2UxAaFhB4zy^OEKuYYKFur~<)F*W|w#oPa2{Ky&zMHRtOJ&i0{LE^x! zCvT0sD|&0<{P}{i$I{#)FifD0qqr?r66U3iK!Wz$z=%bJfEB=aOGplHRkS($?qV8W zB?}iKDAw_+a{dO4t5jw!t{lV6);d=}X^Ki>3kIRm zs$vPut}s72qB4OWLhYPe!Vzx~tX0S@QqVUdCr>Idtr+eb#H{6}-ppQ1_S`6-rG zjCZ&FR;+A92stH_(`C9ZhjSkUZY4_%$<>2~GJ6uZYFyT!Vc{kW+m7nm#tnZVb0g3^ z9Am`BZw2QoP&UTCBi%SraE=S9*p;X6pP-C=tI;N31hP&8dnN2a4)-wl8xcgM+pp1J z3Q;xDMw-g1(@6Vtma=*g=tRTBs{Tj}x(QK2h^b$~J|rW2HnctAMK|;B9HFMzw+ts1 z^oNYn#4RFI2+4V*#CBgPvaB(L5Sx87j%*P`KN&4U_#A2OpqpimBfz~S(!u&5syx#; z$qgnICQx%r5Oe_!wXZ+0fK5kpTkLA<9oQD6JvBPX0CL=LEgGQ4Iojh(NBvZWTopuC z)DK8Mw6Mt)arp(pf>4_u2Wj9E!SS0t@Uf(2^zCWe-j}UE_O~Pvj>1R=PnR7hZB3S{ z<~8Q;H3vRWHAhAF{*3SP@X5@t8?ok_Ed?bcU6%-l4tF zHS%r-#vCJpXh4fLZ;j-{Ah!Z~;)D@z6i0jwKf0I7of#@9d*vR+SkCeTi0EmO8!~ld zLD!lQHqw#HF#bCU`^E0h^s|~_(8bl?xoGAm z&)m#et2^e;Qte|$ew}o*PWH>im`pF8u}yx7fU=|l(dPBxqECL zRssWN(pZJaML<+evH^S*O%*US$xRW&l(u{cN4Q%GApBHRf=OM+LPuTUKn#`Ru@M*< zP6sB@>mn&QHL~JyR@7Z@qw;vt{KF{AEMNMbhzpS7%#xorlyxhZ5LuBQ@!QiZ?;>SJrj@B72!GNtOs%Iv53_O&1iV}~ zF1feXjcYvcx|uvf%BFHH($fT;#_|1DAVFKiXky?s%;PnDJ1fMIV@{2)r0GW_bE_;2 zM2eIf{Oi-&4v_H`-N@=RA$_>*lcdTcg7&DtEYRe zjW{o4D~O)s(`64{%b^??orOn^y<2J-wI$TpCWZ4NR}FIRDPzuFYzSS1Mb-?RN|Dg9 z*v!_aEvp|qVr^bGlHUvMgiCQ!&)5N1Mo0b7Z1jGmGwtVIjri2lEkYBtZsC=c(ay7? z(3ZJgc0i=Ax}P!d0IAq+|AevKW$mcE&~So_cI6xZmCJS88se+o6G6 zO_GtAa#fP!?CecwVo^t9riO=irFXtGICrHL)>cP#ef@R@OCNZk0TQc?Q7|S9T`Q(d z8Lr)-!TEF7!>n)6SKa0)h^WEMp1>?2)fV=~8z&cEr|{Mg zfMy(MzPITk+RNc4-nhu|9eX_Y4ZqlQ4hU}+(*N9Y-U{G$m{$P&6O)v`8Al+ z8~!INm9+QWjLKX>Cb>>bK0K-g-`lyiuhHtaLU;k&Faw>LYnYbSp{hSzGWW68?qExY ztF4|<<&uLwRC94&;%b>lDnk>%*qn7sQoPW2o5VIdm^@z^C~=4TCL-b1&*wYm&KvRe zyUpWn;7`LH-}_XFgn_{4X}3G`JK^8QX?7yB5v-trfMj`rfYkpRjr#v#&;JASG_v(= zf1jt((Q#N7NAutPgPvX^ZIhJwIGHYq&Z};%rf7gv4OB;@oEi#N%6|%gLX)NjvmR~} zQu`g+N~+a7Va^d?^qKIH$714Ro6u|0ph8Val(f!bF`N68cNN=@q%%;>i9x~yMG)op z*-z3npnX5?uxuL-ldfZ#2hq!bl(pgh-u4F+u_UK6?cV)1MCjCda)*G2rpZaT_T++>vY@CwD= z^ua_70PCIyiywT#DIK^rtY@`2@)|^zid7dm0vHn&hxdd8gUD=!9C6jL7rmQexm7(b z>v8`IJv)9g6u1|ecWKfd8x`cnb;+YzM{{NN*q|4v~ywMwRDu`@Fxyy!H7ui>u*|zM9h$P@&N{!z+>%` z#q$h7ZNg^r-Rg)#JR}}Tt%q?Vk?@g>scz@xCF_q_?!nMrQyz|J5j|Yb0x3b0YxYeA zH{C6RLkbE5yl*?g;a_#NwLYO&!wZSsD%hcslgEfh+IS^;NRXDuo37f-`G@tHa{SES zoRr~s`^To`LNzfA;ZUV$)-p~)uxh@7uz#=fB?EVAwa+|%d94%E_@eV{6ou&!2S)jT z?6dR?QG?azmk5!EsZU(cb9qji9A8IpL7kCDFk3~Ijxq!7eDn+%pp@*G^JR$T}Fv zzn)oa&NaIq81n(`lF55d#*P$ie@Uznf4##xzu-zQEQalqnnTIx? zVPY2qgRT`hq|NxStCe5V*PGn?`doX>rLXO7=1nPlXDC^4mv0i`7S5rKx8gjO?5JWK zA}g?ZrTE)v_yduWa3}Dv9)glE#RBP?3|5AHAC$Ws)s51*gVzmcAAmiZnKORSp{DfR za#Y0rE^IX|4Bj&VtIUt$kC7PaHIA=qv>Gzxy9Hc;?KP4kBN-%T3$9}w3v=NB14AO& zm%TXziWuAl6l#K!QL)3$v$}XPc79UYO)qaMU8+SWo}RJSXi~y`LlqZ~P%OikwoS^Jc(M5}WzRSTcu(b&T|_5A$x`)^ ze=5DS_)!CpZM&v7)m4!!qbx9gA^OK=*=EI%e=n9fq}zL5V0DnicevA7SH54Ut9Mh` zsjXm702&%e`)DzH2JHn=+me*yvy&e!QiZewD_n=$ag>5filesdE2{&O@Y^O8H+`$4 zT~uymU^!mQn65+E`cu#?i`T8PhR@_yEYywKSg1bxbb9!@8T)gC3`OZ0To~o|wu6Sv z2`jgE%-CwJ><}Vq*3}S>mX_?Hb7PBABOrA+m(M?Fr}9YK^O2%kA+%t$7GkP$<(n;V zlgY*BMsi?fegG3Ic-LVX*N_G|V4gb6f3ki$2kX{m(Qj?X+uDozMK-#qpL1kkHvFk7 z_6-I~CKQO}lo^I^8O4dq!j@=KQI?~+?P;nRrfZip|KmtD)b2ZxUXi?=678cE8k^ue zzEZ*mmM~>_%0~HSM1V9U0UaZ4x*b7)iSV?8X~*%Q;xbJes)#?52XPx^h0gkgYvf3U zdKu8e?NMvAwrY`N?Hj5q^2+@V{2Q^U7U_1%R`3%U?pK9 zjjV!!4L2;qCfQ<- zLf_-S;R7mv7AX1a4Qw;9U=&&|7G;YB48c_u1y1mSUN1@u-XC7ww@+iVM3p$-1xFh` zR=^cw$$t74Zefy$4(t*=@7{dYx;pnmm2b94N4tB#`&HMX6o$jCdB_R{o?@s&;XU;X zimP*-0{9N)EP+envi&S!^n%46YvQ|xBGGO2@YIKv>#S?l!}q$bV-p=ST`i4<@MYBJ zPrfA8oafi+;Pp#<1?HgG8;MyR##>nlO>Ee*+K}gUZ>q1^mU#qfW%qL#`i6DpGls;B zm%(mY;@kikF25}0WFTAXWCBd<_Mui1HW|5kT=!5%i{u~p5psV%<1|b1(YT`N!Oo%| z@3S7<_9yy?Ou7K-E_Q*GkK4ghK#Q$?no8wrUvtN#!Mpb+SIWUpVPhto9&1dyMfFUV zC<+FhX-YDQ^NbkwfHGb8r}%@)ji6ULg(5OFH0kHCFgx!mDlvQwnH!6^^5J?|dR=n% ztR(q`8M2%0J#T%_lhR4ur7+N|i378cXxXI=wYI9}C{4H95$h>yI@s)dTf=go3`-SK zn1g0V`_#cwCh86C5-pU@gIZI1Pjv+dRM8;<&0Qt!LwV=iJGuQWg(QcJ&wloYg3PHf zdtRIFH8NB9s%hUqfA8M@0a^g)LjVC)kOKjk|7T61tL6VS02T9(yRn79 z`J#VZGSBzVH_o^I&-;hY|3C+q)W`Af9bD}ld0Yv!zEK4xXR`_QDAdL7>~}I}?4s%! zv6xWNl!_;pglh9s`yQGn=69`fjU)FjZtfn(MRoZgZuYdvwD2vo9uq^ zM@fX0^2_}_Kd!{69$Rdk?q|){hZA1ET0{x!5;E$vZjUhEDtBc@XCR!WODMx=aT!jj zGh=PM{dJdKN2*2=V<@n)kba_wL=7shYc36*!a3TmQ~9K6S+C6uxR56Yf7$5no$dd1jK(SO1_?%(Ah!_T+i37$OXf_~U!j}26 zAK_;OK@EY#U##^B+8SPIkAM~Js=CgN)=1^5`CfV!j2|1;y^@Rb9x}0o2{M2qo6*-r%CR~YnBH5=3k0YD$J&qK}QShns%9_wGVPV zk{f+N!rPQ$(OBS4R=O2J3g>T$8pqLkJ!bRvj{144W7KTf$8OV>`o3$B>D5U{Jeq1#G;;`GjgU&iu zzUodAdB9vGR5d}hfxB+9be>8K_Ufu}rL*yN#Sek^pD>peU5Y#ZBx24D>~4QpG3!sAL2qiF(Vy!N!{y2a2|U_Nss3y;RL zL23pqYp7qA%m451arSv)htT-QiQ&G!3v&-^I+u;#Ab`mX!39}150#@FzuxZ7%$DQ0%D^y{lZ|kAu znaLtwOj09c)+{8#4$AvLtFz)lvKwphN}GjxV5l7A>mVKZnveJP)2^RAGi`hQhtju{ zcASp6dkIYod{XlT@fH2{Id6O$0{&-aS1ipYDdpeipkFj36DLeF&BECB& zIm{xe)WINXIfr$n8htuQiS@(?jc2(U><6W9n%qj_O%uj~?%8avYy7nwNUJhgY@uJ{ zCVhYSSoCjW3B94b;y(991W(@M9H>OFf5fn!LQV0?FJcObg0!{b{VFkJOf)MqV`lM7 z2bzuRo%!J4?GVHae28vF@ZY|dfeH*7w|?tDSYndaLQ`YZ>Q=3F24Ji@eIbDElq-%W zw>I*(v{`a5VN7mi6NaLX2@{xiVzKYq;pFg|O?eSuU8z*gNt4UZy6NpJ_Dzyz8=Ae@ z31?+K`Pbbm?UFy}-t}u$b^E2>J#u*y3~-*Q)hF)SQO9Olqbi0`K%8(FiDJD z(bf!Y+)Hz?>wJFORkA*{d%OL)IC9V^;I*l*^I!4pY5y2WVJPrZv1|PT`MWZ*@Y`@X zKm!2*U=;L26<`>+{V8r{ zbQzFHyy}8LAh=Ko(<%bc7HE{Lg8)=dfD)Lpe1$d`qGUUA|{tu>}tRb*Om77FE zlhRxjV#+EzlPNgK)ur_|PH(8w*%eTdC7j1~ikhQO)J%cG&M4o!DtgEp`IZezvmeyQ zG^_&a=d2XlFtV>lMrx3=O`C)BUcmhzR7f+(N_?yQ7NmqlA(6Lev0UO)Uhx`R`(&+@ z)r%B_xmEn|tviM7K~bk6{$Rxxl1Lj2HWpn?4_&nEjM-;sb0RIV=9|o7LL_h{9hptw z=Sc$Lk_fJZ7Eb7~n&$GD@F{2hVD*o+Z6>v3$MhpJNGA~opwY&TLGx3ZcIBxmG+$TB zQv!y3GlAcr(v**KTd%eplb`q&R&2N@QzaAy^n+{zvYV?lVd5W0W3j~*ZlX8)mo2@m z$ZQP#mA`+;?g71zPBsxrjj=b~Z>BycKv z&5T?RW--R;GFu41_$s!hwa0X4y*S(C$x#;W@OqdYr^$nT(f z_svIqt6n1tu1Ml9JNO#4w9U86z$sZV=QWrdc~z!2%+SqJoVpT`wUJsV)Jo7x7tbId zGcec5$(Q=B1RBwsz(0zs28Qd%v~r-$%Oa(L`ELX@N6M({7SYuNq!J;l~b&;jS zQqXT6bp#?&mHs`V znsik}i5xO(nzxHP3;cka`F_E2>pvGYOP+q;@JoSXew{B(kj1j1xApJ&@dU z>kF)!7&D^@AAFvmUO6~yV|2ypH?CT`UD~{{6ZnUVZRv!<=}q3xGsG*mjxM}uu%|dO zoJ|%d5k%Lpg4jesIXLrndF#U?^e8;F`8RNw|`zw9SYoF_}`1iqGBgSBx`IFfNtN z*BZ7pg}A*G56}ZasjDK_mL8p8TE^?oe?j~DQoU^vJIyE7m6fUMLn3-N^(dzGq%FXn zg!{_ik5z5-=wBpO_XNEEu#e<8m zP;)14d|fx_5>!;p!>od=LWeMz?r=VAY$x&v%v)}+sy()WFm$9Xu`s!2JHE5GDo>Z! z&eG8Gc(V<8X@+*{P7Ay}9usu!0cl5c17VKD1SMT?$lU}Ja-JEMQXJENci|WX>F#=v zpsIIBR|yG(ECFi)p#x%2uC*RJvAEo=bBwrYll+rq9hd!U+N;Q%CuX2TuYc5Hd&gr&&h|i z0_&kvA&xdleYH}56nee3|L|!T=+kA;b)(-Tx8td#DmLQrQ(o#NlNx@-Kq;|w&nfjxIS zY*Bi6+hmB!00fHSy0`r!$s=o98OS;Oy&RWRkW^=(NJNhER8_l$KFzqoE}DQcnBYtP zpFD+3dc(?PjmFcJ4IS>gyBEb4BW3B%@C{q!od>qWdx~6vvX$%`649}|e z2O`||Uy!Z+rBelU@}>;Oy^MA3O}Wtk?c)v4pLzirJC>H>3)nj(GN4pb24L~iHyn=< zfH^>nPU$>X0CG#>RCCNYbO$`^`l#1wG9fYdjBEj(<1fnt)$%Ac|0GuRs2R6(lMVn zuscgt9cA|T)@zIl`uY}y7~Le9QMRfPjGE*G5nQSzW15Jg~mV`Lr>3t=*)uXfRUmUDeN26Um58cA_w2gc*Nu&`HGL zHif{^@9zaZzvxK@rnA=Wbh*5pBL3*>U+ea}%GsUS`q9_rb9d#lC(QJY`*(wQAZk8` z00RURq6GwG^q(_`t_}{iF8{_MR{YDb{=ZIY7X8b6z5iHO@A$8DO>}h>a3#?ENBfOW zs*`t&gAIyGFZV2Q)Gox7N-L|9d0(JoVdRA7=S2(I6BE_t461RC$Pf(QVOhQ_&vG}W zrmttsGDg@2lu)+1Th4O1&Ui99Zy;?W7@Az%N9EtSeP9dtR!{Kz2(|+p-v&yw<9bbr z4NQr7;MZ;5IZvlPp>Z2MY$M>c3hHTRYHsqIP%W8EcYb|NU4!3ig7kqNm-F=?Zet3? zn^?Yud+Z-3!oQbGOOrPueisZgq5oYsY(!)6I0@(#w-I_I}!^+u(BOO z;{I7 z-42@vV1V-AWubY8hf~mreH_?GgBnKr0xO5^6DW%+7SR|&f_6x*$4$&BJqe1x$JT;F zD~1$?^`sXfQbaaLX2#cE0omt5$v}`ZQ}?R$jZEF6V$K^N}h zNCrgQ1oCZR!Oxbiqc!&L!$#_g5NS>bgd~6}nlboP}| z)W-0?mBDROeQ5qnWZ>^OdMdPB^6Jh8)XM}D;CC^ZV9G3`8!pVa%HF%F8 z5W=HCct^bQ5qk{a;tF+Zb&(1HIag*7K#SWyV=z3pH31r=i3p^>d`quiCAlF0$z~#7 zs26Xls}A;R&*GaviK{GK7?_16?ZzXmMJ2=S32=C6dUUg8`OodV+LoKJxMSt0M>yZ< zJ)L0lL?NBKuD1hC+n<~!AwA4OJNGQg62rdYh9&26Lo5Pk!>drBw1AO2eye-R@UCXH znzG+g$3Kr%&btrKu&Ih=^e&R-qn}inLkV~S#8Oa@)cWa44abm!u{x+Jpt-FH2G)IgPG=ne*Rt3_$)k;>CgWH$FkBXOmv zz}&9pvMSxW-hRE0nvq7&j?42@JkROys0=kHG#LISD0ThL_4WAbbQf&QlFT` z+d#tl9DQXpF9!Va`{S8Z#75LaP!zT zVVLzKcdTM$|4E8f%N8zS1C*;+6M4*N6DGL+(h08$WQxgqLW@+SmCD6j6dkj)1Ug_* ztfAvi@J5Ywh2JHo_+*)F=mCz+T(KHdIa^u?1c)% z6ygn8R84zGd`vCxXTs|fwx7!N4>RKv7!>)KsWk-chmm^UfIwCoIA7B&MU%u2SXalqa=QzAc21F7AG0RUb@fe~W$6l$Y2&W}&M7Tt*6PXg6V^yG;`d=rE&$TQjI~vE*sR+t#0JNpLdA@q&!`l^2rr z!z7*SdmlDf`Hr&|f&+ul5kv|vujCJ;su^7o`mXZrf=iS0G%Xh+yFOB@Ow&t@ATYG`e7@O;H28%eb&pP5kVIySxoDu1X&X!3|p&`_3ar`!zA3uHo{zvtcW zF_yPGKengyhasQ6oj;EUKRg`2_67cKV*McZe`$dL0pUOc0qOiFO{|xr*}pZh#edn? z{`sVTd2*@kAFFZyfip+QVf5Qf z-v3E+M|;xT6&G^!uRqU+*;EEO%M=)(IEe}#0D}bAg^|9OLQf5 zDSefyZqdZRPj++qwliZ>72;ofn#l5F7(~<&EQpt7dkl8%2ITND}=``*tk3EV@ZGT40r}0lS^Pl zrBnHj+h?ggjuId8JK583%JrEBw-keu8r#@7O_M;}P3V{eLn&~@1csSz&2#mnEGu&5 z7$WNrdD+uki+o1@)jyW1H9@=EH{U@K4#nkjAPc262vjSF;; zhWV>-v?LLUwr8 zhr_|#OMLAkS6TX82+=ZnF3@*p1$4#V&E5I6%jJ-hwOFygEb%nj-UxSKr~+J!vulO$ zo~s;7z~LOY@630LnsY}b*x(E=vrqEfKW6BVaRIY2>zu&$=ihMN;tx3$MR1wWn4RUdT;#mBU*qJvZTVwmL8)cQDnGx=t>SdqHgLa@ zj^LcXFE#0^@96q&$iNX&7Y6Xoctd@^U}nQOyiJZqEghB#Z7@I$WM?E^5!}6; zj(=VhECx2|H=Kb+vJK!B48zlS%kiyUPEJ)T4WFb2t%+0C+)f|VE+i3Y296x$%~MKa z;|I?Po2!9Mz=GVlBKV3PpwU2(^q7L`I!lACrTGYhU7+_omo}K8?gHPjd%x2%({dn= zU$6v45j4k7#6giv{>>N${38nhPG;&x_qYkjFS}-EOhwnWR71<~3F!2>liT_5?l_gp zR=HgHhIXcCE1O!#@M#z2p;%`WNgfEBP9pm)e`fy(@a?qEny?_y1OC~iYh_RkoSa9+FE@x*iZ|gUAcenTU zcsZdog0&TE)*E9DX1`&?NmRYA)r)n68v76glqCks22|jd!a?}q+aZi&Uow@&P=Tw* z8Vu8bMp+{?jJlVz8P4N_#lkU$?-_{g?=fzZbSM4YY*I4PvV)(mt<)A0ig~cfKHKgz zIqUf@NG3Z{(aOXmOPbfu2$f_;5Nl%QI1#(nebBsXfO^O6(C+T*0Ik zV6uFXG&mj0oO<~<7VRF0YPsrtu`Mg1c$=ZQvgjhV>p1v#LYds;nz_KsqnM}tmRIIX ziT32Vuq4!O6ewP$Is_d2*Jm)Lqnnou60 z2VwJCaIrl=9WR&94L7(jHGojV95~o_?;SGFnvS7NFLV@J3{zVOw%BCKg4@TkZ?M$G1BbUFk(dHzB~7NxQ~#%0R0DC`7pjSW-@8RHi>m z;J^L$9d5Wz0Ku2Psu$2u__%@Od{u_>XEYzJf|Wdv#Xx<3#m^vi-SF(K56tYB_zXZc zSf<=&o`_B*qaxono-i0RXD*@t(v?n(HEP|^HXRZ^SaiL>J?xpd2!2a8(o3IX&i7d4 zTE9qnOtc^!CW4u9EP^eD7sXN+aiKWROEmint4zDIKh_ge+bMb z=B8kr8%Qs!UEtl4MsB~P5_X}OA|3zz^UZS`IaDxAG~=0ncyAJqZYbvj95eG9^zZ3H zQoT1Q_%B_b|I6W;{r^lC|EpR1U(oit|Lt`jQ%Klme3ZWE0ykShz^Sa4EA4_Me``bQ z>b65%8)W_}$;aj~>(&1$O@o~1aprtFo#h0`RvOhvU09tbNi+2lgxyRUSs>{jyGwTV z4Je1F^CbH5hq9}K(NzY#jwP-oURe z?)|EuFz|5jLz`%9d*u9fl-vf-Px1J;B87SqKpyV8>OF1QW5+9P&phyZq++X}l6r+J zwNB_EiA~M>&B0;ae&HSOpvvrBtG8gbfW*GiA*Pr4IV3$qWib%uP$lLIjvAa$W;u;z zRcjqOB)zAw!P|50z=;kA&4*Oy zvmm0llYU~`t{TI3EZ%~|`jFpp)p>53{0SMGk!(1<#c`E>3h6{YQ^OW}BzWTMfHxe}HZnYo7yDXrT9_sS?*7j0d-{9s{Sj-d z_!lu_&auXPW4?2Zy<8$H2eX;pHw6~VeCG%v7huaxp||@SOxS@6iE!$l0p1+7sCpYv z`k7r=!4S{ICBsw3n#&!9A-CMUDGQH*FW++07mD6ZgyMNvj z@lekuZon>e;kaDM7tPJA;+GYnjyPT(>BQaCtQR@G8W%P!^V|dy=<`qIp;RX-P4T~j zhZySraqyJPwEWpL@89X5^4H%m|9$Yx{|=t$-@=$&E&m~_^lOQP3Y65MFg&!JzW{|K zI~E5yVNl|C^n4IcMQYdU)EHI}6oqwgr!bpNMPkpyD>{l$UZQ?e6j+O-Cp4^eS#1vS;$XCk)Xis8`Mgq0g3S! zs4H-e?L=^sYP~!^LQzkNx&hk0`RsrUYG$wgVaZvsb;P(SRIlnCbIBL`b9IiqZ#QwI zw!Zm|lIALCZ@AT1xi1tTvU=X+#;07Iz? zBba_XT}jhSGb&CC19L`pHII<6XtyIzv9F0A$VEN$_m=SMk8F{2!mae5)Q|VaQS4}e4+iiKTw$PURGZG;bvxw#c4F(KX zyJy)+du1)|p+X8PwAT(^S1~+|m3jBV3N_3ov1xGimL?97>vYsui(IN`{2oUf8?F1v zIxw8D)kU+P>g9N5!%D23-M|9tC68oVBI1i#8tO=RHo%#h+c{5an`iVc|^P+#sl3#@~JBcSqPQRCnW2U{4N_Gkwz1o~vqO zAprvE8+WX=A4exH-SfN7gu}^O-Urs=39SH~=p|V0)l)2kOfXoS*WUP|m262;I=}9a zV6a$tC5H7(ZFsJa#>WVtE@|?{wL3oxo(3jf#B8L zozIFC4@+qFj7Y8P|AIa|3l>`-EEpEb-@8ZDNKehVg&}w0`VPJ5Gf?IbvpJuV)(i-V z*C#FaV{^L9;-|T=(q;+ex6(U>?)>lg^FR?&JlZoJJTZ@qOGDwG1)O-Q$|qfT4+{;Z z;k*id%YZU=F1}vxiSvz{%|Si`m}uN4dFsDPb@#ut()VkMa+hryMt&l27C^$qJYr}1 z=?%u$$?u2*!h*`6RtdjnQQ#WRVoc_kxMK99?+5ioMBRxpzfUtR9>C$I_ju~ zZ>@q8o>KB`nBm=@Pps~S!llB~2AQJBL`jY}pyRyvd45o z)egGzv`az^c0=pb&4Nn)9lRvq~IHCl5goC2j^C#N40-Ofp-L744V zFtDR$ZgWe=nRVI6d*S;#eX>m+(Ba%D-pAwjZ@;*?eQ)k`C(eX?cER!;j?f{G3t{%N z=je*wp;Cv?;BWNvrj6!7F;AU@#vlf_> zh=fofC77%bxQ-?9G6uD<45muSADjz+5g+~lWRV8u;J%`cry{&B&VBx9X-cO>Lq{I<^aK~S4G2wf z3&x^lmmOD$mXz2i7Z25LwYxT5-NnFck4WsMlugI?%TY91mXz{ zPzQ484wA=6JUPJhFoi@}diFKzive~x8JO1S1aYrkb-f(h-F#Aumx+i@+dJ*W(G6f4 z;+=YfurJrs5wPikGci#Vcz>GS?iS=s`Pln<@y{&ZT9kaq@mpC2tkP$Aj(6>x#h7yc zE`>C5o2VzVRQ1!V6)eUR&BOzo;R7z2E-+T-Rr*^=Cw*mb31uaOcvZQu6zhXMbd!8% zxiFkvxs*{8q0Y3Nh5bnk%$5>RAV&6k)oMHKFjzCZES%DZTk3Pw$#s1w1S4^wWRC^h zv6g8io6<1Rl`V^6ZWHods1f##+8HYkSeomw_KF%kI^%b~wbfAwSuNB?PRyBp);+pI z6B4rk+@olWIih98v~0BcW|P)?QI05SMvOh02$=X|2VBcfeFGKx-5=AnGYJu9HcZ^I z;G()r6Ypu-bjf)QyY20mRWY=AZZN*<3(LMWOruw+k((CQ;FGEa~KLb1!i#yiQurKk-ob+qttyUTP&24CP*vAkm^-$Y2;%0a{JK zTbPdVMz(#lrn$xKJZr2LVeZzqQ!>&6apUc}^;o&T2h?xD|0BPSKH{Ds{uV2%;QtSv zW&c+x#=p}t>;EHBRQ_t2RksU?1bdD26(!XHN(2cxYZmD0#!8u#lqB^Ul*V^A(Ja`$ zDOtcPKeyVN$?52VHIvBlQ(|6oHn7>KMTpRPq=#jf`hD6g?D$(1#X)ptvw!ZYGE06c z8VVuDf#rbN6%~h*ekdZ6Qecj1W7Fxe14s>on^U|lp=ZF(_&|>kC_FF>;oUltQYO*2 zDpJm$tv*yHMJH_7q0;2x*)B;!ZrU7pvKH{3%3;vC;w7ZaS#I}A%2wXmTOEiv4`bgt zXkYtW;Kkd?TGW1ISW&q53xI16?BrwPfQq%!wSnqr-t-POHQryaTh zf@2b64tAp4lMPzmNC!tc97CktBMg|s8;2)fS=p9PyChCur8O}}bcaRRKfZwVgNoPSj1K&RYArK>@2tm+%algIUp3PM&|pd+Fe+gCTUOHb+De*KZ2!gu|V zo_0Vyz$Upu0`GUBasc6Rj=_=C%Lvv~)1c+t*_^KL7jgFrY`gjY^xrnW^nEbK_apCj z39Etm7#M_5Njw?gz$6LC4X@*TQCfPG+x4SNc5MS zZ7+rjG5uyo((ON41e(wWvFOX+-Oxtrd)2h+_M2?r0Ie0F+&6Nmhm;#}2 zi(<}LW5jUs@T)2h|BWl8!~v@86mJML-RB%NqUT#m8j0tSQz<1}{q1c#3t1nUFwMAO zIrH#ysnIRr?vC$iB1zD7b#`~?^fM1-OAwUVQ4|03CRB?En;S7eQN{s6n6=(^C_#Q? z%G~C*Nqoa5qOz^A5*71jBbIVd#f1d+mKc~Aql{}1e8DDwE^qHE`*c3FTiya_;B;eb z(%MAW@vh6&sBGa2REq8jU3oIG?-grU0&lRB^-Q5eN=YZ*)3g`cr+~4k>FM9KKqNMR zk=O*pPV)Zkbs@h8(SPUi)<#z5HpcW;<_2_zwl*f_rvE43rRW}#a(|cwyard>^R$`! zPxR>a=#~*MaBwkjFSn7jNXMl|FOhMOHL$M})G@FrubK;bMQ8hN)w1HMe?AxtjqK}s zKX?S~L1)!j`)n{DIs>!9Q>eoL!|xGK=U%d4dmg5^W^SfCPquXpM9p!gTNwzadSwKjIr zH_~^~r*pNo`akWRg?6f)9A*jdpHW3t3aXC*VH0|baH1=#4OwDOLy)Q2&xDLcp(6u2 z<^WZ?$iHiI-%B^9gm-(s(xx$y!fIy*J~y;8aHPP`veQY7WBo%`N>)4n%)dgm2?iZl zsp>V5VvwG3nHLI;Pr(7yXR{@_8EP?im9(BWh?B|uy;f$Gcjf2`JW98%%#X>QBCA$Y z2+Rbt$hYrteLK_Z@1D}Zy7EZF7_rtQ!vO$ry8-}^{R@Nq$$o$P{y(5GYD|h``qX(q z%scWw@yA;HpRRC;J8FY7{K#{Ungs_j;oF~Ab})c=D0S6!Kz5SLAxgj>4Z}UUN|G=F zgi0BU8(2#;ni$oC4%ly8h`6kK@)`dwxaFa;sWe_uRT83Ug;^gwudQOceWr5jLyq1} z<1#+Em(M{jJN7n6{qmfPk)n0@aq*PJxAB_4PMeLIa5rwCm}xR-=<3Na*ToftKXlWN z!7HP;k#ZRQ(Z?yxL;Iy8y*saAuX@!(Y?8`&rRDmDvc*9iomw(hdDy?FPzNq94VYx; zy35Ja?=y{n3(vt23t0W00g1yt>9dn0qizcY;sGKw6+yhcV{&6 z8MZEP5eP=c?|GK9ECe$R}fY#oFCi(jet%N2w_u-|jw;|@6B7iIjd z;z|s1R*z4D#fX;4oizY`&MX>4$`Kk;+J~|zz9FM#j5f`Xg&a21BjoD7qwB0Xc2X8z z{1LiG;0IgeHq}qW^*Gxb1OrUvfOJvq>b?t9cU3dYQ33l$S(XJ* zgw-2*S9EbBQb?h_Pskm6H3z?>#fvl6!ex-Ij$GeQh|g>Y9pgkEoIS}+I0Q`Br*g?K z3Kg#4SNxv$B!4JSYVSl(V5SVJ1Z{22_GG|S-Mw=$R{O#5{YZ{Tq!^tOf0iH6=A!xi zkv%Ga-8FPBIUPbQ}JxAXTyW@G9 zseoO89(2TkMJTa!Xval__g=_4Mo3?yb4ZV5#3ux;q~ZrW!5enbrn>mokiS*5qf5t+ ziq1JNp;W^kGbyRFkvbmGK*XmIr)p^KdILP2<8QR&8K?H5 zu8k2prkhLJLY5O&_?8V@(6weCt~$g5`vygr(Sf4mH^f{lCDZ&kh^ORitCU}1RTjks zNvW&};g7bzP0u{b9yo7Fed;Kp?b!!Cn)?2@^qq*kgKag^cIMs4cLF2+k=S6zEooP5 zA}swQyaLzJ75ytHNdQWoX8_8>cd%2^c;_DY#hj}A`7#wRsI=3yGPq9%*5TGRI#H2@ z1i~XRc)%lA$i%1L30=`dNr7a7OOJHeKny2L28#N!SYDN3(?i+9gSOUsoDoI_fAJh1 z$qoai9_1GOyOGSmg%oAJvU33VHsDGP|E``Y4Q#LO5Y8{^X+O&Rv+1(p($RdfVN7Z* zbQ{vPo7>FHtkTil5({F$aZ3qUVDT~EIQ-elS!)D_eJpm8Hb9_{ABh++hM^%4YrA87 zyYqw-(!YSVFB&nNnvk!hT(}|^9s2@P$z}$w8&n~hvm;8;ddh(UDVgi`h5_?cRga#r zftX8@sOeZ?FP!g#eHMN?`-LS??=o zywc_fW3`mODZuXtw(X)PZ!<2??Y%GFu!jCr^~e*YIFWABm-WEA)(@a7&g;H(Stu(zJC-ec zb!x5C!J@Y0qg$__6;e!XzsF7>AG5l``rh1zRcxK358fJ67ptxaUV){a`IP#r46tyE z4vGD|Lld)obI>XIWUbH_S_nCmzYI-1+e30W2Cxt&#S0Wy2djXyU_>96njDFdXs7+e6zKFUZbWUN!p0~MTx(}lKiW@1ts0p+eNw-e?oV)I|dI^yX zmP<~st!$B!Kz*IT524LFyp7CRVS8-1nG*?pk;>mHAV$MS!YWdFfFdqh)T*?*%p>4WS*ZlWYzTixOR}d5MEaNP-VZ zHO~623*H(giR9t}88fdFNO%!Po9?8rrc_)PW}2BTLbI@IhcE?}dwGVza@E#9^z zq1|G}20xUb=2*xd&fHt^#XlE*mL6y9$@Q{y3bB47~Vi7`Ay|qX$|Yx zh}g0jo}9u6C;K2w!;)9{JzxUh-a(Ml&~Dv(5==PT=Y|g~MJCLphkm|uC$b>SO_sTq z32fz~P+vd*H?TyUY1+EiUM3M1A2%vAYg=O#lqGZjjNWqY7jJK0ttv|Jz$pD*i?sOG z6LCY7ut31yWfG9nu=tZvOGa7^JIJftIbwrVh5Maozr{UttIdyeuXHN4EB;X)^Plq1SfBR)K#WEjW%U^IyeJ= zAx7CMqM2=kRH{c@+kHY|ZG7LW!O9viYa>G2umH$bt7<>{k|oBhmFw$f;N?%`=2A!K znKqHfds^uv+`LGw!PnY%>!+yn;7^jOACW#r5k^aMr=U#jSp<)0S#2fyX#T3bE%vFT ztPil(XG%>KU07r4TBl72>ANS!1UiG+`H311-&jd2@WZX*r?Iiqor6ltdv&xwF2%ZE z&2XoS69ln$P#YCuE^AW7Ybrfm?(Z{lY~Bx#F8O@o0XHM9!R%i#vS09!K?R=d>2h6z z;dTY%pTv2G%IG6O%sqS=j48yySA!ebcgFkQHLi-FAfE;KU8 zZN!4wEUO_QKX@s=sFA9}3=YqoQB)tS0hh>S!kM1vpq+^P$%kC+c~qevlvmN)BJtBuO;dafri76^2l(=08fuoRbS#pJ zv5!m*aS80W+4M?-;EV^gmiVo9nkill%Mi?dX{n(8!PE4F;gWybGx+Bj!a4i+8x+Z$ zGQ!wB`?|%%_Zp;kP?k9;yV)KksZNFf8*oc-1ju}p&F37NqR5bC5y4zn*`p^A>^I~Y z=@Eb?J-#KYXPE=+WBaqcs}atv*CB`*8f7L*6Njp2oroR(nr^a_h@!UbvBM~vg; z^EH)=$01&$`D=91pm<0Q$A$cBP2N66Y+Ahh8#Dt;N?zplX=cn=0v>fp3TB^ zu%In<>r}Tf*)t$2X$^Ug!rHc~Q=A5d=iLneQ8k7kaC?xC4|NQpPC2Nr6<0wY2jRXV z>YQI;0K(C?M0+F=J6izN02V0%os&t3F1%@C8{$QHoF?tUAzWc(9PI8q+$?lYBypqa zKt*LxvKGPgsF$zz^D$d@V29|ZUpCo%4v6fvm^76!wCCYVOdVOfr*MDKp9uf#{+4YU z4X>iw=%uC;&W&4360H)v7;xyh`HZFn>yqtYSV;Vs8%YkmbdE%sqSUA|G?T{l46CGx zmJPA@h=MdT`d}14*xe<)>|@96+9V;txj3%}Y^W+g3NYPU&KM`OP2yg9#w0gbXdXG# zf-#>E%BG56Jmv3>jUx$l>g7>-+uPCZ-l?@!FxfFO;-V1)PG>BZ!1rNUeOd)1;=C{> zD9A;fg&HPhkWKyJld`(VRpT_Oq*szu4l^5>RjTRiQD#p!aZ+uk-lFAUaz>C&}qVB*>zNe*Ap8h-5G>i0C*zHWHbH?R_uN_eiFOvK0Oc#XRE*wYN-*{`=Z3 z4J@^^sMmFZlO`SSq$DbYNjpU{d5ziH>Bl3GSVN`U%){S0T>jcy*so+QK% zu$caK_W5`1I!inKr0j`DQ`7$_aVrD>p#2vav6Hc*(|^ur|Cs#`65~gibIC)CdBFa! zvp*3@Kk;vgv9_-5x+s!QGw-0_GZA4k7Nr;S96b_-pH{`UeH`x4tS3CfcD3zZ0k4}! zJAvw3Rv$YzDuQ(d8nNUD)a0CluD;0$I?DL=Lh;MH7y}|RncL}!i;Ig1+vNVuFIaM) z9r{c!-d#gpr|f&`7mr?#DZl$n>r2m{4O$UhU0v<#UiCkJIWZ&|3 z>)Wk3X7_Ho?vZY|^?P^@@b&l@dQa;1D^2g5Amdkp;dz9C>@E?0?+|vG(%pf;$L^Wz zv19ESdQI#0!+)C+h@G(I-^+{%Td;gas60^tf;2MDm%@?b3;xb% z1ZdI$#07v(e3{WxK9sP}^(AP-8vk>*LG1?Tg_Q$qm#?LuW{yH~0UN8a`dDbUdiNrh z1q&&wdUsWcgNxk9T|IHdlphGp-xO#$9IylU?whx{1pn#Tj7dMIFd76eeIr_>2k$=Fdw3-R6c5b&h*sJushc>i9VFXKL>uTnx^OYxCiB>!e97Dg za_SBNSAZ=12;ipA86d-eHSYsJI;U`U>lhY}W>M^WWKKdMl1-Z)2!?jt>JG5MOgAB( zm*r+eG9?PxYH-q1ybV5*FKH!|AIx;rjv9U_?5;Fetx>aHIC;o9IhH*%3Zv?e)fG<& za!dI>kF>(?3jU6MSTu1I^#xPAke-?@gkU-tEr_m}10i6Uitk-LzZ0OQJV#pwce|w{RT^s zW4fFJutT3ac0Ytg{oQIn4V@3(L&F8?L`v9%J`m>G9dQ=X4IP$0_;nv>o`vzfrHyi) z!>~76&ZY|m&{0T&6`@OrZcDg9cf7#WY6M1yqsqVx%SzOOv%YICs#~8%&|@ejYXYjO zd0RK2lF#2o7pxc)_QTa;wGju7@k>TjhnjIuWmQ4_tW-cPezcqNlN+ zhf>)@5yP5SF%u=>CbWOJ1RRol5UeVW1@q#Xy3T?QiJT%#iVj4v?d<|}_!RF4RSHi? z22+ec@YgZR!NX)<8<(~gmdeJO0m<^POlX_&OoVr(78wJ4Lh%qJ$nSl51xekYPQU$D5u>;iLvjz9~Y~N5`9CXS)xLPJ!YSqN3(9VYd zrA`#?8m7{UUv=)7o%R#YqjZK9w#U}sv}kg^A-R_7w5r!!2dtjlgj8(|m# zqy$%gGhgx40ZD1*D|9(sk<8GX#R6m87#$^~eFQpKWa`D{LKVoC+tdza&p_rC(H$eK z>%)W9_Glos)t-Z<0Q+9%3BroOucFrTz{a#`YC4_wZ&Iz=(eE0JA?Uqxp<`qrZyMUn9ZhdTUTMkAz7{+ar4uU7dcZymnM9M_QN z>MtNpODAC?!t*lz#+EN+RdN>5qxBQ3LnL4d3P^mZlslT4t;fJ~{Y93)p6enYq#g(T zEC$7(V#Djd>1@9hFv`mu(9TOfo0%49$&R{YUw!j#OIh?hBr3#8u8TSid}1N56MzgE z7<)d~l52M{lZ9PPR9uI{?EXlfJ6j>#$7G!8n^vhNNC~(QU1&Z`RulCtL}7eJ#kI7H zZ$2|gD~oa_KkGyZKs@OM;ON6Yo?>(`7#OlFZaG4Ggcr_h(9$$zVwVw;A~&U`C?aac zUFxbUMJG~7z6Nb$wZ`Lv1Xn{hk`)|qcQzdPZkxdp_#Ki}5PJoqk5<^g>daBv=rVPL zs#6-t`~z-ui~HIQ6x~sfqM5sw1-1@s&WrP>IOD2w&NsAa;Wk)q zjS1Ru8F$SVEsu}}9E0g9o=LZ12kzO`t`L0#wzeO6jg&GRuhiNFuInkiJW2WDu zFzSnV&mA2vV$X`DO--wA@7;)b&TSn1SVH1nUbI>zcH)*2+yD8FizUn!>KXJE!n`Gz zx%S!gArnHSxlX?h`blU2X$-vUdGV1&)U_o?*!s1q;}lXI&Z%S^Y8X^PM8r?f5^drP z5M^ivju*rGiQ*C!RPb${Rq04^mnmXtJD}b2K|#kZE80nD<6Z*7B%ia%4|z0aqGu94 zHO-P{fU3f}n&vgnGc*6HSWQ{yYMQU3F(UOyd)3$5_$=CP(R>EdFI{!<-#TWIV zVj~H`4j?Z%xt7*Z1?23V3MOPG#~@ABr~EimsnFM!JsMg-DyIvT?M~dB#yJhNDEx+} zC{igK^&ATkX)IW2@zgyzhzyaIisR_ehWM$3vZGiU#Ry879d2uEO(gPTV|{D3xl?KC zM~;#lL7P>6<#_YVmF9(jFLM?Cp_sbB$BMYRP&E+~JnOy2nL1QMv)^)p-BoEO^WA(o zV?D%@M5m*T*~-|Hz9_Wd6rY>#`u01lks|uy0wqf7 zD|M>|+8A~bUsk(s7L%o{7 zM?UN8_u8ypuE^qR(-H^F1ot*vGm@tVkZr5{$)fLHGeg`uYnob1XDvsO2EK!Od=bx6 z>76Yz?k{QgYAs(l)&;Z5{$Cd5LDxVHH!UbTte;lWpuIa4ta6i5=ufEa)M_`$&S!zp zslM&KOZ8ms{l!-4BrbZo9Lfo{Bd_jOJDO*Vkc*C5`FA(LcwxI;<7AGg=d$NPz%{}t zLwnN@o5|N{ZI?`h?QdLYyt7I&btR>RitX%0p;{TrObR8R$?Fv5k06GvZ+n+j{8alP zVRCKf*fDKYoqSs5QT57wHf0y@TlvW<=5|(n&cq}o@)}TVKf3l%9ecgVnkV{bF1^lQ z!JPO2J1)*4H!?&s#hRxSgbro9EGKzjtu5EdN`(vzORTuVz1K58J2`&gzIIxA$M)+D zA8A4HGP&8?;ChgRh>M0A89Uazjg;@8-XRoC>mfY#_@5Lr?ZQPMY4|gsk(STML(asq z`#aq>%Ttih&@$7IjGBT6e+Ns;BTNzaw4-nVD=rnh0x}`PqCCbLLk+5E^b!D8iN8@e z997A-`o?gxJQo8A-i@CVa5i-5rlf0hE`B559q4=Q z#mpiUuF6TNpcr&$^ylA|`ow6SNr!kDppX8}WvBoF0EqvaUWzmL>(Oftn>YoNpOekZPEl&CytBUBJH zZ7fY!J<@Hp`4Oro&&p{tcnxq&Q3a^?#F-##(ixDioZWDY{uM5M?-HfKSuW?_E# zK^mM(<~s9m?F9@Qvaz7|nV#471|JsJ0j#0PLBn(*=V{#01Iy?2+KqGW7S0WXot|9n zzbq(~5G=os9&OD0+j^(J2j#!A;Jgbb{wm@80xKy>H4h$`CwbiaNTY!V^od>XEK8AjP3?*#{wAE1q3w{S~Qbc%N3OO$6KY zs!U;XN|_OyzUsSUkWL*(NRg@RKf7H!=>%7=@9!k~Rx5MYnvt&I5*DH!8zK2!%YNJp zJjcPnQ%4my;r^Z}P{Kxe`U;||7@_L%28pL1O-C=}xOclBj5m+)28{bl_#Fvrg79j2 zV7u3^huQ%9rLPm7-OrkUy_Ba1yjW|}qx2YG|9aV5!5e`uuRY@jTYzGiu06`v1Y!=-SJ+|9B#gOS3+F-i%_r(LV0KFEwE^0w zWP`G%CebHwzR*c9L8;gKlTj8!*bB+kV9f2itY=~6b0|FJXOI|!BNa-Y)IydWzSJ5= zHevD9Qt+2ot@C)dnja~nXa}_Aa5#M=K5(2}3GK80~eh+bZ6ro*e z2*B+dpVhl?7-!v(?d~uF9FKo6?p}8kd+dsYf5SLEi#x;h+D;bKtw-!4oVbx>Q4q`v zIEzrrO1e@R!O_027=Veu!RN*1i*8@c0|aPCvftIEeJbD=Aq@T?x5j|W%;gI{AvxlF z0?dlt#W4Ez8Ri?);4~-O8?G`;F%`myDPBv%k1y29DE?5rJo4l)-EmQYBVpt7>{0*e zu^L1l`8PMKDXV3>b7_eNuxN#MY;`{IKsN|YvT7j&K8?FkUfH9_Ep6!KKEcUkn2J=1 z*ahu}m@Ti>6votY)tjaI>diH@ZyNGMrWL_Tp=c;&g&LMWNAFALHPjkpOOD)FXEdu& zw{@rOd_}wD1Y$|C6{OcL%ZZd5_ME3HO1>`!PNrTs@ziWCHKf&%MSU(-svQCEL@3W6zx$rTYxUI9<7!u-RWhDJ||E|7tN^ zst9`Hvxh-{@l}N+hZ>~c67|2cgb|D7P+nb8A>JUA0lLm^OWG?zFc;s7j+CJBg`~(d zsEBZqfpf(l0h1SYAjYc{P@h^+$U`t1v#y!H3t*c2Fi*lta$a!;B>uK*m_*Tp?*Bv9 zj4eA@N;gYLPr(59j-2wFY^(k2Ikj4i_Lm7JT`?3>dnu@Woy?Cny{ZjLXf$Tc!i;Ds z_IS=~@_uZm#i}{u<-u#1;^0d5a(&;>O1?~*d&4?r>Q`(P<)+PQWkQx1hgPv- zlzcM@zf2R1pbI@o!fe3hQPqPl#jgl=I7TiO1@Z5klT9EZKW2F=I~cMQx}aP1B9Bhc z;y;;Y$$g7gKSGCjQ+5Xl_v9x|Snpm#`Mf{WS@ml(YTdaNd+aRRo6Jk!@U@M)39_cRJi=7Oez9#98MbA7 zad~mubLf~yWL-1;(Bl5@YSS1?nRJtZqGwjV)CAkhXc^$|D$YoM?`7VFox2(c z0KgvP|F9Qn2_X?#rN4eT{?%R%wa&Tz*b6)P+n;;*3$2y3qt_S^yq_tL>ZnE5b5bN# zv=$K>)L|hV`V_Yq!U%1IBCSjjZ9QV206Ilu>d8-6YTKe+wX=t!QkORmYacP?x? zTR-712TmkyS{^r^3UHexsbnBuR91(C&*%MN)82&Dhug6>wFjyYi?75({XM5W%t$DF~PI()e2N3l<}S9&QgTadS7PZdZN|YZa47HN^sE7!j$faw$a0Z!5E$Myx3`)-~GzK0v|08|NV=9;D`Ac%?k?(ebwB zn&_U4kZk9=b#XY>RDZ5lFv7`jFz70DIvWl9FtvZjYU0DdcK2a14nq2~^uY2U5M2Z6RVwG*5OxAO6 z-z@It4NROl4*d>n_kKuhr@~Lr$#1WU1d_qXn7tPl?K)JU0)(t{2ia4<5fM-5C3#15{3=WUol)1(CaPKpP8mUZQ1F7O)-fVPwog<8f`{xxSzanWZ4OaI>shOPYyp{31D}sVK@kK-GVfGubk`{g1M^ z58LoD>$iU&1N?7f@n2!`@5bUb|N2K++Vc9aC)r6i89Fmw14m)Hhb}lM9yu&S5e| z=PecTBUvi2A%gN@k2kqSE2S%tx6W% z600pM6(30TOVE%4Bg22+iKsr%X(q7q`*^ecJ39RC;x6^w2HYy|H+}FT{`aN2|7n|l z(4POwD1abqvy~?EfM*-4e_~xzfSJK>2H8}Tv0WEM_?FUbAk!ZdI7YPbu+Rg6kZU$8 z1rnV$aj{Zp|BTXRT0u= zj>}B&!{w+m%dMe(3*{~dXN)nM&xqa(99Jfx=0L;_183Clfzg2o&z9%2-kd#9tx34d z!X2nvWqRF_k2Ny<(k(gR=lPK7o6BXM@s(Eetdmr9=dtzjMZO`|wpSLUDf*5BVWUwhK4=cTt z<>$szmlik65W?<50mjagc>!qAVwhsp;o25w!8 zB_-y51iAt~tJS7@*Ml^jah0n?KCFr96qy~KTry0y4~il9%jwbAn+3HINVo zuyKGVN|q(mIrMsbrvucXVGQix{eV&q{R`|~WC}+ru?I*Tn8RLTvOQ4X(iYfAUcWIy z7#L5#iEPz098X;| zMc5{+N@BSjA2$+uWN}M2s-RH(F(oJxG&Vhw0*ix-1Keja_knlp&7nk_ z*pIK$*9Aq}fVUc_L(EP67k@GI_G~=?+;S4}^xQ6B0a}N^Ub1{|P8>oQ zgfy?{r+D?g(${(o!<(q*_C;N%hfB<5Ap~k574_5A#RR+0_S6$|Yx8k^e9^>(6z1+V z|F33C-SnCq@5hG>nglJ%i!>A_b_e3?%O5XXO`H3A`f$WGvi`0!q!t%iS5c5$d}EGe^*7ROX*=~L=XI7l+(Ka6ibI$ zuDTAq&wm|=BqE;2@jOg*P9*_sw>Gq8naLp*6=iHka(!buhVQPob0?&rd$9n(kuZ9r z%^2aUX0_PNvWFP!EKoT%CJ1ohh}j=O@DK@s295sXm@p6Jrgk2Xln^;Svpu>rj!)5E>~7%E=-hFw>ejzsI+XZ^HW9vLKs z&tqvE?3BA8!}x*p0DM*eoFqLC`WE}iS;tci3_d}5dR&EO6CldpMoxCQ#du)g&a-;T zGQIGki46r>_`>A?EW&IBx0>oU-`$XU)6*&&pMvid-P0`+s+trr!t*PCRTkk>^Sig` zG2iqD1cQ2%!_PHAtgs!ugVgM;*ezbxn|XDiihj0mL^ecsfPRL$xDVh z9Ohe;Wd(g2`%HZbI9#%XGj*-n==6^08ZtCL^D2kfShAB8wKRHR$~410M#V3 zM!&huwzGY3CqX-n&K8qOJArtb@*z%hl^@6FV#9n@;`S`MuChtS67dw=<}vTQHA1Qt zwez_ad^~7GQ$3vehB2GXwvJhJW3t(HV-CRg;y#sld%-Ni;(UD~S)cD!TAoAJf6GYs z4JKw3Q2~%w{+N%oh*Y z2|+w$sN}LbtXE)!S|X-_!D$djbueDc2t`Bsqgy9RpdXQ5pBM}YbO(Uo)}yixTcS@q z*;C^yk91~v`B$!I(NM?_B#p?=&zkW~C2!V1_}rTA*ZfzENdXC?3IonoQLq%$|w z{X@HJT)A?!%mZNOt0agmV64SgHR*$1A1Q+MAvjN{*3@s%|H!%vM-OFlzgbuMH|sL| zd#pPf@ju{QRr$a1E*0h9kbC_v-d(r(El$0Xy9{>8A#)4KTs*^&zr<%lbRvoPeZeGn zds0+I&RM`VP#D$G#7BGL3RXJ8sJ2V2rI=P-zZUnXwY zhvQoFDaQvu3%TRVbg!LmYD&RJ#W+YZM-?1ga%`zZx-~g8&j34(nT+_y0d3^vs;eh< zDJKCe4k#dLKA?_|-j#9;tgZpwa;;4Qf>D@U3O?eCM>#v2cT)5b=$6O8Xj4f~f%*wJ zja{=2EKAb?6;reqVQ3hz8qpaXC zZuM0&F8KjDz!NrqOeuhLm{B%U;?V<0ARG8`i&-&nbQNK!a#Wkf?3fgORMQ$!AktJW zo{;OMG6awYo1CGUfJiFqoO(jrGb@h5$M-5tDfjRi8m$7FH1u|Z3^QsCwDPDT75N>8 zhOR>EAVl2gD_54KzOT(}bI{uh)!Mm)Ld>EAPxpZ+a)Tp^>riaSRv2N3%5(Zkf-pb1$se@3QqHa%-RUlI4w;VCEHd5-23>7@OBf)2!-7wjS6?7T zoG}s7r3`>$7Y2YZtpU@T}vT=^)3-HW0}C|Du+@SPqYm%x&g_ng3|m@8PFT z+0&gH+|1*&Dz1+Xh4w{od@F~F&6{bXoqi$GR<&m&QcK2N5p$O{T#>|L*%@`0TOLOV zPJnHjudl3gQ;@&{Ti^Q{+`-(Y)^Sp^by@!4#ECv;r_8r;n|S-use_73%!TisZ!5elDWo1d;$N2L5s#9dCn;1EAQ6D zS03TVP#RT~Kvga2QyN>(>Xb=f+?3jhHC79jsR@$^5r`fr)1wuW{thBkjU z@f2~Z5ySWsqW>Z9hqTH6h#@w`D_Zp{Ac}r~tPR{hkQbzZNj#OH7gYg$dnFoDYX|gc z2^%e@(r&IPUWt6iBz`VrcxJkq-ekVp*QiCtGXRT4Tw!E;(3I zLoxZKZ&)rY3wlMf!Q@Me1iq47z2SlkZiu+x6p|GEb1}asCZ3Uk1vG~(05=_Tq>Vkr z(68-r&t-5^E7wC0`p70x@$}+!M;3xBoWZmuoCk_eb5~I*J}2XHPdflC0;J{ni>RrOkCu50Gx8I4UVAZTmR?9v=olSqRnF?h!Q=sJZ^=Fxj@`OCLOW;e zrs=$PRHomSCh01kx{J$!Hk+Co>m_(B!!yWVRpSEYmeNmP0DutXznCigYZv}`{2QIe z2-y5n6C$qtn?{V8v-~y!vL| zP(O((I)-0GGl1GtDQ!A=B3)T;T@Xyr)4XsgmdW~?IRu!UEJIc@bP%mvFHGLXMZGB6 zV@*|!W~Bw{li~S;^&WLmw{@YqVWyo_g8i|*$f`+fCc>~ix!g|E{A@UT_pagZznU!s zj;Dh6dfkE?#PORNmMe!Bm)s@#7aOX0DcVx!XBTyiUXRux)h-IH!F3)mQ}eOlwVSKC zvRr-%?Jl=UHy|qiDNsHxRXeY}N@nPtQhQ^?et8Ef#$@sptI4U)s;Z9m_MS}X`~1ZiX4%Ohsbrx&!B6jh^_-%13W|MR=vh~=44rEHQ&WaWq0ts##DZA z)+VWVO(*M|R&8vO*|rx5G(UVm;V+xT5 zA&yKJ+E|OCt?$?CG;<3{{Bd${KoCV8xew)A3QocLdm`F}Av#LgBjhhVz^^w09IlS7C5jgr%nG<0hJF*)>MG!X2Au|a3k zwd!7nG-}n#aMs@q)8X%M7OX39gNNZt_2+!i5<140GZ0fZ{Z)XHSDkh)=G4CzC_wY; zC1d9=W+6u_UBc*q(%^%j=r}ZDR`7*DpQy78)wC~+#fAQd=_IMd5QR$^(@3e$`(^?D z*M#}^d;i}?$%&aN+y01(|Fd+7m;EDoB=|{Uv+tJgs}{P-sN`DR4|v7>67+DqA-kpe zeenRW$cRi-P$iKHN3b_i9e+lbe9;Pw=A$Wg=_QjZE{P*$NK_evKZu`m_Q0c$)*NfkCT)rwI%Ssi5ye*?vM zH5#mB6f%}C{QmOK%uKaR^pLib*1g^!kD)=}q|OwiTx;&=CCEK#G7l2;zcTC= zr0b_TN`-754GeE2GJzRQs8AErAzBPnI(gXNP?KK1-Q z^1q($`1fu!bvLwi_~YE%(%Hhr=x?Zsf)P1LweSU?ZjZmpE%hxa97V)#wQIbThkjj1 zYu_jq4gG>yYsEP>71%V1pV^XS#j2=M`9oH=MfY;pRdY*e&(KcWWjk37l3Q6@tQ}VL z5oI0R=H2PccTgOF?U5)X;LFxbU#Uy@F<;RPqdQ87P8$s|%|Z$>!T0Ms$hn zo^4u{#kvp7?nUSTcp1U$Jl?3Fv3e)c?LXnVavdna%=31-kv2+`8)={S!ldfp_(uO~ zf(kW*z;y%XZDhd{e;KN{6->2$zty@Ztj4G#7Yjo?(;z}J$U;P7NP;wDgK#2m?q_<1 z!^B|<(lzJ?nP0+XJ7cmfiYFV0)O9Gv=?1Gao^#{T^Mg=|Zz~yy%T&TuI<3?QL}zX! zX})$2b2*=4g;-N-Ypm1e@aVufE+2;oqwqv2#&Jkr|53t!j$$+9PgaZ3d;;yt>{ zz9{G4L9_$@%{jg(y=1uRK=B|&cG~An@0kS9R1t@@8 z@kbw8DF)9bz7eMEzL&*Uo_Ba5S@CmW$8on&%VbA z1R63fG>jLd66bJNaKp@$%#XwgwyKlhZj*9(WvyvH@HEUS(w{ zzb94kKu@+(;wkRk*QWs3gyJY2GD(KnrX3;AF@WIL(Jz4CRO+sZ0lUO5udp}9^8Av3 z-!O494SG?`ns}`WC+yMh?g>WIFFEQtn>wuky0&DCiCMMAU~lWTS-y^x9^}KE#yJ8D z5q5v$z#p0Vzo`q8O)A%r?Q2oI+!@89`W4w#FI#D;b0N7JpU%J?yX3t+s_zsOXT=q| z_Ov2TpG&svt!(YYy)+!BS>=1mt)CINyurE{fSJVjJ>nF#w_)<3Q;beM>|i&Q4_a$~ zlat8nc8u`@hKMbUz@6x~yT4 zz|5wM4f60OX1<{Rx7y-AG4nT_iT{91eBNK>mWIAOiXh^*X33rbGY?A={6-5Io83rE zV{gWrK7NGmv}b`0&;U`!AQ2&zGDLmY{6&0TZLRM9bM{+yFSiR_w+UVA=pl&ROV=ZI z=AQKIHBA`hp^m^UCkN2`{iBq%rTBY6VgsEB; z5yv5UHO|ur&N0Ce>!h(<&H+0DecWn zuLsb0qFAkPk4gMGLY}&+1Og0Za{YOG{-6Mx*2TpXs&o* z*FGse#RI$g(cdQVUSq_;Ch>=a&w{qrisvG_Pr6-L&dt5TSxKna#m>F(c*b=FPMZk4 zIB3cQj&l;gEmdz^!IJl&BdNmTRaR$w1Vf#A5q3>|FGQ)GD?S&(ywGXn?4VKh$kbVN zu|f=dqbh9`K2`P%&cOw-wM2J71YU?k92|g2u%^71#8COp+B zQ5C5BGDby8ETg;$C2WV~=X0#$IId%tZ{ydC(WJ}fT8S9Pbg9czo(es*Ib!aYdslKw z0R%Wa$L8yiN-P=sG9pSWU5&(ddII7Ot;;LY4W>cgMt| zM3Llp3#T*@X4fX?6PgU0of$Bqs2iOO4NoASP3$H@qRsH6p-WJ_G@S2IkG?a>Hj~8j z>iD7_kz%&vZ3?Re4<`K@bav^9#Sjd|+J(U&)d?#In7L|8E!k zb8}0}Tuizt(z?i>QNPK6RmZgpFao6Fh>GuT1 zhO5v`7`~P$(+hPmbiG0^Mh?^}m*5oqAWzs6;ZsSYSYc$xdo7~&Sje3}AYPhq1n@kf zn>_FD1pEGjOAGsn5P)*hI4T$bkU$CmSpC-s`6Jf*pSAG*nr@o=NBzdRklCg`i%xfc zo@LB-e}3VQsBrt|_14+8+5Fj#xxm@x&ntDaU2~DMZGVG88%V&>s-M*9I|cfSywKW` z!x2aA1`l`B;H)@M{Yf=lwbUswD5}(irleKTD|^+OB0)`&VnHHmi6Ru?scs2^iG#CI z<8T!Hn$6tscsYH}B)7ssNg)_M;xzp-z2jzP-X>1J1TSkLBitm<`^!tJ&Z_+P?$6;C zoJ{J8Cunx>p1P*@saWa>>Ir9&Pgd!+L!Y>vb66j#>(}wTJ6qhejl=p117vQM`Z)q zmkQ*CVC_RQXejVaI9Np3_WSbqE%N*NsisWjciwi`69m6if0bOhOtAy@=5fXFp8?aH zMl5EBl?TxLBx#G!BhKmU0zP>KdJ0FMf5GsFUr6nd047i$CQ?`;VEK1+=+xj(q}!HE z%mNMMW)b?`(>TWN5{&MzC2q)pP7z>NM0^j3-L}<@S)7G@;UUO9&^}dE=a#fa=9E$sLCR+_`h=>bI_!I^_=2j0bNT5hLZK&04m6N5)LO^5GAgwEMY&fTYNqm}#^k)K{w z$crhJlO?P*4l5za)olIlD_4)hxlW1#vnaoTu9DrZKdOdj>BfnIJ-V>aWe<6IEcfh$ z*8H?Q6Bq(?;vGP3vQT_LDZ$MuK2f|04IR-Rc^rwj(+kPruLNX`j86afYp-m?YHh`9 zngfrW95M7A^4>l8u~F!^eaS-OQ5N_yv=r3b0YS}oCboxj4YdskH)#y58&)Z>;dHo% zVx4)#CL8G~cv#iweJKTP2r;igPDobWlDf9|3B93T5F~?~47d`)5M8frX_**Hx2FZ1 ztT?OM17+|nSI_q`^89psQ}H=w%Ap4%edXxusD-Zz1vSH>%tr5ZyUPv*3peAMb1rMX z;$bi(gCS;vnG6rT#5)se5sIc#!Dx7*p<*W`E`H1lly)&?rxNXR&SK_2i(E8 zXpd+K8k%6!Jel=eH;*{)7%Z!aVyLz4cuCkC5@fhXjCyhNy4szGpA>tT&qGw?cizT6 zXjFtQ?4>iztl6-f>Pv=Is`u1a>20k3I$e83(4Jd(AfG#0Zm1#nM!xAz+l$OH^^a!Z zA55>gERTf*0swkGO+%Z%%k->IXgB`3v0UrFVEQMs|No_WRlCn+z9%4&mEt9z)@to!JJBf@<)EwWia;_$78*Ez9o=!4<0YvOA=H<0!^$n`LQW`V7 zcUDKmO_%t`G$QTX_bA<&Ivxou23XOyyzty?wD-zwgQawNm~YowaQ&|EJ-<#Pe5qp}S>|GlKNZ%|Ms`@K-k;`Ak3-um$sA|@USa@qd-efc5g&XCEAoB2fYjnDU?ZEe_x;$o-+vNu7XclSh=P<&xS-%$D3*OJc*Y#` zLF{`Vu|V-i9~dydNm5=OEkMkLuT`A8Cb|w~p{uPs@U4HN(~T{7t~+0ZDCy4s*;4S# zO^NBy?mv!1mEI3m_)Ih&@0~$~-2I_-`W3b)${r#RXubh^Ei3^~kGl69@{mCMrkJt@ zl~!HE8`eYut}RBfmQw5c(y3mJ#HBClM--c1GjRL5@9!o#-aA~DzDdMP@>uN8`^HSe z))?00Idy@%Jub4|Ko$sJd?8=_ZPAS}mzlX0ogv2#uQlOwJ&-qSydy#>v7F2PU{;RFjD7H=*_+`bGZI-ZgmV zB14DSpaL2~*}Vqf1!9IWaNxqx84IE7$ikVP@{Z;qj;yz=dE*kfNFV~WBna2VsYhA2F9n=pJJU>+7sLlLonm^tn(f2^%^1s@(KondB{l z@91w#IxDW(9M+x@2$`FGW+PVb#>&S|;W21qA%;hH`wFF7(A`Oo>>dS3Q^^OpI-;Qx z5Q1EY{(wo9^Fw36W4SQFvH7k&)p!z~y9B?}NUwY4c~*nEuYn1i8#zNvedQRD%D3Vx|^WL$qr`BX)_R&WT zthhTO+-1#RI?cs-rg$A+hjm)~B|V={sj(jBsI>ix(6~zL!;G$YSpL1BxP!BgrZ|?B zV(=E@n{eR%A~AYC^XZ^j8I6H9G{|y7M;a)yg*rnB?X3^<`sIsNOceYN|lSE?-!%=$l)7k)v^ngmr7-r-r?Hs+)G-tCLpkFern<^$G z*S1GT<_DuB_t;f#PtdD@f|v$e#nQ*9VP>~LUnnG&DM>B#$cABf_eCjU@o$!)9uX5m zi}V8)9Xl_a*>+@E)#PjdL^GqHo-&w&lamVDaLR7Flj@+x+0!nOp`9GJcsdkMEScfs zFNw(sN)(61-_z9A$2Ed_AMzK~3{{EYcpUUKg^J1N@z+qD+tphPN+yf)e(xEPsW01D zX_0XmQj8_&d(2C6Whms(5pRm1*BlWVixq?W8CtFnhmHBL*({r*!xUhu5@i94(l1!J z1(7Z~#tlpCQ=;5qDRhe*lI5m6an?&A_ zEdTj9Ginz{)s3w$Nqd#-HLwZG{PIH2ok}kT6y;2BEFKIfN6hP)HN0AnV(_VfRyNN) z2AbL|#+rpuYP$kb2 ztul3+oh1un)5?q6db%F{0>_sm;5Xo=EPQMd;dhDrLK(g-UH@9b1_>&_tV2f359D5s7KAVHk*i9#W=sIY*%YR*rR! zhHNNaVm`*)*}&ij7=x>GfCM<1*L5H3?6r*8uDYG4(GxCAJ>f$01T~wj8R~1%bK`Q0 zjBg64BVmkVZ}`!(+bBu>q9{?#v84K5v(lSLo92X7@GKq=o@kz0szwZ)$5W)RmmTu) zkw&&$UI16xsCBc^VdII#OwKEYlVy}E62y2AkM78-d*)l3RbYr)(RZ%ls@iOmyQ)t4 zRZn3Ta=l?|u>zy^7mdC0Nq0~Pe_s3z#dHfR4hlLL+c#CR*smP4=*tZ5;_0Z#fsyN? zc@s`SG%Jh|MM0z}ha5ySs{7qOxL+@wio$TTa=VRRp_rJH4Rn{O>fk&bQ9CdJP!CDGzdM8tI2xu|Mpk!sD9-iOtxSjnGRqb{Gvc>~4sw7<}MfCQ)b_|96X#6g=usQT(ulVpB#Dqc9?MrsSRT}Xl z-epm%3YYWzm)3Fm5<{d```sB}HAgYjGNsNlF*ob+@TihC2idvfNlFH)ea+f!>2Tl4 zI*H=Uqn@HGK_Zu%(0+_mYY9BF@>&~YGMC2kmFlTSYi~+Rjh&{k{&s1-cxXNSijH;| zUBi>QRe2&ln)%#Zw70hH`yg**X_I%}By`Ty^WZcJ&r=$$1K+K0cZC!%qbo#_S4oHG z2vLhXd8O4*Q}&tm0*rO{7o)lHm~?rtGzeHW+i9S2K!^?K5}cpO@Z zl({p|FvbJ@tFJJ|K2(sZ>V{R;L;m{H8x~`Ib*SHN_9~+t1NWUL*I9fs-g&)zLK(m4 zHae)fz0|jz^LO5j0RO1&JOXZLVrKfGKm}Et@Q(+}HkEzm6S{njgt|J1Hjz?PXtI2R zdB;8x_SV-gD1p<`N-T3l(58tBY?`$;^{c~43hW+hXJo_qj^8yoZ_LlCEEaT4Z&nBG z9!x>8z2%sAMqC9uxShSrx+~DWQ;o!AyUW^m-qeg4oFtapEvRB;I+slZWrIvz;6grN z2KFot5hSWGi7A}k%*Hip)G^|U%Jti-Cq#gd31hSKCZdsY$>)Gad}2O4kkak zq44ZD{!WR%cc z0((eOi@A;*L!FWovd9}uicX=fqC7V?Ux2)vaOz$a0xr zT#5m4y*QS!))U!^5Zj^O7n}+Iy(@iPi>$UKW{ zNgbVVa`>qb5`9JouyLbDf2~V0!v8UTO4!^&bu!Wg#7xZg3~^#sRwqLN-rF(+lvq_Zrdhm%Phe0Ois|Bc!Boo_eh35= z?Ih)JlqrLM&!EFWPr>79>Xc`g@>lSYq`Jpn(aFJ;BghLw&AWP{9??}_55aP%BFnTh zH7$$x5=5JLZY@&cZz+?VwQA}->Px_CQ@9we9O{5-eq4-7>3$ts5R1C=`kGA(Mn~h| zu%Du~l%~b-!IyPP;qj%kB`Xhy!rstM@4eehTq)rkEDg`V)o%^R4C1r#$YkhBO|rt( zXDLcw%`TT8;r=Upp4wsEn5WZILYG($E9)_CjzH;+6me?6s>jaLG`}f+-nwKrzx|QH zRXcj6e{G8SM`#mwbif5$k%oHj1qQlRpxq06$8cOrMS7Fy7Cw#}j{nxGK<_q?7sNSU zt=k`s8mz}^F7K`=z^^)TNc|U1TZFIuS+0QXWH|^JlnrY@^T1@YJ)}l(`h_}}ex{;L zK_?uOHf2?Fc9MZ>OdZ`-4H(w7x>=Q``9kMt72dv)toZR?xQS)DKx-cBV#Ich zU2!PqpQ?JNx=j<|dPJe@_r@p!R>@gTE(n`bC3N!R&P~4mt{|WsKUA=aJ;q9!FUaB7 z6)d2eharzso*o^s8VK~RZAgM3j-ZW=n4ONJd`jVD_lhyt>_LRCj|3~glGcpLF0L2f zn0`Sm&mPfT6 zDI$$zSWPpNoAg$WBo;?Dw}F=DLtacg`H zmyH=I5^Inb^X4^wTFsbP4)7YV9t9YaQFR;$wtA%L#l>ia$6DvW6HUsp?NuvXK2P*+ zcJIHpcMCJW;cs@i9S1&rq?oQW%@YPrXtC4_zoO%M`eEeFo8rxqS2sJ}TOQ{=Ph|OM zIplPCyqOKX)ue9I<5xh=H{A&kMqXtMS-%%`9O0}tYOmXrm!G*Rue?>jixwp6Qbe%o z_P}-!-UIyqaUm_zhJ7kCe1lTgl zi-8HHa-ccLul((sbO|FwmJmT1dyRczo9?nzawL$BU3Z6QC%g!bzh*i(?y9JW=CtnoMP~xa^w#o$P9Ch`Rl%g6_jCA%foW6 z=GW&_(q2exJ0Z-uazWn85a{)J^a!})usN|sWm(ah6%FE(c*4d~hr^*qTKtGAW?KU0 zG#B6z09N*8%9Ng&Y)p=f1C&%31N;bauP&hR%_Ya}3GLEVAzRU#EF@d>CUWBWuUlMM z+f73+1Ky9qwPCH{G?M0f-Df!88P-WDygZGD z`YYM!^bndDp_A~jbrH8R&yO)ZHjk%c+5|bjgpqQAeic-;hPIm<>)p8;tdVa|g7tft zquR(20v=>7aG@1E)Ls`G48=BRc6Qj9IhI^dn&kvcDnBci>|+De5$=JGLGZcZ)RS*H zRa=`sy)x<$(m`Tr7DxStkuUq6=~c>;#|#{KGQjc;!Y_D{29d6C6eMZ+k%kBI+#w4p z)L_Q7v$*#>0lx-s-%Tq*&o$R0&LqFuQBQXCvRlMW>F&z?!Y!h2-e zXNNF@!sdV~9&aD8$f&4= z!UxTV;)BV{CTk_wlqA(3@Di$XI(yAl4L8g&+9pn*)iLlB8)|^D^~%y;talxC7pImV z@04G@(M#PPrb=N)vpV!~$-MkgljQvr5{E#vgR=j+RmsH6RWXU3OLEE6SvMjf$IDvI z1=g!!ksFxz#P0r^bQIhc#xglcn+4d&_9lF}8iD24iWv44SgNOKG|}$sC3;3CUurJuSI-KlzC*jxAXY&IHc4iI~&nExkMt zGN;0UCw%P@Z=iCk*`?tRi(fUW#d@LKW#eZRH8W>lEaTE?<=z7*H{j3VjaQ7KtZvw2 z=EVP+5eo!Yj{FBA@!|jVwpRa+NM}PQYbSbRdskCOL-W70kJGfnza_%{vn*EAmETaq z>;@12*u_$<|6(<+Tg=jx-WX|lMz?I)ky&q`!4>v>wX!3~q+mTlOk0t*z)G{dd`q@i zU<@*?_1hlrhsBK7be%Cb+n5?@@5u3Q_wD1~x5O?(@Li>0LUrQi&)Jo$bz&NA<;dROOxC%iyGnBzZzjY zy@@U5VN}xM&$TgT%7G2<2vNMY&*?niKaY#$PT$yB?A;)o^fZ_;AI&ObhuMM#f^-$- zbeW_fBpEKS+2OELF=h0W9q+zk_TxSY@B{(x7n97z>k)I63LgO^gtE3Z&9>g=Y?qdG z7tBU!MxjF&jfv*KFGWn&5Ul(MHq*yZ5H*H?T#CR6yDJ`EEUAfAODMOLk3A@lkgHerpt6fY+Z3ZdJM`o>0) zu$463RGjWfLXMIU+Ea7wm7l>Tt`V*RFcQcrp7ZC@%sQh zK*GO%g8s6023b5T;)`lmS-V=W8r28)rWJY<%?#fqg$fOsEnV*-oUr0Bf=OQtA)`We z^0*Xhp|YQR##m_CSBBOnN7{3ryBBj#inWRHAdVw`Z_>IiLp=EVXLbv=tfvHL4R;Gi zAsOf%!eg4T&@|{b)Q>aa_=pB*j>|Ib8a|NvwAn36x#Ck2DUxLqnjh&nIn;8(|z#j6aG*Z+XlbYqc5G)pIidPFLUfj;bga zFySuMfyMq@TXs$+P_&kz9Pg_DXUmdtsVm>yPF1W~bwm|$vAMSX3*Ib6ibUqNgx7SP zD&bDs6VgLJWj!s=w?OA?TMdOE_{Qz(15z9w*G<)S^jW&Y))dG%Zx-cLEpRzSoALU& zvt4cDT6c@0fr*oD)Z6u1u&L9gNGXZhKo{ortnL0c%@0Ft&>WU|mGDHYkXsgvn=pFD z5Y3 z<;4m~ML-x3Q2aTbjSaQzE*4*(i}BOVVoJA*}to99=!O(ZgbePC|Je6?4bs$^iAz-JXlJKApVOSZHjMGk~w${#yR=GWjK^Wi} z7oAcSr8E>~lx*G+Xyrk&{bLD3k%^RjS~k_3^&n~TAgcvOJf2MK9`X{qD`>oMRpymW zCiwQK>Yv|YpgeQsPI^bayN9Xu)6RrNLet+<9mrY`uW;@mv?LAcvz6q_q2X7hTWV}0 z$W%)O4cB_F687Tl*+((yAm4YPfqa*|k$XOe#mg@YCRHvJ9B0;CNIC}<^`SA8M19&P zEk>b)8rG}Jg26vg#<|Urh%FJ>k|-x{Gh8iEO+8U45&br@8bfcXoa_J)!jZTz6U+k5 zP*m8-Qnj$|E(t~oP2pRlC;v%+c~0ZXotV>S#Ql&hBKzapJpcAWE~**AF!2QtNP3NK z-D50G++m@+5g1GAt{?aUz^9|@7foXX8}3t?%{=}WnC{%lGvZL6iC=6VWwAIq-ZK-{ z4SfHULHvHm^Pu!;Sy12t03v^9sLTcYvDo|5^ZIj;e0p15|CahOTkxkJ_IC=pzN`A{gYYMC&!RZ1)qnw3=aK#2x{Na+X_=_GJ7RDcB$MbRLF@)XJj zfdm(nlv}>sqnYi5*}En#TGtqJy9)X(=DPFlv^3ncG-O8JOS%3`@|_R&77Kmukq22z zoEeN>TFQL7tXa0kP!_%1?E3b$9B7FgbH)9j)g^XC5oe7$iy+ADm>uFwL!d~(ZV~x- zZ6x4zul#tD)<4bi)7F8Yq0>8HMHoMmsz;dU3{)30ka0-AMz@=WK_4TblKO)e`5uIZ z*P92?8L$}At4!GOj00SaUR*jDHOvAGeZ9VNXv|}@HG7Ae+g?fQgBkDFTU-;7&yK~C zMtKeD1N5D#L?^M!^8(n{0)?axljO}vbXGfLjPL9>xb&G2anbJ>yxj%quq(q9pQ^kw z8J1mk^84&5kFGuUY~<@;$7?fA_wTr!y71i^@ZBo#-IaS0Km(zWaPZGLVJKFVo^bg@ z!}y{g=|b5RxC!p?CjcZkY(p|i2+scX1TDHQh*QLUPU#EVZ17Pl=62L})C($7;e4mt0EmscE}BQ#y!M(Wyj z%hl)bT;_#3*6^yt&hXQ!u%e)*bVsC8SJQ?~LQHiy_=}WT2#^9fPy%g;u!Zg?LFg>` zeD=*&lp1QL_3yl45u7J3=*}9aBJI*nM0ww6He#CGXfeim`28n>_nP&7ti1@gX>xyC z$g0XpJeKBcQ-tj@D99X|l||X23b9K+abtz3 z*+j_^|4QB3$>GMlR+1bM+5Cl$ZuYTkg9F?~l*59aukgLc0h)AAr6u=fU@v~GKD*6> zjBaJCAcslj=Pb;up{3jqo32dx_pjeCpeN6&!|DO2@A^W%+WF+$^S_9o3DbIAhaI=tyvK&=v2xn@iv6@Qdl7+|f2x zb;b&kTA8{pOP^A@MKfIs{gN``_dnSZutcd5tsnq^Di#1B^gpsL<4?BLf6}h)lWcx} zQm$z>>$4s3XAtUdmAd$M_4vduzi59{+4`+_pN^HZw|_1D<>;83*<7;#M7LBMTS@;) z5n)BT-bMJToE-lX-n0{AthxLR^% zv_?{2VEBFb6dVTbMvh??Am`l)M0PwN?EO^1pNT)x+nB0D!&nl}tiRTU`sbtj)6D@n z_fJ$Gvh&k|P*X!6ohhYAzkt5j6K)u|q48XjFg}|moYw2>FoqEuFEG0Y@SZzDI?M9& zkT4j`+1Jft(t^_@Dyuldf1d|N^cmQwebe}Q>FjKMTN14pb{W_|8rV#FOFsxvQ-~%~ zQfO0KD0;)Kcx{y#kAMehD^&?!5CZII^-7{YGZcxV#>y!dNe9*j)=i1vbxoik%t#ebA0JAp?#xW0|&!F_- z>7POn5SqTRz4JvE>*PwZ_j)C%wq+-gI>N(2RYfkC{1_5I4T1g_c4GPv)bQLI;~V z+svU(mjyQ=rr$+&knsiBZ9z_jl;NaV`t?fxz^E>4PfYW~-38Pv$+&12NTcJM2T$NQ?xjnG-4YhOgZz~zMd$9@zdy}vVi*8` z?|6p{9j*{|tA z&Ef1O{*b_zO$jB{g#t)AlUyV1Ch+jVsXSvZD%lqS5%&}<0*mWe?P`vltDOcYBlOq%Z&CPApwPFC z;35sGR?5YlRKx%i0V%KHq}~>USsg-+swI z%Rg2Sp$MXOrv$mBEoQPM%nR+q?MGr7cV2@HLin*EL5U@c5$U8+k*#YDW|4ZghD!*Bst&bq(!~ z>?uY6hqSj0j-y-Bbz98LXfZQc%*@QplEo}p%*@Qp%*@Pe$zo=UnT|j2bLQ?ncb}PW z?)}ldBC8`hqEKw1;njZl$gw^8HGjvW*rDgwIO~ zl`yx?imoMdYtx$w2f2Vq$U8d&mOS4f8i@S_CLo?|zN#ZHg;=%)>#pmj72jBL1Ea)E zI4@-ebj<|M`*usG`3fX;Q^QxSihMD1_~uX7t8xJ4x#&-x#B4wG-Xe;h?uS=L5ScVC z9Z>D?C>I-(69@vIuR~jskHk)Y6urv=ZhLs9uu8SX{ALmYZ_Gu$l}pY-_4-sDR%0Ho z=IEx9Bm@UFddzf6Fa{)n;Of1fjMTUbif@)10yI{Erfc{!5@(7I%gxX+abkiT(n*$=rc0TxU6 zdCBXM~q(xT(_+_ZIFo*C-;S4#@IReJRFin|Rr z-H7y;c>WTfY>jhdjuU6xPNpS`BQuVibcU*jePdbpFvPW4ml3OzUGbLtPMdLAhiUjZ z*RlOOEx$|7@WNV|2NxA_Xl8P(baXwc^*D@)hCZO?*?tM%(p-<$?4Uq<%LmpRt8~f? z-*F%B2|<1oZWwkkMmCp3&`KXkWM+;utZ!oj^XJT7O?d5<5dvZ<*bo(SJST<#|vcYACq_M)N+%JPT)4(KL}W@FE_H6I^{6og}HmKR70c62x&S zPe{6H^EOqMJ+eh#?idCm@vE zWbMW3A?HS{HQ7e)x1vGdx1$ZmD}wUidJ*eWEF4UyqYsW5lk}O9IjR9~l+eG&;|YzI zbR?Gm3e+ritY|9BvyJg1QPLH9l61f*!Gw&|IQ}{=A;^&h<<$gzqnrks7h%!%iY8$w zfu_%qftnK8v|Tz7=0I@XS4xNaXB^!aAzM!r@Ql z?L2eUdeZ^0t=%8a&+?&ro)t761lW$6PLW$VrC(g+(gj1M-4sd!&86!p@Q_=M;4@7q zG#QWlRwzJVqb_Ze(8EnDpy`N%a_9U-5NrW)KK~R`Ssh~~e{r3wSRnuaIy3+P_P>j% zj{iq>{=bWq0G|xH!sdA(eGjg$RW=L%F>YvTIj#+(c|X>yI20>cfEQ=6Sl}Fm)$IpY z30VlY+2E)2`mba65_R}euqAwMIk*-!$U?q! zF5@iG<-XnLOLYF}w0rh^Cio`fQqTx-eSh|2i@VMIE9`rQTFt}jyY@Vrqftu@_U3q( zhab#k&84?y#L%f^XP1T!?Pbc>iY7N#M{?fE8W?+5ukWso_dB%SII|LA5moP( zm5svmFmzFQwJg4>cVS(BC(J6flTrzr5~x%e6YK_lUXEPLdXi1W<~4VlPBf}$-%+PG zl0&7I@u~IbzzJM+9fy{OLO312@62?h4$i^_wQ6rdMt9Nj7+oV&;l8@ zSas4#@|nAGW-#L5Hqho~MsqS3)BF{Yajbl9r%#NT-b7T)epgWMMzKMy8Stoag-n&l z_2EhgPAmx}J95;C`VmH>FG9`LrgF@^{v+yOnp!pVU3Tue@3papWVOxY0lNUIP}_Vq zaDC6ET}+~>x-Y$}o;1As>EZs8-hvC{&|m;UU~e0|mh%O$Zkz;zEU+)?tRJWtKutc+ z%#$$T!?q`_-K+VQlBIK~8}d0zhR}|!kc{T;=>~L))VKtX2Gpf>feXexghdY2c0jVY zT&o2|33;-FFQ#d$QdJpraQ96H{WDOjv3TB&MM47&x3Z%iYYa6uFrPWV+^NFe^{RmR zzINowp^=ci2>2{yomfB@mQOzLt>)gP@s6vtNCC@p-Rc7@&#t`v9R3Zj)yRs1&+?n* zQ{DO)d?P#*u)-XNr(&>gzAg4=9lBzzySO$ZPi~66leBn-u8|;?;`A3sm^gr$Zw)!b z^c;-rOYiZ8Jp7SO1r_a(-SMrF56i;>6vg?D)O@NPBr$D~@2`GFL*Uwzw>nJ?pjdA4 zjZqnt8@_=e;5k%~+C<(&x(IV^}B5K2U`Im(V(pF6>MYyN1lMm)pUQ1hhhmm_eMVAO)S4^e^qF{*qOD+emnIAwjCZ&ohswM0;3RXFwy0q4%Lnlh^zTKqY)a};=%df87H zzmR|GFHq_s0e$$!39HIYL}LVk*oT}|(3Z}S*p_E*8OBsYHrdc6v%c^>2*Srg8*y@) z%xb9$*pPlm6CB|@Mkv=3wKNa6r5H1Ci&}{8%e`T7(~A&4+AMYU zk1F627WjRBts|0KGo{;+BhZM`BxDkYu2Q9ZaInTc4r}d(IQKv~JrC;KPl!ge&|1V; z+VcikFW(7;)a1C2+93SM!c|uEV*f?bUBZO@ux|YQW}8gG;=G{N=O{0F2+{vRz!j5x zou}REdtfW(JOzr@BQ2ItUFONONpph=2#Gq9o8xl7k}Cik?+e`;yG<%^elM)lQr*>@ z4grlSw7XJV92E2%VNnJjP7J~Hu_J8RQ%WjMfmy7;xJoc2tuhujS$YEVG<=!ewS=tH z{i692slV!7kL}y+Qp3{J`_08YZ2YA?!FQvd&pfdXX0Q9JNdmoT(j0X(&(tVrnsQLQ ziD>t!l*fx24MY?YnYX5f+@(lNR|3b7Ln$k)D2|)`W*3ru;7r)0c+E=BiJSBitI&gx zY+fjfi2@_WXU2IF%57%OPrMMf60ryFJb3(2I^>ys@oh3_SIXUWLuE-O+a9Zl6OZ6# zmC9dCpphVt0jnAWv#Rvhu_4D9@JEib48(Qv$mz4Mc&-MadL^dQZ!-ISS|{xL0r*6$ zHKX#yr%&rdgPhW)w{=#d<^4Wd=dL%QlZBv5T|wO>DA3K_AY%Jw`QFeYI4VW$mR2Cv zS;Eo)^k1L;TrrGMu(-jP`oRrj!V6T#X{it^*X$oF400P_25n}Tp4b;zZA^xYt2%LIGv-Q#jb&vT+}v~F`wMNUk|YQ%)5Y!* zehF*k5@^wtIA&wQMU2s8MrkW$xX!>RA)ZoG(LGSxx~z5lUopOLmgYxi7ULTfC>p&= zAveIpvv0BEHjG-OCPmd{T6&!dM5uF)d2TO3;kJ8nJI57AT!%|wWpEcOZ z-Ub~DPPQx2t2eFt6O!{8^Dsnc7CcI*u#j!3Tu=1EHl{Y0>k2B_$$=8pdtvvU#S%mn zd{dzxsEgWg!7t%w!n4(A@%C3examYd^J31?t|XUb*42D7`WHVRe;s&6sQmH_kgv6i z?nV(w`o5jwQ&Q>vXk!Mvk2;F?z|KQ?efAOQd{KK7VUG0n)nKuFT9rc%JScoL%M;EF zzeWz;W4?a*H8e7`v0>=k)2SPg(ebAFahRoE>5cBAS6%J<%e))Nd+?-GihM4RT7`{F z220pc5zForAVZfHj!pC(x=w%c_2B*W47jq}qfNW3L#z73<9*@&v>TC6XRGTSsZsl_ z*0ZPcGfnV#+lBzy6*7BEuGLn4<=>&L-#Gb!rsV6!d8?C$MF3Uc&%ws?82uSvz~DSCaf59KH9@m&*-nX5thC&7MiVpuuMCZiGic;DN(w zILA?YmJ_ar>O)3V!&-ZLqA8UeqLEn7I2-O}rmg96uyom7C)CCK{+$He( zVL=?;z%tP|&S%YvVh3PoP!g_y4{%#bG~vVZA6uqKPv%TJ6&r-0D0$_VFZHq>bad6y zk0DRp{K*9ZPnUFH&S#6ooVgf?Q2f^g_}yHi<1Q{=BieT1eUDA4XRQ%JzrAv z$5yh(ZlWQ(;__RQ_^ikDZKr3cH! z^&nEwUHLst9~?YV5Zw_&f@*iaJ#o*vZ9KCj<}!*Z7qSyMzncmzFmYh52Jt5gK|aoO zIlSPvzFK;{BP$n^>h;g&?Bai9F{36#Ey`}$^-Bf3`ITTkeTw&hT$43aC8d`l`e&NM z4Z`A9twkf+@k8a(IE~moJX=WYp8dMhzQy86r}zVKHWG%6}2iA-s8dW>zN-9mk%?p2={xod(-fSn#J(_shJUwUnH5!?)RrcaAKBnm zxwjUvm|E5yuXrF)s)T0d%BdVAohV@z_a>VVl$~g48JreAZqJeONELB!r?~Hajd(g@ zdZjx0+`j?EVRRwk(p z{bTa6E_1nd{O;uvzw=dnm5ZCNQ45mKwY%_ivNqU zpyPkqj8Qn7_cto?mrc5je_f888=b~~zAQ@`TDCYMsNT&!L!(sjE%uqk2;8wO;^J@M z_!Q#ecX`ObP=z-D@wyF|*!a*!GzAM3ShU@u_&sBzk-CH)hTE8@>9p1B^IzvvGDv0R zD_q|XwR;@XuE)no-zsi>2=zuC-77tAq*;`%I<*=FQszhz!YY?(3h2=(E$}!c_asdSescgUjW9Va1{OVG!f^Oq=u~F= zU5UdJed6l7CsYAR)oyykB!i8e8SK=l%Z8E3^|9UvDq+eB{_-~`2^oa9gbPKa&gzyfpqVuYi>{TSTOCpFEoVv}0a=2qR~VfMzZ@>$Vm z+zeAU&toctHA=xv8QZ|H3XIqJJ~o5rEeIWX$>C95C7pU?XoWblW1{2M_IrcA`YUeJ zOO+w1$#BC(R2=Kt+rdCDQTULmH^o@K(W6i_qhO-Rcht#gCB$9t)dH0jN%o9BY9&i? zC3x0dJunk550L5Y5`mJfQ3=7?Q~Oq|L)}Mc?9t%vnw}g6Yj2{I0Ushs=(xppgaSR-)>HaJ8rIBneu> z74+EW4^XmPxg#tWrEZkdSUwZFAUzpCOy`db?WL(O1i#HBD~jDUFcl3@dte+!l}gnf z^Y|0+xA4>~<@Xf}`1rE~)dlQAbBY}p2ib%cxf7%a7fjhfO)1|?zvg1)lFNw) zmQ=4j=WZ}O%-r^_^q4!iq4;C!w3aax8aHbC;(0P5JMHUpb*d=98&EZ{=Py!A2Ya1o zn?qobfKIcV`k_tBN*_UfFGKAZ+%%DWQ?F57(~vOZDGGsgvB*&wi1l@gcD|HjDfCMS zk6tYeaak?Ro}SfA6OM7ILF%f?<4n8mT?kT&+2d5M7-M}#-MY^O3Wy6inDWy z^$}vLuh6X!Q4sft)9DuaDSF~LxiH(ADdh9bc*4O}Xj%CpRlZ`7K_*v(JfWfXGPb{I0g`?5# z8ySBY@~nz}tuI&!1##cR{?;D4;|{wsmxf$BMH2=SRhs*Ow@Cg1sw{=?!{lV%Fzzwm zD5k1hthFoJ?RL9C3fh_NNu&7XO~i=b@B3&*U<2L&tp-7&ViDFpA?Dii_EurrvyeQ?h533pKHaL;JUX=Ld{igyD{|yCpiL>aZ{AJGrA_Camv^d8`2wV(p~R8lYri_ zN>uD)SH)F)%&x!$$D~n~52H9)w}`C{(#2{lN595s%RH6L27lCW%57=);G%qJ=0qi_ zx~)XdcavoRt|gBtcm%qmgs?(jYJI9nBGD9MWTgiAbyQH-y@LQwQGgOc8Ta>Aaj8RIzi%eFpOX-NdUo(h5BJ_ z=z7e8InJ@kB(Qe`Ozaq0R^1Vk+=x?F*Ag|18W3co%`JV}hd&Exk(hV6!ZK&at{;PU zLN!U6<@QN@B38)!FzE;%^L{dxCfJfE6mPL|*EY?(Q_sBHaj(T65HS!IB)E=L^uPiq zizk#Gb;wmA(BQ>m-YDE{1YEHm8kiElA_^}GXIGif<5b!O;XB-v0f#4SX37jA+hG5_ zs80yGcX=_rdC(Fu6waPF&T=`jd)i&fn|ajNCwma2xxI0+)t`()F6=8B%`K6-E^VHq zw~5x)s7+|v2Z4#A0&_c?O+s6n;5}g_O;3{I8`HRgJ>_!tWNp*jG^KOcPV!@=Np!{Z zU0Ny+YoHNaBPlyB3;9{>Bn{BefnY!wL^@E`>4QQu3|V((dG|;wXX=@O9FF_trk+r@Rr68d3o? zuZP4q?t%ro)*Zd;!A~#w@_f^;5>5dpwoxqc#{~&%xCPJ2)eMXDh#eNkdl;sPnJ?&A z{icV;gXC3&IDnt|H1^nfv|dX{c!y7ndBt52_`_PbKv%J663vGxabG7mNp+4ouuxzG z+?Q0uu96N3$$x4T@_XYNLXc#$*O(O@kj}`X&%vkohCAojMts>_=qGGPXdXM&ma81t3u#QQSrOMWC#< z!asIVycBdl1FFaf^shXp>Q#Q{Q%*@fqGl@9Bky2n_{^~IZE(qJl!|5A_4Cmb|CM|+ zK2X6Mhpo005>2hI*d9|<>B%~j`;O^5$Jr$;&OfLsQvD(bmsfVeAw%3S!g$%E%ME|v z&AZ_RbS)%lW{+o&InMuH&-&9&rM(-b-=yt<>cN^vt{#O(LQY_^lE?%S3mTGy8b+ca zRXd#$$FeYvMc=TVj)>2*=00hN7*-y=VU9yU*A8*Ma7I z6I;16F*CvIYfnMG!!9pA|H=ehk#`a?NDgQuy`1no%cO-)#m9 z&_`XU9K;fxm;dy-NX)#?J46*bu27p+}t((KSXxwv?!P)#HA*W@@~ z+BBSN&DRszKkuC7!CY;|7tHg#eAdXdb>QYospK&`NJEI)Y~N&Xa|qC=dh`k@oJUx~ zZn(|NF)`5@GN^H0I|XTXEYzvWq`n=ls_9*GD7q}1`Mkq)`kB9(0NWC|aT`9PR!q5u zu1c|=h~r>1S^aQa=87CSG{V0F@6!I5`03GggG`3%z)N)~EU(XD?7vl?I&4!!^4mL@ z{W++~JXHZMQ1R$6+r$JXz`XS=!_KpEX}Rw3+JFpGr~-RX8a%Rw)FLCyZT<1g8k z0*Ai7y6ig4sR6)Fu`(>V8yQG)tszohC|Vf^9wC)qWT-!!85C0Nl<=@)IPflmxcm5g z96vs1k%fIwr#Sc>Izp_Rc)S}ElMqNhHSUcS;fkALU|%3PA@M4U8AX4{5AwBFN%IUXJ@hdJGOgS9}p=@;E7$i=#p@s9z0~TN+^=QKZeG+!$ zR(bot@2I%aCs4y+@IDvdTI=q~9X+Y3CDD`;h_tQ?J}$3I|J;-5FXy=f;lZ2w4L#29 zr6$3D={&M>%D>&`zjK`Hh4Md+vT*Sa$Eo)GhvUe^)Y%ODUShj~d_Z{f6QQN~+la*F z@yF&t)h{69LB)y$E*{`$( zw)DL5Q?sHEW2%<>{E+J5?cTjzTkaJN(@7Gi>58aYU=<~@GuZ+RCPq`ioHjx(5-LRa z(@=84T^MdcA6G6pB7yykcSu0q`}~%oCS{8LUpspvWrLLN{yu$#-!X{lznsGVX}!W= z=jKl<@Bch{Dd^Y?5WsrpG;#@dLWHteF9;uNsM{$u8;Yf>cC6vM6zUi>nrLE|?EsB^ zc)uBVcXv-6GXKgTCV>y^Ixa+q+vexpUWpLeY^FCfy1ayysf&uua$RK=30RNNnO>++ z92A09O7=rV;0ldi%B+$t9?GX2$&Jt-iCq9fidQ&lH)IXE*iTp#eNRFI!vzt1m7A~s z&Sp7Ry?_1`aPiD`s;E3T0D9a;Y9-q+k+9W?amvOmA6eZv=qZIzuQkVRD(+rAds9cV z(`?v5QnT8_yrY8MCAqaA-np$;pIYHl|4-YwoE=$YXoNloX^;T`L&tw#3i^L$_-~g* zmKsN{|GH~R@&Z7Yevf>P1ApubyfGWxk$Wqkmk@XmOygd{s7&CYM#pe^4iX>-CSXT# zwh#~mv*8BJYZ;QN(P&i4Vpwr~tA#|=eN_F{NcQ#Mp4oRX_sgaECTG`s8sxoEaP#_( z)1`_QdXKvj)d3H3t0~VbZ|4T&My(1d<|fgix+nLQQ)RV@rXbTUCJ-Yo zDdr^0lBKF226nYbs?<1F$0?UxKi*&_b*#MYUY9Sl_z?Cn-){GEyxv0SXcnG{o=VrD zKDj&QPFU7l(J|JdJldLOtC#hYl5DEbfx$0=L@VmmZB#MT#=j-icB%VOe(}ckt|Kv+ ze&$!VwqnC^URfm1FlgJb1}a3T_y!$of4!^kytugm%T;xHI&TS5oJ_sbLEU8ezF^r^ z4+_#RK?slf;g0Bq0+&B<4D1cRcTxH!ORS54GmLI`M4%HzXT){q`N!2874~*PhXO+I z!0eL%qAg(vaH4`%Z3JD{epLM%q&r{E0kX0cemfH?Ly44@`hILjxf9u`i8se z4*~Ia`=`7EHgyN|)d@eSx$y}+pDN^TWeuLK)gS3PPsCCHh`I}RFsU!sM?HpXlHwq# z)=p~ZzVH#aEs9m`^HeR}>Zk!n?9HHe$SKPYu16152L}g9E^x!#c?UjD1dix5U~`XG zh^}tv#!;DBug+|xLC0X$d7!12^s-FvBtlp6o(e=L` z0od93puO!!*VE^dmIY{Zp3Bxw{aYzqILxv1A+|m5F@rbbA-}JPZ#}z-fw7{}9ibE>8_Leg_A5UB@Y?ilv#)`sTu1)+g z{AkBJ)Qdi-K+BM4+S(XKxy6~eU zo&8`SKi8mW+$4TR8v0}Vk4K67Ass`M+Yn!42uA{n6NVu5i&CTbwfuL0*{|ux05)}X z3~mT@LRgc^yIkxa0sNd_x7p)BeDt^NL`gXPTT;wb<<~!hrvt!EfezgOL||SPhQ;U@ zSqUKMU;L^*(qWTXqCsi+v7~Zo85lZhvv|7|3zNWPLiiU@oFt-GLdSrRgN%cke_+%H z7+{6pQucKa_3*K%#&|UH4j6pdTqhMInz>Ze2bl>NBsG;Mr2v})QX__ilX5_(DU0{j zF7p%Z6f*C;mA%7*A`=VKfau6zdKI8F@F&LOg6J!Ll2CkWnaqLAH{4mNB~Vfp4uN0!Ynlcy?@FjN?6- zlHc7T0oSLFh5t?&nx?M*kS#@-63jgUDO9XZGm@aYhMEov0GC!*;m3$}`2vCuPR`or zt2e1R2&j)1f|XqjmW8UpUkGsAo+XyZZs5>M`pgy#l0u3y;AY-j9*w|4gt0*`C^8NZ zqOsezMd~LX1s#iPGmH#`o(cWL403{fId(=P#_tQu$C|IPf zJ%gDzk+&*14{^8xei?6DpWhb3NUFugVeIEF&^_YSL0k(8Wt(9K2&41b2-Ri2H(?b+ z4LNWRYNzO79^z(4kY0@z-@J!r8>rvv)5{68* zNkGAXQJ`N^Kd_Q%;FhAuLE__!72tPHHV7oD1fEqqs@T}R2C*3@oO5WQZsYdm3)O=d z!et0MutenC?O-E$^jTRjqr7SNHz`9Se)Z{%Om^B!s!i^d%8l4R1PK9t2WiyLfMU4b z=T&7DV+HNv z2PuM-Q`M#qTa_vQa$&=+Dq?9Q`MKo~5*vB8inATCsHYUBu1W3MU*y?}402DI{Aul< zMm$W26M32d3lFU7pGO4vVud^uf!Ggj&`>0|dpU0&a$+={KQqyy&`Uu822ABo#NB9IBw4Y(o;o21?a=QNf;Uo)v1~_? zk7UoAZ0Jxrf4*$VYwQkwc=CJMbRMgOomGFwEtKq!^bq?a5?52YLg>LOO9}{2Zu3RI z(s5UGy?~I;b2@VcG}{fc(@PW@NIUGZ2YecwNC<1Zc`|7C*HCp4pfV(DDJmx%6f?19 z`~dqt?WslY^Dri{s^P_XcsS$`pN#fRcLg-)>dJDLz4BCQS+W+#JvCN0gMTl?{M-F8 zn$@{SK@)bnRizj;gg!}|>x@;jd*WWTv>UI?SkNFQ<`F7O4AoB-%wIybF?Cuoe`)OtNpT!euw+6~$^6lx;xiN!KAwmgog$H~^!0(CQ zjlzWFdRc@WW5yBHM2F+&6_}(~EUOd{A_|-6VfErYjtR)ySiO){yminHIkzgnYLO+g?|+Z3dm+M`sbbV=6bDODFC--B2H1q-R6Pbdlq zQMB6JS%d|eOSwxWhBq=0NR1qW+v}6F22ga*F_yFCbao-@UWDGxiH6;!2r7az7}krK zP+8jCUb&e?rnWnH?JY~m4j9GUHayO~tl?^0Cj9P2MmE((HxWCT z$}>347Cot$&$VYN*ZN%6GUQ0ef~Nj1e;{<DEVNpIz!b>h`&5v4YGtz z016X@)=$4wQ{7ke3>s%UC8Z}jzzJgNw1(W+xaNR z=8V)80BIQP7@O#*TYh$L?Ul^~YzjS9B8D=36eYYsstFVL(y@+}*3yEE$-6>*^s|Nt z<^1f4hJL3)_V^$0H?Y%Xe4*p}OyW*ncA=?SxHAbk7F10@012Kj7c{RfdWEm9+sf(E2J%G*dtDgQwz)YxVL;| zlch$QpDfPy8)tct;i0SByx1M~ABYMUxNzNFZJo;4f+4t(kiTxuYCeSOj#O65HqJ-K z=>yCxu!W{(eQi))x4gY+07yW$zi#=}C0|u~dXCu9$O=qg^y;o+xcNIHLPW&vg8OYa z@W}@|5F>Om_M5-li(GJzq+y2))5tzd$q(%CPX(Brj7krfq2Hy#Q&Jt{f1-Wj-Em*W zLPar66HMOTs<(roh=zH*=06=UN#b{}QaZ9<1~GUN-M1K!3@bz%9KQr7XxK0nnWmDZ zsy1yzBgezoshJsDlV;mvX!E@q2?fMBPn==gRl~wq{B0|%^mk$ z5=vMf51lsAsQR~kfqT-Zr#|&VAM{pCno`tP2gSG*yQo9G%&DD#mk4W6(5vyl1EgoJ zW9?u0r#Vz}1tHmzuIu$P&%c2A~QWIK=S%8SQNsEdvjq}e+~Go#%i zY%-$h>R}lI<^{VR)tl14?6d9ELWZd|D$x{K5T|Mu0Z$+>OhTIfIM)lE7|JK*Ma3{- zXj9Pq`2wU;Ra4CB&75whaVGL0LZkQGv`Jvny%%L^hjo|}&)@nJX^ldVy_h=c{EDHI z0UmzB=tQ~chy2h-5(O}6?_L(zo(=d_R)(WH>y(#uER(ahs?H{cEKR6OT*nnu4j0x} zH5o}$9YN2u^;|O%2(gwoMZ%7Qv*TIe4;}U@EZK_h!AGXumwpT~A=()94NB7$x~Te( z@$@>Xy4pc8QN#{L;0dX(c7YxOy%z&5Gz~-afH2LV2!@e-Z>@j?E^tg z&prLzmInntkpNa>6{`bzv1sA;Wj3o;%f2Lxx4HvnxYdlLhjtQKkrl?ZPU}#q%IcvC z7RLhIZWeC7Zou5dLJAaxymUUoNYHc~XfkYq&BK0*Su?DkvhApbcD#1t7k7KmH`&9Y zFdm(rQH(c&)a+x3zB9CsoXRJy4G6U-Af|jJoVH|l@Ksf$1J(4~r=0rKF$C(#Tc%sA z@YoKl5KqmWEJ|h`t)R5-eH`4&8iFW;5dEmeXb>;+A(hoH0fRRIiXv9N5=MhqaZ-I; z*tO#ix#BbpzKF8_c*vGd_6PH^kmYRT6sBepe&|p1FnF&8F(NW%iH6{ z<1DVpimRq*vzd8Ia4sAiN|vg!on$FNt8U5IDgS7L%r0&~!<<{VVxm{uUIT%qi#aX{ znm@+myacte_|{fcJA&~_R#_%wJyeKVNq_p7mkR7pTJr=}q}Z@j+Su>1Cbn`{-=%WJ zycpYW`FNDKD5nDsju9VDPNavD(<-s>_wHjtNclQ{Lh7|Qyd|$GcDe_ z_qj+x{~QOs5FgA%U8#~3kD>uIY`F}Mi&~{qwzVu(_03L3Zb@80WUYr|Nc2^N7xheT zbmrx z2h6`#QpMJqT~B}j0Cz9|z~sLyQkj|m|Dsx|1b-l1B&8ou<{fdCIv*P9Qc4?`Z3Dvs6w&W$}b`L{b)Lq z<7nNY#e9pelI_j1NV+Nb=sH1|`=|`pv7a*g<&6$+UCBa%B8%xdN!u>C%T?G&8){@Q zjRi^4tzT%vf%Hw3d&n9*kt1dw_=$&G4r8w=xr0 zIUQMJS-V3#!wpnyGZ7yeISB#8;v8iMu2|*I}Nkc4;ASCg5{31E2VW#OsH`7g4seb3vp0EQ3>ulvfm8Ij*Hm1#P z3>lF0923p-dQxzk5%J|;8O^TuWP}6;03aX$0JXo#XyR|~>V9)q|3_5zAB-0Mw%h*d zwlo|6M?I_YkKC-^-=(tuIQI{Q>ufZ5e^D8<_75tjl&2(be^Yrx3BCc7GtnIglfz$# zDo`Z8k+G;*XDFZ(N{!Z6R7aLROyU)k_Vs2`JL4ytcoITg#O8Vq$I)aOmup({R~MXD zoG6c|hXbfemFchRLf0=$~HXlHQ9qqDLGE#Cn1$U z-@uSUwz;1+US5v26|41;26)Xf!Jw=$SIm2&y*F^Q#4;N#EW}sYl&~b?a!4xIVM7pu z7_k^vaK*%2)eXS@eHXDchjrk;nUp2hVpN(y2ODZLV>dyXuZ!QeLs4Mlb2Q*BUZC{c zWh6)LAPB$T!N1`o-pgDtAIelHJe;A}#hl&%RznD+Ycvg95XoV()P8UK){?q+OPAy; zRrMn4Sk$zjt*QPQ!`;=qBFD(hLSVIQc=gd-5yiXrl3tY(5%fe#1EXs7t&8zu^i+H*W=`ljzVM8R40eB!}p z-uS0?-XKiVk?{PfUZ-p|)_w5kyQULN`1L7Vy~ zeEtS@F62L;{p(ogAL}1S+Ws!CcT5F;@GPwU@h`Yus7%=Wlt*2ErH)?r;`7Zp&e!87 z7LLOXM^tFx7EDN{5VyckP_le`w;plgW3Q$p|SVF1cu}vGVkioyP2Vq}vng zdf;(is9lv<=#C8fvf$A^TjsT>%>0IPGD&AQQ)#5rK@p~VrcRt?VQ7}VEmI!0&9uz% zw`e)VtW$Gl<=jTX z5YYFLO;$0#+#c3jGGrZO&L%qjHC@DGdY@S?oKU5FtnFx)-Q)GJ(Rf1-@E0^j<5o%+ z_?_iud^5iZ@MVlxa?a~!1;CdX)GKZl1*uR)U**p~_J2{X<#@>7SBY+nAZgLHBJoFgPA6 zg4C=xV_L}2+)hL$9=P8Q@SSvi>42C;Lu#InPHmltCzyrSDJ9A{kr`Atth=pp+5|!@ zyan8?U<~gCIKh6-rwO&G*uyKMx}Ls*&{le_p*WrGXnnFa`y#3 z`_CC6tKX@F4hR6C^|y)tzla#l=KkjWuOy@8x8?t*6W(9ahJTa&37CJd@A4Uk{}=mD zuGxR=EG3!05{S)5)C4yex}AO$L?Os9!r)$fNklZ@uy%&(#njfuH|5;s1L&>wQQKk| zLnXMnh#%c)&)%DpXJOilYg4*itECbp7@%$ogiItJL9`CuB2V*_TW#VBUWOKiCy+RL7}CL&+4F}}!JX7Ou!tqyU#O^DqVIXivnBXK=Tr-f2j6S;z!k!=$te&>L3u5N^zhXlkyaO5tt@%med*U1I zY@`zO#W_@MfYX4B+N^(ki0$J*}%h)pizOv0H8x5mV^xI(rb_V`Q?gTOR-DxYj3 zWeK&FX$xuMq|-OS3vA{`qQXhD;d#M#=29{#dKfKVpCuanKImP}HJSQpL0$FHJwzb( zs;*6YxA^+57^hXPJUxBeraf1YST43UQbNwL)j^Ty>gw{ah^g$=gV@T3CiA5-bjOBX z_&ubVbLWei$-+kJZMq}ygUhgLh=H+G!tr)-YoS{3x@HWTV`3i96q@%NmuPcIt1g3Q zX~gh9e$(|e!a>^}R<#sA{FUu(VV!FoPYi4X#Uuq_}K z*>w>?DX(y%Cd*1G-XRAD4B#Vl)6X(HQ=8g4NnzoIQc@+Mi%k#a`=iT=JBdyj73m)# zN{lsUKU#5omT@!VYqsOX0e?1F6wBXWo}}8ICv_A~x5+B|_@jn-*Q2t*naj|z-PVW; z_vjd`s@Gc)_|^E&EQxD8IXRa<5az}?hgE$UpMi1@5CC1s^HQ2t1v! z8wIVs8lk%_hDX(DXF16K0)QX6sw`hQXvY2MSVdXvuSnCrgT8*p8G`>7-mGlU1Y+|o zJtq|;TIYeXp8!NsjL4V%$wm~Pq=-J_74pslYaEeph%vAwl)-ojs12;numC>f2J$2{ zMS2;9p?4))g78Q@{YHd68nr&GLvGQvKu<>rg7QsBLnk1lc0_lC0(0BHJhUbH=LSn| zaGppbX&z-`+6I>jT29?J1rw0;$(q4g8q(KZ^o#1Iv03$Cnyw>X{~NPo zYv0T{U6WM{K-GMYCA{>;T3^Fv8f>c?J-U=iv?u}zdk*;+>||M9G5=vXoK=PFkg9fv zRN)YZ{vtkM84=Ho`*=@r%}K)|i(Y>9$r#mb^Nb;C31IKF_=|8s>L&6@smV5%*(-u# zmd|lwBMLOVX@J3`s0cxo^x6I1MEjoMGhOG6glN(>2&0|nNMh6k5pl-I9ws_^l5@P} zJtkg5rkpUD>QY*A-E$5X9PF$(qQ0+=NGq*Ip|EJdFxxO>rEn4@j>?+rk3ueH>b!Kp z@!Ln7Ie=+^o|64W!us+otH<#vs`P442+OIE9#)-%OHbJCV+55Q0bQz2_6T3cZ44Ia z3fy5NRKXk<4v>0Hh06sB=lDFbO6x7C&aJ4ZH$eGFOCZyuUN~j5A>!=v9N@*uzw1on zW^BqGT&f4M@12b|tse#Rv>yAOweD`aOWrj?8VPIHUApi1VR-kq z4yote$(1$>YZJz&?(#GE5%UnmXXL*MiIPk(G{-N)&j zntxcHJCaJ`-=t&)zTgkblRWv$?jwXe`$kf`=@;4()m1L|p!)!2Y8gae9IUCPy@wZ5 zg-h6=tFnD4me2uL!@@C6QBQOzPEVBd5)w3-eA(Zf%3$7(_Ap+H$;V{R)Y}ZM+n<5Q zo6A)57UN8LVJpJU-O+Q*1LrBnehYkog@4Uv8gLqep_8V1m<_EabdFd^*~PP!?wl%M z6i}0+4y%TVyYZe99u=z&$Ck>cRU)PR&I-G^m6E;MBPZB36Cd!bf@6j9`Vb{m7hm3o z1P+dHDH$lte;9DY!={9wmd{-zQWSzRN5vVNcGE=3qfUCE@{H~ zQTS3Q-dpBXPJoJ>O5>Tt&NW9N%t4o+I^2Zynf}#o!7hGZY*9w>h~u14sxlcw){6WC zH_H|Ebp=QBAbz2Rj4nl=idSdTFQzn1zp!(JDwmC= zmfVe{g7#WXu}jV5ljuET__=BoUPI=UUgEL~6^ebZvZ7HLcTNZ;8XDlMZ==f%e7XF7 z*&^g8^`j>7ozC$;*|$rvK!V@egfAcf0Mh?CxPQAe{fA+jY5BXr9{KtQuzO_sN&jzP zm;9e*V9PV`3naQPAY*Vk1tHio&j7jz(m%R^(l!MG(A^C8;<*{xLZ~qq8jTyR%w|)Z zPIhi5WhzzKsZ@tVIoY0g-BMY~xnrEeJj48XW^?^sbg~wbH4^XPFEVS6y@-2^;sbTI zL?rwIySoCBuN0*vy!zT~F{K7=*^j(rJF#BeYay-tmV zf}z(M19b8G1nk}R`D0%;_t{}@6xxbw&BHD8fTPGR_Hnf}fzJh&GZ`9vd0T_^Eb{A2 zOR}ZZxdsT^WTOTAZ-N&%)+$q<;pO10T$13J>u`Iuicxv{;;s>O0V*xbA(pgnc!Jp(c_BN>jNe%F74C6P^XRxKt#DO_QYbD~W#Y za7MDeMg{BOI}v>+F4D;Gnt8m(X>>Bk_YkxE$u5S|+iJFB8F($#%;BG<*=3uQ9WWDY zrc#y`XVw0=ul2AgVQ z%Ho_#IAyvvCU{H|lZ%?!u;Xa{juxB@Yc>mLCAa02t)npR#5mLun#}_;0#^+ZYl85G zt`SUU88&6#=ZY`TU$-j3G8{kZe<3jjJdvvi%F1M_u~c&CB1)fd5fl`sd2I z=H_>@-vDK1_s0xmQ)N=F&j6w0nX+p~Ro}mP*C0IN*5E)+dWJ#-PA?o!#Aq);sr)0L zkNTo3fmxaebZx*r7}(@FD<{X!bv&ZoTDOV2>d9kX*NsP>uaP|Dz>~WC+YNPc2;8ks zc})OZmYiNwRFZ@tj}s&=oTq0T0zk0`N+H2w0x(f3s}f`%0FJJ-^gxn=>Bt6Poihm# zz$C!WL=2%^#6xVIyC^t+`GnN+dA`b~<9Lli?g37#JOZ83XSIeT7fHvlg>qp^kQA5V z#LH8AE}>bV?c(Qx4j%_6H5W>~z9jijruhKjdkh=E8%YS*q0IjBVO>s6I|egkE4WRk z27ozloJ6llEsnd;f&rWelZHsei`9`;m8qTsF7F+t0H-Cn)dU6+70q}paOaRTPXWd1 zfF$z$43%0_?5SHqbz`bjvhEf8D=yk{Rr75yrIT>gx>tW2K#X<>4pM{C57BO%PM7KqJ8~}0 zVnV@zr)okYW%I#guZ;ZihWIc50OEfW zU4Omvn)v$#)!$Io@%Nw3KQXm3M@;@3rv99(U8??{@^TA)hurf7J%1sRDg;Gw&IzW# z0t*H1vS5squwuao7d(j3!1v2h+?(mr5EwVDO>$Wn0pQl-R93Uy)>Ib*cufCC(NLE* z`(=?tMyc6CI|ChLSo-*vVp$*z0-8)#XP#~yV93xjjLRI`IpJ@43Glsf&4Lk@5A!Qik%!5%GJh`r%8zqBGWsnilJn1D`qn~XR;DIq{s%t!7!i%DJL`)fOvbfJ& zE_@XbXX2XB?2)`XM{x1dnKOx{(Ry)ey2>54T zx>IfPHv)FuqfkF*=Rb`|Kg^H|BuFd1CNc7YBb3l85|!|(w6a)GKWgmn7*On}r~4H7 zGGq6E2@?>F_8PmHb-f;$nLUM29a4vgbr~Ed&yN_NG~3Q654{nGu=M-keaxG^n~dm3YN9w)offSz=8yUk3xTx$n8|X-y!I;sSE>KGy|S~Ave-* zM`8I@<41=n;LM?aj|hPMCR#bAtc$!G3ao+6z(YR5oP@*s!g=J!(E#O=jsrg9po2ez zFio1`OOf45jQ=7^W5gZ@OUMI&>og`9igO%d#x44+9pxL9o^H(#3F4r4AKdY@bb{}p zY(}wz+QwLp&5`|Ju$u`xa)?^ypw80F6b<%$A?dggA`~h88qc#q`p4xS2IF1+LzoUX z>KKatBbxwepgcvH%!=n(595;I$pcV5407}U!f#SNh-ifT8hw~)`%Nrs2LXp`F3U>Z zeT&QnjKL*U-`uLT$4wgS?yoQRlPp&w!Ko6dEQ>BUNyA-16sG1lzMzq&Sh5jp=YQyU z+BfirQo=0IuwA{FU%_slh0rI)yV%V!-9?r2uwhfC?PNG6mH|7XIvCn{$!Bj%>!@A@ z0XqScd$aCp#bpWCQYMvazSR-1PtOPLq|;ss-}p;bat#XA-6^c;Id0XLP?@GGb5*Q| z)ayDlJX)^0UT8hGD9DiQCFo!^wVkiL-U(alU5=5hTEeN~4T0lbY?`9)P)Bq$MV4g?$yt(mUeV}fxU(FlSo3r z?SK%izLaA@#}KYH*NOxkv<%R32p8(9P*l#9QpOqp4C7%UKXGNS5j)8TUX^<*$xDl_!5Dp2o^>qwj? z4gPV#+PN{csr6!EbNG2y)<}G4lQ~s$CaPl|GKtlV6r{fUM8t?`i5V`#vx0h5G;`5x zW_zi`q`vY1VfHxyd!w2b71{Nwmf|qUiElA%c_48g@@b__*vh4v9bS%_sXarwUaP&@ z)?%2MDGaS?c@K3O73j1gZ^n~ANl%t$g<64f2_#?mq*VL(!xVdObvp)+HO#_Bp0Sm; z7)N%x^!CAnv}L?6faV^xvp7|BBYGU*B)*P_4h$n)Uygd9#&xp#BZ2 zkkdu~m|>2~0V%?4-lM`^nM`lz3korqE9|8PP$YIO#%TBiT_1%Xb7OeK!^{*sMn)OJC^JIB!(qB-Hd1L=9pDg0 z8_41>Bk&aZS_!&sVh@Zz&IkYx?fA=`(L#9TZaG z0vwq*ED8S91$6$tSUZG_4L@Np2j-m4-2o=Cbg-4%V$i|P%2e~o7#C$}4r$OaIjJ-^ zbGfkXB#~nRwYo4VT5j)>!8v&)cL=Gzsf=L2e$hX3`BWUDI&3Jy1M0O|MGn4#s#TRt zhfBK1VZ*JS97O*0N4QO}yY^<4pupG`t$o!Ks5v$1Ue(Q8J{zBP5ElJK}%>|3I9J@-MgYs|5W)srGUe^TV2DU^MgXK5#~NNrMS-&>oUE)QI>s1!1Gh zYPx(~rW%FasYMJ`J`WA#8xL5+k!F|e5Ye2hZxU@r8S!9(gS1V^Ht3e8oEYpL)4_@E zDSlZgbCU~risr#Ns?LMv+Dz06WRG`)Jc_Wb&O`tLODwbbd0J}DMhvv}9)aOUntd0Lmv;Djt~Xn2PihYczdi?BM=EY$a!j#$e!K1Ms@)#I zbEmHIhcnm8Ar;PR*Y&h7O_8dc*Ex8L^n9xOM`>k`KVM#gz_>d(V!2SY>oe#|F&m1< zG#@xEbsMSIhbVF;ZvY5=L#i&CE>{5f1K=i16Vfe`fT>*0d3vs6ro4#fdDZO2n*dsP%+1% zgqPy*6eCM9Q<2~gdKM{8n%ZKqadi6L*XcKq(dw|b23cGc8BZX!x8im*k>O-!dxWMM z_2}53L5DhGYsz${;bmDE`qp$-iO}uMItSho+E$|Lqd?#iol;;+nP=l1X75!!MCFg@ z_ht!@PRs!(dA;XIw@of!|A_a)bOCk{;f0Ax77TY zh(n7A6y5<|V+;iWG6CbE>w#_3N5BW2N6cnr#^ZK`U=L`JS7ofqs7Hg+^#KDoQf+IN z3%P=1_ml6|>mqI|)CymzP;kT0mBR-SN#B$>qFI&UJ#Z5TWE_%VR-)G()lk)z|sN7R7@-mEHe)u;jq#wizF>*Z{QwYbBqPOzvg_aC86Bb3+~#DxGY zBopgg6DK9vk;1WPTh_Lw4nzd%MVd5%5Sh^+i=blCHEv-_=h*Pp@={PS2gKcA9_D~% zae;4LdVlf?-S|F5>lvXbJg(KMx+84UCGva+f3Mm8+M{J{*ax!J>Wy~I-TJ<{i0iQ*@>zCj&2Fu7bIp|D)B*C6 zR2Xy`a#F5aU^d8gNSQ`GlErbEWkV`#OCtn&8Y)Hm>11PKijY)64{V}d8f43|{=#&8 zo6hQ=Ca!jGGCH*s)s#pYer(u)9ue#M!UhgaFXI`Myd_`&85+g-M1S$<3`xqx_ocS& zdOx(1D^F7LS=@vH^^)_jI>WY(fNJ2!)P6z6H_IX!Y;0}Vb~WcKJJ!m@L>t{>9d{bP z$&C&Xt0V6es6PeG``eA zxKad^xiBCk8-;CnugAhiNUMGyz5S6Mc@r|Z%bNi(_E={wC$rO$19>+$`ghtBVvhr* zFz+|f>J2h|wUCX$MR=$(LcHmzsS(FTFnyP6tbiL{oC#xxMU)xDvhVB+~jOP;xG*l&VwH*1>+T#3xEyZ6l(4fAF=Q~2f%DTy?dM*d^3Mi~a zJbJ-FxuC{xkL)Ym@UFi|S8ini!^jQDWb|ihIpC&C%%kxVZZs;>g|DlAu%~_&*!oEU zT|R4B){I01Ueu#* zT7N|DqzY50;?cL2%*Of`L5HKON*4_)<{NZI0OyN(^Ndy`7?-dUWc&>3Us+9QK^6z2^|I?Lmrn4 zP7ZS+zoCO@*qPuw2W4iAKc9}0u+Do6q7%gQ)4tu3-XRdSYspgy(JzDBRnFJzM}rq- z)oKt%euqd5>R%Gwjukv-HIyYC4bj%2*x|Z5Sdq*Ydrju=0YyK`%6_vilNnoTWDuP` zX8dA;Y^qFSvZN|UjjfJmIXR*w>7v(x!ClQprh{DNWr6mn`aUqIu0NHwt*RYyc#*gsaaax6=9(=n zX??BB&Ph{obcV#>keMk1n^rNYEy*Y-2$QWy$Y2WPnH&y<%9JO|G6B`H`EVPm{aeZ+ ze|GFb*Sesd>jR#wUcEjzusfgK?ycMI+mu+d2R<2)YC=854SyG>a;nzaac~z0q~B-z z8Y9=K)obcmm^rsd;+6g^`9Ck3>bUaTi~Le46WG7q==)cd`tJk;{=F{I6lMQzL=u=q zeow4WU!?poz4^nK=qi_gGC*aiSQ^!p7zVu&`+#UgL{>2VAoBsN!cvS3r^-iZGYC4% z#K#a+6MR1V`d_RVhNzBCka^wK4O~=;UG749< z_9S*%V8W~0psr7YnwnRm9hLQ@S zR2K`)5Pg|F_Zu&DDoDii$~;ze#P$tj-b9i~LA3vRY2YQ9xysuzCOUDwH-Hpq*x5ie z=MERh?LoH6&OZB&sZgn=Qj3N-Ev!(}WWXvYz^TVKQR;)C!T<%kD=@$i{d5}}EhXHO2 zfxJ0C6wmxcU=b$)1u(H%J_?~FFm6!MY)2^b_N8y22rxmI#37cm=IN}U$@E3EaEYlN zRoAanxCBh#<9qfq^D}e@1Z|Z;_qZ2NThfedO?@ZsY@f8CIKB;FJ)M1tT$hPA&5$jM zP!Uy6FOr@2Kt#F|hrT9VkN#-c3~Lv_aRGY~kj;-B5~;A~a3&MA!$d68MpcIhL)Zrv zxFYEICLCTa!hI``fWQP;qC2Q!64+p|S5STbg9Rt=Yuqs+L6py4jl`uxrTqEVhm%oL zII=I;0QkVT^)4kEW#lHO6!JqHeKL%$WV_sOx?LoXspd$M+LVi-y4yr`pkoo|Xcvz$ zI`Y=fiAhP4H&DIuQ)GmC4+wr2x5qyd--&BRh##<)ar?PHCY%QrA{8sP(U`jQfQ$6N zU3XxJ5!%6+1wcn%B5EeAavmWj84SUd5~ICk|nc3S|nknZT@!??RPn6PcZ z{`$txMLcNj?DzgpM+tutgMkSF0RZTN{rdh>^8dY{#lNThm~htbG!GU0gZ2!_ss9M7 z$=b~eAn>v){p_#!DpFY2g7g^pCZ36=2nV6k$LqikB()f>1Q{$)5(td0Vq|zWFnUDa z@k;su-J!WIwV?s1Y9F4GljFgBeYxH#X_{+xgNX=467CQq5Q{k8GeRBe+egF#-~65J zAbvKNT-R1SovEt-A-tU%jJZ_S;IJusq&z|RN)&?;g=wW1BVg64Ij`G&$0IJU@mcRX z7WZ_n=lYM!rJ_rpYhNq3X038H`+yNuIhd^-oMYL251Q}kk<&NnlOK)`I6|Y|B$3mF z1%eblFp|V`ZFIxYuT2>A@$F_fI#aobKlAF1^kX3mba3leQ4?CE<4oz6SDVT`IkQk}-*R_oJS+cQCG!eB@X0+-}ueasI&-#a{Wd~AH8tviIN5*pSzc0#7HPAuWM{*2KZ+TeRVYV2dGhLKp?Yj zI2TH1Mi;2`5e@m1{D(eu`;nclm?WRwh3S(RTdE%RrN<9l2zPz;{MPm6dVM1~HP4Qp zk4Jgad;he4HQO{5*#7Iq!-fX{F#FFz|KH16{CoKSnalLD{44wq)&KXaXOGGjyRc>` zJpiV<$E<)~P$eR|80?eOMN$6SyNB>lpcW{rx;(H$5_1pj)E%t9GqK{a;(*j#NX?dD zJrFAfCSN}-o(N^)m-SH;L$9eX;vGHwdXq{I&?Pj%vZG!E~ z)!unwA>4%R=<<&@0eq^?7&|)Fo3Y+;SaZf&{+c)&se-ZEOPy&gG zNChHrG0;mK68Ty5Jv`I=#oye;8e0w@f^c35G`W8O}@plJJ*!xf&5gOs1(WaHF&m0B_yDS z9PEd3Zzk~pB}P`?s36}A4@08Z4v2HEtpjozUC?b6^$~z_?o2|17z2RuNM;a8zXP8P z19OC&scE|01WA^3hKBQFcscsF`hw9ycgz8){N?tbeoGZKeB%i+)5oG6l0rwZ{^WsY zE7;UqS#x4aqZvQqUK(7UZi+G9(8Q&z;@8t8zYCNphltw2mQNRh-q$k|WAqwf($x+$4|s7?geAF4B{J}$TZOLdSb zKkZXehy`WZ%NNSBBJm0Rp_HU6StNAHb{El-%P5r;7uaG9W@SSh_V-8zUPD^-=k!l9 ztgx+z83{?0*b(ujvokoKCtmKF`4?OS`A3L?-i+r_G4K4XHPP>QWx7WRm3j0vH50vR z@y_Z4m(gH%)I!@snymsu?c2%3edCAg$qw+gG#5ffgX?5?nFdVDAC4}Sb^Yp8*ET2* zmh`&k)T2uJhAb8RR5bMEzs^xwCX^7>fcg|7bB#jliq{GQYlgIj9W1&#;|FHFLM2lL zas|qGh~PGUanJ!ZS$lCQLpQfoq~PfG(ztmBz>GWK0|<^BW_AnTa6jo=)M^tI*gbYc z$K#FTeArdczZw(fQ9ER8vSXf?=a(rmZDG!jW&t~D2=uK3PNEsF&y=HWxd=Bi6bk22 zZV-U=*U$rG6ZhNa5>QN&WClmq_%YL?kJ|F|jEmgN{EgsommC6Q9Rm0k;^7)%`;RS6XSPCy}2{}CXOYr9=JC|bUI z9|lD36T<$Hz6)`SI7${*db$M2$8zXukYWf6;mEi!= zoZXA4Ziv!R?mHSX)i@}G+j~rk$ah!uDQn-YJ0z($qo=|jHh8B_-yPeZ^FLjn|)4`8Bw3VDNb5^BZdTC^6?g&`6+4J8{LX4sfMahnSws$_-?jPNd6P@KD{8Y^g^I0ITTH4VMMgU0wIFLS z`r(xE99tiA}H>EBNG z{i{y=`&8B6cO;eH|H+YPNy}raqv!<<__buF5C@2Fg1I1@tg4p$1c0zLNC=D8bOv`t zN(`($6Qeo<7Ajw`t$-N<9tz#1&;B9(hW?i0WOm`<1+xOGstDn9ym9|Bb-y*r|6#SR z_7I`tSSGK_MK0c5RBcQ3fhYa-KvA35e3w7m1WmRrvz|1;Z&7iF9FQTTQ(3A4M(f1dmy|B7v2Iz-! z-Z$9y=QNWmB(3>=6ZWw*4|_gqC1JCD*#kLtG~Hz zdXd8ndkdbJL0<1@Y6!v)Z!%0dTn(~|QGo){Ti!!;-QwR!`s}uvm;W(3{nUkmcHrk= z5^6P64N@75WbIMe;_njxPHLs_-d08r+xcuRtl)6?`uo> zAm4QO;FQS4U_1*1$Kn2&cy?krF^c0@{TwPCMm=E&JPDymN1=4ND<;nzSvo%Hq7rf( zIWngGScG6CwT}0JL%bd5h7f0JHEz`SYMu&Fko;(J0R)xFTM}mqQvxOVEiK%+VS-5h zG#OaSx$lmp*&G3_#vE|JjAqc~>d|Lj2T$-ovbW|*z%spa`lXHjsF2)#0z)TnrOAVt zlci+gm}3e{qC`|G5!%(PW>@Ztf<68oaYf02n#efz2u|;8S{AlPfB68k7(_f51|<&~ zzL_Q#>3ld(GTJ@^CcF}X^nvivt=+*@a)#OEq1Gf7375%zAJDKfVy#v`+LbWs(I!O< zl3t6sA*XA-LLyv3k!ZZ_?!Aqgsa8#e)%3ESmSg!0+*I3Gh3b+OCa;Gf`Go@dws?|7 z=u}9y zu{FX<<4+KDb!$xDCkA^_)1t-SsyblqI#J``MTQ{|m)<34BjJ@}9)yb%7s7G0idaDu zjiiG7qE+45Ti!?T#S)270!KGJnnaNU7!#b8Iqy8dJrOBrX?%! zasa_}lF5)55?NE=@v+5!<#cO$?gRZ)WsC8Fk`dyz)XI8KPjYCJMA_YGVYcN!ZHvOs z)$e+Jt9;1#5KNgxIX1&e?IFSrq@0xGdR$Lym5KANQ(8KYc~mta66T%aeU;nQ);U4Z zai0!?s$AifcA!prRl~_QBsY4^MtbYWK%*U12=X>jrQWVyuS_XPanU9U|Jri17j=EH zG19ghwy4lZ;s$eluG1QO|KjJZ;HGzI!>RsL_3X7xD7$>%)Pvn zaT(X1RFc*Shk{ul;9J|N(-GK&zUh@KyO5oQdlA0DfWojb_|yM*eCurp%WYOKzvibu za;uc@$kFQ5*edsck1R>t-+?L^#fH?|2SNwE%2_myLhNP)bLwLoh?h-a?)x-aIxjOq3Libzsx&g8dkYTDVg>`xTOY5o*b4<;qk~+C8dZzm)DQ7s)`0 ze|iAl20it)hWv=RdlV1^bBAYq@MTEU0Q692V1U zxaaXk_B233d#(y|y#G4iG^K9Gjz-D^XGR_~k=M$&t`(!YacqoU@3(&6x%74Q# zY;nK14{A}DcKNAeE@S()0tM?_grn`~?nlX1AQSQU8KttZ@_dvAIEX=TD1cm_=G7at zr)HJXIi{>0?YuAMAbp5_IJ^kVuDr$X@Sgo59o>=?u^o?Toq1*^%&Zs2ZpsflnbnoT zQ~4UgF2(Nm$$9HBn^v1~-VRf%K-w(yNL3etI%NNUC#8Nb-U?Aw>3@;o9rSOXP5N78 z_)CcI?_07ziNMkO2N7~qdToE}kuK}kosA}#(^QLe=KqwKCmI6`kZK{fun;J>1WYMI zC{wZD2|UY8=W^J8@5`d!MR#vFk8i0{8X+B<>hfT=dy4ThOCn%+2?Rl8DsB-Y5tkrk zxyvlb8$rwp)7Hjz95JVlhpR!3hO|P?y>T5j5L$tC^dKH~G(3oRgA9ckg!#@WWc;L6 zbxe;3(z{Py)tNT=Hr4R8_sO^N)!d7}WqV`uktdtD&VwDy&LMI>6cVWP2tzt;7g5@+ zvK2P~>Qy9`P8kfW?tw8sSfqi=n(@#sb~d}#Ybfzg9*k2XVPs7=R2Z4yg$9#hGlRiz zANcz#GO|RDB#Z_;xL=Gh(wT3xqNzBXum<5n&Adu!w{2x+MX$1aj?COF zr9Z@?NGkFz9!#%+9y2dQh)!JF12}-TOgVB^yNBlx_~E8G5fO9tW>nR%D(5apS%z5+ zqR-lQs@bncrT2!{DA6t6WRvl&%)YB6w0+gRQVioHcd~`$GVuDgXPy6HoUK-7YS3K3 zwUiMfMu zPmT8UvwJ3c!?_9>%c=+`>$@>*d*Vu9JqeqZ;8~88!zmw~-=?W^mZ_@~bjMEf*mw1t zD*d{EYubFEDVsGKKHbNV>mJO6W_7kbCfY9z(hV>Q$3TylQB>MmXa~z!ZZgmCe_d2~ ztd;h3{)KI5i2tub|F5yYe~<5NnxVg}B>cIe(5c!hhpdRA%dLMKn3X6&ZfmoG;TtT3 ziWC8I)`c5yxi(Wqf>bD22+bbqa52(YGOy3^Ed35T?ZXV4Bd2U&xWVFKchz~E>oo22 z!Hm;h-HRT4!zdC={o)ub(I&QabB1mRa&)@37KwBB{ZJ|?PdFN5$-sT21{=&MRF^ol zc`m_-IP4v*aJtez4Hjl6tIE^I?K9$>Z@b#Avm%vU@2ch8>(SE2XWB<+bHh11j3cGA ziX|ED2LXd1&uO}+joI_+Q`B15{tiw7t*^}u963ih#Aj+q>Xj-;};qRh9i7m#h&=}bA%u@VEcpfmZsy9^ZZ)D*x z7$j0iAxS+5Xz?Tw(Aj%l_(rLAX{4i69lvp8m;~Wt<N`Xc)sK~A`2JGoTpqM0hWoXlYYt}} zIz>~f8l~LV^xkMmkvRBSP?^IE|0dR!S@R(>NkYO8M;0DYaj$sLD`_BmeaqRx^CF!h z;{4kzXLhw`+@-5a6q4P18ci5ue^x5e;^+ur;fWaf39> zjPUplb%HR=eQqY2A(-^qGx-?cX(EXTuuXEkg|sU_RD!Iu>Bt*s+140J8ktY267bnL z<9^G*)vdp6TkZ{eO%R_`%%RuWd2M=dC|PPpXZ}VgK%j3=eeBAUnob(bB^4cT@aPP(Y?O+2Dh$zw8nW zMkWFfA+-`r3}IsjrRkr%7O6ac3mR_F43g*cXJOu4)Lo2oL7?C&3SV;;=RH%>zE+lJ zPv+}cq>rRju|q>UdZ4qd44~WRECig8Vu-tG`*s3o`iyceth+2Ob-hPhsI3#yLZg_s zW?7}NvEhpga=jE~g`ajej?Wf2ShY8Iwx@PuX<;&WucsuP26`&DoB$3)EFrqA>fmB@ zfBE)f(Pp|xITGYuZX{U=h#X;bG%y2WDkdFm|ByG&9;t0l1 z;RDZ47o^GSTWbk8XcRCpM^>-+m&}vu-s)kPEOdAh3H1iaBSR=6bq;rJb3l$bjR!XE z>VbXEG))p~$gpz+hsNd=S#g1KNrzaThVm6U&F~IHG(dbtj=&Cd4y#_*HyeY-ltpBf zmNzzLjX?9AKv0TC&mcApv_rehGQS6QI~iQ`BEKNDa#jo3mfoPi(cNWq5Mv7(z({f* z7@Xi^*Y9Ms>~!#J`JH8uP2h1F5fhDdxDenMriZ3resSISZm_Te$YKR&;pT?+>pkiXM(Lo3kEUBosY3*K~{=6A<&t zBqAGxD5LlKiu)g*7s9iJiECM;C(ukz3QQe$3WD$pjgDE)Qis*jZ}efa$&^G0yg^$c_QoM$9s&_*{+K zg#Xx7xgMx?ELZ9$;BI2VP5p(kIN|<2Lp^zy5$fZ_HFO&~;pY2BjaxXmoz;5Tp^3n_)dt$e`>MGf8m^U1pxr~i3|Xs{GXEf|CK5I z_Y}61_#-~LWB3P!A5^mcG49*6#TG^Bdg2>2Z>f7@;9)%0k3R27BN zQH=oa_s<+NC_`=DYCp9N0a!)%eFK&pf z0_INgT(UO|4+4fj=ZCsA>!wWZOErWU>d3)Im04!4lKId`B6oT7Qf_x%F;`qacjTbD zp8)u{=`bjdkBG4TOs3SayaRSZM$kV(k<6SNNhtI4PKkX0z@;v3CqM|8@WeE*wnuqD z9vZfW10BYw1sDc=e8RQo=G^FL+%<(l+7?hccR^*cw-$5q4bv6zD-!Xr z1VP2f?GeB3hFQM{HURJwn|=fT!HY2SOjAv)Bhse zLgjy4yF{^X^95Favz1k?BUROWFwvJzz$K6fj^wLL!-!G+xNG9mLQ64yO_ecwJY4rd zie_lu40Xo$W*D_MpR>ezFc3@vAAh?v^KtZ-E{GtI-2UD`5|Mq#yscQb+dkg`AAD%W z%`umC2$}i5qX=F$7MO{fYBZ{b&{ipt60jZcFBADu^#*ut*$8i~AHOc-Rck?Gu2wR9E7o)-H1Q@w_NtGwwot=!yz>=f;ERj<{$CZ(=eJ!6cqtsZC9R}5x7 z*A>ZGSd*-f>vrU=3`t(PUl(>Etw2I;(SX>|sZFWPg`GbG(kXgI`!Hi^O2qzoZ{#{j zgNcd1dx)T^9eyV;R(~Op<})MHI<&3ScgV~B4sAT1wY*lS>R(+~ZSX2@8c%&4#w5z~ zoGLSlZAIc!M7&(|emc3$7@EaHzJ%wPc7+gKF^{~7cpp5MYEAak8I)!NNr*!IFV@~MSd?{1*B!QP&SBfO zZQHhO+qTCXwr$(Ct$A1PbvvSWpL6csH%|YlUsV-R74&$gpWqj6E= z(IKE$x~09QaCRelMJ-&|TnBGX(`DuHd7}_ffj%;Go#r|x=`@_pJoBybux0Pisg*@L zpDyL4l;wl%ME&tgJ%ou_2eR|zegAJh)}AgZ48(tJbm6c70POy!@c8d`1OIDu{^yue z>4Lw}`JZ~hW%X@YY_Y%5>2+8ht7B_*Tsq;U96tx5VncbgV}vY7DZiyyNT8Y77O}A- z+*Zqm0ds;n!!4m#u*=cdVs@?J<;oB_0b1Y5bo$D*o6YnGu9gZ_#E!fW4z^s*Y-xVB zyiQA!Z?wwKTwLdQ`1{lCS*dHg<_wHi%sIqFOC4|j5?Ewa-Bm*9J7{N>F4;HI4l(CY z1)Z+-ERgfUq5DVY`cd+DUiAC^)#?~ruBW2fc4c)%jg5-R3LYP}Go_1w>^p;RZy(cXh0vl8;I`CD^Q|^}EKk?iB1c09jZ{|012Uh~Z99MS?D7u68 zK1gRN)#4TJe;7NY|FaQ!cvw-czbA7$`EPi=2mKIT)xlr++xP z>h9?@nKkHv(+uLJz8^5)87Ep=fvvdTVSyD6WvH`dH}+YouK;*Be{jCGz(o6A43p0Y z*ASZTWWalZr!~owO_*DyZwD#hHGdMWtW?#GgC(dx&$DrA6fS=T!Ap?0gCg8EH-sg@zdCMA9cHPTfgb2nD{MsSlE zE0_GP{E{~(tCgX_?b{t0n@%*EN>E4wJifjmVMwIL2T{sF2Z6+G*D22VV)$Y zlwWS!P}-WJ>*s`>kQPg_H?*+}b^d!y-k4K~DY)SjI-Yc$MM7g>pIBm@*5m`Edxy8} z*)bxd+1FcyIDp?YYy-GrGqVrd6iKs4 z90?Ol;Jb*bvUv))%J(=Hq2MRf?8P9+;DT zD|K^@!6DoEN zMz|F>|7d<39gmw_kQ%2#M`KbE?Uq9y%I+;Y z-6W`=)2Y7-+)9B8Y^R1_7N^m$5eq#Hm_mdXbB(kOeZs$c??-`m&cE!-$_{D7N>hCR z|IwZ!An&UK>Q1)po)zs;{>^1W(RNdQ6v_LN3`;KwjkWJ}!BleQ=71stL`{wX5cLQg z#0zQDU)j7iW@+t2gejJ|#d|30TH?&eixT78&)(Si6SsJ)gxM zPj7H#l)21^Suqf}t$=7S*Nv9T~st8l?8SNNzqysTq z95IPNk_N2QO2}Beu}bJT%AUDb1C2Oj1`_xbm7kpSvtnyu>c0GYL?8vyXTg}P>6l;y z6iKEteqUPFt*jW0qH}wEZ~SDWD8}w^y>A3Zqg8#ppg$2OBMZUIgW4lmeFIeMMk*3C zng!joZi`+^JpibQWLmG4OXqIZ@1HpzAvj+!{@0$i3K0N6_kV`-|Hq#4e~tD3^y?%X z`y1>3S@geF-~5l-kB@85fw4D*L0uP%J(pyKU}1mLpckDsGYK6oZH0uk6EZVVDt))~M zLOsKCE{~&dv8bp=N8qZ>(rUxa5~*+%f*ZqD0&{@hydDoJTM3c6YekHJgdotHH=^cbP6W~aT!H7QS|P6iep8cMfIfHhRadD?-w@-ZYW9mS3&j}6Bu z$s*1|4X{FMEu4jG7k1E}GG8qC$fS|M+?^?`)Ncj?G`m82FmYnx`^xvlrQ(UPmjns4 zd51eT-=5345Ob^L^^4vpiV*Up*5k7P5H7fTI7H{7|jj=Olmi>HcCm=XHsygfjPm5IEWQl+@e;=M>g}cMd zL%=s2cO6wkYvl4~@xXfr8hhdiTs6_zP+<{uLB_M%q(j`(U zTRZ5xOI#)>4lIGLic6empKD$aAf8Z^K6H`{jqGH3OcO#l02VH|oSA3>k~7dW?Q`KX zD`t2+?RxsQ0{ogeK~E7Jc4U18_x+C@2Ujo*yVY)Zl{4vA%g7Wm6dgZL0s4xh2yw4% z4XWg9?%8iJved2M4DcnfGeM-K*z<5Z6g(xzeDZ0%+>QgztxM%WW+I<=fW&Gux#T?*)VgqQ2gfNdnE5dI*4J#U%hThE7F&Si=0N^dWN+`c4C<)E!Q zkXM%_=6-ZB@vi*_{!BzaB6lC3d3&Hp1=;k}wHZr)M}}Rvu$)tonty*|-PVzQ1!SPy zO-PJfZke@uAIWy#G|k+X!ZXG*NLi0S+0>hK=1(zrT*J$m4~i+$lv(aa z@?-uaCfv>&^tkFD&~oq&om(~Gj|ST_C$NbmJ1UpcDTI~^m52Xk@o5v29j5Wu9=rzS z|Dx*r?^p!^wB z*%1^_AY?9#2qp(*na38=(9qUY*WI5=dV}&km9}c#ymsEi@@pfQy2`ly@^cEszlNSw zYLWwFsgNP`DJ%6AEvTjX#?jg(C(_$)^LUKZ9lYr%Q@i8HcM7Kw;_h4J5J5-aDiZIV z%kq>uXYqzUL($@8O{)-*ajDbPsn&k%>U>=GiZk184++z?sNmG1rSVWRv)gsemTD?e z1F5KC`$rlnV^^tIqNrP`N{zJqFgVQh2tR>}Ej{DHvpUTI$3l((J&V#^$o5oP&J8ar z>RfBJX4^lm*?~Ty47bjuzhr-;o>0ejhS3l8hH?pa&sC^O9h{cp?_xwPN*I3XDZ~fr zpZKWmgj0YSr4$aP<_Q7kvrvU#?y>+(wl=KN9ZRxR6qIZDvA~m3w(Z;M&$x%Wpe6s5 z0?Kahsj-@k`Bz@4V$=(PXoL|Iq)OfoN5qz2qyfSo;`gRLH(IJmEkBHXeK$ce| z)P_Q+4iU3+K{$_xd!A+}6Qdi&yy-;PKzJ%l`N*tBZo2rO&~fc1dlTpriU6xl*{=6o6P$8+smpa6Or22*xegb!g3gW*Rm47?JPYota0{$ zMy%l6i%SJ711z3+f7~b?geH_YIC)O;*_I%K9Tqu21V9WOK@X7>h^3(J3}ktB8L7he zVA+LCMk;MB_S}XK3->8+M#vxiGLl!&iT_#vEF7GuK*}!q)*QsTxS#!^u>c}V8Qw2% zY#q)xuW=eu8~2<7moik2N}2RUy)1&PTXnD`Ns7gnXd|M1p~fZ38LA9gM-mc#j-;_! zzK6@c@rs|(1Cn{(4vl&7HyWUu_QHgjV>>%%%4du7aKl#=>zglL>d0?Q-wPC9#zuhy z$LlLo*aiH$U>;^S^Uz0I}&_uPK;?Og2ow*TGX{3o|{&YX4y9c!m~_}FCh zJ>cazlK|EQ+_#TDy2(Y1rn+_ods=0*zzqfJNqio9qo_OcfjfVcdBuhreotr9c4tk$ zwk}|PBq6u3cBd3iJ=8nWM(i!lB7RR-0f-e@EF0+a_s)tOK>iVTt_Fbmh!DQk;JXn> z*w6Ci8h!c&6q2-qj@<#`)7jn{y-#)y!irY^(Do1*XZ;Y$bu< zG{ycLEx|y=dpLZr0bRaa9xAlGFD#HVO;!~>`l6rv8J3_)8ZX&O=*B9SV8&h| zRHd@T^a--O;INAC+Rvp}3KITBkS%o*>Hc!bSkM_th3Uypj8h%SD&Z84?g-9pB(uPp_s3sOgbTH6x zsj#cEL8EA|F9iCgb)8seiMNOsW`>h<8w9gQ1SER1e#JlB*QL)02&Po z=BtVi=ysGG{~9WGq*1axo;m#3#;?=;jzGtTS5v)!Mdv8|6;paG*FO0y_T2f3-$o|9 zpMA}oz&iUISS94{3aX#xC(X0zhEAKGPD%KL&lwLF%#yj->&eg`qS!FGc{+4+MQIASzdz}uxC#T4HEU) zQPFWE6H#5!cEcO1yc+8Od$5Pz1z+B&0M9JI0%}ftjw`9iMxc#($IYY!En#X62mKPe zE+VPUwHsS1kV)r3Yo~YnVGHcjI9!H~dbgl{v+>FdRROk#}lHhIFcx=OVS6w1@8)xxa+4q=Ume9Z}1urJ1fJD^0@4& z`nE^UxgF4LZQzz;H5O2 zq-T}aC2RYS6It&96$Qt0I>=l*;&S^$Bwhjf3fXF2k%m*$)leB8Rd( zk;#-(Xwg|9IGZUnU(Nr{>l_%;mrNy}5B5Ag?2QOZUdn!kKxa(vPM#@vfr9rK*N=YeC8R8Igf;Jpm1bT);6tQokfn_`ZGkV^t?+pi-V~Hyt&U4H# zRD71ENi{(sP?fR)Wvbk8Dp(2qMuev_U5D@kHVGMuStKp8l3haMBT4U+O@X;qv}n;j zKFmf?Y}S4O3lFgq@wc|+>w~b6zR?Nnd?rd{%X95#q_I~#V#7|e{IQaT7UFzjD!*`Z zdDc^8>pI!~B%&uQ z3w1FHl#<;%(*lv8(gw`0?c9l-_wLH}3uuCvtgi4K(lJ*Y0O4uUAhSa<=^Gif3y|^A z8v&ww>;ki__PpYYbl~kt-Z9e^)*JYUE!VF>#@?Yn$mm+NZSw(IFk8GAyC3pDe{4Ch z$F0`kUk^`h-i9HfzXASPI;3PNqHK%@0C2Yp0KoJAxvrfYjp*i*{!#7!-_-v9t+i{w zJNgeXP#eSyz<-E?IspG)zY-oDI~29l*_XQVbA{xalFs+^Gzj2KbJC26rp5$O;m3Gm z;!S4#;k7ZF!4ud`32`(qQ_MnPX&{USuFnR=(Kd(8wd-E_=eU<_C%y|`)$Ph!R?+}+ zeK)mjubX$?(_F8cy2IPVgqe*uJ_$PF{K_R|=V7C1#TntQrAUR!nh$V1* zl1m6C?uS?R`08^#+di?XJJK&8`DXwStAnH3pNT*Hhl9OSG}`K2JIlTAfV%$ud#i;0 zP0;=n&@1>pK!?5p@qD51xr1_Ejv`j1ws;5+H~qVt_oUw9QlQNEbrdHZhw zF!{h^Ey#ezpW%5&VEQHax4){4GSCsW!AsS{ENq(rqVvp0ScDCOgCklCrJN>{o`4>Z z8A$kD(Q~zk2>=VmNXCGG`xgC?Z)Jtmxe1P72?ri)CxjjF$$}(` z+CkGX{aFZOyvABqhJrzrN>sRaxTEj_n$TUxSvR6 zWk;LGiAPlfS9%FEy8DSIvVmX?969U?kqd;}JUl%}x+&7fK(1PRVW z_b&q>u`-%&t27faY{UWV^VUzNMJutzQyBp8d*a^7As^K}Q7?|pCT)sELSo{AVvp?h z1<}cmJ*EOvB9}N)-ONXknAtUVq@kx3qmX+~0%C?a*Y_(w*GvFouN(ckgo9LSBgUgY zmt1`htPIzm=b{L1<$w7%Bd#Ss`B1Rv;&Tl z^55e)+JgYVLdg8!-L^!K;{<;dzkGNm2T}l7A|^rP2OEzI*`;l|h|J*PzaFIGe*@gt zY>Y;X4(_F_&fo>eD|nrc8!Nm?U?d5dxMF=>ALIAGkY~r*Ry3_<%J_iHLKs=|hXl0B z9~^#TMV>4hH^+=~(rFeWtwLYcQezCW6aW1{n`?fL@S{sY71Fa$+DIRcBr&Z8r}V<6 zKgl90^5*7m8XnHVZ?X6m8i1&=As~5PV+vx#Cx!*%Q;#rlS#us*LiKCXp%m%tcY@d6 z5(30{=FmYrhnaOg?|Tu?&G53;ZO7^M-0tc=0)Ufuzq*J11R0M%vjNGL!LA`5+|*R| z)bi48M0i{RVGn^yoG#yEAXt6k%F_fRMp+|oJ;>5)dsZgzO5^@1d%62UcA7) zoLxK8RM(F`167xE9Ef)c*g6?h<%p`_5Dv6#9fePL*wL?ADBY+$%fW7f8zQHS6PShB zB?DrE&*3pSi5p#UbY(v`F;8vy?8rf&^ke%bgE2FFN)Oy!`R0u!DVKrtQ~4eEpfN*F zU*CJrDyQR%2Q&6q#9d{=1=L~wMUDM9z!!M)W_b>TSwIg|8NJz6te8rDU$s7MTmLsg zDGI<A+h9?Ux-K%BI)SHOz#60iu1_PZIev-UFl?gRN6F}b3@{RRw506K@sJyg8j&8 zriELyd%3g5;hr~-{lKlTJQMzDbtZ}QIA5$r(nKJW5UFCWOqDg%de+?}DU*L)tbB0o zO+ne+CfZRxQN8FkWnS2pS%@7|99SW(+s7veNNsDO8y9QdX2ZMXwv6IW0H@}*&ou0CWhG|MzU9*t_Z_uYd zq@Fb(-W_<8SPXtwd?+<3unV%KBm9qQlAq6po|j~zDRaq}OW@FaJJijyp!tTg0lwJ_4x5vb5CFI$hhhhmehY?WzZcOWC&A zvmTm!jXK7G$`HySd>yVl;MQIDK)i|Q>XR}i;~e= z2b^|y&kZJVyiqLGVp8r_)d4&2``AQcs4TQU${@<(3!Yo)Cw3FvH{HH zWyLp*cN2^wCynP9cb~*0bz>5E0kHNtO!5i}eeoP3;a%u@vBj#*QsQCX>s1vHhny%1 z!oe5raLfW|8&`&A9xo5G{5c+ye_GZblCnaY!p#QH?pQz+Mt>{aQ&xoyR@-<$AmGl? zXJI0>Sd5|1&kpz8%U*yu!)sWwqGlMtoTQ~2^fib%00!zuMEVmR?A!35)^Q!iy6=fa z-sYY=?QALGtgbUMT77Ukw8Pys zxZjW3D+(4xGHe_1kxH5doyCTKcEz@x6i1cUCkjZ+X!(1-7`;$j)UCZ5-pnZO( zrH78fogl$WqzIf$s@D=R*a;C6PupR)sU8MDwDo2l%p|{NBMn|r3)S;Y;1N`LBBcMD zlXEN_E}L~Zi^lsrL6E^-EEa1^SC{{2&&MJ8tpCudr{S;L@VqMoKQ>zuL$>C?hLdj9 zhp6-qiK+n-ssXR40pPx}C^`?4z77&8++b$8=yQq2p%nFsfH+dcMI~vS!6?-;jF5N~ zx40hy6PLt}SYz`^+LA3T@t?)WC_Z*(cSeIj9GQ7+y;RG%nHcM`i`Eej&1T4DhfnY> z<1i{+SKc=+yQYF)`cMo>G+)5S@UlLKE=IS7&6uYe$t6GACrIGa%M3;MGp44-+$TC5 zTe)-8c-}VivH!Wz@~zhT3@P=kTTSI$)l@4>>%imV(+9agb?9#Ha(C%*sxd-QqCbnt zp>7CDq(9}PJJ%t+*fEehdJf3HqfwHLe7Po!`Q?QKh+=LsB#O%f(!&V6VP)*F zz?q}HHXj8{c~S77^CMhJ%HZ)G;f~IOk{}~WcS)Y|;LO*_*vQVuwyAlcjdLDcxbs>3 z2I1#@dc7N077&k9U1(?>X8#_g$^<%j!9lW?Z3n;<7L^v}_>xf3J(;sEhpzU3tr*>- zFoSDtR)VvMQIr%Rm<++B#f?9*=ECCzzqQ-$-(fgszJ+|Ms$VW)q--}`zD+j=txE>% z|3KxaRRXX_n`p)D^URq7P#6U(o4H#{?VMI-cEa^jDPV$=uUtvlm33#SIu~Yt9N**c zwcDLbtcgR7v8`l(rqxZAB`;Vvjlw>AC1xYirwvo3T3fkxS04q%qUb1L)+Bu_i2`Z6 z;oDrms?fliVLs{V#U!-|-LDe#PN_66o3$`rzXcLDbSaHZa4RNBgoze_uIH1=geyI8 z=YQ5gbq2u))&z!fs(xo(oN8I}s2U4QIDx&@%#szfQ&59qwF(b^CZ)&mUf4AI8T@6( zo$*BSReb8;mX2P{BPiPeO5zk9R$0YOPhj2n-3*&3nLKye#3wY)mO2Xn#x4UNVRXwb z9e4eX>F#A*O5Fv=89Q>syn76Jf6At~vgZxWXCZ^!=&={Rp{A7y+nCx~8yUUXR4NZw zGUG#?5J0P%s8DT+j5$CiHO_6+Y~f4631@v_sEqByjfAlc`bj1M+(QxqjXv({;H~kx zFNgii%R&ZN+XESt^9!r3EbClFTaC1kD*zOA)0q>#?R;H`p>RpI^hO=@W0=u@qlQ;UJ2=znmWq7z$xw}{Mq zQz9sO(YULYh)QH}Hu6%G`&{v$R^|S(kiYj)x^z)9?-!e>(643^_>i znF5?6b%O?*ZQr-e-`iJLTvRcUaFF*Pjxd^g>O2yquA}?>bAZ?_ z2wO%Zfc|w_LZZ2e!E{r+xV5|uk%lJb6DQvQgqmd3e#vvnZ&s+M>d&Xor}Y%_;X=qCy)=(f+XrF*t{ zyJYnoSBr1uy~Lwxx5$UTybd0-f$@OSJ`+V1geW|!xE`Z`j3v2L_ZkgVj9e zVs`yT81D&?Jj5HtLS2=%EZ^o6{HlH**flNOZbkllBqwIqsxK|-~kv(Uk+pzOuZ>J28b75Zdl$h z9IYYRVaM0(dt%ipGPJ9c(ca*0VA6x^Y_TXMIk>;H>vYU^RBBYN{xJauju)?S7zTsn zz>Yv4s~ViXB>o4Y&ClVQ)pNCghw7m(F~Lm(-P^22iovc_w*xF`*}K*l_7} z$X$2aqM`R0aes`(If*iVBHAW_*pT9ns&1Q#EdXfYeN#*QdvC)?D!D0f?GE^%`^2oM zL?wE^cc`=4vL>}vWYO}#ZGm;;s80xu#nwl1-d1TwJRETCRE*S9{nV(VXgR_79hGYB z0gXOj7UZYHNJwjLZ3m7PeIt1hBUr+)GFr8H(%pfk0W%Y{&dBF^KhfwY1(06& zcnoH_@7fzgV=w)+qM55n1(zF5kx!Z|z7od0f2E;$1H&mTsB6t-I2whDK|Th$r?oO3 zSk=Px199y?WnY4|`_d-?*-Oq0?L5}vj%YI@Wr$V)6U0XIzor*t2Y5$f~~M_ zSheY8{S(E$m@Dcu1D3&uPxcjNNq6y0bWtgwtLhRs_?r)Wf*+fhr_goppu}M`bhyyO9pkYLg@zN+Y43c8#5$tbmF5-z6^(#wO((Gj-97i{CORXA1yV2=g0$QIxHlB&`;-HpKI@H= zN)dMs0rCbyn50F|LEdNPS^@q-%#QuzxK6rKfK+4eAr_0P6J+*Mka2j;9XadA?ZY7t z9yVFKa5~feLHPC;<dh0(xPZk`{ zjC`xl%|M?d=10Wcztj3Rz?eKhdVeCV^I?RyL(9u|cQ<)B0WWlmaSe?H<$%olo zoMVV+vNr7f$Tu(=cy}ucAsk$)>Eg#C85sOhq&7`1fT~~|K)Bn*(p(i>j!l`adn=xH z54Y!;*(u=r;Rwo%$S!S~8*r?gZ^E}$0k_Q`f$r(WjiXGiOl5CiRL=ck9mAbpL)F_e zHQV_Y`{oRuapf{N>QCDaLsq{>Mz`&7?7r(Ygb@aP?j{K?u*vR0(iv(ZsB%n^xTbU$ z3Uie*fVMqt0EE?4PiOS$stvR>b|b4XT~vlr&AE*`l|y@8WJ>R2JURoMPO?i*nGB&U zK)ZK!xT!f>YHxoX^XK-g5b%E^vm3lV<+ReJIM#hlal9gGyxy;&xXyW8`LFtFGSFVF zstWg3EG`uq@j}FkG`DO@7K+7KVpNmxj#a@wZ!(7VE>K!MDb33na<`MiNjHcKV0m@L zjVLh&_gP0R7#o7l7bsxe1^#prl4$M;G|wO5A5WYCv$_p8kF@kJc?6__z$n<35 zl+a?6hScf$Ee}I!$svfz_=ix0-9gu%NczQdomB+eyMW82y? zg`HAxoYtXl3$<@vzzMJKH&lv4`H_D``w*|8rfJ-Y1Cyzm&el9M(^-9ZhJP*KS+i@n zWh+oEf{SgJvS>&gf0VXL=AtG6%y<99>`;Em-4;2Eu2BTThj}H86_t#xaViiKj)Pv4 zze0|(+Ds{eoSv_qE(|UDJQUpa>QNJ zra@CXHcW*sb)=-wbqRv0OW`WAT@3u{0>fRf6Aj7w>_%`KptCN$VkTqmoVp?f_=Tvf zBf;sjVx_5cGF7cxb*-}*u-EKu(r-`-CunH=l<{RJmzd=a^b;3vh1FEbxord}q?MyETkHH)s#EETH{N8^ZUG3Jlh zpZ7r;fxqq)F3xSXdcte+K8$-Tvt?1m1~AhsGHQSSpY&JzoIH+XPM)wl->=LBz`| zQCrHgSCv<;AaPQU`vE=QF$_BI*86Y^9tL+fLSi}V6ef!zN-+1&phrLNKXc`AABoFl zcwpOqQfE?UfsvDtO(N>{W-3|_0IR>1us=TKKcgBP+OvBoNJ|Lr~jZ) zKXAY;BWFI6rPhyj|6;ap(=cBLYHWkKB&sPjjdaIgmKqxG62M}vh!GG`k5wkzcOR+E zxC2OX7>;Z$6cflJA{ud7}xpXv;yeYBOmsK6nw+g167w+o?>=5+J!+~|A=0W~4VIxCR zsN!fU(mc?9&%$!Ye6+#3u~u$`AqlPNXa;cs)|(QkCQh$@j&}R4_?v!7xby8io>5ik z6U7dyK;vWGX)*A*oZ*mHE~LT^;^)UEp>*H!xwh+j9!%8ab?^LGN&`94TF6r4Q^Oi# z&W;cxWx6os(`ErKGC@L%l0psVVoMcDKcZcdAH@Odp?!lTBcn{_&R@V=zDNZ~!`nyJ99&)4|4 zzvJyTzF!RymZ`Yka*e^ISfmEew}EM|Na?7LZj4Yol^i=sc4Q9Y^cd z*M*jL`Y^V;roKqmj&yMth#Kq=Dr4$AL`7Wr6hVh1xn=k~tB&q|T~;_wGo?sB()fG= zf+qpZD?0*~{=qkSF^q`{dvZL%isb7(SMbQp$ z|8W`IL&miisAo2MVpkxFYw^C8WSGOrR*}4A{&G^=hrIhFQP-aNXT0(xO+&r=_bBW# z*1Fix*>BI7Tlv=0Q`3#KlhpN>rl~61VlF9=I~@>FyZqTM`x+VkJ}z%>O5Z<|TLU4( zmpZJ`(jh;6j?K^Y_Z!Zy@Y^i_@Z8aC^`?iM*y$`HSy0Cv^|j!b3I!T2(x|(UZuq)5 z$%9oI*$gc2fBsp{0?<@mjRpzji})P{@TIB?%-2Ky1sX`-Yj2v zIB%|3&}2nSTq5}tZ|bo(>Z?37V%xd{Wmf$$P^z;#7>W?%xQ~A}@HoW2WMpiS+YmU$ zf&@g|%qivp4!ZFVjh+D(K%0|cAQ>TR*%uqY5nQQz1D))Y12<_c!#SXAUW8QWJ`yMA z51ieMUh1@x0N4ko~0J1Y92S4R{quG28FR-_Ry zP3RwGpt-NtYTGOv#lT;`^*c#@Pgyp`?OX7S%t{O?7%WW294J*oMt?)mvzRvYru}Y# z#~@8@qR>W>ssv#1N{KV+KOm=IO9j(42TrtA!U^GhvuUuzOR4=)$duMJ3r}}@a|@oQ zxXOU4L*a5yC|d6`N$_At4k%B>Zv+XTrWX$ruId{gU^7m-Bo4ri8%6{>E#y(<2-qA8 z`RN3C41_(ASVun+gO69pgp>g_mnt-gM_A2H*N#rWKxYSpKq?3^EM3C{7|qU-6r=%E zOO!air-T6W#k{hV5zjp}WvvUhB;KJ&(xj&TzFtO*dZhn7&_${a+f39I_~-M7wzh7V zIwOc1*=!v9klO_-OzEXg6$IsZ#VpdiYEBRXQ8FL`(=FLvRHK#>W$7Mu$-c-qTHfT< zXh4Ro1uq;2n8IfV0^dM2s~|F%MZk)DxSrX>f?CcCMf@Zt4c0_MZoJ>Hk0-<=7g97; z*B_JneD)N~6ilSajS{KoKGDhqgSJgol(w!Rkmi06(4Ev*=-x5hZ+1xji^LOQvB;ed z1sEpV=q*nF3)M{c(0EibvBJ}M^#97JFy&uG;>v$-& z(`stQaFRJVAkJ_nJgM7W- z#g)x^>(&8OR3reK><$3kS#?_n=UxkjvFUr-UlyVQt5j3Pfe>GxwdW8o+MC~$N?gev zjCYUe@xXrSTKA95(g2Oup-Qs=l;hjfB8%-I?=lq{(_N|=!U|7q5-GdYHMJHNB*X$_ z;_{2_@fj7{<3dHt!}KyYT#1aU0>@AhHS%R8CGoGGpgmQ3Utpr?%Ja*D^@+?3@Mh|+ z%h>Kv8d~rZ0c2b18+PxywoNf08+xCKt#t#1++KVz!!V(Hq}TBx)?oqe*W=o~Wf5+* zOP_l(FkXE+_Tjw*+~}PCGu{!fH)n18urcm6dSX5>Jq-kOyEfd>?W8enbzy22bG!8e zCckw5F;oiF9I_6-$Q2P`p`=`r6|RDEk*(^l_yh}0>P@WzNMbZkWQ=`~8`1$PHaIzt zlWKpTbDZ>?9lY&9TBl~ll<$d8GThjWtkiXxuetkLuT?b=;tVy z;DBxY{ihn*ULCx5-si*GxO+85JZ7Zz7iWn2$`uSc}5?^ zdUmp?jHv|mQ&y?_m(7D}J0SK%O7LjS$TcSRO>{Y|pONFgO1MDDC`H>;o^VlgOaYfG zKb34+k_Yu|Y(+m64Zc<TiYQ(F*DxE~j?icWjKM^(;Yhd2NsBA{3V8T0!aX zgxgNfB$swK*(zptM65-ng(<$oKwF%aQ?cf7a} zlrk0nh~HTbf6MPBoBxjI%No??_kZHeEDp2TZ~z<4fI_R=qwraE0_E$<&-{^G?z6jU4dn zNYx!fxqi9>XL!EgM1-GKZ?~16>hSh_tMl%eLRMjn#=Oq;exr0!?1-KQI~*!_}i?8(Fz5X7S6`+oL=8`=+!M-J*^_; zSMcAtpmZNYn|CU&FJF7c9RC3T0mNAV&52qyr5?CM!cF^9oJWkw{w@E6SUJjEA;jUM zkNOblW7j-iKW8$X3aSxRRIPUg{5iQQk2^4ogcX@tu|7Hw1yLZ5s05+9bS7ubTcDod z*aq)pkPBM!B$B-oMLbJk%*P&WNeIToIXt)|LB-taG>2R-b_w(KJg2CYvA4XBx^i%EyYfeMb@3CNmQLl9|nqVRoLv342Zr0KfE|`K^cMs z9d!8laN>v>fgqZRIwvYZD0Ji*xKoQ!9`DdDiFj3&79fX3?m|QtoV0| zU=%CD-mUjmkSXYjgMC^?neZmX5XV&7_^1V~hC)oHkr&QNLAjpIo8H~>EDE+n_htRK zy4~h&#y38E_kEPPt`LwLq=t=)-Aea^Y#RUu(nuxi!>Teq+>ja!$eZR&iQAcGA zDWYKA>CPNo!OZJx{Lb#3q}(WVQ>oNA2uhbxBYPz}5DC;S#loXI# zw3D8hjZDaLY+16_IF=pN+K3>-n{|*ELLG@~4Sp!BRaz@+k3DnF%Xu65BNVox0kOwY zX^*%3Rwpr!2W;%<&*<(0=X1mx7`wFqY@=z@9w9UDZ2v_hI>#>V`!d<&x>=c z?=C8Z#t+Gxxum-daueDEbjjsD&yh5wj0{Izt3oDw#~m6-H+{W4t;XwQl6m9sDn#lO zo1+jVLF=iK`seLbt|?dX4{5lw;BHr({0tnFpe78#Uht|;s7v61;0@q%!$D%GrLa#R ztPB3on1w6Z>26?{-QzUSzeaAVklB#PCZBK2v&?D9>xvX`5wv9JYsYl2->9Nhfv}``JwJe2jr9R)o(zhR;E1h9cI~Kx5ARda|kebZ&hXdNsII zaBF>iJRIff4psLFdh<+g8_0G2{%>|74W?sG*iZlf8L|KX`v1eE{jWafZT}`^A?>UF zK~-zwzbX5Y_xB*wYwb;291#Scmfpf$W$PPmd9LoP{3iy z|A(=6j1h)uwnfLbZQHhO8_(FbZF`=vZQHhO+n)P=@6As3IXNf${HUz{(Mk8}s-#zU zr>j7KhJmcf;e@&fV%YV}8e3L-=N`pXRA;ANiak5L=w~1hDO=o1Iy*Wpp2{yaCx|)6 z@FxSh5FQwIQ`GMWlYBT6*ZARWCkP48vMa)(UW6-sb=lNZv-pRBAD`pJ0Bn^*kdjYPPE zDt@Wg_#s9C{RW{*;XmE@2CMfNr`!TUmXAWpxf{o`~{tfHST0-CD|jGuY$ol__A@~ROZKyp=%cy{rKha zlkE47Bw}XZ?3jw<3?*#PxhH5Zm)|%AKra2DZvKVSX|zn7ejbb8+WiJHi<@L2ZxZSX z;e0{nZbBnJ7WtpIsVauU-k!(-rcF2_fY$thIbB z(M=~jMTkKNR%Bq5*t;+pV99D5hk*HIoCzQL9kQa z)M(S;1gqxHK(YNOj%l>hT~jLE0%=_;x@9%?&rlI_Zp)xK2g*f zT0NPio_JFvaRTDVodEz9#Yup^Nob(bOvDg$OLii<14+z%*o3^ihek+SDD08 zy}Bd@>H@fo!JhlTU=0CfpneGcMk7;I_&DduX#Fo~s*A&<=?dLuDyKD4BuC^+p%Jg- zi!8Uu(ml<*ItDYd6+(YYkrY*qsX9%Hdx97%RFge$(LugoCLP607-w)Mq<%sLN7rZ3 zs-B?H%2;84dOG9B_)G??JEiS_(94}e8KDzrCPxCUhT4;|s19>5>oS;r9ZeQ$dFm&M zcrqQG9DIc;y6MPpF)$-Bl_}dO=$%EpIpi! zGENw`i%EBI45Zln9n{F#+?K`QTJ#h`EUOo5O=|BpvDArGO3S@W6D_JEnjbMqgED?e zS-{j?dJ6|m-Se_$Z#TfDoX=_EueEZny2O;-S(|unJ8$M#cy2^V?3;-8O18JZnckks zIWgR-C+T#Xh(X#I>F9b})>o)JoPd&Nov%y9)LQy_^CwfuO&Iu(WxF~)x>wB4EW@Jnyl-eXzeo3tLdnTRF^P^p$ykzvRZ)ExA zzL8r$XGtWwC68U5(wa8U<+@w#(@MzJ3+*Kgl?!vop5AQhf7Gdw>=>_0y2zq7qT@_; zrM4V$<*TZ!ZF#$Tm$!G|nCm%%rvx-ejBpLxo{6v7td0O&R)92jlx-_`$Fc}l&EI7B#4C7+ z8k}#9W9#6K0a83B&0a|cGl#Jr(~B8~Ig35wA-d2b`1J0sZ+^C~%&+q(-^^p|QzXlR zcN`)*6PuM^hKvCXIE}gqx{+(m-}5lm%4fV&6tkkcPZq#DJeu6LA3-GtQ+%_B3-9>c z6D-_wR(WD{T4~N26gOyu4=sUoCL2ZAncsq&UD#jBsHj+e93DKK4AXwi92OUkRa9Z> z=C7Cj>0(qM`t;$j6k^z`I^=%ykn%2)OSnqdwNR=^zNV(mw5KR(yJ&)J6l*cKvT<`$ z!?UrywRXAn-KK!Rb1bofIdX1f4H~Jip!2*bhzuUKehW5GxE}8oCO`I~P`5Fs#WBm` z5X0Zvek)NV$U4#$&;CBjH|dGCOkc5*lc=`df)L@#>UaORzHaunIlcKlp_Q?aOy{AK zoyWM!8|O1{oh@4vp46(D^@8q~dy5uSyKabYdbN)d!P z7e^+lW)0Znnd2W$E%iz=!8*1Yl`<%^e_3_Q@J83O4}BeRwdrKO?y2?F6u<)ao}_i= z+3}EItmA-}&7e{F#+}GL_Oe_x;k!?sNnD|c;PBKytpaURa4^nDqpkXwDK6}~!s6H?_M*lWiE}caegXV7+0E^HH!CL>~K8aHrcPM zg;S#m-n?W>&9vlI)b9%Y`l9~ct#+EeQhJcud3(j)B-Wf0vl31$s+(K#`FOXKr&zrH7z_6(|LRV6XA13UhfbWb9Il^RVhbPTexCsoQ7w{g90zn{Jk=hcJ!mvxn=|Gtj`jUA7uY{y{JbEr|boVf+l`}#y5 z8H$bqd56@|N7p38p=HUdvSSnGwc5p?C+*Y>8S;0hqGx^S0~vB% zH+1fR8dG=BNwHZT8JU_dDbmyS zzlh!DxsLz0v`PQ<1|Y^O_OF_qy#D{yY$wC-z)BP>dW+s#p}pZth!47}?wY;f>u?UV z7yXrTTiwe*O;il}i~gEh{k~BW>nbQoa}xa(SjCP+(M1TltB!To8pwfx>STyvYjt2^ zjjf!oqfso<9EHqg-@`fQyCeeW8Jd4_6m^uel2gFKf4g15^bnOrezotB`DcbI{}}%N zVTmlA>}=_+EsW@l?QBgg%>E~m%a~xaMLJ7>|AqOJp#P#*uUD_Eppm1ik!OXilw~F^ zda10VoRLGlke-okMfF0+J35<=b=#V|;pH$`t$`muX-Lx)PM*7iVuP=mgKv(WZ+&79 zZdwdq1Ll7tAe9uVph2Se82r!Z4gVPF|BZm1y$!96iL>D!LuW%ecN^>fiAFSLd^VCtJwotU2!kSJuS=jbbCs@GAiWFeVZ6O!1COP?m|D_CP| zYbj|YWh7Yuq#&c7z!`^SGwz8DU=f&c()-+=$j|Nlb& zKhgc4#{WZrS>1darx1W!_1q&S1zod(9CKpi4jZ{ql1j6zmwd?wWid^R&bp`XFe zfUec`>m|7~^{8)`^OyBg_o5m4Yz~hPRb=i^^^vzDp)L7oVHtUmX+^t$SC{{OggpB5%@zol(5u2;^q$6-yvwAB5ZztI68r4wx%!!0uUJRIf5rg#&&>0 z{V@4kvfcostTjRO5f8|XK&ZP0&^(vC8Ii6TPrvLgU|K;<|C*RN7x#7PH`aEjU9R~> z{$V%Xyk<-TD>?&*&+|j3XnZ|@l9l``V#^oAr}iM?YlU|@mtTmV8shy#w*mqFA3pcb zgerduL_2nBm=2e|S7U)OR53xEO6}~|hhV%~Vt)a9`sAw9$btipOOG&k7jc2{{WSt0 zqszEuY!Yl9(UonZCdr*@1a-sNHMYcLU}~#=W<6|VW2he?$bJ=x%i2U~BwGVG zpvf@115x;qB-Jx)cZiKQsL!>5xUm4RSz&N%IHJe8n@tW+BRMR;hDc`6p4toMJX|n} zApq1Bo?IaK_?bBZFG+aBWo&Og=fp`w@1d}8%Dz6Jto__M0Xz%;KAeuoN5F|f0fG%1 z>W+DxXnPv(JamZ4&B%a_U{pS~KH<%?j2P@Ss5uC`fS7#lBi|^)%`4jbLoO*U(QY}C zvCr^7$WZAvD~L>71s#XsX+}*oQ15QEJ;1*!2k;6~zA*SZVY{mbaeMfFU1+`Neh9lk ztN26ueZOu8+67PGbA4D{9q_C*qxd8G14*BE-_j^lt^51e;T1b^zh6&`bI8~onDy*) z6J|*Yr)WI7#$z7%Iesz-+hL=8H; zKM+znVYB#sy zi_k-}x0pn>f|?))aN?u1XD4{xdO@?RoJx1dO+t4>T05ist@&fPZ{Lil0~h$ixdhG} z7+TLXiY7JBQ8*g{Lwuz&qbL!cUO){rLOe;z0MW z7Rjv<0sIwp17nF_5m&dV1hS$4K4DVd0j#dnJ(~Ty97yZHhf(zI+q+RM5M^F-6KQi3 ztTR&*h`S&~>^qR=0B&(7ePQ>x`H~?a@E|BJMPxIN%^##ea@bF~7>kz@$;|l-Lj=xc z-`QwbD7u+n=Lh4f=moM@ zr;y^_`A{zKN#L+$~b`XMcdjrsqXO1CgiA&?yI`93Q^@ zPFWusJYQj(^?F=v$;Z)FSdn@>bWkh?o1?Sm-MJ?bfnt{mSvw`1{R%V+LzvtCQFy$gGBOQj`Pd=k zKym7m-Y$`#QwM1S!0hjx&Um0b(cv*f2E*!gA7Sj{?q9>}uyT0pz_uguoZK=orh{%(F3uk{qj`rBsf-tqY0QA;PkO%#C6!fG?LRktni7+-0n#EYPI3wlq<+0&|#rNLY>F&mVUq zE`SeX_b43zK+WDV)B~CGR8@-Ftmz=sj%aK22nZE=gY*yjsXvN#j{=)_#bGiEbrCbn z?vv4BkTCBc$aLixp8b43p>qOSQV|?Cjez3wTOF@#OjmU5N6Sr3tJchaXL(B*xkspv z4gqPKC_i5SKaWqkI)IUl9zGET*Ik7*+9p5pcedE5X2!kKx{lGh-g6`!=zW|NUk@8b zPJ!5+TCsdGXki=N!KtEM%=+jzW_|{{*3$Z7sXjlm%gxgGVW~Wg zPhnT-AFQVcJnk7)@VIEUE5MHAI2S;(d)hv+pT zZppSe4!lGafTom3284LuW1VMoazDohGih=;x~4?72F zFnxZqAEXysZA=3e8kUy~c0yT3v;`JnbA!gkK2~DAjk^K89DtHDq@)%>SMMWaG#c*% z6DK9WR2)o_Bzch2YL?__z;qT*7Hf#pbMzc< zvNeDEK!?Mut-HfDb%LD+<1B!SQ2_JeRFo5%1{!`b9{ z_?FRcv_nI-6Sb$m>Obep!^g#TwN*4fR<2IDb!DyL)%)?gYFmT{wwE-?WJIpC2+Dqh zc2AI)fauby>+@L7PV-DX>gB{};(lS9Z@7kSF74pZE1{0K$<=^P%8M{4s#o?&vC-*l zao~27qeC6s=5cS?Dv^_}2Q&FH;kTB3gp>Cg@4&XuNE}2BW!f=)*&X6mR^~z{aI(#8 z@Rf!8#*9En#D0bAL5vzHrnDP~B!+ZEa>8ugEl7*|_4>RQSzl^vNr(yX5r6~mIeP>Y zH`0chiFmq9KN}M;BG}%%4by-D$}CX9lanzo?n$cCc(+*V+O%4*f`>+^-B)|&OJ9a~ zT18QgL|yBBT$1lw$eIoqVa2UOJKOVMcX;zG$HOS#;51JWz%=3E`J zyM$VrKj;g1qgYRUiP9nM(UM`REf=OUFSJk~6v@VJt*@nGNuJ))Hw=v9g5mlZWB=g3Mhc&HMKyM0$=f!6b$ zM`X%}u5(fSTPe~KHs^`dkQQ1q9{}G63inu-$PN=z@Fap(*3mIL*glJ%f8*y7NjEc+ zdS#K%Ba8Ryv*72Ufl%rt0wtppJW*HFf z$btBU;VsYJPJVnM%_QP$l4gz*P%+Ohk!)5n3IvP7B`1Uo7d}k3u3^~#UdJ?oppswE zCmaSj;I_RY7eU`9Qe^*Q&LoLa-4@BRIrGcNq~`W<{JQW)R+ncxNl>RJc)(5t)YYk z{5_Q*TP{cqRuI-LCKK@%JD!#$qK5JB{9Dl-%@b3&3jF0wt~;T)k-*Oxg;YidWoyB> zzZt}V(y@hof}UZci!_5igp^?_M4~>|UWZ0)|0jP9MZVV~>Re)^t*0&7Z#_@65{R{j zN}-Y-A9mVgM*CdvEVddDqEYxuoiZ708iUG(n_OqmZ^$73abB_u?q!{hpip)_o_~oopah7J_;ThY&Z}zj1-8 zX(?LZ`I4RY-p+3a>*yF41XL~J*MbZP zUE`R)u|ibHW_%`MIjlY5^IVD0f-LKZSvyD;ze0B^VbBPBk_OdAF^irw+@b+7J$Qjp ziat4GBjy$tMtqVaZWFc~oD+j4>;3uM2(I@%KYrW@{-byzl4toX`yiJAE-f;n!;J)e zMFP)35LQq}JmwZzheDYzK}wPmKC4u7BgrRgM2B1Vh>SRt8u2M%N!&8l3gh7duRS1Q z98C^U=Xhx?7(v|+y>&kTNds_1?-smi(p6CYYM|s-w%Bjn;T*E{xzoO?&;G?vU6%(K zU7j_@A@$B=<@mQ$0)z2~7HP%$5FuBg| zPUnt+|L;Y4zF&HmbQF{&E^c449i==;{*c@|jIyH22p^Fsb@6gHTy;XBRQPZ*W~(W+ z!fVYI;P!HpaYBRD-4RsrSXp8QWgMIb8cH>(&7pjTO2BNZ>`^61vw(-!axLm^!WK(S>fl+vlxez0hLA4C(DVWA9*z2hAHvCa9-qBji$fFc>5J z_--YFi#A0j`Vuaf4-6wWf@u-vI4PEnm+5KH8?@MNwu#=h51rsUO-VzG2Gp*>J}D>7 zA#`J^4w0iX4-Xh6VOro!9bS_fq*?-$iLm~L{z1hfgfMp4iis|7*KFkpMZ+k|;cOm; zuW%?NwkE$aZUM}^c1)qibV~6++YwGI_%XpufljsCr=&;BPQgwUrloj%dQ2%kF3m+2 z=K0o{CzyDGug+%THCms^+LY+=xU!XR{!FGz^xuWL(~gKU0`Yjj@9!ZB!VuWa+cPpM zhOZErGE3N$7*MZm&GWm|e8dRUY&1xyRFXi~fSgTH@=!$ojpdJDjh{6EKDn+0HzUyh zb-fx5AtXW#bO7_^K%<+DH%#s_zU4QKBC8Uimm6;+w=7|Qx)Pi^mxfLL{dgF41w@+G zn^?w%k8FgZ^Z_MC83VIUDsPVXhScw!f0ZRoD=>~SOEooPSj&z=P1dsxF(Sl_J}a_B zGZyQSq8YW#HjU>eiU%Z-&LuLPZ$hJm)kPy5)WD-ZA*n2dC-EWWM8qaUMc62Jld?iNSrFB?RI8blg>uX$IT>nT*;yEErp%YY5;)O zDa|D_WDY<$5_0H}m`8;(j$Xy|FUWFr7SdZjR+{8eIl-Eq{03;H!QLya_E4 zu?b_Iz@`zp_sxMBZMGRf!`GsaY-;@ess@>w%LA&Kf+CiC9+t| z*E>t3U}ooI+kWF`#}TIG9AcH0-i>lY4ym7-rwf$qFU3yi?2ZKxiX0EoW`YF(r}s7| z#ckSrCIH%-65^rCYHbB)sf^8sF&RMb>~)(gKk2#OQ5Gc&)9Q|zy zzKb!xhn+?RWxXby-FQ7WEXFxJA!6==$jwcw1U{B%H)crQUQB2|+UgTTS1Ao}Q{O9^ z&at{dvsd{=F(xJ*M}A;R5+y-Vn;1`RbS-4!IWKmDJl(FyO%d*SRAA$($OabXfh9e5 zA#W2^*z{uek8u^n$gJ}1q2Dr27MaJ}#m#VX`qT94CJq!ou+xUOIOA0X$CPwB=FX!p zM)-ieb@=T)nV-pWGJ2S|CCjUm=pV_i%B^RQvBS(nwsnj#ZR-E5(7{ zz;02VNhf|nDLVhQ_LeRf6@{2%d>V^4OIz%o(kPY)Ozx4uaF!5c$i^mT$o2HTvmgn> zEYNWPmohn_0S8JCg*CIxf(CaCtWCxOm~2VGkA7k=2<-Z&q^Hi*l0*n9!b#7h>Y4#O z?y9W1S}kzX=_Qd=z4p5AQ#xgTj`^!Z*S)k$5kd)g`@{+H|4AzC{gP* z6Ewm71&W({uHsy5duJ_bYn1O}tdTqbV{?bemog|NL-mHYhLqh6-XQA7X~Y+lWchKn z>|@7%RqBz&itONi5UuBTVz;+Jfc?bYHN>s*pvm(= zTGPeY&--l3wBh^>7Rmeyw8bsa!p3zbYaLw>`i^Ki;o^hUUH?*3+*NSorCb z_f+F1k)2;ItmWCX6tBf|)&d#F)f2xgnoox#$H369wE&WLpNBt_8hFKL{T>P*Jx#yv zSSA{7PS)i0F0$6as|23NcR2S=L%wHXGN?f)VJ?+EJ;X`6IL^G(epB3Uky6drvGNv# z8;o4HVPA2Wl62Wyo*GqyiRzFoh;DNo@*tdv2Y+1in6r1?tBkq%29KlBLVS-*ip`wV z*>|+bW0+A`o|fhq?G|tgRTZ9hc{}bKA zHRpabGde(5V5`RvvT_3(!!4^}yCQB*=b)Ukk)UGJR)T+ns%u@?B1KHl40>guyANw%CrXT&Of*6wg;NC{+<;m+pgmnyXc*7PG2; z@~1?48P>GYH4L^iJr7F@w`0E{!@?{^A@8qce7(MMZ-|V0#yC}6w4Mgl z1{!v%HChRl_>#L@f7Rm1G%By0otRsXoCPt}>|kR+;M|O1`M2u7(N;?KiU_@W>?(!k zqJ^f#0JcIc35FRL*^jW*g@TygZo{gjQ)5x<%ehJrq-o?#vK+JtZJEr)1_&q;jQ3E% zkOR(Bv?Wno6qNt? z*~}djVl1He0^VYGm}(vdmBFfI7#{4JL+bXB$Azq5VW^d?r(J=n`{h@vxR5?g>KM3} zDrFDSm*4SXETItG*X2l}8OF}{8Hv|d((gm*U0qpuIn9sN<>)xVE=RMh=WF^QA+1yj zF{vt~S*j;Mjk2I|`aO{>B(ygsG*+klnCT}A_Qy1mP zC~C!ea{RGa|~7zPVsJR)1M&U=3On@Yvybsrg#Bq()U{?$SgVGiy3| zPdo}vgI=EslPdE!dYzx4Ra%kMGvZ3!P;tT}*}?bkP$-+Y_Pe;h94r{cjY2}IeQ*;} z7!m94GpLFU6%zy=V~8-?UovE!GnoO#-DoXEbC%7Z3_DTCQR|>}tfcimLJt=l=*IMF z`NU=$@Mlgm4+1&iz!Th0F*0tVIP@~_U=D#W0ngKXIm*Z*53@L7A4B6i?mRBjZr%%1 zFD~kLFl(Zu#zoqGCmo`_DPy4#0Oj?@>^v1S9QnXAdV%#~P{AA3Bu8Ch+_u8ha8~UW z6U|1DSp13jU;LcxnRgKXdH;E`O0qPvg_Bx7O~Cz?=o}VknTEG;>ak`a(IH#bMW0tG zt{XpUHJH7=waR{6RxJu|3VIU;`+C}wUDl`u#>^)6w50I&29kZSuQw_3MQKIX_Rg~VEm~Zvys^twN1M9frqq3_L-FG4Wz-vDr8`_*575>?f#hpYZV~l?UK>@rInx*X=f3jAtD&=vVp?BKg?8QMh zjcuu9h#N*d$CKY+>F>YlEk6+VW5LU)(feVo$mjm1d?cGj!jI*AH0}7u*0Rqtt zLKAhB8pa+PGvb5T@YeSJw0s7m=ECfgTHnH~n`w+4Gt(TofQYp`F*g>kKKaPMTU%@< z?}$o!3TiBrd*j1#tVK-_pIb|qX>V$VL53Bw$sySY7^!Z#_=uNWhki*h^RZ&Hu$~xR zVQe+0hqbOMP8pMw>ZhlV{yZPDjGv4t%!WI9xH(z{w;>1SK3j&XW>d!TxS^(dk-7)} zLgHnM;U(^6;`Di{_yY>6ZVwvw){%L>06Rd$zsCcNjOKs}2z_x5!;PaU%`_(kFT;W5 zaoX$J440njQqSu(-;nrnI0=foh|e))4;{D^I~nvZoNt)ms49z}Y!R4$uKeO5rH0-5>{NtS@kiVaD$K5ld9XNRQLl9601;5$4t};L0&A%%)l| zht?T8%tt9%laqyEdYXkP&ixyRHpMgOjBR!jFE3$4RhY5Dy0=|;^nGX!ONzB}C00ip zz1B!LbfL3|A2?f+t&If|C`-s?t#Wyq4TE+(DVXepU#afQ4!J!URhvs0d}|7^OV#YO zd+?!yuo{5d)qUWbWAAsf6j6MfRGKP>(*NrX@td#h8zvtoFxx#RHrl>LIZ>BQU#vwc zl|}|%raQcxm_j-&2Q-FQGfM#eQTI(_YT`jUMHFxLdjVJ75fB%pGq@yIe@|lcXgXYC zI`oi@gufg8dP(@!)X6|3kp+)Nqx zLue8-m`I%CT!{2NO}_Nbt%?dH6^Apt!UpW5^gOt#iR{=rEgo{dgy|ue00@8W#A{$% zhkZ1`PYxT{zGc;g)~?qd(SB=Y`mv;fa=6)d5c}}JvW|Ig6_$OTG|L~W7yEO2t}nA> zg=&SAs_a9O|1QLrcDqHRrNlnJ)<5EK+i!S+X{b3WpXW7K z$9{hNz-%d7uV|Y{14#!=o^W)Idg@uFQ5zMxyGrfL-+2&S)|RKPGgjkXHyRm}S@s6( zg$jM~D}dp2Yy8%Ym9g(L9a~?O&L9QJ3_)lSxU*pnlNWOi*u+@a+V5IcH|Vod@iKpL z1wg=UF6=6-e%Rg2xy!HfoC&*%eg^ymsOkgIrI71-zGk>tC&JOu>Y4@YZ?h75jc3sy zJ(YO|-q8*yK<+-U!C^y5ZgySLN7kJEAuqDw$vr_LoAF$XsQkhQCoL{F`%*-Fs;io& zygL1)(|F2M?DOx1 ze!QFDLeP<#^0zJ;-wEw6TkkkP;bL@?^J9T?`R0XDlXFzN^UHgi z>L*Ce4izK!KIKt3O?UG%L(_ znUp{0{Rm66EnB8~=Cq?MXJ0K%-5qws@%XuDYz<~pL0{dB4`ON=9(tjMbkyP5%Q#?8 z%#%|IW5b-M@(dUy7=J)IEw2$A9)Cs`l|VcVYX<_9h_^Qm1&4O3Nv~j3IW?oR9j>tu zc;j@GyZ9L{XwZ&$<%E6Ij&ma4SIHm7e5`afS}KIlH98Qpa^%ZyxtEgptNsw1TV7agh;caH z*)0ypYG0uivcFoWXfM^>>p`M+{po@qu9s8kr*+pKK1dZH*Nn?-W``~GDen(%m(`pA z6}P!Esn7Uh8M#l-3yp~K;G986!FZDosh(a9(Me8B(8>Mg2MT|hT0FU zl9zSkv9GiuOKmg>z&%}yepn^MFX87^o^~j(&JjtdP!#LCQ`NU`3)T;CQ(-~6EY+@xPjA}CSSw-rO-&qd&-}UnYH=JUJW~YXUHmuGO zs@NBk7NMyHGGRBNN^RXUO~>Y|4VWoO=C34?ptvqqlsqmR=jq18KhSO`fAOySVrEFR@$>*7L=idBEHy#4AcA8QZ z?j4%>q3L2d={EG9f?J%LA;(EoQ4kC2VeeO@nw|%I#?~N+q2=ZN_Hkp6(dwjXpcTb1 zHmZwMMC>9p8T?d?Ou;Y9fE!#fXaGTI8aYE`lvzsNPRQuNJt7J$OVEBu70QSZuiI?I zt^#m`e*Le^oT}x4qq8F(by78hR2+Sq4)|2Tg}RgMJ2J^LlR_eYxcHR7>?W@}n9MAu zbc?C|5<;eMQb90z4{Z_Hgdz*%wHrRvZ(EoU*@wADK`N-*kI*0?*`#+BR{^Ty;p$RZ zsO)A4CLJzY4;#>_n;>%aH9a9StkS^Dh)rwGOgHz;YSKW2yLH5{6am4oM*x~irc9pv z3-&i9!ZU$#EhQKld`hqVBpls02?Y_|(XSGxRLs2q!nAUY6ix!1E(%vUd>K0NOx9it zk|3BR%%(0hD{$%k#xdqlI@({rj4>=#sLe^i-#A2a9BSI8R@@RePtD$hSS)T^=-nzt zOgQ5r(fDxwl0PE8K6PUpRE9P9e)MVwlrwp?t_pe7EzGFA+)YkF$zY0b<{BBvBt&G_ z*>`e#cn;J&$@J+tuNntLVenypl>ZpFAf00rr@%lbrBFooLy`VIBe*sYBkqT0-z9mq z804VteFb#(eca{{(keS`C1UajqE;WYNF&jKv0fZJMv}XZNpBo=QVDxm!FjnJMTGow zD5V2qE}yKWxTAx^x_4qGFmE|HlO&H#;jB~z{vjzgBxa~WjmD4dv(Y}EGw)2@NRSFE z*AA#C_?Q49IHqWWcvd>ePcaQlF(WPUf02({jR3`t!Ua3m3|5|zK(u&Yy17g)s*Giq zg}TTKIKVSDs$=KQWwtM@GP|&^9Qn&8H+UCh0n;_$rtfp?m6II>?A{2*p3&NEDa(R5aq@6#G7rFU|!P9CDde!bIVy zTuXyBm3#Pw{yga8Tk-SA|DEeR1aUIC?j|V7K>;B>)88tloM983hy+|?nn`F49!11; zsq2F0@E(l}*u%p_upUjOp*d}KJCbz_IO*<|GEBT0GqjyO-g{DomqdTrOCL3SN1ua-XdB_DR1ZX) zvn$Qhn;ZNd-uZ&<_DrkDi#m#H%iFMRnRf(|fid-@r-Lg|nR8)U zVQ}Vp)E9l#^-YxWk~D+O_!3_4CcJ%;ygT@a9h+S_&2sVPRU+7H_2%Un;Y+`8+fH=y zx6^JXZ@5wG)>qDbsvGA;(;b*NXI-5K8A;lU&i#Q%YmWHTvv<1U`_D*hn^mvFs&5M^ zEGF;5uUBx|OXxJmK@9IW_IXP_KTNddXF#Ou#sYoB4ByIx5mi{o4o&f{iC5a~Y~J9< zH3f5T&vIyNGp3ZAwCw%stuVH^QDSY}gi~5}az}L>x%26|Kl7O^@5947V3l0>$A ziIPREa^F*uo(|gJ$w11URD#{Cemi9^nf1D$8nL2cQ%96oPy29q&Xa?ANF%=7&Mhr_ zjck!dtI-!yo67!o^t9miD24}ym*k_goScjPtN${GQGWM?5NM3}EbnfPOrXklTV(~~ z%Po=9kzFnJ2vlYNwziHl>aGE8FpNsLdkSJ6RZP>pL^5A(fpbxeI1P)6O?H0Rck_z` zP3hzfi&G#l5gKEid#sP^0>L52NxAQ=@|P)(yo#|xsx}`e7s+>qa9hlub%7}`SOB(u?mwr7gxJiSdh*xW=p@C!s9^o+*Zo7fqJ z=&PRgfHN`cNJvsP>h%nZmvi$GSTW?AHfpt5ZzL@1_!6)BJ=+TXT>!B}HwC=%un<_? z=v!JBoIn2Ct7F7F7&&UDqe>qrjqfAQ?8BeBbF*+(RHT2*Eeb3n>7IeDoeu|v&)PX~ zkj zO&@lLt+RSJW>LT0?|yS^8eXq8c3$J^5r%PxSd9AM)P=nYd6;bTB{OoK#Jf5vy(G^= zbztea^22``&CtkksTx1%+8ZyKlS-?`}e_? zCEBY7mnai!)mtylPW>*C`E`2x4bM+GbHJ-MRwm_WSsc?!cc_{~zx5$KUkx-jifQa~ zho`=8n>2`deNn@_fJdMLQYG^>s=ttsh~$#4$}A2xPD4VT9=Y=={uocQP%;hGX!Vj7 z8(K4QpjMPgsMkokaWUhP`7Df@yVl$2Pf;dRWr=ev(g4*yd%So=hh1Zz$?b+qfT(vw z6ZM>v7s{GfXhpJasI8CN#w0uP7p;D)=BgXLb>DFrcf%atj=lSiI8nKA|#rScfTa!MnsKEaegai$G;s;LzV4K?dwm zW#blq6L&NWs;7Py?=+(a?jkd86l?uB{y`65`PTSf%DEAw%NDTRbKVKjAziY|L7e$f z4s>_*YC#w0BsAuDL2$8?*S&S(Oe^#?%4>#G2Gz%bJ%}A?bPh(zE87GW&fKmTrnEm6 zb(}+9v&ncnWQ9I`3N_pE|l199w1;^ zsqht>nFn+V;P4?2Hx&3mAFk?f*ym^&v}&uBL%FoZ|G3D?f~07}Z^ss<>)Wd+{is4Z3T% zic)(C?ScBP_3i(EoV;U@X3MrNT(;TesxI5MZFSkUZQHhO+qP|^tINji)$6YKVxRAx zeb2sso+o3BoHOE``HUPR^NkpSFR|a;47d_PvS$a+dI@Rhb0~Q*xxKw{J(7bzkUOLn z4mDxDb<15R7M0W7OQi&p%mT-yDi{{>7#PbZrAnm~lgxt0C(9Wc@)*FC(*pb$oUATK z1dNzcQ~rRU5z6EP0`)o6v3n@m1G_SbP{eB|1#-Ty;Ef2kP(*OQ>|eMa_1gDf7bRB+HO!yk3>jAl zleCw}9=mDTBpDa@i;2j-8_y^&Bht(r|7Tj9Yc~AtOyuC5XRMDgQT9o|J0sx@7v5n` z@gGzApIK%STr=P=CFFlQ`W=4Tp=N%YDSp4Mr0g2|k8yQg*%j_~hM)a$2)Uh^kpV;` z=IQjH^Sp)JX~c52AXot0C@&(aK_aXx2+m>!%MfE$ zWK7i1K_ILs@dXxvM1Pae-*m%7ExH16AbyRE0`GGq0yE$sjOg90A`n-k~tS*ZGsiyBj5 zC2Q4~M+T5AwWn@!K{Be#*l`ne7nqqx0+1}*i;rF9{H0eGvEk3_j1TZbJl)LLHOtp_ zb7^U5LqKqn%O?~F#6yZO>y^Y7^~%iDD2Og<7bB@ql?LR>$t8mdagx)MiUjuIBykdp z1gznc(-VpWE<=irjmi+d_{+?K-VlKG$$umGAB6sc@P82bH+rDe!WLRGR?R&n6=B$E ze2OWRIINtexqR3c4v56)^p5ZlV}W{0+%zc+xdKElz-Y8Uuei;qmSk(6wAaWGc1^!^ zb1a-WSwEjo7OuSXs+Oc_pSW~$H2gNbo?}bZI83OT&~#1z@^U&}xY&GLQj@B=%d45L zyXU}rImec*aTrlO5pvIB*2yZm=Wy|IN?y3|yewN7P33*^bYeK3@zTkPe7Os&kr{q} zSyUx8`1CxkNTB!Od0HAv<<)sUH=NAj{TpBZ!msPU>^`@D@bM4c{K1Dm^Iy-YV)~&9 zMrfZ8Y&Q!~TDTI7)$isdZ-8~e+O_q!RP*yvTu&+Kt5R04lTzm-8@-6r-NR};iH#qS zVmyiA&WSm?ksRE^q;uLt+y9S$U2JN~AqiY5syM$I$^~Gs#22}+j z4in?=vXK}$e2CCJi5)-1XkH~w-{UlIlV)ECUz%zHr}4&&bRe^M<6Hi?tDpaJcmAZz zyA!>|`s3L7`-z9Yo^Tsc6*!4G-0}Kr?)D#(+C$Q}vcG?ZDzr?w?VZjITxNAZN|kO z+0GT1hhNCQm<2!H20ft&|jDDfA@$YumX z?gbQ>_3lMfFvC9lipc+i2TZU*rxE4Mu)uxjf)#1YBTG=4j$WSIB~?$Q2aW z{N^oWEVrI1ELVkRt3!&(vt(J0B=S&+fOtIbgPoItR^ouM(JdInYnIFs@jiOV(>qgXEv?B%C zFcHSzb>B(S?+~V2@BTC?(;DygFQS;sBoVlx&z7d%DOJr+^LIK2pW?tqC1(zQoDGy= z<6*0xmrroQC1p99gBTXK&JU6}FU$YsLHYCw(ALZH%#CMi(k z(sl%lLI0S^Ab!`(n~7PKF90AD)Lu33qJifvnW)Tu9wN0ml4>Muh+NB*JjP^PR{F)A zMO!YjXr?THP`e$%US-`mF&YnOWw8oT9k9ON3wue!wN&H36#my!+-VFc_l^*r! zeDEG|jR%LS+>g0?iTOUH=vU*XV@LTp?}T(U)&WZdzWPaOw~VLnTw{e!d>P2o5&E!t zW4U42k#jO~T`0U%M$)nS-L@@!iKIt+=xpq|JUsA*+fUMaBX=o;YamtYyJ-YkNh6^J z)UykmoLXG~?pX+O|1rpp6UIKrAkB{mI=RjZe@!r&z4!@aqa0wL5GP)Fb#`zRS4i&J zATb-5#W+)GPE_7DO|LUK$175I98B!3#klurjhcWa2{lr6P+H)#d2wxQkoYW%8#KMM z@c49z=~sRFyy6xFXQUNZO9F~O1f(&L^<01SPKcj&$**S!zSKeq5HT*U0@sdg0y+zT zJm(0~&iLt~HUqNlWNn4a+3z%MXH3)nZfYU{Dj{lMPw^WFF~*ZDrD0dZKh0Pq%?IGMj)7)0jW*dyZ}gk2ARk*tBp)_ZZ+DALb>; zU`3ugE0KlMT9BVcxjxREISw8?PPBczVon{LiOd2KU?oB>qa zX60hej6=GF?QrS=6}L^@bL@TjTm5VW@JAa)TE7Dv<+2BA)veN3(~VD2dJIp?l3M0y z7S!~dO&{Uzp*w9H4TS>5V|V-6h0pc97@}hKCf$7u6B01M#d4Z$VhbkQ!X$f9t3o70&GoI3eEAfI#Sv|S8p+~3d_DpwY3tN zZYtZ4>jq|yO|pP>csS1K-WkIIe8a1nNPLH^N=Uu7Li*yoLQd!)FHaArL#CRjXF#5m z6#;&G+9Qri9r~p(oX12USWGVdo=U9#*fTGeLhvD4s(iOPjhby0RI)=K+#@Z4y{Cqr z&3(}b@VFrz*WXA(&+6oW+&ONaZ)%+`3A%QigSk%n4mV(fDnm3=@=L6s)4}5c*S4DK zRJc1C-1Ef#)Nf6p@@b^;-Vfm#WGdnrRV~4jy5I>1$+Bb56LzKYJj%-Bq;*TzqJ2(H z@@A_dvO6F`N`oWQ!|w%Dske*u)O%tlie&JbBrrtvu9&Qd$ec)BJ2|2BLCP|ybs||n z8dJA95Dt^Q0zk!3Vdtvw+TM7LaNxzhOb>HhQ?+D#M>u>gWjubBEApNLg;M@} z2DCin!d(dhqYq15x?EMY5}$}8BL+0Kbp>&KCG^VT$d7yvqM`ci>=}u zf`CV8c@h7b+ZmNM?$_79w&aNQP8~A>1^}>t001EW?^-%I8aX)rJ*2j>F|eTdYxIBX z?ZC+YcT@#d^!5g3K`15EW@7S zytiMU9geGUp(q0uUDsdS^1*|qGH0rk7MFGF@l>Bri;(vnTk>Zv5`D%->yTCc$?jIT zIF{_VM@`&K;8^#l+L z+ws)vWZehHWH+LYj{ShEUcSMf(yeiWx~eXPq(&ozD&;Md7_!bCH`A^Q^vL_Xfrb5A z2zd4t-{r3ELzW-3@tZPEpfL(+k6*6yv>YwV$xr5V?j>R0t%1#DFNLa zCDzC0F~SB}PQ;=6IC3;CDO3%l5x~@j{Yc#V;4SPz>H@~X?LtPKCqcmSt#l_-s|k=( zhyas^q9svNN|8D-SV%U+sKdB((Tei-LC8ahA^VMu1Or)GF7@hY{4{RnU@sUZTfh2j zCXF&#BVQU-i+p9DhgzfM*RBO^!*_Xt1cfUystym<9uFv>G?c|>1QV`Su z#=_@(iV#;w;d!Pe^tXAzlX^*CXHf2sCJ3-Cyl=P%Pfi6!Z++rer0-l1204!vttGgk zneiMQj0D?&qQbjRqmE5-opcknm#|i>NwyY~;^GcJjKgZBJ|!*Yd1ZIZ_cu zG)9g$@19k>+<9n3zC1Pqm)Lz?xuB}hx=GBK2%#mYqAAQ+75EMpS;IssDF=8nd{>`} za;wn~MTx{qSr@k|HlZ?kM*ut1oFZ@AT>Mo+l>mkU1C z@PlOLrbTVrlT=xE0^0 zhZv=RZ*iwKG0rfBV)(7lUEIu>oUDwZL-eU;23N?}}-+Jtnsw9Qbx zX*%04LchpaZcX@o_HQUv(QhNrORA@a57193*Fcj)M--)F+sg1EM9zZJ)6>*ar%o_N zhpN$TBcK}^B6!WHk)vtTTok@H6nUcsIgn-{i7bmjrmspal%Tl>nZ2IxOGoX-MMtz- zZ$WvlUfjJ5m9@2;nDnv`6!>872B0mh>}2@(JnlzXq?n-huG?(bX0l4@r5c!=`Ao;` zFih)FvwB;9$6b-^DapYbTq8$#U5xUWASdS$P)uDe7RD-ZH%Vn3O&tH~MD0l09Hq`j zvUEoMdB_1GcbGjNe><46h<56j3}-u6gAj@>II%h}#)Jj6#foHa+$ht(&OyxrDi%1A zBo&rT2U-rt9YMFG@aYop?5QxFJ79 z{#H?-&-QM&vPF0h@~!5ipRm^_WZMI(t3?t2jtz7`l}v;I!;6B*cWwtEWvpfGt=!aY z4Km!H@0lz(k_y6!zvgxiQLYtNLYwd&aiP57YBO%gk=E}yw7Z80XCN!r%cf5E*L8(a zZ=Lhu#nrSJwzFqVL{@nIX6#EJv=o>Ky&~h&MSzp|9f-V{>47E zEP!Ua+t1r~&CjftoTHMGY75e@ttd<9eW;j|hHtQuB*XNP?2!lGX7n<9U2zM7?4S;e zA{V}y&`s-uctbx^@3#2v0R5Z6XBmb~Y`2%g-udR{k{OP0&g{_x_sg0OFM&bjsPapj zX8go$@;kKJ8w=>`h`n_6M9(;<;gRUA;QW`t3u0R@9Qzy%hP|Nmc!_<)`18&o>up*m zQ_Wl6a{&DW^=Olls6 zDKco7l-So}kltIe(v7&bCT+B?-Daw{Zg_(mu>Q*6m3hqE+~-4%TViz^sF1=Z%_93w zaoi*Y91vk~#pYPy`6|e@51Ximg;*7p`;ZwoWU9+V&+w61betBUiFT(piFNQCxkTk` z1Za>sz~+b1`|ae$4UABw;RiF7=WscF&<%qzosE=%Qpe&sl}Iv)iGMX@d-1-+&mkIQ zY-2zhe@f)c)Ld(dZ4_KNR{l8ii5WOwwZ7UjX@$ z2#V}B(jHQJ!t2gy>Noc`*hf@}%} zeSM_N4eMjG1qgAt@Mu4FgEUGEPQz|tX$V5^iAJyA0sx}f_f*LS4m%X#3tnxZ{ENOe zB0E20N^bUC^%}Qm&s&fD8L~b5YBeV{e_d0XT*_Ml_M1r@H(HILorjj=6R?8jwBynP zOr)w>VV)v+2~;U|b@RPKYV{?qlac7k(nVQ$!DD(g4=~FOC6V5iRqZ*2p38>f!sKJu*gpZNGBL;XF|6jN~m(NnBgaE!vZ}& zrt~l*@x3?pyrsPx+BjINuBu^KcXIFWg0#~-2;+h;0^66-wfLDWeS&BGs@*oIrZmJV zDb_%>E($+z5l(`iexRndsj$IoyQgcrVm8J1>A++lz=ElC9&nHM1zc&Nd+7?H8RF1g zN{$Q#aifvO>4D#Khsn3oLXk4r%K_3QlmMq;9E5fpgsQ)k;OIGc%~9zYUMDnWuEsJ& z;Hr^V3f$aL%pS|f2Fe3}MSc2d-@Ue4Tgk#5((z_$^Q9>VZ~2{K1qPdAYMH=at89yn zXk@<5kscHBd3EY-2$zGdJ73MtoOrrqIV~Hp=aG3wBUi-ph0!*6A#XXyWv4zs=Xn!c z-}Jg@jz%wX35Ajl#Rw-aFg|sHmNp4G%0>a?Q0FXRQ+m}Uw28v=bDWp^kENp5tjrV7 z{R~s@0pa4B8H2J_(SZrw>t~2^E|_Gmz%xY8Bir&9Wt|7##1~LkuFRx`yM8`sDta zq*MleoY^Mep?x~=6}8;(TLShwGY;g`MxY;=f)&Mn%UD^}BYCum%b_(XnKVg9*iMa( z>KzDbd49BJ(l-|JmWf~aY45!MUnQNZ87K3m(}1lB2moO6`^5ZzYJg~IV`Ag*A9Sz; zz%^`pzF!199i0Bt^6?)|N|2Qa;6oW+IYNvNZk-JxP3>>w55btvBe^nnDJGF_ zUo<6h2dK0XAfBb{WDirl<}b@quWa`dHSXSd+s5OWFTz1M@pmjco1c!GtM%G@#IUm8 zUl>5+ssKEs3xYvv9XW;FS7|t)=Stun(Z7#paKks8plF06RH!aGdZ?Pne{*u+oCwcU zYTIYnc+Xh8hZN1|Ld~xm2wkjIn#NZFj$~x^XXn~mVeS+RH(~T7?lM}kJJqF zCSx`2ialspNWhVSL3E$mQ{K`=yRR7Lc+rH?mcPhg zcy!f%+Y@_5H$H0vSJuAd7QL(R9_}e*rV_=ia`1(=Lo)C1sPZKTuvDA*l%FcG1!gH2 z0gJ$Yst5QmS<1xJKX!1nctwF^tMvk(oj)$?ALus6niVR&D$2Cs6=St-#ssr5?^7ZB zuN^&w4j5A_ey;}7?^PxFZ&&m`ZRshAI`d~8|0`?B_QCek!MqdJ2`2g+pt#~EHZ}-V znGrI}D1#4LbA1a#6_b|-?76&q@qFs!mGXiPXx$&=iBBq;SHNekdstL+6F=D}yD;yd zw}TPxJycK09AzC;c_fb_^&Oo$94Yh!v37@v-phb(Fil2igK6_!Lg*L;+y3yUg)3M1 znZ$C9kwUF-0vVB1xJ1+Nxf`^(AG&CdC_af-={U(ooNOUg1-FJg+2&oTLi?}6FMvbP zJ^3yAUr7JwYofnD(_gJW_4ORg45%&j+-#iwCx^&?A|Rz@;?EcQhnrO8Wj6Q_K4fI- z!coRl1cXjWkBF3O6!_)B5Fm(hf%wU1^UHaYGMNYnhWDTvNY7AToh?ZpuQ;@Ul?w;A zx6<4g?~IM_SUrn9+9VOD4soTA>ToXpk4%*3c%ooU8>fVG;1-XN()xdBE&?(6E zkurK!-uh=B-ay~RCKxEoJ%WzGnNdL1zju@I?dVbq{SaXqpnsjdAcQ(^QimjmeO^95 z8+=g>>X}UBewOQ!?y*_DWUo;t#6ri;6TDkS&jceG`=S~Z0)i*}@~l-hn_So*_{CSM z+;du(f=132nUu`mTi_&8U^il^R5z^0{93%W)!LE|OU z5!4c!6Mv2kuX?*Z1QbU=y9PfANF1z*HJ~ZbmO*e|*s_Rn!2(@1xSJJD239sa;TDW* z-s}cLuVKazTv19^qK^Ga?*URnt8=3qMzboD!X)HXRL%{z{?;AL(u5wVh_Khijd@75BlR(KhB+X^l;nj$G zgWxUb^oeQuoC+KZZCL_H7U110g!9knq(aFN@AY8)V>FH zN`xN@@Ze}8nqZ=Kp(@|zh6^MIw+){=WE%4;W=KC1>;?{U@!!m994!;ImdY~A2l#qBph8YYPrlls;BZ4z3z``uVa-hRAo&)hClic8yJA`7-o5yYm5WiFGXJ+I(SsT~$1Zm9Ie8l}JJ}A_i)gU0ySD;m)-ecpDGnCs{Ow?8(oK`Pvozllb4Ah7NOnaasnBf(ogE4gE9!!M7#4JIYxN{*PUha6rG|$EUq7}>P!$(?C zm4we?0Oj@#tZ!=c^KvN*OtUVg*o53?ej{$cG#IyeK)M*uCePtlelmr^1m3$iR2|Lr zh_buqoOKYF6)1fmU^P^*h?5Q%_0%0jG-X*As-zUAMw(bCwoX60N;LqEMOOQ$6W)E= zq#9K^n2AqB6kmZK?YnqRC8o@bnef{Bb$4wusG{Z*+j?|Rn_>VI|)3s_?k@pLleT|ehKB< z>Gku8!s@;Wmoxl@39RGJNu?^XjE>D?JdMr+n-_IU)sMQ+`TwH8^&o;=WFP>59WVd@ zihrv>W3&G^`MFU~{*he?=;Z&FpR^>9Jc<_OGahaOW}i8h@C6Hhgts97Z2hBmAfki- zinzR96Rh_6ESvX7kcW@BPoBfh!c7^WN-Ev!u*-JaQ>MqSw{tjFmB+Edp9PPPE>G~y zD9mjF(wK5sl0zqjWrADu=1%gAX70tlcPMhQ@-f?%`0jkCXlGUty`R1ly^U>wO)B?; z!r^Q)s5JIYp5rB)=LyHqL4?F>V`XDHPx-+Dd;awhRGj0SoZRXg_nND)&Ah!Ug)}RH zz;xvffPjL1hNxYHj()+T;|*U@CzJ3cyMbeJKD>1hlqMt~f{j)P>x@N9ytLGY5pvu+m27 zV47ep!JGtM{#Z7iM-j;&C(ES9fD|aOp3qi<#6CO+J?h`(_rY$zlp~QzFpN8hdnab4 z1h8aRAh6&0aDvgA7+{Hu60G^Hr7MAGC`{w&uf74OjJI+!U0M}L7o5uZv$DseqKr-! zfFq(M;3-U`8z;hxq-uMT%jwnx5v7p2g(WNx4Lb_Ra4wgPG^Kg{Y(6waT;a(xZ*dL! z1T|#16&)cB$?nGve?o{-EF*pj+pr`r!7b303@B#SKs1nE>_7$%X-Wb@H`#Cza0F|J{3*k(=dm@#Ps%ZX*@FRc;NB!`HM~F*1KaOWqt5Qso(%6?;5HB-u7b|2hAi zihXbvDY<6c=h_j*90$Ym<7ZLCPj@XI=#;uA{7z{p(-|?ifg@Yc7|A_#Fx6Z&r@B3e z9k9q)y6wIvLX1&dXuGsftE|?X<8>_;;+gM9wu!~@OFoa3hgffViM5D8~H{Duj3JXgK zy7PvYj)i)3c}0ey!@$cpWuRG125F?M_i*QJ3Xo@jnGvSpbb=y!1GWpknk8MeiyyNF zHdoiIr`g4?)|dj)-$D&W7^}#SajI7-4j`?BnGc*_ocI*8MW_9$?hAgT#hUM1roRFk zU02R1}VoWxwG94bHioAOPU z8bfuoN`gS~NHq}@_h81z`c@NDomR1wNfg;USwnItX+4Qvz^UbU)-XeoIZf48X-1y! zGkVOMX7lzSpmf57us`Q!kEvu>uCSJa3HwDe%(kVvgXC6t>N9A$*%~pVssa0CRas}V z^z*K*O%^l5beIeWb>Sr(WkCtm!nOB@+fDk3Y~g_Ts#eeAM$?6icXGN>tCzv1|1nW3 zn$7#+n*Ej#!)Jfv?Mq}q37E11eIYLV-rUJr+*OLgPdevcC(xyya6;hrKWdip5u{i0 zu)|cmr86G6`&tezVL$~LaI2Yau`)XE2%cj7Y~yB;VQII9-K8z7_)|sg8wRIa6{}ih zJ4}YOp7dlDe#AV_(VfAj1%=M?8wK<$1-7gzitgpqDn7HeRqP(`e_M-I(PhXL!OVHP zj_SaUzp#q}$%ODL6Ub;@K&WG_7S~cPK20TZ@g?cq0cIZ+kX2os6ztzzQzS8&#J9`G z8RZCc_2NllW5d`iAC7!XOZnzLlyp$KCq30v%#+8*fb9XjXUnR26I2p#NpJjWIAyzK zK>|vpU^byyd~j26P(W!`56g_OY|s;C1~I-EW%68zLOc>z-5t>^4VjEYt3eD5X2YAuPwB2_P(<&YNSO3}5h=oB^I z1j`a!kveV#hrWTLs#RggYHqzRS!NqWQ)EvqZOvkBWPd_b-s+h!+BZ>)`f^|?c zkPh~J$(3%0OVC1)^*B;rx7ZKZzu&#c>S%@tnPp+xBD*z-(!BD*P}0cTY1q!O+HepD z=_d}xtA28$g5n_EXFAR=vg7WQeI=lk$<514s!${?JB3+fu12wNhJG1n)^3&xDw$3i zq@1ud%K~}dFu4dt8TFs-grjqV#*j%07~&@!Ig@0d%LR|}59f78;y$ky0|VpiufiJk z5{7w$)V4I*^Q0M`mBdq7IR(d@Hwxr+K-9ANY$9dsQnv_3lLT+xDGJei24Z7m_=s%| zs;a6s!sQ7A6!EFYZ;L7qONfYxX{~VsGAl3oOOKzu_M}^3c%qZ~xpc7jYKi+HcEaKX z3Ubetd;X*@Z5Z8Ci>pHY=?NpROdcJk$H{fYto(gwk0$-O{dzI=(Ybs9-(MT(^@10j&pBBzkPWxv2x$5 zC1^S6GFF)|fZF2Jgh=e7XSA+W8YKe9JCcoVvF42?^dUY6-)E5PHN@%=k^eCd+hRUy z)%8g9!=&aEY<#JEJ!@=NzD(85cklKNrMSqjHQ#;r+M3WR%J2l&06IX$zsvsd7hTX4 zRh2!f-p_C)>ZxDP1GTiXckViwAMYKsUB(%=jOziUKRn^(n}~mT;lm_T0t)PVIo)g$ zM+s&THX|x<;z0~n(~wTA2kg|sUql$m-*xjg*vk9mDFM*LJ2~$ z*g5O%%?lJFe>))#-TCq@Udyk*m(ihYf11j_oz80WJjSX@p>BN4xK5ESoUr1n7cnvm z9kMeoTkG(&Y8ttGebvM))ahH$sB^zZvyXqh`iRasgGMi|(eCp6d_Nl+T41$qEI#(W zP8V^-B+#Z$F!eWx@ou}MclILu^g%e zW7fUIdA+9AEU0;;i&H937vIw_)HXvBd_HF`Tf8N0yx*1S8Wf80rk7+jOyaF8+on5p zrYELVAd-6ck4VByp^I8!Dp@%$*^DRH_6&7q!w9H#{}mlTukXR;X(xH$u(l$-Wo*U zPor1WYo{-=4NZz?7SzE>MNblBr*P1NuG0>E`j!hfTW~G3e#G(gQnR2EDc5XU`DoaS z&=n`)++MM&a=+Gy%l;M3Uh=VuczHmq>yVx(eM&0HN9sPO1T4U#1;o&@x0bQoP;_d{ zk&naZjmxg;+as67^Kp|L+vPZez>8s+-4ILv4!O`k;C@JaK{qTLdBi|;G%S6+N4>wl zjbAdfjVNX{S?6c5jd`~*Smj<)QD*(cJ)-h%Dmp#^Ik7o=ab3GW2((wME)7p-DX@^l z-G9?@Y%nWkA1#>lUyfPz1!9&?zayg`8UTRi-$#ax3H9&b zuy&-@cQUj5&yHGL1%C&}rTafYvSGf#hu~G+qmPGEJLVDaNgZz{aNwJVf~g*Er+BK! zCtv^Lf%qe6jrTlFZEWdBM>2K_*J`D+@k}PSNh4)?f>Vm2nZYS;06N8Wty2p+uz4UF zMCWY5+bBQ9*!eY%)n;Tj!BLn!&g&sK1TBc(IRnL(6lvMGUgk{dd%#Zm1@OQ;W|;=- zkm>YYBs&`~>piNhMoRmnRy(Bq%TD`b>pdP|J(!rnFkNMy$++L7E7k!zp(c7dU}{|* z&LmA4A5+LTc839&+2kKt9T)03Px03286u_YX&6|q(UL8s1PCOjHs_+ z+*WapL+Y=C#5RDwEdz{#@S#PW^p`wXoe{HQsbG#zMFH%BKYyCeRLJKti^wlLsj|v> zta>>6MKL|ZkOvOO;rd>vN*9&h!`jdEM{KdDRw9zEiVst!-B&YHtnlNX_}8vWs7hP7 zoT%eGI?21W-^RF5^QAjrds1- z-c1X9sW89qbWw&VDQfjHI7xMi@CN1HE5`YHw>!_P-|9SY=C5pPHt9ZrGPWx%Zhhmt zl9gvp5M->Hc`@LucM1pHKElHxel_1LFS@r9CLC!q&HzctE;e(@lNz?)9(SvznbYnU zsRmlULkA;gEo-c%qj~NhF}#ZL>7Ay)OdK)$Mge1<(yIc$&A=Mo+~EP zTfDlR08B@!fz~A&1>ZS5h}+W8NxSI-f$kqWKI(%&RbEqv`jjxrYwc~XCdV;|vwgKX zA?N|_g>zMhdgPn~pU`~g1tRI*@8US9^RL3sIMSHy{VjY~_<#3z!@mgsKM;K3*xy3` zhkvSSSRnJGcwc>n=gCqtRn35XWr&+ch(Ltu$}<&`KND5bM_5>Y1~Gn({^IO7(*um39tVam&C(EPQ6l&!n?O0wM}ocfAupA1qDwk`tkieP`&a({lzKK z8(@>4B*CdIHq6X8rn;6Y3B}DdX6G$Nj_x9QilKso^NGCUylw8ManH0OL%$K8(YmIM zU|^?{<%Mm+NK^`z)VQ0#VG!{HD4IVQwtbu@h+afsR~cy@j_BM{(ik4bng&nI4^w}% zyt;sLYfe8DPDhr%oYJWpv5N~ z8%KggQ*hkV#;JKa!)h&R35UHLfRoF3ZxY8n%+)|{IrtqLfBpXUVnW%USj?%vFx5L^ zD<+lUHP0(FQdcA?>I$;Y7XY(B-|YnOU8xZ>JfN46oLYvu7@OKhSc2ZSof4^7>zrMyXRbFe}7wu~YotE<*l_9VxJH9X0=Ollqo5vM5S-bB=x!(!6>qb(yGT4dZaq?$02)4LX3&AoWc{WE}y*_K+Zq=vD`WqazA<2I4)r)fainIYohVpmJR3ocoBM zpNd=qIaW6kTw(Zw&8`G2*RFUzyoflZ2D}=8;R*e69RMt&D)q{n%?)ozw%vbsi|*4lpsf7fY`j<<&v zg1>3P8n_f%I-*K2AFGWQA3UfbUO*cJUj3%aNHOcb=?m}atO|ahLKRbwFw!WC16O6hGPr^w@Sh9CsuZxXGb`raCX$HPq29LIMx8jhY6q^| zWwS<0<#%(LhtIK5&H!_{fpmZfXi(n7G2uK(81qP1yFIh)qatGYTDJq1Q)z0bL6`WkkIZId?V#}Zfo@*ge~I|O7Y z{AVP%51%Ox;-lm-a_pk`BtZdSuds0)1ZO&T?4Ry~GhHZu9kDE|N658BG7lmY@V>R2wMx_^y4?GPv`4wAb9U(8-* z-V7^gH`VZC*&nXU_?Z4y=5}?42EC1`cKz6f%zcz7-+b@pxBM*?gA&_^4mt+rL0}{C zhAd@)Cal>C=bH1VfH7(*&j3Kkl*eGH041Q{- zFu#vmPo@&z7>KS3pm4mFJKWkyhPCi4e;`K^=*&Ed2p3^^;)!XCMapqKA&=~Qi>8)1-W~#QuUxChCY&@l=`S8i)O|;Z|-8#y;)!y;mPWEmEEpiFh+HziKF^)b!3$JSh5}tIc z1{_3Q+Gzmv6{&<+G8Bnhi5$!bK!xZCqe?~Ie#@^*L;0EwKeq7l4kMRyX~TA{)HxjQ z6=D}nqgX{XSIm|J%|z&U44MpZ>9r~C?C0ssm|Uh{Nv#^AoC>J0Z~mTPC*g7cDn1EZ zYQwAZejY(vGw5E^D!no8yOoC?&7QG3(P6g!u|umc7D@D@^?m9ns5K9-9>f>E*YN6l z#lx@E>P<~;^>#bTuBJ{;4?o(InW;Hf!oa6QlkZJtqWDLMLc8TcPjPDPqQ2^3osI$a z8kcGTI06xll|%uSQPEDELxTizyG-zIkHhwau7yPF-bs+>BxXMCe^d-zEabpMO~Fv(^R~Z-@;<N{1hrpoj zajSLYqc-+3O7?YJwr=2(H^Gt3XZA2NP>PDMnG`wo)`@v*;8|0$CnBsIhPW~ajZ?g| z!W}LE zuE-9ryVTgv>2Onn#I~S3u;)|3pQTa*!>qnmbJyLL!ulK)TY7a8TS*2*p87w~LIvs4 zw$vZvQ3NC$&>RweD2r|0%U%JMxs^2Jdd+nWFqO*m^lVPT3%?!Hg5G z6)iTlj%GI2|H(xVHu}_`V&xxhQrECq6hZOc{y-%pB&xAZDUQ)9Qt*`%7QipcgM_%0zKAffa+8_}S*Ce70E0)61K=rA4Gb1& zwPSj`8~Ixh+%7+9$y(U#8({BIa8Kmw$32^vD<@8ELuWapSd+=8-6zTCm7oiFuH}}F zXIK!{@9bjB_f}Z7KMCwSNztQs=lDz3xIB_?o)prx>nC^phW!8&cmgWuA>J6@S7lXp z%`&NBEk^nY}($mtm8T{`tX|FV5TFp{-7yWk`VYnCR_LfJH-0?tr} ziRXfMLaXf}M+@-7J2Mu~rgP*+onZQ~gnoPV6m>^>FO|#OY+8Nssk`M|M^vnIloyGm zEkHR2;izkhi2P~6N!l?P%%Kz8ZtrYSyyZ7Re|f1-65rRW)VV^AuchwesTR8sJcbE2 zLSdN>RKX{cku5XViUYvY#i1bIt6JHLzu@P7ReJq0mv+}0a4^E&nI;E9VYw3dg z(m4H^mYUrs1mZhuuJ4=fg{aPW2smW-bie8xcj0PDIBtm3nkCzsE;j?~dT0iZxhGg` z`p_&TbbcLr(k@NC$AEJ+p9$9G1lXbR!3W4FXqp$glCi-Ne(MbY$xxjq%Req%sx zC9~RgIqbnWFyAuouZkA0YbfPkTrqy-BP`>Bn){+hFp7vyvyr6Qq}v5fbWZjn5lzyF zU3pyGGLP|#WN?ll8tq>uu|n+?_C^Ejh{T1|DJVQ0{UV6uzQ$*KrJ$SBjixP0GN*nh z^^158#hy)__N!KM#nXeM=BQC^@HCFu)baiYimOWXU|?6`vqCro!B_|qx|&~<@=J*^ zDb+s$7t$l;7_c5;!H5RT75e6COkQGL)v^1vcC{mH2M89h7EUY?IAI$UYFxG9Gu(3D z9#eZXQ;gx>q12ZZzy8GcC3)e|HxR{b&H4Od zX=-A}&`ZgJ1ak@%1)?DIDu=2Bra7NU=SW7qh%c_f{el#}&+_uT27{6bd6E|51 z)R|Pmg7}&G_f|LQQ3_ZKX#lDstCSQ_+LjB*y)KBy2Imj%j&cZ&ZPQiaNN+0#fvL*5zwo< zXnZb@bD>IX3VnjXeR``^ zW@Nv%?WT(ND#$8jj!rBqitI_5Mj9;=^chOL&4Andu(EIY)kOmiL@j@S@$CW}b?kHr?H%fuxf$K&fHCe5)LTW_q zK)s|#ADwDcJ!@0=L&B{DB&Sa)FwufK#5rb`qSJ0unR(9rs_->(rg&|k-p3~xp6dzj z6J~v;-uN?wE$H^K7`6uHeIWu)&aQyMIybfrFsKVZyH&f^TXm#$_8~YuO;m;Q4yH3;*q3c zH63Wfp5~Zj0i@s1%5j>B%;7LBwUVGc#rcio=U$jCqGQdKW!6Ib`=xy@F|6z1rH|7-Tc1B zeF7rz24=drz_|GN-CeIfCX0>0upN-SiTx&tc0V9B^wQtWjyH?fgu+UPB3hc}*Xr~Y zu82NHoYk2!FybtP4j@)$Gtk#%JQCNB!y9%N`U34qnp~dw60PyeOkfBD8?V1(k1!1Y zq!FemhKCuqLe`>~SLk$ODBg)=k|7E?3napw91$hcL|N)tyT!-M7D#o7quR`GULugs z_w6NNxKmiHgeP~O_T{5mfm@lsfd4U;dE5i=n1==cz%lsWy5Ij6%lsQLjHKybu?r91 zUwDb5YmY5@v-XNg-Q$2ZTx|JTu_47nNK!=fi1-Le2qJ_67{}8F*_12-D^eYt?S-z=W5MTz;&VNY3p+G!spL*@yX1`$==8h{gBq>d|7S1 zLSNrG0^T_@;xqc}$=@>-_KFo$JMv-wvKsX5zWbEW);Vye{fflHbqxG8HU&@bH~B(` zKTvI*=jZVGIm7>UAr0tj)+tkZN=9UYK<7Nl zjzb^RN_}?$P49WaEJwvEjvxwfzmKpU;1^&8 z`))_?Al@}|I|;>lnh#$844J|+uB2zgGxJZ;g|KCz0To2IkPLZ1Q~13FL1YSm55Q?B5wVPC4>{Zs9GB0L{J{Z`HtFCzdyRr81sWAX z`tbZ2&;fC8#KKGC(g9A+MLdD90v{->D9_H{Bw!$Yu#nJ!xl$#JB+N?)Z-oS8ktJcu zw^&H@U@Y3xL^h&OuY7{8&FO%&PFt0AGyKWQjp^!;_b~T34ycBI6grqi(=`WtxBYU+6G*eV%n~^+EW$-} z?K;8sDKxG}kyL%qkpn7(C?%z3F$yetaTQ9l5c*gmJU76}j1KmMnVV33YM`^|se&%_ zk)ff#sZME-`ze;>H!0BbgL&)>#joJ9xXqYLB)L+&La+WSxFu$eS>d7XK@=QshvXz+ znDl|e&;#wshqm05FhQ2b+Ay=mLKG3|u27{3L`&F8tYQ17C>gA)K3U+EmT*;4L7Ng@=U#{2d_yerN;EIU_DSK)(K8?xjzosye^1shdscH@h~mpNY~m;8qXz4=J09_1)PsMkl>C$kzl*5V8u;y%>Sh>K8I zM%e;^SXX79BAR!S$+R1)kxh@8<79}yR8f?%mSQ07#bf7t>AaQmS54q+rqNEJHQeeM zXt=3!^JMWV78nU8nFNzw_^3gn%@2rG-ICICaG)6+tT({#?f3>a#UtNfq7*7MGkUXU z-uY*(`vwnjNX%5SRNh29N~WteUZkxF=x^VJobH&cY6Nq{qVf-MNsqgfD;soxFBvq> z5eE39(KbL0_^^v@1pdF}_yJYL$NIjA^wMvokdAVsR4v+wa~>9lNgbIDI1toSr8cn@ zEa*0YNvY^t64~Moa${$;6DQO%eBpZ$m+rAXl*p<%l`6zIcsIG&t302zC_lU%}U6BP+YF0R} zs**`kkx>iy-D55L)^!26d*d&IpVBM>j)~P4`vwoEC2JyGQYEO(y7b>{n-t3#=1G~Q z;GsMxbk)GU3}UId+C<|1{Avt>8%L7Fu1UiP!>&8>7OXG-)Npc}=tUb~>jZH}cvdK+ z(w{2>f)GxKxjd?*Y9l5Y4UBMRP_CC0ke?}7cT#ff(tjAJS+T5>Ny zw@Urs>2E@zQaoiNQw9YQ2PRXD&HmD3z)=bB);_Ju3xj4p|~U-HL5Fg8+jU~S&!$IUUi zOpVQhD0~nCqi-7#742DQ%yy#lCX4c_qiyV70yQ(%{QSg@t*X>jkUx!TrgHcgTzbkM-!8 zl#H<#TkKHXzML@HY+r^W$E(a97rm&>&1xR5qGtq3(5~(A zW@}-%>@(RVg-2LUcwr+cC4OQb7 zcLSZg7S@XtuK~Sk>0|51n=U>3RqTi*0qSa2RMNURT`R2(HA16^a)Kvk^b2Y9OX=Fx zG`(i}E;D_vt?mc0%IOOD3@8mV#KlcEuE67CR`%Mp%rxPhFMBbyMig;0`GinG2dS z&zXQDOdn{COd{&WZqwxW6ERM9sV?sdA;VSE5o-L8Qpb;tangS9rmc3X$4zu_$|lPr z>I~bH7O?iJ%{^GTt?A3gqG?}R$AVM%Uk6~DPTrzvLGRaI9QMj7>6i6RW@2Z7v+!$W zrTzzEt_O&1+SSd%*H_9n%6;&U$KFp0=3(|s^aG)#BgT|f!eON&4RYNuparnw$&LIN z7(9eNq6>ohIFkk3&vVp$DXw40IsRD6)L=13ZJ-M?JsF_v1=AIzIh;wd(pm%YR#bC` zsr0bpQ90tDD860379*Yv^_C&9#M`i+Wqd##?1YZke9q3*rmQK`saE7Eo}QEQ1tYno zhDEk$+_Po@o(9TmXivQ^<*rNz#2giQ5xgnDq;B$QzkaXhIT@$2Z6&>}Q&ToPdjTtI zc|r3wFi`DwShc8t&th(&NYQ%@x?Hk}{$AAAVb7|W1N^P7{a8Y}Y(o-l*A>-#rm`XJ zfF5hmdtt=$e%7=(p=?y5)esgWE8jo?=XtucMv7+%%jVfm1YKi8iJ%# z^>IZzgye35J&*!MJLGdLiFn;QVnS)l1#nrtxOU2YQohV&WtO5j=7CBH_nHRP+f$xG zKPOn=kmrLpSkc&ml5=mT#2`z=?O_)HrMNS-1VQ-Bu|l~ncl>@NuaFjFin&K}Q()pD zadAqE%^?6QseA7fv;jip(?Me zCy=$J!QKVk2lPMY5kxM&hlzi3fPTRL*D)Vw7ehM}LnoKNb+!LHg;9&fzmkc+Cl^C; zj8Odo2%^6)C|eep!_n(z`=N&*0yRKrKt=o1G=}0a);vPk+3!ZAs+Axb>Y(kP_>Y~N zI1|>%C7KCTiPK~JT=vC7e zd&j!bs8MAe`R{R!ZGwqH+m$V;j?}$f0bS$|05}hM5z*mzyJVE zumAw`|5sA}n@Z1Ll<5D9Vm*JSg=ph1I{uE;YSQw^iYR)mJ^N;>GRQdL(u(eOIue1> zLeYf8gnNb-!a8jh(m+-bB*7vDqr#Fp2{0)M>+?_a+3#^5(_IT0+;MQU4gS--&pbW% zZRUYm4Pw6MisD!EtbSRCW9^%$sRtTEkX$%UpY1ws>{Lfa338)ps&{8%qcab{VVPAk z=_c*@%o0zhN`4^u&`I78uqQi*Lzt+JU|cgtXfNwdS)QO8s{ypXf{3Gqb@gAj3ZHt3 zI?NW(B|M$PgBQ_Ms7u#qUP%Sf6)J@iRW<3+pc5AM#}qhURDKGB^j~?G$fCVX<2MNY z0LAU|fqm0n#GyNw1uO(KQU*8C-ecWyIfaMrDoE;u29sdq`@#7hD7OYibS=<_TCgTH zV4Y$X8B$K^xbt*YYGkC6KHV~dDXDRb@+pua9&}0k=IfvfoJpk|#xZdA6&Xh-v0=7f zJ~T9hw|lsNdI!%-RFy_;vQfx43L^&J4z9(^opJ)yskk)sI^UcoQJ+-7G-RfY+Nz_e zr>zukm6_yk2p|i9<{Dt(VR9r`&+P(JPGEbOvY$^bloDgO_l%$pPQvVCU$nc&A>$n% z`&L%^cAEI4*emO^w_O4~4f_?VsFG(;LHk?r#qw}9iLJwCx8w&AUjU7hAhoDjq-)S| zvNM&7x61RR*c@-Oxwbv~Ci}#7m82nUO>OnBDAcdRZrnwrY53C842Yp@b4_EkPNuA@ z(8jiItCY4Md<3b|Em0Y$!^Dvx&p;LZ(o0oPq;M6`d^=TSx+oPhkIp4R&=?n;TG@Ge zv!l3$4q6o%H%^=nQP{)N4eb07zJOnO714lZ+`)qRtf4I!W{x?%_BOVNtB~I^yCW*? zT6$7e9kl8PW%`cnTPZ~W=FZNI&RmxV^1B^K8ZS)5-uhtYM3REydp`cI*VPnukT zbL8)b3a#QE`H5Lte&!(@IeRq~Pwa7=ED+f)`aP5~G9bBa&8ll8;cJC7ETM#{4cS;I z!r;LQF*2RhvA3rSCVS&&&-TTWVIfe$r};HdpCMr!aE&7NF-#5+lR^}Vk;g+! z?*-B&kBw(I&Jk;<#*pJ0Re4M&G(QVI;nCzjniE`7pD3b5=5W)W81egHq)_B#k*D06;~}|8^4lFF*00_y4M#*ZyzS^#RL6ER1<&9GQf8cVdz@ZxuE-LvEyDi?Eyd#iiv^EbR?2pUa-dk1$Tb7N!A zTGrP4PT!dQYD@j3+$tkCL$^uo-ZkBCEb8GjEy)$>q_5T!t!k~tEhvh)8s7#F=Wab~ zS-FPND)UWaUbiw#_*M5C(>0BZ1o}q%pT`rJ;)-sgTn>-vpEe)BbU5|h^?eidHH{6A z39hHt)W%yh;j$R|7|;FGJYn*qp9!)d#YfM%JcJtc&MZ)>!ZKj|M~S8|V-19yyOxSnr6Lho)8<9O>kN4_*^lNtSpvqt~jzPb)gvAQH-e&dNFmrA?$^@aH; zCLi_`=C2c{ZG%#FgjuEGWQA*mYf7pkc$%X~+-ZshFQzsg=Yp&O3K{8flEJ^ln`M@w zJR^GVZ(kX#p7nOAwl~5}daQ9xN=MMS0#eWX%vk9UH5u48p22z&{oKHHWrKnf6feOz-MbhR-!I$OyiN+0}X3}CZn1k)i zjnZ2)e~nrt_mwc=mGdbACJ;peM4h4dJZhOQJOCS-iWxxN+>6=Lp(Mc8yVYZ5F9bh_;yS4aH5FJTkcJ@?xkI;D*0>&Oe8F1PgP^p1(s#ltT?@|MNP zu#RSvZYBo~m_hYd<^-n*juxX}^Dzc^T$9bGT<}FBNF~lGI@TGV61Qhi8-OPd@&rxx zRSKoPHqw!dv=jS3F0?)LGc(FqBKyn>AKJ+1d18=52J{iJ zuz%B~q~;6xM2+wF#jKo4=u!6{NlmD=&ydth_xcNm95ftQhQvo+>E<%Cm9R{-O_}8* zNEGb5bXl4pzIrMxE42Z1DMR%G?grbEl`vh3ixOTnHC6aE`Ji)Y($h|{e-vAYE?HW3 zo{10q;#niT$-!LO0b2t%;5i83R6gdyLgKqpiAlXbVP(bF*+r3qpVu;4S{@^S(=PbQy8r)@{f66m+$h-D1;O0)R7pCz)-Drwj9wBOQ~= zsUiT1t|L$iK$zFR1iP1pKsRvcxvI`BhJW6%-yc&u4C-irW4{t`^hS#Ea+d}$hJ2UK zZFjqM_UOC!Ij_lCOOm^ilTsG+SXQ^oftLFt-SaBMsSHj)v7m`1N|P!WpaJ++ra4&0Zy5t_T4>-R7%n!_REsi0Y3mN_ubZvFcOPIn zOQ{M6swbJp&4b8>h?%N~*s#^ex7x56irLD+Uce2lp=wix(2NDI{ze&$qZ%pk`=r)j|X4IG_Q&ff>}Fj5=Fj zxHgT~hKGJbepr~y;n}%974aEvW?ttqsQ4<8VQNjw54j?k*0Iab^kft#d(9GrOZO$Mv)cecf`K-ll7R|kyGzgQ? z{+1-$;>=CMiQq_dlRu3PjtCj+CzXy-XO2P#YeL-!Z4CC5kFk;EYVVp`r)9q3QVx<9 zG=gn4c#2r!A&WzbmJ)rbLR0ql7i9#*EJ7|wSh5~gPnw|fMeN}V$j9Yg8*+a000KTy|lVW3-=; z?LYJf=4MFyj$p-WT_cQd7)!3%=^P3pc}_|PdnbK@u{1{4xzCg@Z@{WF=uB}Xn9Xt+eg4rzdeK?~v*^5K} z@qOZ6%JLQ)77b}fqlF`qy;LSk$<4qB>>L%<9D+>-E#bt*v6dzs#&R?wcAUH)9Rt~DJSc2r}l z^`nHj0YrVqIjnW z`1hYKy%G;PV|}qCeHPLI<>As0_{l_ojgfRMcSh?wXmWXNBb7dcI?40G17!^?yc$ZD zQY1;E3!g=dq`;1*T(a0i2~`-=L`)7R4(=)Y(NjZ9iM)b3_t$n5?BSKc`0m9mVDf;L z6vIoltH|kt(JnaKNG9V$XDGqzkLFTpPUm*#a`<_+EEzM7LRJbHeaohxN?DM=^305V zF$J9<0xIsGy8#td--nm@LjpIK2$|yYrk-J_bXJ`txSD~J294e=3%xyTU0oq|j8c^c74RR)vgjguE&?e{dw$Vbv6efQg?l$I==f+$;i4)8U=ekAk zIj=@d@Ji2b(dXutn|;bvJrD|M;0HHq0qstc}%d zqMV?NwE7I_)zanFBHt{>TU)=-VO8AMhdH2R{@f$Ed~#{u8k@QBQJp+X+U1&=o$MaE ztB5epLQAodg4i3t-3CKav6~bSA38I6_Lt3gm!nxFqy?!>_0m)4Go}pXIJbydO*;nn z@lD)f1Yw8SlpT+WBZyrX`EC~t2R_aK%wo_XCibw0_WU&~lk9S=aHF8FyM%`1&xQ+y z=F?<-BpV-FsKn^Ia3=A0n_8RO2dEWC8io4E3|-SNKsuflq`dZYW2l@S&hOTz(kU%y z-MU}fKCx)v4`P)nh&IDh(9yHBJI*)h*SSgKGHxvh0RtW_h{b&pUsPq^4NUvEdPtqW zERy(eGvx+cFCv`diVix4-Kw3RMscJAh}kHbCA)AmVbkpb8{HMX`$(ncV!t@E=KA;z zVPw5Apw@o4s+Du>P74=~E7uCqE^=#AOuyV-_oUH1t$8=2G(F+`vdurBpnDJ^OPpf# z%kX^A+B36Q5z9}-Z?n`L2Hh)$C&Ryt_Zf;DYEH(YYo2%Owp zqhL$ULY_I)B{63A<=S##$>Y*!)#D9W^^Lb<4Opo?ez);C-IjQ$bar<<%W>=B2(2al ztu2r2Gv%u7L{=-N%Q|g~0qN4wOLfcjBHFsUwmbi8nWDYq6jyEOu39ZSn%!BH z^X0~3`?*)hd<7Y{?2>;`xfo-y{RPengbW z-zyVA9Ei)|WPwWitx(^hlTCF8#!+z>fCg>DMhE4=_c}?!;0xMFIs2WMLvYb~)~ZOO z>f_<(Gp~%2F+L~qBt1jqNuE?DajOJ#pYkq>h4Z<-9BJpNsEG(%PXL1a&X2orM2CiA zb0yAgO7+fl^qn@%n3hkWja%e>?7$o0&$XHjyIXt!*-}=(+S9Ed?+$t|po7Uj5Hp?uUlQE%PX zX|2puZ)-F!VNF3X_Z7hl|6qb444gL~Asplg#t1{e3`M}y)`RKHX7!}Jc-W6NV&O5ESqw0RV_2YEp}EI(DK<;jIPdA&iE*xy*h z&&wM8JZsNzrgXw!w;bOg<<`G7oSl;{7q5bsyY%Vpk(BX$P4!t}#O)pLBp;?8$vG(2 zoKL^2!j{m~H!EqMus~(@-pvxwNs2RfXEc=@dM2q^xHe`)WoQxBc>SldPTIWd4G@3; z06&2M0NDN?RUR`-4;NRbKM((|Mnr33YUKLwG~hTY{8j4tJEkaYNDU|;_^`$QSRFwT z;TQO5B?|zHAVA5Vr4n3M-^0L;wspRPZv1h0aTc_0ML#yd+0n?{nDkSqP?%*Eg3Tk~ zL_hka>G&&u*V0wr)22C?&Rvv}{$|x(2j1WBXd39Jr7AmeR`u*9uJ>9RvA3 zAhSTO(YPS}Zgp<|w3I`u(b;#mzGgQf2oo|@3kpZ}LC^?O&CRell3ac|^yg+pV0~&C zq$KACS-L~NC1D5OoX)trvmFmxXso0SB?Zj0ItaL1cYh)4Y0Gv==EZL~Kk&xJz|?PA zHp1WI00GZ3#!l28W^;w`-_XK?T>c-FZm~?vJfTmP_*0B;$x+KBUqJt8lbt9dCQJ`p51Y7m!)D(h+`eJ^zA#^wp z7o`{}DAzK4i^)|efD%T{!{E(Yjl@ScqAg+L-)1pMBhO|KjZLSgbVhhdTrwcKrn7t{33_o+YSA3J4;I zZqQnxDlqHjM|89A(KWB~K&6}H95-_}H>4ogPLZ27?alh&q*#}DqCPm#Sf=FkQ!7V- zVSIQLB*{%C)onG+QHP*`j8f`f<9Kz1;#3EzjH}XV1WCDmbtn`LNi`3U#+Zh+^AEc& zM3sSfIFOvw-{lbaM#KG*JKda*8VEVNSoo>327&t6Y>cX-31brqFQRFcAn6D?@v~%? z%ThmIzx#JSK){>>v)Sh>OQMs@SL)0*(5P|gg}csJ-|y#Rj=5_J5v-{AcV^zhrSQxD zo2sc{1f>je^f{L8A7<|UT!jAv<#zTimS&#+hEOeS8h4Fy!~)ZtUjY_n=R!*%}`G&dca-l~Hkef$;p{j=_>i{bB~X=rUhBXl<^ z$|BQafF(3^(%;C1dh|USlK3{NPI5+$jA~i_R*Wus7bCXFZjTIEHV+BBkO2R+#)nW! znNbKa<$*t2DhlL(U89Vou&A7}D4ngz|7(qP!d4NAf7bNRXsfInyTE|p7njUEc~FBw zJHh7wK0v|09}KX^W@nu+oRDO9roAv|3uCD>bd`G71RenF02|vtZg}D54ydSV#hd&3 zMMjAQsjMbYK(&SmiSE$`6XgE=9xR9f^LVvdDQmp9BCoNn)8o?|Y+BJxq21rc?`Qpp z+j+UDzP7ES-}6ulZ31e9U(HHiL&#kY@F>Z&=Yh{1R5G{cv?{?}k(Hb#bGkGlksHD(`mUoQuNS> zz#g1i`*ZTQSJxd98Hy7h)v<_z0jEjePDA>zT`|cB)D?3eCpDRm8h{&QA{z8AF~J!S zUjxgq>#TgnPfs`phoI4xBRS%`$zF>03p>zKN4kn4y2$&dH_m}8#tRP%J0}RNu#0TMcm*WIz@caX<;_sG(aAa1nz738Wl5PQka*&snjwg@2 z=di1qFA};o67;f^n2KV7^MPFptD}sOa{}(hty2Wwql8O?wMZY~@)Txg9-!bwdb$QD zKqdadR>JkmA7dCAlRmHBF_WF+{b>tcZ#=>z797sl1tE z(0_E8fuovS$-n>rU9kUiYxCbIQ4$ptk^NVE3GLBe{t>79A8|=-!VXywp;P;gUuGFS zt8);RbRV1J1{e*ZNP>c3G$hMdJRlw+2_ga_Am&#uX(IB4$HB-Oy4P2DMXoNt8*XE& zfIvZ2PEPK5?)mxE7-spHf=>svEaq;b6-jTD09~;ye9=^zQ_hqLvs0iw`uqTMooSUz zv89QH^vimnrZSh$x_UdLH0>E6+$f-$ma$JB9bH{5B!`e|p}Ku|B>D|r6f|_Rhek_# ziQ|$1%PcA11{or>n?1%5kU;qLMn_EoLz*mrw&rzM8gbct>hIWb-^=QPJm`qvEI#g$EENmrs)}I?T zDW$y$R~9tZ|f1!bUIBBfp@hIWM<1i{k-xOaOB^E!HY?~F~+1+x%69F zD)7!d4)zQ2gvP)eR_3CE!`wjN4TW`|>Psi>hm)QOo#YuQeYOINS^{`Y?csTawGI^3 zWpW9q;suT{y=W)*4JtSg8t~6yzPp#3T!_tl$ZIIL$jN??p*j;eNOEgjd&b{7Ki6fD|$4$+hVIIoPF(|{B%LpaCKQebedtV2fe zW--1*h^IW09cVG;YU;5Bn;y`5hD;%RtGvrgbdr(e^2m4B6Ib0aYT~2l$On?bE8HoD zEPxe0dMMIm57)<^m{g)+BgwkF&2@KX@4a}FBz8shx2W1>Fjx`0!`f;9SNlDw%Y|4W zdCk$3${o31tZEBRh_7%*wBa^$Ppa#RD;$$F+sQq`_o9g32c&7x((yy&*YSTo9bNLC>j)ljDx4L`7>Oed0A9`#+p zC&XA>`=yeYCD*re4e+gy{{ixko&Xikc>D9uTP*S?tPuLYdxHPyPMXb~?U`+x3z)5& z?V4?yZT`=B_iV##^IXKA*`H@~asNW-$_B&pS4{OcpYeChQJR7Z6u{sie}IcB4cr#+ zVP_66`zak3uH@w}ASfwwiF)i^X!dLp+5?`pb)A)wW3Lk|F(e!*v==BO2jN*|GND9- zeS7%xMug7VN8@SG{TR)v2%8FaP&;<3mpR~KHwG!=g(fjj32rka93n~q;p%y3%?Jh1 zh#0x?idZ~Uz)i=v3!i6L1C#c_8Z?2a7zTd4J6<7L*qTu48ghaXhn8ZVXtg`*Nz9{vVA}K~X6q2nql&kMVCBWiIajZ)v$o|Vt)H_cObEjsI_LkFaVyy~KR$j*8RH>D$<>CY1}Z8oNWS#{l) zLE+8s-28xZ)n*H|d2%%eTBdRifPadwhL)khRhi`{Bf0SfWX0|u#FB0(_8;Y(GMvcC z0gY5*0I;sS1UXQmm#Ciq-b=vkBh&a;B}5)ggM+Nx#Y(K+3kJ6F9zOu$IHUD(#La#N zsVON&fcX57IvMBdY8E7%%38=d`yW$r^#l!X@DDB6TUaJyjE>~ zXEHi)-H=>{ZXTbYsf+l~)!xf)Uy0@C3`Ee!;YUXhOAvdDM7UgM87oj}ej$szaB6i( z-$~^|F;S@&!evGaX*X8P)a##n=w%#)5u24>xukn`?tzR8EC^20@1E3w)-* zIA#U$W$JMxIN;nLUK1pq$X~j#P6^^%VdwgtsmxP*ui(kHz$KLVa|`S!sNS&DsJFco zwIhd+)59bUBKZ^t0z4|jZ)V@wZF-|3lu%Dy2lR*QdSr!M@k1(dU!B{z_@Wa9^tcN( z2R<2tcxb(x{Cuv^H!zNU{z;52zN-FU|HM~~%qW&%yelp7Ovo2Da-^;(r)C>penS}9 zj`QuItJi8GNkk}X@`#6#>f_>NPxN;~kLV_if@HGJ|;AJp*3 zg$Oeb?^+}b&XBn4RZ-|QM0ao_KvUdQz{wH`SS_Xv18&}z(MYuGO)A*7ecEcvm>8K0 zVKWKLAyimAsU=A9GcPa>E<{1MndJ_XE;`Gc6~c6|6x@|Cj{(`-R<`Syh z5b26%l}wfm3WQU-`{1CipbVKA;TbV4V5w0yjl|4l?W2L1gdCDfIxU|k>!zsM^t4g7 zC-aBW<-17fLoxUjw&S;HZ*%zywm7bqot!`I?{~ z8A3L7_i3DguwN>T@u;a$fa$NHLVPWLkK{I!-Ow#6HA#De8qXn%8r$9AB;hP0m=zo?W87V0w(I|qiheE7#OFIx3@u#!MN?iQroKBFbK!HV;# zT1hgBf9!TsLf*j(Dz=c!83$J&JHQi-OO)06(CTW{K56kqnv?wJEEso=^HEZSCq&A9D#eq?V8(ovznwq~ z6xG_Rglz$jWKe+!SCRy@lFnhefs^p=k;ilhn24cJo!1w(s>_{YHWb9sTMLMDww8C) zYg@C6xt{r|NM-}<7TZ&Ha65s7qq6&c#E`?=`pn1O?q#}T>-+b_Abz|m-u<@>M*2@u zcZP&^$n}RsFrfcgx&FVH{CD%ZX-Av(|H$M18C?|x-V~tt^wV^jT2>g^tsG6H#_3QNe(N|d_RO0KZQq0ZG+--m0cfTC!p_xFYj5SA| zQs5{7QO#M_G=$S#&|oY`^6a)J2Y^s38G;H%F(Kw?YwIzW$SNHb!#YpNFo9FTbf`3z znDG#_wILzxLz#h+sHtb?I7+(`4-VW=;W#c2q@qA`uc-P&0j3_7_;UlpXS<$B%ld!b z7brt9PGMn?X+53G&3Y+WnA>yxVsCZ6zVfesinII8w-wq3?|xG|$iJ5__7vUp~voKnZFQK)}k75*|31IemX^m6N9ew;Jxz~_&|u&sibgpCe~I5L zkU+quR5QXc6#vyg!{$g}W5mfs)DnTOB$og->5;Z__a_fktf)AdTZ%i&2#M(f8$+9P zaaUFMeROqojq@RtH=(y2lfawEjSk_FTz3-3>mN|{SWL4w)$h$ZFwq>Ux}?Bz5)GwjDG#2+u^>WBTD%h{YNJH)UizA9E$z~ zEe4I0mZbD(kKiiQ2V`OY>ZgfhcRcr4?b*)UBD=b{fZlp1WbM?kZ`Z4Za4&r1>auxS z)n0JiPx^-h?=dVH6%y*%LyR}x;D|?s>4>$`@@LC&y`*Qwd8UY3!2weyd;P0^jES*! zK6HfmCR|yT&sUEhM#dI5B?uWV3R4hC9Hzc6C;I1><}lgkOv{$`Zdn0Eu zMeU2I{+O`y!gnW7m?4;yeX$96PTg&7u~z{W*uAL|)<_*A)5BC7xLI9{<2PnGFN7A$ zH{`T0o3Rk4?MH5dTFBf;&qZ#v*X?mKx4V7UcK@Mgv8J5DFif5Z_2b zuiiTiNDC|^0O93hx&$_X>lM;mb<*53Y?Wzd23DaOgFU!MHl}GT!n3xSy?M=e)dvO& zsT)`d_jtQZS5ZtK+T0Jyp9}=Ij8T%v3WU=30)IhV%!=l ziQxx!b2tpvMxrd$<+9O3xhmMn~i z7JGvU%^2|D(j{DDTB1C*S)b=dIm!_ zLty4~<sH(?P@Z+g z9SQfbVdGr0c%lJJVZj8bctd*Bi~LJLLV&;l4RNyEa2l4RRHwJ_-CzZl-d0`7;L}@$ zS|p&R-dO;7Xu@eMLy4JIVuVCd(R@`t4fVnwIz@b>nkiv8zo}G4qayX>e_g?$)fI?UPrO>l zIYdJ)0gI#E(W8!eLcBg-h~@08{~ylYF-Vhc%^JSTwr#u1>auOy?y~JJ+qP}nwr#tr zOYbx1%oE?t#KgooUu0ygz4PbF+_BbPab3BaGH$Zo=?-uO^r@~@Gz~fU<%`k4nh0CM zKCibs+T7kp-VGf-)?dw5ge5J<7=GZ-59iDXA2AY<+0jn=o~blwF8AA@EKO+K$}i=; zBEH;(^hmjCxu7Yi{ye3E4rBepc)P?A1U+w)jx{e&wbX1NaX79HYIr<&^y?KbREDOZ zobVfb(l<;A+@an8DeVd?@9@{q&^KwYeVwvAl4%j`18k*0+V{ntumN@nFALU5h z_?tvfrBi)x%{WTwyn&aETKJOs zqXZ8g^N!#9BxE+fOF08Neq^r67c`CpGbrH`^bc{ z$y&j~h%6PfB_?GKHlEeh0%iVGLs6x5)D9$Vo`N&YX3pa<^&s16QZkk_rpnz@SG;a& z8u{R3p+1UxkR&r3AU{cx4;iHzC`OYbYaLc8uuQ9-D-kW8V8b*^Jae$oUfN+^<;*Hj zUfeY5nsH*uoiOQl`g*+*B$viFt?(I}vu~nV9rA9XaeAv)c(=viP}13qxUU+CYj~_A zv>aYNV-RPhfaoR$)0ugVPb|T5l#De{%ACxt9RDUp^C>^uPp-^BHa zaH7{v7QVm4`rw?_hP|a|dC60`7()(%j}|8B^8zLS1o>uUXb#*1lEshS0`O zsNunj-(`%FfUQ6q|7Z5qUO|$SMvnJkS^Q^+Lg*6`R6%%2?r(eL(j(kyITQh1bjwT4 zM&{Lk!Q6^tj>j3md0W7h*HK$q76#~jzj`{61?;{=@&`Rt8{?k0T^ohdnt?pUmBO#C zq%Q=Sz-#wP`gu~k^@?kRvwV&bv}qa#D~%3xzT*(xF=`n!To0XN zuz^vSO;`MQ=$!|PCO_&b&h9FDB5ghazOmBOIPZrhndT;Awa$fm=>g$4Z*&)(6%>K} zNW0zkyu)|Z0-wulpKwadG|RFh8d0bv^x7YU1p|BKoB3sQ3;T!_g^d|oD1H0v--*55 zW>>(Qr)2X#@e70bNT*?d_mW}D`esr=28R!AVDT(XOFP9UJ1`f&l>fL;wKU|I;D|3VaY$XEXl-&m`=ymf%=maFw~k$!9ZIgr$r;vOm*Y39dMOpo z?+c1l>|Eowd>>xBiC2;Xy82d0U>(!x6KomPN#nN@o=V09Yfm9cRkik3k!ZgJwmp*w zvTt)Y%c|>^=J8a^*w!=$z!_x&>9}av8u(~7n#digE46j1syK=y*Gw;D9n<99{b&&; zDezOzy&6EdC2LE-bI^~PDi;$+M{lasFBW8o4Q%riIdqy`BK|_j9jjV zA!8YAK5FX?*|95azip<4vC1MgB37Go5K@;x{V2FoW z)3rO{Fx`wMh+Yv;D>_Bb9U+V5R!Lixlx*Fs{JB`I=Ethqa8V%(lC%Z*fx#nAGhMzw z%X(%JBtVnm8G6%-^O2czhw?(i7qAoRwbOO-)0k$d$dY8wdq5X#5g2YKIMj8^(<|rZ z7XHJwujIXRNN?cSo2~!V(apJ6&TZop_{(FGyLJzV_Vkv`7Y@eU&J_qm`W)Jama$bU zGN;2e9A3B{jz)HG0mf%|cg6o5jfX?jTx1i(c;FlUW2yUG;!p>iCA)ot_8!Fe8VDTJ zhqlyqL6CnIILz#WOtF{{O8*+Unl1j)wzop)^@C&{)@#m3fJN|=opyu2ACb)Zmd`)6 z;NtGDy)zo&M;iX;!j|wezqw5?8UF)ZCl`>QKk`SIq7_Wr{Q>dr&?mArcs&m&ogKV=v+;E}8A@Yf$|o#Nv#wtot*a%_@KS8+(8IX3xX&D`u6@Hjq_Bj}yBB zaU_1z8-68^AZx5j;~TREM)01t?WlfuLL}dlwHvp)1<*c;U&1La!G*1B%PeV;Yw!n} z)g(5-M1+o~7e%8BLQ^CM|1MsCG{+4{hU?x~_v{X+wYTi0b-Ug?F_Z|f!=TxiTnL5o zyb2OYp*l-)CwdrY#_=}*2@kkU3rq!nlorbeBHIT^HKQX*$O5v zHj2zO-0Cm*iYza9y+702x{=ErTL)D&Gh1&dBs*)k~88fq#&!@dyvu97h1w z6FrPRV(tR*DA?yDO@PLllWymSkg)_~pS)(FfAjFMidmli2zOy(>_%TluVftj*j4Ol zY%w9Ma4-7fwURXYTOlO+1ihBk57WMv{ z2wH}(-bdiD?ic4A-~*-Che+vm5g0l1JFF1)Lu_dvLQ_Nz@&~o+0jPBoWOiG|D)*Rp zl2|Ws*~Z{-Yqf_*v2F;thf(>+UeshUc0iTD#p915_ z_1I~1O7j-&eq302Bm=U6(@F!#)=n~1-I}qq!JtLQL%L;=hejGOyb&tf^!u{oQ((+m zBBYFufd=jDcL)?%DTli|4KQP*hsVdSt7g7rmHEPNF%pU2~zxPCU`a$Spo;S43I z(h)^4Ct=1EoJusuB-or%nzee2X)w;j9fH8X!YY5j^qvl${Uq& zgR!z=UU1)7W&8b~4g`hsX0=jHW67ccaUns+0rjA)(Q3wq5Q5jL2~-_$dyO9wyA4dA zV$xCqOn3x*3ZS^@i$O_3edqNCVQjD-_JX|pF8(AWl9cwOf5r)>wSCQYDZMScZOTu| zKfc9T+P-#EHXa7+Nzw+I`?j0&_kX#lyxQh?WxO9?hhe z?rAxX5rqOH3`I9-f$Du;rT5KjVf5!Wba!6{xZ|6nG#pQ!*JJTl( zHT&4vUI)=a62-{e-Zdp60+=#f+QANI5zC(`fUnOeR&~Y21Qcxvw6(n@o}OUzRJ(B3 zy)S%Z;d2i-FN+Ak<7xGCJ@RMQcpFl|h9J%w3#WT5l;Cu-byq%&ghhGbEWw8A` z27jXC#*Q+PVR|SW!z3-dO~&=$P@vw2pI9lC%5vmbhEA940~cTGZ_<7kCYn9O$>np? zaEN55OB;YGgzh}SvFuIu;G_>omnt;nu*2;G7yN7&uhZQzPRCJ*;!j$BQR8>AI}Ymfm&OUqn`B=9%A0Q193I4@lG=}=k(TsQ z+e}E&>EwcpXY$C(Q=eTEx4v7pVJ6=HjR~#nzjhp^c@cLUj+8jg$mB4;SQDNfE-0c3 zhO+)RB8y75+f!&)FatWqG-l_7e;@H0$`N)>1RZ0{krWmGK<;T;h`X%TkF7WMOUpnS z;|T@221Z}0{Z@ceARTp13_`xX_L_L}d-_#Haoc!6?PvF!C;{h4YwI4yYxU}tp7z;n z>g8+(Uo)`_mIY(uK;gvT{e?I!$X!lfNrm2|XCx5Sv?G1PoK|cU_�Wl)d*|VlAO! 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

  • rC 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 Kke==V;sOA${>X6v diff --git a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs index 473a9f3d3..f20b102be 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs @@ -6,6 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using System.IO; using System.Threading; using OneScript.DebugProtocol.Abstractions; @@ -83,7 +84,15 @@ private void RunCommandsLoop() } catch (ObjectDisposedException) { - _serverStopped = true; + // Connection closed, but don't stop server - allow reconnection + // The DelayedConnectionChannel will wait for a new connection + continue; + } + catch (IOException) + { + // Connection lost, but don't stop server - allow reconnection + // The DelayedConnectionChannel will wait for a new connection + continue; } catch (ThreadInterruptedException) { diff --git a/src/OneScript.DebugServices/DefaultDebugService.cs b/src/OneScript.DebugServices/DefaultDebugService.cs index bd302f89b..958973f9a 100644 --- a/src/OneScript.DebugServices/DefaultDebugService.cs +++ b/src/OneScript.DebugServices/DefaultDebugService.cs @@ -216,7 +216,10 @@ public void Disconnect(bool terminate) _breakpointManager.Clear(); _threadManager.ReleaseAllThreads(); - throw new StopServiceException(); + if (terminate) + { + throw new StopServiceException(); + } } public int[] GetThreads() diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs index 8905c594e..429885b49 100644 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs @@ -17,7 +17,7 @@ namespace OneScript.DebugServices.Internal { internal class DelayedConnectionChannel : ICommunicationChannel { - private TcpListener _listener; + private readonly TcpListener _listener; private ICommunicationChannel _connectedChannel; // NB! должен быть согласован с перечислением TransportProtocols в адаптере @@ -26,6 +26,7 @@ internal class DelayedConnectionChannel : ICommunicationChannel private const short SUPPORTED_FORMAT_VERSION = 3; private bool _reconciled; + private readonly object _lock = new object(); public DelayedConnectionChannel(TcpListener listener) { @@ -34,50 +35,127 @@ public DelayedConnectionChannel(TcpListener listener) public void Dispose() { - _listener?.Stop(); - _listener = null; - _connectedChannel?.Dispose(); + lock (_lock) + { + _listener?.Stop(); + _connectedChannel?.Dispose(); + } } public void Write(object data) { - if(_connectedChannel == null) - throw new InvalidOperationException("No client connected"); - - _connectedChannel.Write(data); + lock (_lock) + { + if (_connectedChannel == null) + throw new InvalidOperationException("No client connected"); + + try + { + _connectedChannel.Write(data); + } + catch (IOException) + { + // Connection lost, reset for reconnection + ResetConnection(); + throw; + } + catch (ObjectDisposedException) + { + // Connection lost, reset for reconnection + ResetConnection(); + throw; + } + } } public T Read() { ReconcileFormat(); - return _connectedChannel.Read(); + try + { + return _connectedChannel.Read(); + } + catch (IOException) + { + // Connection lost, reset for reconnection + lock (_lock) + { + ResetConnection(); + } + throw; + } + catch (ObjectDisposedException) + { + // Connection lost, reset for reconnection + lock (_lock) + { + ResetConnection(); + } + throw; + } } public object Read() { ReconcileFormat(); - return _connectedChannel.Read(); + try + { + return _connectedChannel.Read(); + } + catch (IOException) + { + // Connection lost, reset for reconnection + lock (_lock) + { + ResetConnection(); + } + throw; + } + catch (ObjectDisposedException) + { + // Connection lost, reset for reconnection + lock (_lock) + { + ResetConnection(); + } + throw; + } } private void ReconcileFormat() { - if (_reconciled) - return; - - _listener.Start(); - var tcpClient = _listener.AcceptTcpClient(); - _listener.Stop(); - _listener = null; - - var tcpStream = tcpClient.GetStream(); - - if (FormatReconcileUtils.CheckReconcileRequest(tcpStream)) + lock (_lock) { - // Да, это наш фейковый заголовок - FormatReconcileUtils.WriteReconcileResponse(tcpStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); + if (_reconciled && _connectedChannel?.Connected == true) + return; + + // Reset state if previous connection was lost + if (_reconciled && _connectedChannel?.Connected == false) + { + ResetConnection(); + } + + _listener.Start(); + var tcpClient = _listener.AcceptTcpClient(); + _listener.Stop(); + + var tcpStream = tcpClient.GetStream(); + + if (FormatReconcileUtils.CheckReconcileRequest(tcpStream)) + { + // Да, это наш фейковый заголовок + FormatReconcileUtils.WriteReconcileResponse(tcpStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); + } + _reconciled = true; + _connectedChannel = new JsonDtoChannel(tcpClient); } - _reconciled = true; - _connectedChannel = new JsonDtoChannel(tcpClient); + } + + private void ResetConnection() + { + _connectedChannel?.Dispose(); + _connectedChannel = null; + _reconciled = false; } public bool Connected => _connectedChannel?.Connected ?? false; From 74718dbd08e067739634886fdcd98c9ec33450d6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 09:19:36 +0000 Subject: [PATCH 098/191] Add tests for debug adapter reconnection functionality - Added 3 unit tests for DefaultDebugService disconnect behavior - Tests verify that disconnect without terminate doesn't throw StopServiceException - Tests verify that disconnect with terminate throws StopServiceException - Tests verify breakpoints are cleared on disconnect - All 30 debug protocol tests pass Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- opm.ospx | Bin 0 -> 412012 bytes .../ReconnectionTest.cs | 89 ++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 opm.ospx create mode 100644 src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs diff --git a/opm.ospx b/opm.ospx new file mode 100644 index 0000000000000000000000000000000000000000..0e3e6dd33a11b2de21da2dfbaba6838738d7ce4c GIT binary patch literal 412012 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

    BY_P4SSB>y=i&?gg~#J71;5s5Q8iVU&PC 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

    YpVg^Su4;Xy(_c$tUN}z*2DV9-a0qdp& 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�Wl)d*|VlAO! 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

  • rC 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 Kke==V;sOA${>X6v literal 0 HcmV?d00001 diff --git a/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs b/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs new file mode 100644 index 000000000..edc68a7c4 --- /dev/null +++ b/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs @@ -0,0 +1,89 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using FluentAssertions; +using OneScript.DebugProtocol.TcpServer; +using OneScript.DebugServices; +using Xunit; + +namespace OneScript.DebugProtocol.Test +{ + /// + /// Tests for debug adapter reconnection functionality + /// + public class ReconnectionTest + { + [Fact] + public void DefaultDebugService_ShouldNotStopOnDisconnectWithoutTerminate() + { + // Arrange + var breakpointManager = new DefaultBreakpointManager(); + var threadManager = new ThreadManager(); + var visualizer = new DefaultVariableVisualizer(); + var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); + + // Set up some breakpoints to verify cleanup + breakpointManager.SetBreakpoints("/test/file.os", new[] { (1, ""), (2, "") }); + + // Verify breakpoints were set + var hasBreakpointBefore = breakpointManager.FindBreakpoint("/test/file.os", 1); + hasBreakpointBefore.Should().BeTrue("breakpoint should exist before disconnect"); + + // Act - Disconnect without termination + Action act = () => service.Disconnect(terminate: false); + + // Assert - Should not throw StopServiceException + act.Should().NotThrow("disconnect without terminate should not throw"); + + // Verify cleanup happened - breakpoints should be cleared + var hasBreakpointAfter = breakpointManager.FindBreakpoint("/test/file.os", 1); + hasBreakpointAfter.Should().BeFalse("breakpoints should be cleared on disconnect"); + } + + [Fact] + public void DefaultDebugService_ShouldStopOnDisconnectWithTerminate() + { + // Arrange + var breakpointManager = new DefaultBreakpointManager(); + var threadManager = new ThreadManager(); + var visualizer = new DefaultVariableVisualizer(); + var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); + + // Act & Assert - Disconnect with termination should throw StopServiceException + Action act = () => service.Disconnect(terminate: true); + act.Should().Throw("disconnect with terminate should throw to stop the server"); + } + + [Fact] + public void DefaultDebugService_ShouldClearBreakpointsOnDisconnect() + { + // Arrange + var breakpointManager = new DefaultBreakpointManager(); + var threadManager = new ThreadManager(); + var visualizer = new DefaultVariableVisualizer(); + var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); + + // Set multiple breakpoints in different files + breakpointManager.SetBreakpoints("/path/to/file1.os", new[] { (1, "x > 0"), (5, "") }); + breakpointManager.SetBreakpoints("/path/to/file2.os", new[] { (10, ""), (20, "y < 100") }); + + // Verify breakpoints exist + breakpointManager.FindBreakpoint("/path/to/file1.os", 1).Should().BeTrue(); + breakpointManager.FindBreakpoint("/path/to/file2.os", 10).Should().BeTrue(); + + // Act - Disconnect without terminate + service.Disconnect(terminate: false); + + // Assert - All breakpoints should be cleared + breakpointManager.FindBreakpoint("/path/to/file1.os", 1).Should().BeFalse(); + breakpointManager.FindBreakpoint("/path/to/file1.os", 5).Should().BeFalse(); + breakpointManager.FindBreakpoint("/path/to/file2.os", 10).Should().BeFalse(); + breakpointManager.FindBreakpoint("/path/to/file2.os", 20).Should().BeFalse(); + } + } +} From 33ce0693e579cd88fff87f23b34b8cb45bfc1bd3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 09:19:59 +0000 Subject: [PATCH 099/191] Remove accidental opm.ospx file Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- opm.ospx | Bin 412012 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 opm.ospx diff --git a/opm.ospx b/opm.ospx deleted file mode 100644 index 0e3e6dd33a11b2de21da2dfbaba6838738d7ce4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412012 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

    BY_P4SSB>y=i&?gg~#J71;5s5Q8iVU&PC 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

    YpVg^Su4;Xy(_c$tUN}z*2DV9-a0qdp& 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�Wl)d*|VlAO! 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

  • rC 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 Kke==V;sOA${>X6v From 0e44c9b2bddaee1cd73c6092d23ebf5dd893347a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 09:30:13 +0000 Subject: [PATCH 100/191] Addressing PR comments Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- opm.ospx | Bin 0 -> 412012 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 opm.ospx diff --git a/opm.ospx b/opm.ospx new file mode 100644 index 0000000000000000000000000000000000000000..0e3e6dd33a11b2de21da2dfbaba6838738d7ce4c GIT binary patch literal 412012 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

    BY_P4SSB>y=i&?gg~#J71;5s5Q8iVU&PC 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

    YpVg^Su4;Xy(_c$tUN}z*2DV9-a0qdp& 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�Wl)d*|VlAO! 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

  • rC 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 Kke==V;sOA${>X6v literal 0 HcmV?d00001 From 1cf804c212375c91ee45e025800cc3c02f06290a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:15:11 +0000 Subject: [PATCH 101/191] Revert changes to DefaultMessageServer per code review Per feedback from @Bayselonarrend, reverted the changes to DefaultMessageServer that kept the server thread running indefinitely on connection loss. The current implementation still supports reconnection through DelayedConnectionChannel's thread-safe reconnection logic and DefaultDebugService not throwing StopServiceException on disconnect without terminate. Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- .../TcpServer/DefaultMessageServer.cs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs index f20b102be..473a9f3d3 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; -using System.IO; using System.Threading; using OneScript.DebugProtocol.Abstractions; @@ -84,15 +83,7 @@ private void RunCommandsLoop() } catch (ObjectDisposedException) { - // Connection closed, but don't stop server - allow reconnection - // The DelayedConnectionChannel will wait for a new connection - continue; - } - catch (IOException) - { - // Connection lost, but don't stop server - allow reconnection - // The DelayedConnectionChannel will wait for a new connection - continue; + _serverStopped = true; } catch (ThreadInterruptedException) { From 2a24f953041722a343614613037f0983a6f777a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 3 Oct 2025 11:37:01 +0000 Subject: [PATCH 102/191] Implement ReconnectableDebugController for Option B Implemented a cleaner architectural solution per code review feedback: - Created ReconnectableDebugController that properly disposes and recreates debug sessions - Modified DefaultDebugService to raise Disconnected event instead of just throwing - Updated TcpDebugServer to provide CreateReconnectableDebugController method - Modified DebugBehavior to use reconnectable controller - Added 2 new tests for Disconnected event functionality (total: 32 tests passing) The controller now handles reconnection by: 1. Listening for Disconnected events from DefaultDebugService 2. When disconnect happens without terminate flag, disposing current session 3. Creating a new session ready for the next connection 4. All resources properly disposed and recreated between sessions Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- .../DefaultDebugService.cs | 5 + .../ReconnectableDebugController.cs | 216 ++++++++++++++++++ src/OneScript.DebugServices/TcpDebugServer.cs | 5 + .../ReconnectionTest.cs | 41 ++++ src/oscript/DebugBehavior.cs | 2 +- 5 files changed, 268 insertions(+), 1 deletion(-) create mode 100644 src/OneScript.DebugServices/ReconnectableDebugController.cs diff --git a/src/OneScript.DebugServices/DefaultDebugService.cs b/src/OneScript.DebugServices/DefaultDebugService.cs index 958973f9a..01ed84ff9 100644 --- a/src/OneScript.DebugServices/DefaultDebugService.cs +++ b/src/OneScript.DebugServices/DefaultDebugService.cs @@ -28,6 +28,8 @@ public class DefaultDebugService : IDebuggerService private ManualResetEventSlim _awaiter = new ManualResetEventSlim(); + public event EventHandler Disconnected; + public DefaultDebugService(IBreakpointManager breakpointManager, ThreadManager threads, IVariableVisualizer visualizer) { _breakpointManager = breakpointManager; @@ -216,6 +218,9 @@ public void Disconnect(bool terminate) _breakpointManager.Clear(); _threadManager.ReleaseAllThreads(); + // Raise disconnected event for listeners (e.g., ReconnectableDebugController) + Disconnected?.Invoke(this, new DisconnectEventArgs { Terminate = terminate }); + if (terminate) { throw new StopServiceException(); diff --git a/src/OneScript.DebugServices/ReconnectableDebugController.cs b/src/OneScript.DebugServices/ReconnectableDebugController.cs new file mode 100644 index 000000000..c0b91cba8 --- /dev/null +++ b/src/OneScript.DebugServices/ReconnectableDebugController.cs @@ -0,0 +1,216 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.Net.Sockets; +using OneScript.DebugProtocol; +using OneScript.DebugProtocol.Abstractions; +using OneScript.DebugProtocol.TcpServer; +using OneScript.DebugServices.Internal; +using ScriptEngine.Machine; + +namespace OneScript.DebugServices +{ + /// + /// Контроллер отладки с поддержкой переподключения. Позволяет отключиться от сеанса отладки + /// и подключиться заново без перезапуска процесса. + /// + public class ReconnectableDebugController : IDebugController + { + private readonly int _port; + private readonly object _lock = new object(); + + private TcpListener _listener; + private ICommunicationServer _server; + private DefaultDebugService _debugger; + private IDebugEventListener _callbackService; + private ThreadManager _threadManager; + private DefaultBreakpointManager _breakpointManager; + private DispatchingService _dispatcher; + private DelayedConnectionChannel _channel; + + private bool _disposed; + private bool _initialized; + + public ReconnectableDebugController(int port) + { + _port = port; + _listener = TcpListener.Create(_port); + } + + public IBreakpointManager BreakpointManager => _breakpointManager; + public IThreadManager ThreadManager => _threadManager; + + public void Init() + { + lock (_lock) + { + if (_disposed) + throw new ObjectDisposedException(nameof(ReconnectableDebugController)); + + if (_initialized) + { + DisposeSession(); + } + + CreateSession(); + _initialized = true; + } + } + + private void CreateSession() + { + _channel = new DelayedConnectionChannel(_listener); + _server = new DefaultMessageServer(_channel) + { + ServerThreadName = "debug-server" + }; + _callbackService = new TcpEventCallbackChannel(_channel); + _threadManager = new ThreadManager(); + _breakpointManager = new DefaultBreakpointManager(); + _debugger = new DefaultDebugService(_breakpointManager, _threadManager, new DefaultVariableVisualizer()); + + // Subscribe to disconnect events + _debugger.Disconnected += OnDebuggerDisconnected; + + _threadManager.ThreadStopped += ThreadManagerOnThreadStopped; + _dispatcher = new DispatchingService(_server, _debugger); + _dispatcher.Start(); + } + + private void OnDebuggerDisconnected(object sender, DisconnectEventArgs e) + { + if (!e.Terminate) + { + // In attach mode, prepare for reconnection + lock (_lock) + { + if (!_disposed) + { + DisposeSession(); + // Recreate session for next connection + try + { + CreateSession(); + } + catch (Exception) + { + // Failed to recreate session, but we're in a background thread + // so we can't do much about it + } + } + } + } + } + + private void DisposeSession() + { + if (_debugger != null) + { + _debugger.Disconnected -= OnDebuggerDisconnected; + } + + if (_threadManager != null) + { + _threadManager.ThreadStopped -= ThreadManagerOnThreadStopped; + } + + _dispatcher?.Stop(); + _server?.Stop(); + _threadManager?.Dispose(); + + // Don't dispose the channel or callback service, let them be garbage collected + _channel = null; + _callbackService = null; + _server = null; + _dispatcher = null; + _debugger = null; + _threadManager = null; + _breakpointManager = null; + } + + private void ThreadManagerOnThreadStopped(object sender, ThreadStoppedEventArgs e) + { + MachineWaitToken token; + try + { + token = _threadManager.GetTokenForThread(e.ThreadId); + } + catch (ArgumentOutOfRangeException) + { + return; + } + + token.Reset(); + + _callbackService.ThreadStoppedEx(e.ThreadId, ConvertStopReason(e.StopReason), e.ErrorMessage); + token.Wait(); + } + + public void Wait() + { + lock (_lock) + { + if (_debugger == null) + throw new InvalidOperationException("Controller not initialized"); + + _debugger.WaitForExecution(); + } + } + + public void NotifyProcessExit(int exitCode) + { + lock (_lock) + { + if (_threadManager != null) + { + _threadManager.ReleaseAllThreads(); + } + + if (_callbackService != null) + { + _callbackService.ProcessExited(exitCode); + } + + DisposeSession(); + } + } + + public void Dispose() + { + lock (_lock) + { + if (_disposed) + return; + + DisposeSession(); + + _listener?.Stop(); + _listener = null; + + _disposed = true; + } + } + + private static ThreadStopReason ConvertStopReason(MachineStopReason reason) => reason switch + { + MachineStopReason.Breakpoint => ThreadStopReason.Breakpoint, + MachineStopReason.BreakpointConditionError => ThreadStopReason.Breakpoint, + MachineStopReason.Step => ThreadStopReason.Step, + MachineStopReason.Exception => ThreadStopReason.Exception, + _ => throw new NotImplementedException(), + }; + } + + /// + /// Event arguments for debugger disconnect events + /// + public class DisconnectEventArgs : EventArgs + { + public bool Terminate { get; set; } + } +} diff --git a/src/OneScript.DebugServices/TcpDebugServer.cs b/src/OneScript.DebugServices/TcpDebugServer.cs index 767d3c721..983a26377 100644 --- a/src/OneScript.DebugServices/TcpDebugServer.cs +++ b/src/OneScript.DebugServices/TcpDebugServer.cs @@ -37,5 +37,10 @@ public IDebugController CreateDebugController() return controller; } + + public IDebugController CreateReconnectableDebugController() + { + return new ReconnectableDebugController(_port); + } } } \ No newline at end of file diff --git a/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs b/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs index edc68a7c4..fa5a2a64d 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs @@ -85,5 +85,46 @@ public void DefaultDebugService_ShouldClearBreakpointsOnDisconnect() breakpointManager.FindBreakpoint("/path/to/file2.os", 10).Should().BeFalse(); breakpointManager.FindBreakpoint("/path/to/file2.os", 20).Should().BeFalse(); } + + [Fact] + public void DefaultDebugService_ShouldRaiseDisconnectedEvent() + { + // Arrange + var breakpointManager = new DefaultBreakpointManager(); + var threadManager = new ThreadManager(); + var visualizer = new DefaultVariableVisualizer(); + var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); + + DisconnectEventArgs receivedArgs = null; + service.Disconnected += (sender, args) => receivedArgs = args; + + // Act - Disconnect without terminate + service.Disconnect(terminate: false); + + // Assert - Event should be raised with correct parameters + receivedArgs.Should().NotBeNull("event should be raised"); + receivedArgs.Terminate.Should().BeFalse("terminate flag should be false"); + } + + [Fact] + public void DefaultDebugService_ShouldRaiseDisconnectedEventWithTerminate() + { + // Arrange + var breakpointManager = new DefaultBreakpointManager(); + var threadManager = new ThreadManager(); + var visualizer = new DefaultVariableVisualizer(); + var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); + + DisconnectEventArgs receivedArgs = null; + service.Disconnected += (sender, args) => receivedArgs = args; + + // Act & Assert - Disconnect with terminate + Action act = () => service.Disconnect(terminate: true); + act.Should().Throw(); + + // Event should still be raised before throwing + receivedArgs.Should().NotBeNull("event should be raised"); + receivedArgs.Terminate.Should().BeTrue("terminate flag should be true"); + } } } diff --git a/src/oscript/DebugBehavior.cs b/src/oscript/DebugBehavior.cs index 1f0be074d..bdd202877 100644 --- a/src/oscript/DebugBehavior.cs +++ b/src/oscript/DebugBehavior.cs @@ -23,7 +23,7 @@ public override int Execute() { var tcpDebugServer = new TcpDebugServer(_port); - DebugController = tcpDebugServer.CreateDebugController(); + DebugController = tcpDebugServer.CreateReconnectableDebugController(); return base.Execute(); } From 53f6518547599386ff8efa557db13949a479d848 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Oct 2025 19:45:56 +0000 Subject: [PATCH 103/191] Address code review feedback: simplify API and revert DelayedConnectionChannel Per code review feedback: 1. Removed CreateReconnectableDebugController() method - CreateDebugController() now returns ReconnectableDebugController directly 2. Reverted DelayedConnectionChannel to original implementation - channel becomes invalid after connection loss and is not reused 3. ReconnectableDebugController creates new channel instances for each session All 32 tests still passing. Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- .../Internal/DelayedConnectionChannel.cs | 128 ++++-------------- src/OneScript.DebugServices/TcpDebugServer.cs | 18 +-- src/oscript/DebugBehavior.cs | 2 +- 3 files changed, 27 insertions(+), 121 deletions(-) diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs index 429885b49..8905c594e 100644 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs @@ -17,7 +17,7 @@ namespace OneScript.DebugServices.Internal { internal class DelayedConnectionChannel : ICommunicationChannel { - private readonly TcpListener _listener; + private TcpListener _listener; private ICommunicationChannel _connectedChannel; // NB! должен быть согласован с перечислением TransportProtocols в адаптере @@ -26,7 +26,6 @@ internal class DelayedConnectionChannel : ICommunicationChannel private const short SUPPORTED_FORMAT_VERSION = 3; private bool _reconciled; - private readonly object _lock = new object(); public DelayedConnectionChannel(TcpListener listener) { @@ -35,127 +34,50 @@ public DelayedConnectionChannel(TcpListener listener) public void Dispose() { - lock (_lock) - { - _listener?.Stop(); - _connectedChannel?.Dispose(); - } + _listener?.Stop(); + _listener = null; + _connectedChannel?.Dispose(); } public void Write(object data) { - lock (_lock) - { - if (_connectedChannel == null) - throw new InvalidOperationException("No client connected"); - - try - { - _connectedChannel.Write(data); - } - catch (IOException) - { - // Connection lost, reset for reconnection - ResetConnection(); - throw; - } - catch (ObjectDisposedException) - { - // Connection lost, reset for reconnection - ResetConnection(); - throw; - } - } + if(_connectedChannel == null) + throw new InvalidOperationException("No client connected"); + + _connectedChannel.Write(data); } public T Read() { ReconcileFormat(); - try - { - return _connectedChannel.Read(); - } - catch (IOException) - { - // Connection lost, reset for reconnection - lock (_lock) - { - ResetConnection(); - } - throw; - } - catch (ObjectDisposedException) - { - // Connection lost, reset for reconnection - lock (_lock) - { - ResetConnection(); - } - throw; - } + return _connectedChannel.Read(); } public object Read() { ReconcileFormat(); - try - { - return _connectedChannel.Read(); - } - catch (IOException) - { - // Connection lost, reset for reconnection - lock (_lock) - { - ResetConnection(); - } - throw; - } - catch (ObjectDisposedException) - { - // Connection lost, reset for reconnection - lock (_lock) - { - ResetConnection(); - } - throw; - } + return _connectedChannel.Read(); } private void ReconcileFormat() { - lock (_lock) + if (_reconciled) + return; + + _listener.Start(); + var tcpClient = _listener.AcceptTcpClient(); + _listener.Stop(); + _listener = null; + + var tcpStream = tcpClient.GetStream(); + + if (FormatReconcileUtils.CheckReconcileRequest(tcpStream)) { - if (_reconciled && _connectedChannel?.Connected == true) - return; - - // Reset state if previous connection was lost - if (_reconciled && _connectedChannel?.Connected == false) - { - ResetConnection(); - } - - _listener.Start(); - var tcpClient = _listener.AcceptTcpClient(); - _listener.Stop(); - - var tcpStream = tcpClient.GetStream(); - - if (FormatReconcileUtils.CheckReconcileRequest(tcpStream)) - { - // Да, это наш фейковый заголовок - FormatReconcileUtils.WriteReconcileResponse(tcpStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); - } - _reconciled = true; - _connectedChannel = new JsonDtoChannel(tcpClient); + // Да, это наш фейковый заголовок + FormatReconcileUtils.WriteReconcileResponse(tcpStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); } - } - - private void ResetConnection() - { - _connectedChannel?.Dispose(); - _connectedChannel = null; - _reconciled = false; + _reconciled = true; + _connectedChannel = new JsonDtoChannel(tcpClient); } public bool Connected => _connectedChannel?.Connected ?? false; diff --git a/src/OneScript.DebugServices/TcpDebugServer.cs b/src/OneScript.DebugServices/TcpDebugServer.cs index 983a26377..eb25f79c7 100644 --- a/src/OneScript.DebugServices/TcpDebugServer.cs +++ b/src/OneScript.DebugServices/TcpDebugServer.cs @@ -23,23 +23,7 @@ public TcpDebugServer(int port) public IDebugController CreateDebugController() { - var listener = TcpListener.Create(_port); - var channel = new DelayedConnectionChannel(listener); - var ipcServer = new DefaultMessageServer(channel) - { - ServerThreadName = "debug-server" - }; - var callback = new TcpEventCallbackChannel(channel); - var threadManager = new ThreadManager(); - var breakpoints = new DefaultBreakpointManager(); - var debuggerService = new DefaultDebugService(breakpoints, threadManager, new DefaultVariableVisualizer()); - var controller = new DefaultDebugController(ipcServer, debuggerService, callback, threadManager, breakpoints); - - return controller; - } - - public IDebugController CreateReconnectableDebugController() - { + // Use reconnectable controller to support multiple attach/detach cycles return new ReconnectableDebugController(_port); } } diff --git a/src/oscript/DebugBehavior.cs b/src/oscript/DebugBehavior.cs index bdd202877..1f0be074d 100644 --- a/src/oscript/DebugBehavior.cs +++ b/src/oscript/DebugBehavior.cs @@ -23,7 +23,7 @@ public override int Execute() { var tcpDebugServer = new TcpDebugServer(_port); - DebugController = tcpDebugServer.CreateReconnectableDebugController(); + DebugController = tcpDebugServer.CreateDebugController(); return base.Execute(); } From dfdc9f42f311935ef0e941347385ab48aced072c Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 27 Oct 2025 18:34:11 +0300 Subject: [PATCH 104/191] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF?= =?UTF-8?q?=20=D0=BA=20=D1=81=D0=B2=D0=BE=D0=B9=D1=81=D1=82=D0=B2=D0=B0?= =?UTF-8?q?=D0=BC=20=D0=BF=D0=B5=D1=80=D0=B5=D1=87=D0=B8=D1=81=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20=D0=B8?= =?UTF-8?q?=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81=20=D1=81=D0=B2?= =?UTF-8?q?=D0=BE=D0=B9=D1=81=D1=82=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Machine/Contexts/EnumPropertyHolder.cs | 18 +++++++++++++++ .../Machine/Contexts/EnumerationContext.cs | 23 +++++++++++++------ tests/enum.os | 12 +++++++++- 3 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 src/ScriptEngine/Machine/Contexts/EnumPropertyHolder.cs diff --git a/src/ScriptEngine/Machine/Contexts/EnumPropertyHolder.cs b/src/ScriptEngine/Machine/Contexts/EnumPropertyHolder.cs new file mode 100644 index 000000000..6ba1d49f5 --- /dev/null +++ b/src/ScriptEngine/Machine/Contexts/EnumPropertyHolder.cs @@ -0,0 +1,18 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System.Collections.Generic; +using OneScript.Contexts; + +namespace ScriptEngine.Machine.Contexts +{ + public class EnumPropertyHolder /*: IAttachableContext*/ + { + private readonly List _values = new List(); + private readonly List _definitions = new List(); + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs b/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs index 3e4ea4ae7..6770b05a2 100644 --- a/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs +++ b/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs @@ -79,16 +79,25 @@ public override string GetPropName(int propNum) { return _values[propNum].ToString(); } - - - protected IList ValuesInternal + + public override BslPropertyInfo GetPropertyInfo(int propNum) { - get - { - return _values; - } + var enumValue = _values[propNum]; + + var propertyBuilder = BslPropertyBuilder.Create() + .SetNames(enumValue.Name, enumValue.Alias) + .CanRead(true) + .CanWrite(false) + .SetDispatchingIndex(propNum); + + if (_valuesType != null) + propertyBuilder.ReturnType(_valuesType.ImplementingClass); + + return propertyBuilder.Build(); } + protected IList ValuesInternal => _values; + #region ICollectionContext Members public int Count(IBslProcess process) diff --git a/tests/enum.os b/tests/enum.os index 79027e94b..1a420f6d1 100644 --- a/tests/enum.os +++ b/tests/enum.os @@ -10,6 +10,7 @@ ВсеТесты.Добавить("ТестДолженПроверитьЧтоПростоеПеречислениеПриводитсяКСтроке"); ВсеТесты.Добавить("ТестДолженПроверитьРаботоспособностьСравненияПростогоПеречисления"); ВсеТесты.Добавить("ТестДолженПроверитьКорректностьКонвертацииПростогоПеречислениеСДругимНаименованиемЭлемента"); + ВсеТесты.Добавить("ТестДолженПроверитьЧтоСистемноеПеречислениеМожноПолучитьЧерезРефлектор"); Возврат ВсеТесты; @@ -47,6 +48,14 @@ КонецПроцедуры +Процедура ТестДолженПроверитьЧтоСистемноеПеречислениеМожноПолучитьЧерезРефлектор() Экспорт + + Рефлектор = Новый Рефлектор; + Свойства = Рефлектор.ПолучитьТаблицуСвойств(ДопустимыйЗнак); + юТест.ПроверитьРавенство(2, Свойства.Количество()); + +КонецПроцедуры + Функция ПростоеПеречисление() ТЗ = Новый ТаблицаЗначений(); @@ -54,4 +63,5 @@ Квалификатор = ТЗ.Колонки[0].ТипЗначения.КвалификаторыЧисла; Возврат Квалификатор.ДопустимыйЗнак; -КонецФункции \ No newline at end of file +КонецФункции + From c9b35d40ef7b175f35dd512a3a5a8de0eb57b176 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Oct 2025 12:22:06 +0000 Subject: [PATCH 105/191] Properly dispose channel in DisposeSession Removed misleading comment and added proper disposal of DelayedConnectionChannel. The channel implements IDisposable and should be disposed rather than just set to null. Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- src/OneScript.DebugServices/ReconnectableDebugController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OneScript.DebugServices/ReconnectableDebugController.cs b/src/OneScript.DebugServices/ReconnectableDebugController.cs index c0b91cba8..6a2ad88be 100644 --- a/src/OneScript.DebugServices/ReconnectableDebugController.cs +++ b/src/OneScript.DebugServices/ReconnectableDebugController.cs @@ -122,8 +122,8 @@ private void DisposeSession() _dispatcher?.Stop(); _server?.Stop(); _threadManager?.Dispose(); + _channel?.Dispose(); - // Don't dispose the channel or callback service, let them be garbage collected _channel = null; _callbackService = null; _server = null; From 18a1307aff9292f18d82f100d28c201163a8eefc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:24:08 +0000 Subject: [PATCH 106/191] Dispose TcpEventCallbackChannel in DisposeSession Added disposal of _callbackService which implements IDisposable. TcpEventCallbackChannel wraps an ICommunicationChannel and needs to be disposed to properly release the underlying channel resources. Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- src/OneScript.DebugServices/ReconnectableDebugController.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/OneScript.DebugServices/ReconnectableDebugController.cs b/src/OneScript.DebugServices/ReconnectableDebugController.cs index 6a2ad88be..3d44c3441 100644 --- a/src/OneScript.DebugServices/ReconnectableDebugController.cs +++ b/src/OneScript.DebugServices/ReconnectableDebugController.cs @@ -123,6 +123,7 @@ private void DisposeSession() _server?.Stop(); _threadManager?.Dispose(); _channel?.Dispose(); + (_callbackService as IDisposable)?.Dispose(); _channel = null; _callbackService = null; From e4b7c8b52191df63de905a6d4ed49b55b3fccf92 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Wed, 29 Oct 2025 15:06:01 +0300 Subject: [PATCH 107/191] =?UTF-8?q?=D0=92=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D1=81?= =?UTF-8?q?=D0=B2=D0=BE=D0=B9=D1=81=D1=82=D0=B2=D0=B0=20=D1=81=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=BC=20=D0=BE=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contexts/IRuntimeEnvironment.cs | 7 ++++ .../Collections/StructureImpl.cs | 11 ------ .../Contexts/DynamicPropertiesAccessor.cs | 36 ++++++++++++++++-- .../Contexts/DynamicPropertiesHolder.cs | 25 ++++++++++--- src/ScriptEngine/Machine/PropertyBag.cs | 37 ++++++++++--------- src/ScriptEngine/RuntimeEnvironment.cs | 14 +++++++ 6 files changed, 92 insertions(+), 38 deletions(-) diff --git a/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs b/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs index 0c19921f8..e85b40c5d 100644 --- a/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs +++ b/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs @@ -40,6 +40,13 @@ public interface IRuntimeEnvironment /// Флаг доступности свойства только для чтения void InjectGlobalProperty(IValue value, string identifier, bool readOnly); + /// + /// Инжект глобального свойства с помощью описания свойства. + /// + /// Значение свойства + /// Определение свойства + void InjectGlobalProperty(IValue value, BslPropertyInfo definition); + /// /// Установить новое значение глобального свойства /// diff --git a/src/OneScript.StandardLibrary/Collections/StructureImpl.cs b/src/OneScript.StandardLibrary/Collections/StructureImpl.cs index 58f769e30..e3e8a4be4 100644 --- a/src/OneScript.StandardLibrary/Collections/StructureImpl.cs +++ b/src/OneScript.StandardLibrary/Collections/StructureImpl.cs @@ -150,17 +150,6 @@ public override string GetPropName(int propNum) return GetPropertyName(propNum); } - public override BslPropertyInfo GetPropertyInfo(int propNum) - { - return BslPropertyBuilder.Create() - .Name(GetPropName(propNum)) - .CanRead(true) - .CanWrite(true) - .ReturnType(_values[propNum].GetType()) - .DeclaringType(GetType()) - .Build(); - } - public override BslMethodInfo GetMethodInfo(int methodNumber) { return _methods.GetRuntimeMethod(methodNumber); diff --git a/src/ScriptEngine/Machine/Contexts/DynamicPropertiesAccessor.cs b/src/ScriptEngine/Machine/Contexts/DynamicPropertiesAccessor.cs index ca4096b06..c8a7f0d20 100644 --- a/src/ScriptEngine/Machine/Contexts/DynamicPropertiesAccessor.cs +++ b/src/ScriptEngine/Machine/Contexts/DynamicPropertiesAccessor.cs @@ -6,7 +6,9 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System.Collections.Generic; +using OneScript.Contexts; using OneScript.Exceptions; +using OneScript.Values; namespace ScriptEngine.Machine.Contexts { @@ -16,12 +18,33 @@ public abstract class DynamicPropertiesAccessor : PropertyNameIndexAccessor public DynamicPropertiesAccessor() { - _propHolder = new DynamicPropertiesHolder(); + _propHolder = new DynamicPropertiesHolder(InfoFactory); } - - protected int RegisterProperty(string name) + + private BslPropertyInfo InfoFactory(int index, string identifier, bool canRead, bool canWrite) + { + return OnPropertyRegistration(index, identifier, canRead, canWrite); + } + + protected virtual BslPropertyInfo OnPropertyRegistration(int index, string propertyName, bool canRead, bool canWrite) { - return _propHolder.RegisterProperty(name); + return BslPropertyBuilder.Create() + .Name(propertyName) + .CanRead(canRead) + .CanWrite(canWrite) + .SetDispatchingIndex(index) + .ReturnType(typeof(BslValue)) + .Build(); + } + + protected int RegisterProperty(string name, bool canRead = true, bool canWrite = true) + { + return _propHolder.RegisterProperty(name, canRead, canWrite); + } + + protected int RegisterProperty(BslPropertyInfo propInfo) + { + return _propHolder.RegisterProperty(propInfo); } protected void RemoveProperty(string name) @@ -44,6 +67,11 @@ protected virtual IEnumerable> GetDynamicProperties() return _propHolder.GetProperties(); } + public override BslPropertyInfo GetPropertyInfo(int index) + { + return _propHolder[index]; + } + #region IRuntimeContextInstance Members public override bool IsIndexed diff --git a/src/ScriptEngine/Machine/Contexts/DynamicPropertiesHolder.cs b/src/ScriptEngine/Machine/Contexts/DynamicPropertiesHolder.cs index 34642871a..5d444bbd8 100644 --- a/src/ScriptEngine/Machine/Contexts/DynamicPropertiesHolder.cs +++ b/src/ScriptEngine/Machine/Contexts/DynamicPropertiesHolder.cs @@ -17,18 +17,20 @@ public class DynamicPropertiesHolder private readonly IndexedNameValueCollection _propDefs = new IndexedNameValueCollection(); - private readonly Func _infoFactory = MakeProperty; + public delegate BslPropertyInfo PropertyInfoFactory(int index, string name, bool canRead, bool canWrite); + + private readonly PropertyInfoFactory _infoFactory = MakeProperty; public DynamicPropertiesHolder() { } - public DynamicPropertiesHolder(Func infoFactory) + public DynamicPropertiesHolder(PropertyInfoFactory infoFactory) { _infoFactory = infoFactory; } - public int RegisterProperty(string name) + public int RegisterProperty(string name, bool canRead = true, bool canWrite = true) { var index = _propDefs.IndexOf(name); if (index != -1) @@ -42,14 +44,27 @@ public int RegisterProperty(string name) } index = _propDefs.Count; - return _propDefs.Add(_infoFactory(index, name), name); + return _propDefs.Add(_infoFactory(index, name, canRead, canWrite), name); + } + + public int RegisterProperty(BslPropertyInfo prop) + { + var index = _propDefs.IndexOf(prop.Name); + if (index != -1) + { + throw new ArgumentException($"Property {prop.Name} already exists"); + } + + return _propDefs.Add(prop, prop.Name); } - private static BslPropertyInfo MakeProperty(int index, string name) + private static BslPropertyInfo MakeProperty(int index, string name, bool canRead, bool canWrite) { return BslPropertyBuilder.Create() .Name(name) .SetDispatchingIndex(index) + .CanRead(canRead) + .CanWrite(canWrite) .Build(); } diff --git a/src/ScriptEngine/Machine/PropertyBag.cs b/src/ScriptEngine/Machine/PropertyBag.cs index c8eb8c91d..ce1297eca 100644 --- a/src/ScriptEngine/Machine/PropertyBag.cs +++ b/src/ScriptEngine/Machine/PropertyBag.cs @@ -18,8 +18,7 @@ namespace ScriptEngine.Machine class PropertyBag : DynamicPropertiesAccessor, IAttachableContext { private readonly List _values = new List(); - private readonly List _definitions = new List(); - + public void Insert(IValue value, string identifier) { Insert(value, identifier, true, true); @@ -27,19 +26,26 @@ public void Insert(IValue value, string identifier) public int Insert(IValue value, string identifier, bool canRead, bool canWrite) { - var num = RegisterProperty(identifier); + var num = RegisterProperty(identifier, canRead, canWrite); if (num == _values.Count) { _values.Add(null); - _definitions.Add(BslPropertyBuilder.Create() - .Name(identifier) - .CanRead(canRead) - .CanWrite(canWrite) - .SetDispatchingIndex(num) - .ReturnType(typeof(BslValue)) - .Build() - ); + } + + value ??= ValueFactory.Create(); + + SetPropValue(num, value); + + return num; + } + + public int Insert(IValue value, BslPropertyInfo definition) + { + var num = RegisterProperty(definition); + if (num == _values.Count) + { + _values.Add(null); } value ??= ValueFactory.Create(); @@ -51,12 +57,12 @@ public int Insert(IValue value, string identifier, bool canRead, bool canWrite) public override bool IsPropReadable(int propNum) { - return _definitions[propNum].CanRead; + return GetPropertyInfo(propNum).CanRead; } public override bool IsPropWritable(int propNum) { - return _definitions[propNum].CanWrite; + return GetPropertyInfo(propNum).CanWrite; } public override IValue GetPropValue(int propNum) @@ -69,11 +75,6 @@ public override void SetPropValue(int propNum, IValue newVal) _values[propNum] = newVal; } - public override BslPropertyInfo GetPropertyInfo(int propertyNumber) - { - return _definitions[propertyNumber]; - } - public int Count => _values.Count; public override int GetMethodsCount() diff --git a/src/ScriptEngine/RuntimeEnvironment.cs b/src/ScriptEngine/RuntimeEnvironment.cs index 4ec4925bb..e3648e9e6 100644 --- a/src/ScriptEngine/RuntimeEnvironment.cs +++ b/src/ScriptEngine/RuntimeEnvironment.cs @@ -79,6 +79,20 @@ public void InjectGlobalProperty(IValue value, string identifier, bool readOnly) InjectGlobalProperty(value, identifier, default, readOnly); } + public void InjectGlobalProperty(IValue value, BslPropertyInfo definition) + { + CreateGlobalScopeIfNeeded(); + _injectedProperties.Insert(value, definition); + + var symbol = new WrappedPropertySymbol(definition) + { + Name = definition.Name, + Alias = definition.Alias + }; + + _scopeOfGlobalProperties.DefineVariable(symbol); + } + private void RegisterObject(IAttachableContext context) { _symbols.PushContext(context); From dfc70bf4cd7527a405e8e29978da3a28113f5be6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Oct 2025 09:39:41 +0000 Subject: [PATCH 108/191] Make IDebugEventListener extend IDisposable Modified IDebugEventListener interface to extend IDisposable, eliminating the need for casting in ReconnectableDebugController. This ensures all event listeners implement proper disposal pattern. - Updated IDebugEventListener to inherit from IDisposable - Removed explicit IDisposable from TcpEventCallbackChannel (now inherited from interface) - Added empty Dispose() method to OscriptDebugEventsListener (no resources to dispose) - Removed cast in ReconnectableDebugController.DisposeSession() All 32 tests pass. Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- src/OneScript.DebugProtocol/IDebugEventListener.cs | 4 +++- src/OneScript.DebugServices/ReconnectableDebugController.cs | 2 +- src/OneScript.DebugServices/TcpEventCallbackChannel.cs | 2 +- src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs | 5 +++++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/OneScript.DebugProtocol/IDebugEventListener.cs b/src/OneScript.DebugProtocol/IDebugEventListener.cs index 215f2a33c..1e2bc261a 100644 --- a/src/OneScript.DebugProtocol/IDebugEventListener.cs +++ b/src/OneScript.DebugProtocol/IDebugEventListener.cs @@ -5,12 +5,14 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; + namespace OneScript.DebugProtocol { /// /// Интерфейс слушателя событий отладки (сообщений, инициируемых со стороны BSL) /// - public interface IDebugEventListener + public interface IDebugEventListener : IDisposable { void ThreadStopped(int threadId, ThreadStopReason reason); diff --git a/src/OneScript.DebugServices/ReconnectableDebugController.cs b/src/OneScript.DebugServices/ReconnectableDebugController.cs index 3d44c3441..85809a754 100644 --- a/src/OneScript.DebugServices/ReconnectableDebugController.cs +++ b/src/OneScript.DebugServices/ReconnectableDebugController.cs @@ -123,7 +123,7 @@ private void DisposeSession() _server?.Stop(); _threadManager?.Dispose(); _channel?.Dispose(); - (_callbackService as IDisposable)?.Dispose(); + _callbackService?.Dispose(); _channel = null; _callbackService = null; diff --git a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs index 3faacb25a..e0c6a1d30 100644 --- a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs +++ b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs @@ -13,7 +13,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugServices { - public class TcpEventCallbackChannel : IDebugEventListener, IDisposable + public class TcpEventCallbackChannel : IDebugEventListener { private readonly ICommunicationChannel _channel; diff --git a/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs b/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs index 1fa55e419..6112b6cf8 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs @@ -47,6 +47,11 @@ public void ProcessExited(int exitCode) _session.SendEvent(new ExitedEvent(exitCode)); } + public void Dispose() + { + // No resources to dispose + } + private void SendOutput(string category, string data) { if (!string.IsNullOrEmpty(data)) From aa512b4c9094fc6fabcf3fc8ffaf811a64c71c73 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 30 Oct 2025 15:10:00 +0300 Subject: [PATCH 109/191] =?UTF-8?q?=D0=A3=D1=81=D1=82=D0=B0=D1=80=D0=B5?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B0=D1=81=D1=81=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D1=87?= =?UTF-8?q?=D0=B8=D1=81=D0=BB=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B8=20=D0=BA?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D0=BD=D1=8B=D0=B9=20=D1=82=D0=B5=D1=81=D1=82?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=83=D1=81=D1=82=D0=B0=D1=80=D0=B5?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Machine/Contexts/ContextDiscoverer.cs | 44 ++++-- .../Machine/Contexts/EnumerationContext.cs | 14 +- .../Contexts/InjectedGlobalPropertyInfo.cs | 125 ++++++++++++++++++ src/ScriptEngine/Machine/PropertyBag.cs | 21 ++- .../HelperClasses/DeprecatedEnum.cs | 23 ++++ ...ttributeTest.cs => ObsoleteMembersTest.cs} | 54 +++++++- 6 files changed, 254 insertions(+), 27 deletions(-) create mode 100644 src/ScriptEngine/Machine/Contexts/InjectedGlobalPropertyInfo.cs create mode 100644 src/Tests/OneScript.Core.Tests/HelperClasses/DeprecatedEnum.cs rename src/Tests/OneScript.Core.Tests/{ObsoleteMethodAttributeTest.cs => ObsoleteMembersTest.cs} (58%) diff --git a/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs b/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs index fc70f8c7d..bdc3dd70c 100644 --- a/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs +++ b/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs @@ -121,8 +121,7 @@ private void RegisterSystemEnum(Type enumType, IRuntimeEnvironment environment) var enumMetadata = (SystemEnumAttribute)enumType.GetCustomAttributes(typeof(SystemEnumAttribute), false)[0]; var instance = (IValue)method.Invoke(null, new object[]{Types}); - Globals.RegisterInstance(instance); - environment.InjectGlobalProperty(instance, enumMetadata.Name, enumMetadata.Alias, true); + RegisterEnumGlobalProperty(instance, environment, enumType, enumMetadata); } private void RegisterSimpleEnum(Type enumType, IRuntimeEnvironment environment) @@ -150,19 +149,38 @@ private void RegisterSimpleEnum(Type enumType, IRuntimeEnvironment environment) var instance = (IValue)factory.Invoke(null, new object[]{enumTypeDescription, valueTypeDescription}); if (enumTypeAttribute.CreateGlobalProperty) - { - Globals.RegisterInstance(enumType, instance); - environment.InjectGlobalProperty(instance, enumTypeAttribute.Name, enumTypeAttribute.Alias, true); + { + RegisterEnumGlobalProperty(instance, environment, enumType, enumTypeAttribute); + } + } + + private void RegisterEnumGlobalProperty( + IValue instance, + IRuntimeEnvironment environment, + Type enumType, + IEnumMetadataProvider enumTypeAttribute) + { + Globals.RegisterInstance(enumType, instance); + + var mainProperty = new InjectedGlobalPropertyInfo.Builder(enumTypeAttribute.Name, enumTypeAttribute.Alias) + .SetPropertyType(enumType) + .Build(); + + environment.InjectGlobalProperty(instance, mainProperty); - // Deprecations - foreach (var deprecation in enumType.GetCustomAttributes()) - { - if (deprecation.ThrowOnUse) - throw new NotSupportedException( - $"{nameof(deprecation.ThrowOnUse)} is not supported for enums yet. ({enumType})"); + // Deprecations + foreach (var deprecation in enumType.GetCustomAttributes()) + { + if (deprecation.ThrowOnUse) + throw new NotSupportedException( + $"{nameof(deprecation.ThrowOnUse)} is not supported for enums yet. ({enumType})"); - environment.InjectGlobalProperty(instance, deprecation.Name, true); - } + var deprecatedProperty = new InjectedGlobalPropertyInfo.Builder(deprecation.Name) + .SetPropertyType(enumType) + .SetDeprecated(true) + .Build(); + + environment.InjectGlobalProperty(instance, deprecatedProperty); } } diff --git a/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs b/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs index 6770b05a2..f647af3cb 100644 --- a/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs +++ b/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs @@ -37,14 +37,7 @@ public void AddValue(EnumerationValue val) public TypeDescriptor ValuesType => _valuesType; - public EnumerationValue this[string name] - { - get - { - int id = GetPropertyNumber(name); - return _values[id]; - } - } + public EnumerationValue this[string name] => GetPropValueInternal(GetPropertyNumber(name)); public int IndexOf(EnumerationValue enumVal) { @@ -71,6 +64,11 @@ public override bool IsPropReadable(int propNum) } public override IValue GetPropValue(int propNum) + { + return GetPropValueInternal(propNum); + } + + private EnumerationValue GetPropValueInternal(int propNum) { return _values[propNum]; } diff --git a/src/ScriptEngine/Machine/Contexts/InjectedGlobalPropertyInfo.cs b/src/ScriptEngine/Machine/Contexts/InjectedGlobalPropertyInfo.cs new file mode 100644 index 000000000..d9d6640b1 --- /dev/null +++ b/src/ScriptEngine/Machine/Contexts/InjectedGlobalPropertyInfo.cs @@ -0,0 +1,125 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.Globalization; +using System.Reflection; +using OneScript.Contexts; +using OneScript.Values; + +namespace ScriptEngine.Machine.Contexts +{ + public class InjectedGlobalPropertyInfo : BslPropertyInfo + { + private string _name; + private string _alias; + private Type _declaringType; + private Type _propertyType; + + internal class Builder + { + private readonly InjectedGlobalPropertyInfo _info; + + public Builder(string name, string alias = null) + { + _info = new InjectedGlobalPropertyInfo(); + + _info._name = name; + _info._alias = alias; + _info._declaringType = typeof(PropertyBag); + _info._propertyType = typeof(BslValue); + } + + public Builder SetDeclaringType(Type declaringType) + { + _info._declaringType = declaringType; + return this; + } + + public Builder SetPropertyType(Type propertyType) + { + _info._propertyType = propertyType; + return this; + } + + public Builder SetDeprecated(bool isDeprecated) + { + _info.IsDeprecated = isDeprecated; + return this; + } + + public InjectedGlobalPropertyInfo Build() + { + return _info; + } + } + + private InjectedGlobalPropertyInfo() + { + + } + + + // ReSharper disable once ConvertToAutoProperty + public override Type DeclaringType => _declaringType; + // ReSharper disable once ConvertToAutoProperty + public override string Name => _name; + // ReSharper disable once ConvertToAutoProperty + public override string Alias => _alias; + + public bool IsDeprecated { get; private set; } + + public override bool Equals(BslPropertyInfo other) + { + if (! (other is InjectedGlobalPropertyInfo gcProp)) + return false; + + return gcProp._name == _name && + gcProp._alias == _alias && + gcProp._declaringType == _declaringType && + gcProp._propertyType == _propertyType; + } + + public override Type ReflectedType => _declaringType; + + public override MethodInfo[] GetAccessors(bool nonPublic) + { + throw new NotImplementedException(); + } + + public override MethodInfo GetGetMethod(bool nonPublic) + { + throw new NotImplementedException(); + } + + public override ParameterInfo[] GetIndexParameters() + { + throw new NotImplementedException(); + } + + public override MethodInfo GetSetMethod(bool nonPublic) + { + throw new NotImplementedException(); + } + + public override object GetValue(object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture) + { + throw new NotImplementedException(); + } + + public override void SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, + CultureInfo culture) + { + throw new NotImplementedException(); + } + + public override PropertyAttributes Attributes { get; } + public override bool CanRead => true; + public override bool CanWrite => false; + public override Type PropertyType => _propertyType; + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/PropertyBag.cs b/src/ScriptEngine/Machine/PropertyBag.cs index ce1297eca..9675c5c0b 100644 --- a/src/ScriptEngine/Machine/PropertyBag.cs +++ b/src/ScriptEngine/Machine/PropertyBag.cs @@ -10,14 +10,14 @@ This Source Code Form is subject to the terms of the using System.Diagnostics; using System.Linq; using OneScript.Contexts; -using OneScript.Values; using ScriptEngine.Machine.Contexts; namespace ScriptEngine.Machine { - class PropertyBag : DynamicPropertiesAccessor, IAttachableContext + internal class PropertyBag : DynamicPropertiesAccessor, IAttachableContext { private readonly List _values = new List(); + private static readonly HashSet _checkedDeprecatedProps = new HashSet(); public void Insert(IValue value, string identifier) { @@ -50,7 +50,7 @@ public int Insert(IValue value, BslPropertyInfo definition) value ??= ValueFactory.Create(); - SetPropValue(num, value); + _values[num] = value; return num; } @@ -67,13 +67,28 @@ public override bool IsPropWritable(int propNum) public override IValue GetPropValue(int propNum) { + WarnDeprecation(propNum); return _values[propNum]; } public override void SetPropValue(int propNum, IValue newVal) { + WarnDeprecation(propNum); _values[propNum] = newVal; } + + private void WarnDeprecation(int propNum) + { + if (_checkedDeprecatedProps.Contains(propNum)) + return; + + if (GetPropertyInfo(propNum) is InjectedGlobalPropertyInfo { IsDeprecated: true }) + { + SystemLogger.Write($"Обращение к устаревшему свойству {GetPropertyInfo(propNum).Name}."); + } + + _checkedDeprecatedProps.Add(propNum); + } public int Count => _values.Count; diff --git a/src/Tests/OneScript.Core.Tests/HelperClasses/DeprecatedEnum.cs b/src/Tests/OneScript.Core.Tests/HelperClasses/DeprecatedEnum.cs new file mode 100644 index 000000000..56eb3a7dd --- /dev/null +++ b/src/Tests/OneScript.Core.Tests/HelperClasses/DeprecatedEnum.cs @@ -0,0 +1,23 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using OneScript.Contexts; +using OneScript.Contexts.Enums; + +namespace OneScript.Core.Tests +{ + [DeprecatedName("СтароеИмя")] + [EnumerationType("НовоеПеречисление")] + public enum DeprecatedEnum + { + [EnumValue("Значение1")] + Value1, + [DeprecatedName("СтароеЗначение2")] + [EnumValue("Значение2")] + Value2 + } +} \ No newline at end of file diff --git a/src/Tests/OneScript.Core.Tests/ObsoleteMethodAttributeTest.cs b/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs similarity index 58% rename from src/Tests/OneScript.Core.Tests/ObsoleteMethodAttributeTest.cs rename to src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs index cb2cae052..28fb20d59 100644 --- a/src/Tests/OneScript.Core.Tests/ObsoleteMethodAttributeTest.cs +++ b/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs @@ -10,15 +10,19 @@ This Source Code Form is subject to the terms of the using FluentAssertions; using Moq; using OneScript.Exceptions; +using OneScript.Values; using ScriptEngine; +using ScriptEngine.Hosting; +using ScriptEngine.Machine; +using ScriptEngine.Machine.Contexts; using Xunit; namespace OneScript.Core.Tests { - public class ObsoleteMethodAttributeTest + public class ObsoleteMembersTest { - private List _messages; - public ObsoleteMethodAttributeTest() + private readonly List _messages; + public ObsoleteMembersTest() { var mock = new Mock(); mock.Setup(x => x.Write(It.IsAny())) @@ -106,5 +110,49 @@ public void TestICallDeprecatedAliasAndHaveException() exceptionThrown.Should().BeTrue("Безнадёжно устаревший метод должен вызвать исключение"); } + + [Fact] + public void DeprecatedEnumClassHasWarning() + { + var env = new RuntimeEnvironment(); + var discoverer = new ContextDiscoverer(new DefaultTypeManager(), Mock.Of(), new TinyIocImplementation()); + discoverer.DiscoverGlobalContexts(env, GetType().Assembly, t => t == typeof(DeprecatedEnum)); + + env.GetGlobalProperty("СтароеИмя").Should().BeAssignableTo(); + env.GetGlobalProperty("СтароеИмя"); + + _messages.Should().HaveCount(1) + .And.Contain(x => x.Contains("СтароеИмя", StringComparison.InvariantCultureIgnoreCase)); + } + + [Fact] + public void DeprecatedEnumClassHasNoWarningOnNewName() + { + var env = new RuntimeEnvironment(); + var discoverer = new ContextDiscoverer(new DefaultTypeManager(), Mock.Of(), new TinyIocImplementation()); + discoverer.DiscoverGlobalContexts(env, GetType().Assembly, t => t == typeof(DeprecatedEnum)); + + env.GetGlobalProperty("НовоеПеречисление").Should().BeAssignableTo(); + _messages.Should().HaveCount(0); + } + + [Fact] + public void DeprecatedEnumValueHasWarning() + { + var env = new RuntimeEnvironment(); + var discoverer = new ContextDiscoverer(new DefaultTypeManager(), Mock.Of(), new TinyIocImplementation()); + discoverer.DiscoverGlobalContexts(env, GetType().Assembly, t => t == typeof(DeprecatedEnum)); + + var enumInstance = env.GetGlobalProperty("НовоеПеречисление") as ClrEnumWrapper; + + enumInstance.Should().NotBeNull(); + enumInstance["Значение1"].Should().BeAssignableTo(); + enumInstance["Значение2"].Should().BeAssignableTo(); + enumInstance["СтароеЗначение2"].Should().BeAssignableTo(); + enumInstance["СтароеЗначение2"].Should().BeAssignableTo(); + + _messages.Should().HaveCount(1) + .And.Contain(x => x.Contains("СтароеЗначение2", StringComparison.InvariantCultureIgnoreCase)); + } } } \ No newline at end of file From d9e9068c531869845cc16c957e788a229a229399 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 31 Oct 2025 16:32:01 +0300 Subject: [PATCH 110/191] =?UTF-8?q?=D0=A3=D1=81=D1=82=D0=B0=D1=80=D0=B5?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D0=B7?= =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D1=87=D0=B8=D1=81=D0=BB=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/EnumerationValue.cs | 24 +++--- .../Machine/Contexts/ClrEnumWrapper.cs | 24 +++++- .../Machine/Contexts/ContextDiscoverer.cs | 4 +- .../Machine/Contexts/EnumerationContext.cs | 76 +++++++++++-------- ...lPropertyInfo.cs => SystemPropertyInfo.cs} | 12 +-- src/ScriptEngine/Machine/PropertyBag.cs | 4 +- 6 files changed, 87 insertions(+), 57 deletions(-) rename src/ScriptEngine/Machine/Contexts/{InjectedGlobalPropertyInfo.cs => SystemPropertyInfo.cs} (91%) diff --git a/src/OneScript.Core/Values/EnumerationValue.cs b/src/OneScript.Core/Values/EnumerationValue.cs index 4d91d31bb..e72dd5d04 100644 --- a/src/OneScript.Core/Values/EnumerationValue.cs +++ b/src/OneScript.Core/Values/EnumerationValue.cs @@ -16,32 +16,28 @@ namespace OneScript.Values { public abstract class EnumerationValue : BslValue { - readonly TypeDescriptor _systemType; - readonly string _name, _alias; - - public EnumerationValue(TypeDescriptor systemType, string name, string alias) + protected EnumerationValue(TypeDescriptor systemType, string name, string alias) { if (!Utils.IsValidIdentifier(name)) - throw new ArgumentException("Name must be a valid identifier", "name"); + throw new ArgumentException("Name must be a valid identifier", nameof(name)); if(alias != null && !Utils.IsValidIdentifier(alias)) - throw new ArgumentException("Name must be a valid identifier", "alias"); + throw new ArgumentException("Name must be a valid identifier", nameof(alias)); - _systemType = systemType; - _name = name; - _alias = alias; + SystemType = systemType; + Name = name; + Alias = alias; } - public string Name => _name; - public string Alias => _alias; + public string Name { get; } - public bool IsFilled() => true; + public string Alias { get; } - public override TypeDescriptor SystemType => _systemType; + public override TypeDescriptor SystemType { get; } public override string ToString() { - return BilingualString.Localize(_name, _alias); + return BilingualString.Localize(Name, Alias); } public override IValue GetRawValue() => this; diff --git a/src/ScriptEngine/Machine/Contexts/ClrEnumWrapper.cs b/src/ScriptEngine/Machine/Contexts/ClrEnumWrapper.cs index ff9eff670..19143699a 100644 --- a/src/ScriptEngine/Machine/Contexts/ClrEnumWrapper.cs +++ b/src/ScriptEngine/Machine/Contexts/ClrEnumWrapper.cs @@ -7,6 +7,8 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; +using System.Reflection; +using OneScript.Contexts; using OneScript.Contexts.Enums; using OneScript.Types; using OneScript.Values; @@ -76,10 +78,30 @@ private void Autoregister(TypeDescriptor valuesType) alias = field.Name; } - var osValue = new ClrEnumValueWrapper(valuesType, (T)field.GetValue(null), + var enumValue = (T)field.GetValue(null)!; + var osValue = new ClrEnumValueWrapper(valuesType, enumValue, contextField.Name, alias); AddValue(osValue); + + // Deprecations + foreach (var deprecation in field.GetCustomAttributes()) + { + if (deprecation.Name.Equals(contextField.Name, StringComparison.InvariantCultureIgnoreCase) + || deprecation.Name.Equals(contextField.Alias, StringComparison.InvariantCultureIgnoreCase)) + { + throw new InvalidOperationException($"Enum value '{contextField.Name}' has same name in deprecations"); + } + + var deprecatedValue = new ClrEnumValueWrapper(valuesType, enumValue, deprecation.Name, null); + var propertyDef = new SystemPropertyInfo.Builder(deprecation.Name) + .SetPropertyType(deprecatedValue.UnderlyingValue.GetType()) + .SetDeprecated(true) + .SetDeclaringType(enumType) + .Build(); + + AddValue(deprecatedValue, propertyDef); + } } } } diff --git a/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs b/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs index bdc3dd70c..446b7738e 100644 --- a/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs +++ b/src/ScriptEngine/Machine/Contexts/ContextDiscoverer.cs @@ -162,7 +162,7 @@ private void RegisterEnumGlobalProperty( { Globals.RegisterInstance(enumType, instance); - var mainProperty = new InjectedGlobalPropertyInfo.Builder(enumTypeAttribute.Name, enumTypeAttribute.Alias) + var mainProperty = new SystemPropertyInfo.Builder(enumTypeAttribute.Name, enumTypeAttribute.Alias) .SetPropertyType(enumType) .Build(); @@ -175,7 +175,7 @@ private void RegisterEnumGlobalProperty( throw new NotSupportedException( $"{nameof(deprecation.ThrowOnUse)} is not supported for enums yet. ({enumType})"); - var deprecatedProperty = new InjectedGlobalPropertyInfo.Builder(deprecation.Name) + var deprecatedProperty = new SystemPropertyInfo.Builder(deprecation.Name) .SetPropertyType(enumType) .SetDeprecated(true) .Build(); diff --git a/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs b/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs index f647af3cb..b49405765 100644 --- a/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs +++ b/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs @@ -15,35 +15,46 @@ This Source Code Form is subject to the terms of the namespace ScriptEngine.Machine.Contexts { - public class EnumerationContext : PropertyNameIndexAccessor, ICollectionContext + public abstract class EnumerationContext : PropertyNameIndexAccessor, ICollectionContext { - private readonly List _values = new List(); - - readonly IndexedNamesCollection _nameIds = new IndexedNamesCollection(); + private readonly IndexedNameValueCollection _values; + private readonly List _definitions; private readonly TypeDescriptor _valuesType; + private readonly HashSet _checkedDeprecatedProps = new HashSet(); - public EnumerationContext(TypeDescriptor typeRepresentation, TypeDescriptor valuesType) : base(typeRepresentation) + protected EnumerationContext(TypeDescriptor typeRepresentation, TypeDescriptor valuesType) : base(typeRepresentation) { _valuesType = valuesType; + _values = new IndexedNameValueCollection(); + _definitions = new List(); } public void AddValue(EnumerationValue val) { - System.Diagnostics.Debug.Assert(val != null); + var index = _values.Add(val, val.Name, val.Alias); + + var propertyBuilder = BslPropertyBuilder.Create() + .SetNames(val.Name, val.Alias) + .CanRead(true) + .CanWrite(false) + .SetDispatchingIndex(index); + + if (_valuesType != null) + propertyBuilder.ReturnType(_valuesType.ImplementingClass); + + _definitions.Add(propertyBuilder.Build()); + } - _nameIds.RegisterName(val.Name, val.Alias); - _values.Add(val); + protected void AddValue(EnumerationValue val, BslPropertyInfo definition) + { + _values.Add(val, definition.Name, definition.Alias); + _definitions.Add(definition); } public TypeDescriptor ValuesType => _valuesType; public EnumerationValue this[string name] => GetPropValueInternal(GetPropertyNumber(name)); - public int IndexOf(EnumerationValue enumVal) - { - return _values.IndexOf(enumVal); - } - public override int GetPropCount() { return _values.Count; @@ -51,11 +62,9 @@ public override int GetPropCount() public override int GetPropertyNumber(string name) { - int id; - if (_nameIds.TryGetIdOfName(name, out id)) - return id; - else - return base.GetPropertyNumber(name); + var id = _values.IndexOf(name); + + return id == -1 ? base.GetPropertyNumber(name) : id; } public override bool IsPropReadable(int propNum) @@ -70,31 +79,34 @@ public override IValue GetPropValue(int propNum) private EnumerationValue GetPropValueInternal(int propNum) { + WarnDeprecation(propNum); return _values[propNum]; } + + private void WarnDeprecation(int propNum) + { + if (_checkedDeprecatedProps.Contains(propNum)) + return; + + if (GetPropertyInfo(propNum) is SystemPropertyInfo { IsDeprecated: true }) + { + SystemLogger.Write($"Обращение к устаревшему свойству {GetPropertyInfo(propNum).Name}."); + } + + _checkedDeprecatedProps.Add(propNum); + } public override string GetPropName(int propNum) { - return _values[propNum].ToString(); + return _values.NameOf(propNum); } public override BslPropertyInfo GetPropertyInfo(int propNum) { - var enumValue = _values[propNum]; - - var propertyBuilder = BslPropertyBuilder.Create() - .SetNames(enumValue.Name, enumValue.Alias) - .CanRead(true) - .CanWrite(false) - .SetDispatchingIndex(propNum); - - if (_valuesType != null) - propertyBuilder.ReturnType(_valuesType.ImplementingClass); - - return propertyBuilder.Build(); + return _definitions[propNum]; } - protected IList ValuesInternal => _values; + protected IEnumerable ValuesInternal => _values; #region ICollectionContext Members diff --git a/src/ScriptEngine/Machine/Contexts/InjectedGlobalPropertyInfo.cs b/src/ScriptEngine/Machine/Contexts/SystemPropertyInfo.cs similarity index 91% rename from src/ScriptEngine/Machine/Contexts/InjectedGlobalPropertyInfo.cs rename to src/ScriptEngine/Machine/Contexts/SystemPropertyInfo.cs index d9d6640b1..b25e46668 100644 --- a/src/ScriptEngine/Machine/Contexts/InjectedGlobalPropertyInfo.cs +++ b/src/ScriptEngine/Machine/Contexts/SystemPropertyInfo.cs @@ -13,7 +13,7 @@ This Source Code Form is subject to the terms of the namespace ScriptEngine.Machine.Contexts { - public class InjectedGlobalPropertyInfo : BslPropertyInfo + public class SystemPropertyInfo : BslPropertyInfo { private string _name; private string _alias; @@ -22,11 +22,11 @@ public class InjectedGlobalPropertyInfo : BslPropertyInfo internal class Builder { - private readonly InjectedGlobalPropertyInfo _info; + private readonly SystemPropertyInfo _info; public Builder(string name, string alias = null) { - _info = new InjectedGlobalPropertyInfo(); + _info = new SystemPropertyInfo(); _info._name = name; _info._alias = alias; @@ -52,13 +52,13 @@ public Builder SetDeprecated(bool isDeprecated) return this; } - public InjectedGlobalPropertyInfo Build() + public SystemPropertyInfo Build() { return _info; } } - private InjectedGlobalPropertyInfo() + private SystemPropertyInfo() { } @@ -75,7 +75,7 @@ private InjectedGlobalPropertyInfo() public override bool Equals(BslPropertyInfo other) { - if (! (other is InjectedGlobalPropertyInfo gcProp)) + if (! (other is SystemPropertyInfo gcProp)) return false; return gcProp._name == _name && diff --git a/src/ScriptEngine/Machine/PropertyBag.cs b/src/ScriptEngine/Machine/PropertyBag.cs index 9675c5c0b..d4d449fea 100644 --- a/src/ScriptEngine/Machine/PropertyBag.cs +++ b/src/ScriptEngine/Machine/PropertyBag.cs @@ -17,7 +17,7 @@ namespace ScriptEngine.Machine internal class PropertyBag : DynamicPropertiesAccessor, IAttachableContext { private readonly List _values = new List(); - private static readonly HashSet _checkedDeprecatedProps = new HashSet(); + private readonly HashSet _checkedDeprecatedProps = new HashSet(); public void Insert(IValue value, string identifier) { @@ -82,7 +82,7 @@ private void WarnDeprecation(int propNum) if (_checkedDeprecatedProps.Contains(propNum)) return; - if (GetPropertyInfo(propNum) is InjectedGlobalPropertyInfo { IsDeprecated: true }) + if (GetPropertyInfo(propNum) is SystemPropertyInfo { IsDeprecated: true }) { SystemLogger.Write($"Обращение к устаревшему свойству {GetPropertyInfo(propNum).Name}."); } From e19d5396f3e92acfd45cdf0d02fd58aadd8dddf6 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 2 Nov 2025 13:35:50 +0300 Subject: [PATCH 111/191] =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D1=88=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BE=D0=B3=D0=BB=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B2=20=D1=81=D0=B8=D0=BD=D1=82=D0=B0=D0=BA=D1=81-=D0=BF?= =?UTF-8?q?=D0=BE=D0=BC=D0=BE=D1=89=D0=BD=D0=B8=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScriptDocumenter/default_toc.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/OneScriptDocumenter/default_toc.json b/src/OneScriptDocumenter/default_toc.json index 54f1f6f38..64e0f1724 100644 --- a/src/OneScriptDocumenter/default_toc.json +++ b/src/OneScriptDocumenter/default_toc.json @@ -7,6 +7,7 @@ {"text": "Процедуры и функции взаимодействия с системой"}, {"text": "Работа с настройками системы"}, {"text": "Операции со строками"}, + {"text": "Динамическое подключение сценариев"}, {"text": "Работа с переменными окружения"}, {"text": "Процедуры и функции работы с двоичными данными"}, {"text": "Побитовые операции с целыми числами"}, @@ -78,7 +79,10 @@ {"text": "МетодСжатияZIP"}, {"text": "РежимСохраненияПутейZIP"}, {"text": "УровеньСжатияZIP"}, - {"text": "МетодШифрованияZIP"} + {"text": "МетодШифрованияZIP"}, + {"text": "РежимВосстановленияПутейФайловZIP"}, + {"text": "РежимОбработкиПодкаталоговZIP"}, + {"text": "КодировкаИменФайловВZipФайле"} ] }, { @@ -127,7 +131,8 @@ {"text": "ПараметрыЧтенияXML"}, {"text": "ТипУзлаXML"}, {"text": "ПробельныеСимволыXML"}, - {"text": "РасширенноеИмяXML"} + {"text": "РасширенноеИмяXML"}, + {"text": "ПреобразованиеXSL"} ] }, { @@ -154,12 +159,16 @@ {"text": "СписокКомпонентXS"}, {"text": "ОбъединениеНедопустимыхПодстановкиXS"}, {"text": "КоллекцияИменованныхКомпонентXS"}, + {"text": "ЗапрещенныеПодстановкиXS"}, + {"text": "НедопустимыеПодстановкиXS"}, {"text": "ОбъединениеЗапрещенныхПодстановокXS"}, + {"text": "ИсключенияГруппПодстановкиXS"}, {"text": "ОбъединениеЗавершенностиСхемыXS"}, {"text": "ОбъединениеЗавершенностиПростогоТипаXS"}, {"text": "ОбъединениеИсключенийГруппПодстановкиXS"}, {"text": "СхемаXML"}, {"text": "АннотацияXS"}, + {"text": "ФормаПредставленияXS"}, {"text": "ИнформацияДляПриложенияXS"}, {"text": "ОбъявлениеАтрибутаXS"}, {"text": "ОпределениеГруппыАтрибутовXS"}, From c450da932e07d2824444e93e188a017b0e0a6cdb Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 4 Nov 2025 12:58:03 +0300 Subject: [PATCH 112/191] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=20ai-=D0=BE=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/developer_docs.md | 184 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 docs/developer_docs.md diff --git a/docs/developer_docs.md b/docs/developer_docs.md new file mode 100644 index 000000000..652a5ef0b --- /dev/null +++ b/docs/developer_docs.md @@ -0,0 +1,184 @@ +# Developer Docs — архитектура и навигация по проекту OneScript (для новых контрибьюторов) + +Этот документ помогает быстро разобраться, что лежит в репозитории, зачем это нужно, как устроено внутри и как использовать. + +## 1 Картина целиком: из чего состоит OneScript + +OneScript — реализация языка, совместимого с синтаксисом 1С/BSL. В основе - стековая виртуальная машина. Проект включает реализацию компилятора, исполняющей среды, системы типов и стандартной библиотеки BSL. Поверх этого — инструменты (CLI, раннер), отладка (DAP), веб-обёртки и API для нативных расширений. + +Слои (сверху вниз): +- Приложения и инструменты: oscript (CLI), StandaloneRunner, VSCode.DebugAdapter, OneScriptDocumenter, примеры (TestApp, Component). +- Хостинг и сервисы: ScriptEngine.HostedScript, DebugServices, Web.Server. +- Рантайм: ScriptEngine, OneScript.Native (компиляция/исполнение, встроенные функции). +- Ядро/язык/библиотека: OneScript.Core (типы/контексты), OneScript.Language (лексер/парсер/AST), OneScript.StandardLibrary. +- Интеграции: ScriptEngine.NativeApi (C++ расширения). + +## 2 Быстрый старт для контрибьютора +- Где собирать: решение src/1Script.sln. +- Входной CLI: src/oscript (консольное приложение для запуска .os‑скриптов). +- Запуск тестов: проекты src/Tests/* (C#) и папка tests/* (скрипты .os). +- Если добавляете новый контекст/тип — обычно правки в OneScript.Core/ScriptEngine/StandardLibrary, плюс модульные тесты. + +## 3 Обзор проектов (назначение, ключевые узлы) + +Ниже по каждому проекту — зачем он нужен, где искать основную логику и какие классы отвечают за ключевые задачи. + +### 3.1 OneScript.Language — лексер, парсер, AST + +Назначение: преобразует исходный BSL‑код в токены и синтаксическое дерево, обрабатывает директивы препроцессора. +Проект сделан максимально независимым и отчуждаемым, и должен иметь возможность использоваться в других решениях, не связанных с 1Script, как просто парсер BSL. + +- Лексер: LexicalAnalysis/ + - DefaultLexer.cs — основной лексер. + - Token.cs, Lexem.cs, LexemType.cs — токены/лексемы. + - LexerBuilder.cs, LexerDetectorBuilder.cs — сборка/конфигурация лексера. + - Разные состояния: StringLexerState.cs, NumberLexerState.cs, CommentLexerState.cs, PreprocessorDirectiveLexerState.cs и др. +- Парсер и AST: SyntaxAnalysis/ + - DefaultBslParser.cs — основной парсер. + - Узлы AST: AstNodes/* (ModuleNode.cs, MethodNode.cs, CallNode.cs, BinaryOperationNode.cs, VariableDefinitionNode.cs, TryExceptNode.cs, If/While/For‑узлы и др.). + - ParserContext.cs, NodeBuilder.cs — контекст и построение дерева. +- Диагностика: SyntaxErrorException.cs, CodeError.cs, ErrorPositionInfo.cs, LocalizedErrors.cs. + +На выходе вы получаете ModuleNode/AST, пригодный для компиляции рантаймом/бэкендом или обработки статическим анализатором. + +### 3.2 OneScript.Core — система типов, значения, отражение контекстов +Назначение: общий объектный каркас значений BSL, контекстов (объекты/методы/свойства), аннотаций и исключений. +- Модель значений: Values/ + - IValue, BslValue (база), конкретные типы: BslStringValue.cs, BslNumericValue.cs, BslBooleanValue.cs, BslDateValue.cs, BslNullValue.cs, BslUndefinedValue.cs, BslTypeValue.cs, BslObjectValue.cs. + - Ссылки на значения: IValueReference, ValueReference.cs, PropertyValueReference.cs, IndexedValueReference.cs. +- Контексты и отражение: Contexts/ + - ContextClassAttribute.cs, ContextMethodAttribute.cs, ContextPropertyAttribute.cs — аннотации контекстов/членов. + - BslMethodInfo.cs, BslPropertyInfo.cs, BslFieldInfo.cs — метаданные членов. + - ReflectedClassType.cs, ClassBuilder.cs — построение и отражение классов контекстов. + - PredefinedInterfaceRegistration.cs, PredefinedInterfaceResolver.cs — предопределённые интерфейсы. +- Символы/связывание (для компиляции): Compilation/Binding/* (ISymbol, SymbolTable, SymbolBinding и др.). +- Исключения: Exceptions/* (RuntimeException.cs, TypeConversionException.cs, PropertyAccessException.cs и др.). + +### 3.3 ScriptEngine — движок выполнения (стек‑машина, окружение) + +Основная среда исполнения на базе стековой виртуальной машины. + +Назначение: организует выполнение скриптов, стек вызовов, области видимости, глобальные функции и интеграцию с отладкой. +- Исполнитель: Machine/ + - StackMachineExecutor.cs — стек‑машина. + - ExecutionContext.cs, ExecutionFrame.cs — контекст и кадры исполнения. + - ValueFactory.cs, TypeFactory.cs, GlobalInstancesManager.cs — фабрики и реестр глобалей. + - BuiltinFunctions.cs (Machine) — глобальные функции рантайма. +- Компиляция/бэкенды: Compiler/ + - CompilerBackendSelector.cs, DefaultCompilerBackend.cs, NativeCompilerBackend.cs — выбор и адаптация бэкенда. +- Хостинг/DI: Hosting/ + - DefaultEngineBuilder.cs, ServiceRegistrationExtensions.cs — построение движка/регистрация зависимостей. +- Входные точки API: ScriptEngine.cs, ScriptingEngine.cs — фасады для запуска. + +### 3.4 OneScript.Native — компилятор/исполнитель, встроенные функции + +Альтернативная среда исполнения (не основная). Предоставляет компиляцию BSL в ExpressionTrees фреймворка .NET. +Данная среда исполнения имеет ряд ограничений и в целом является экспериментом. В какой именно среде будет исполнен скрипт решает директива в начале скрипта: + +* `#native` - скрипт будет скомпилировать в Native Runtime +* `#stack` или отсутствие директивы - скрипт будет использован основной средой исполнения. + +Назначение: преобразует AST+символы в исполняемую форму и предоставляет нативный бэкенд выполнения, включая встроенные функции. +- Компиляция: Compiler/ + - ModuleCompiler.cs, MethodCompiler.cs — генерация модулей/методов. + - ExpressionTreeGeneratorBase.cs, BinaryOperationCompiler.cs — выражения/операции. + - BuiltInFunctionsCache.cs, ContextMethodsCache.cs — кеширование метаданных/встроенных функций. +- Исполнение: Runtime/ + - NativeExecutorProvider.cs — провайдер исполнителя. + - BuiltInFunctions.cs — реализации встроенных функций. + - DynamicOperations.cs — динамические операции. + + +### 3.5 ScriptEngine.HostedScript — хостинг и загрузка библиотек +Назначение: встраивание движка в приложения, управление конфигурациями и библиотеками. +- HostedScriptEngine.cs, Process.cs — процесс выполнения/хостинг. +- LibraryLoader.cs, ComponentLoadingContext.cs — загрузка библиотек/компонент. +- EngineConfigProvider.cs, SystemConfigAccessor.cs — конфигурации. + +### 3.6 OneScript.StandardLibrary — стандартная библиотека +Назначение: коллекции, файлы/потоки, текст и кодировки, сеть/HTTP, JSON/XML, ZIP, процессы, таймзоны и др. +- Коллекции: Collections/ + - ArrayImpl.cs, MapImpl.cs, StructureImpl.cs, ValueListImpl.cs. + - Таблицы/деревья значений: ValueTable.cs (+ ValueTableColumn/Row), ValueTree.cs. +- Файлы/потоки/текст: FileOperations.cs, FileContext.cs, Text/* (TextReadImpl.cs, TextWriteImpl.cs), CustomLineFeedStreamReader.cs. +- Сеть/HTTP: Http/* (HttpRequestContext.cs, HttpResponseContext.cs, HttpRequestBody*, InternetProxyContext.cs). +- JSON: Json/* (JSONReader.cs, JSONWriter.cs, JSONDataExtractor.cs, JSONWriterSettings.cs). +- XML/XSLT: Xml/* (XmlReaderImpl.cs, XmlWriterImpl.cs, XSLTransform.cs). +- ZIP: Zip/* (ZipReader.cs, ZipWriter.cs и перечисления параметров). +- Процессы: Processes/* (ProcessContext.cs, GlobalProcessesFunctions.cs). +- Разное: RandomNumberGenerator.cs, StringOperations.cs, Timezones/*. + +### 3.7 OneScript.Web.Server — веб-обёртки для BSL (ASP.NET Core) +Назначение: адаптеры поверх ASP.NET Core API, чтобы работать с HTTP/WebSocket из BSL. +- WebServer.cs — базовая обвязка. +- Http*Wrapper.cs — HttpContext/Request/Response/Cookies. +- WebSockets/* — WebSocketWrapper, WebSocketsManagerWrapper. + +### 3.8 Отладка: OneScript.DebugProtocol, OneScript.DebugServices, VSCode.DebugAdapter +- Протокол (OneScript.DebugProtocol): + - TcpServer/* (DefaultMessageServer.cs, JsonDtoChannel.cs, DispatchingServer.cs) — транспорт и сериализация. + - Модель отладки: Breakpoint.cs, StackFrame.cs, Variable.cs, DebuggerSettings.cs. +- Сервисы (OneScript.DebugServices): + - DefaultDebugService.cs, DefaultDebugController.cs — серверные сервисы отладки. + - ThreadManager.cs, TcpDebugServer.cs — управление потоками и TCP‑сервер. +- Адаптер для VS Code (VSCode.DebugAdapter): + - DebugSession.cs, OscriptDebugSession.cs — основная сессия и проксирование событий. + - ServerProcess.cs, DebugeeProcess.cs — управление процессом отлаживаемого приложения. + +### 3.9 Приложения/утилиты +- oscript (CLI): src/oscript + - Program.cs — входная точка. + - ConsoleHostBuilder.cs — сборка консольного хоста. + - Поведения (режимы): ExecuteScriptBehavior.cs, CheckSyntaxBehavior.cs, ShowVersionBehavior.cs, DebugBehavior.cs и др. +- StandaloneRunner: сборка самодостаточных пакетов/запуск + - Program.cs, StandaloneRunner.cs, ProcessLoader.cs. +- OneScriptDocumenter: генерация документации по сборкам + - Primary/AssemblyDocsCollector.cs, Cli/MarkdownGenerator.cs. +- Примеры/демо: + - Component — простая .NET‑библиотека/компонент и примеры использования. + - TestApp — WPF‑приложение‑песочница (подсветка синтаксиса, запуск модулей). + +### 3.10 ScriptEngine.NativeApi — C++ API для нативных расширений +- Основные файлы: NativeApiProxy.cpp, NativeInterface.cpp, include/* (AddInDefBase.h, ComponentBase.h и др.). +- Задача: писать нативные аддины, видимые в BSL как объекты/контексты. + +## 4 Как компоненты связаны между собой (словесная диаграмма) +- Language → даёт AST и ошибки компиляции. +- Core → базовые типы/контексты; используется Native, ScriptEngine, StandardLibrary. +- Native → компилирует и исполняет, опирается на Language/Core. +- ScriptEngine → организует выполнение (стек‑машина), использует Native и Core. +- HostedScript → высокий уровень хостинга поверх ScriptEngine. +- StandardLibrary → реализована на Core/ScriptEngine. +- DebugProtocol/DebugServices ↔ ScriptEngine — обмен данными отладки; VSCode.DebugAdapter ↔ DebugServices. +- Web.Server ↔ ASP.NET Core API — обёртки для работы из BSL. +- oscript/StandaloneRunner/Documenter/TestApp/Component — надстройки поверх ядра/рантайма. +- NativeApi ↔ ScriptEngine/Core — нативные расширения. + +## 5 Типичные сценарии доработок (куда лезть) +- Добавить новый тип/значение BSL: OneScript.Core/Values/*, регистрации в фабриках (ScriptEngine/Machine/ValueFactory.cs и/или TypeFactory.cs). +- Добавить объект/контекст с методами: OneScript.Core/Contexts/* (аннотации Context*Attribute), затем регистрация в ScriptEngine/Hosting (DefaultEngineBuilder/ServiceRegistrationExtensions) или через HostedScript. +- Добавить функцию в стандартную библиотеку: соответствующий раздел OneScript.StandardLibrary (например, Json/ или Collections/), плюс экспорт в общий контекст (StandardGlobalContext.cs или SymbolsContext.cs, если нужно). +- Встроенная функция языка/операция: OneScript.Native/Runtime/BuiltInFunctions.cs и/или Compiler/*, при необходимости — поддержка в ScriptEngine/Machine. +- Хостинг/конфигурации: ScriptEngine.HostedScript (HostedScriptEngine, Process, EngineConfigProvider). +- Отладка: DebugServices/DebugProtocol — добавление/изменение событий или представления переменных; VSCode.DebugAdapter — проксирование. + +## 6 Навигация по тестам +- C#‑тесты: src/Tests/* (например, OneScript.Core.Tests, OneScript.Language.Tests и др.) — проверка корректности ядра, парсинга, компиляции, стандартной библиотеки. +- Скриптовые тесты: папка tests/* — проверка сценариев языка и библиотек. +- Где искать примеры по областям: + - Язык/лексер/парсер: src/Tests/OneScript.Language.Tests/*. + - Типы/контексты/ядро: src/Tests/OneScript.Core.Tests/*. + - Динамика/встроенные/компиляция: src/Tests/OneScript.Dynamic.Tests/*. + - Стандартная библиотека: src/Tests/OneScript.StandardLibrary.Tests/* и tests/*.os. + +## 7 Локальная сборка и запуск (кратко) +- Сборка: открыть src/1Script.sln и собрать все проекты (или использовать make/скрипты из корня — по желанию). +- CLI‑запуск: после сборки из src/oscript запускать .os‑скрипты (см. tests/* для примеров). +- Отладка: поднять DebugServices, запустить VSCode.DebugAdapter и подключиться из VS Code (см. проекты OneScript.DebugServices и VSCode.DebugAdapter). + +## 8 Советы по чтению кода +- Язык/AST: начните с OneScript.Language/DefaultBslParser.cs и AstNodes/ModuleNode.cs. +- Типы/контексты: OneScript.Core/Values/*, Contexts/* и Bsl*Info‑классы. +- Исполнение: ScriptEngine/Machine/StackMachineExecutor.cs и ExecutionContext.cs, затем OneScript.Native/Compiler/*. +- Библиотека: OneScript.StandardLibrary — по подкаталогам доменов (Collections, Json, Xml, Http, Zip и др.). +- Отладка: OneScript.DebugServices/DefaultDebugService.cs и VSCode.DebugAdapter/OscriptDebugSession.cs. \ No newline at end of file From 381c601e256e5243d676c36d06609aa1b77d9073 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 4 Nov 2025 13:04:10 +0300 Subject: [PATCH 113/191] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=BD=D0=B5=D1=80=D0=B5=D0=BB=D0=B5=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D1=82=D0=BD=D1=8B=D0=B5=20=D0=B4=D0=BB=D1=8F=20v2=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B8=D0=B7=20install?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/builders/deb/Dockerfile | 21 -- install/builders/deb/build.sh | 54 ----- install/builders/deb/oscript | 3 - install/builders/deb/oscript-cgi | 8 - install/builders/deb/oscript-opm | 4 - install/builders/deb/oscript-opm-completion | 16 -- install/builders/deb/settings/control | 18 -- install/builders/deb/settings/dirs | 6 - install/builders/deb/settings/docs | 3 - install/builders/rpm/Dockerfile | 26 --- install/builders/rpm/build.sh | 64 ------ install/builders/rpm/oscript | 3 - install/builders/rpm/oscript-opm | 4 - install/builders/rpm/oscript-opm-completion | 16 -- install/builders/rpm/oscript.spec | 60 ------ install/choco/onescript.nuspec | 35 ---- install/choco/tools/ReadMe.md | 91 --------- install/choco/tools/chocolateyinstall.ps1 | 90 --------- install/choco/tools/chocolateyuninstall.ps1 | 61 ------ install/dotNetFx40_Full_setup.exe | Bin 889416 -> 0 bytes install/install.iss | 208 -------------------- install/make-dockers.sh | 6 - 22 files changed, 797 deletions(-) delete mode 100644 install/builders/deb/Dockerfile delete mode 100755 install/builders/deb/build.sh delete mode 100755 install/builders/deb/oscript delete mode 100755 install/builders/deb/oscript-cgi delete mode 100755 install/builders/deb/oscript-opm delete mode 100644 install/builders/deb/oscript-opm-completion delete mode 100644 install/builders/deb/settings/control delete mode 100644 install/builders/deb/settings/dirs delete mode 100644 install/builders/deb/settings/docs delete mode 100644 install/builders/rpm/Dockerfile delete mode 100644 install/builders/rpm/build.sh delete mode 100644 install/builders/rpm/oscript delete mode 100644 install/builders/rpm/oscript-opm delete mode 100644 install/builders/rpm/oscript-opm-completion delete mode 100644 install/builders/rpm/oscript.spec delete mode 100644 install/choco/onescript.nuspec delete mode 100644 install/choco/tools/ReadMe.md delete mode 100644 install/choco/tools/chocolateyinstall.ps1 delete mode 100644 install/choco/tools/chocolateyuninstall.ps1 delete mode 100644 install/dotNetFx40_Full_setup.exe delete mode 100644 install/install.iss diff --git a/install/builders/deb/Dockerfile b/install/builders/deb/Dockerfile deleted file mode 100644 index c55fe0556..000000000 --- a/install/builders/deb/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM ubuntu:16.04 - - -RUN apt-get update && apt-get install -y \ - dpkg\ - debconf\ - debhelper\ - lintian\ - md5deep\ - fakeroot \ - locales - -# чтобы запустить тесты -RUN locale-gen --lang ru_RU.UTF-8 -ENV LANG ru_RU.UTF-8 -ENV ARTIFACTS_ROOT built/tmp - -COPY ./ /opt/deb/ -RUN mkdir /bld && cp /opt/deb/build.sh /bld/build.sh && chmod +x /bld/build.sh - - diff --git a/install/builders/deb/build.sh b/install/builders/deb/build.sh deleted file mode 100755 index 4c82249e3..000000000 --- a/install/builders/deb/build.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh - -DATAROOT=$(pwd)/${ARTIFACTS_ROOT} -SRCPATH=${DATAROOT} -BINPATH=${SRCPATH}/bin/ -DEBBUILDROOT=/tmp/deb/ -BUILDERROOT=/opt/deb/ - -if [ -d "$DEBBUILDROOT" ]; then - rm -rf $DEBBUILDROOT - mkdir -p $DEBBUILDROOT -fi - -VERSION=$(cat ${DATAROOT}/VERSION | grep -oE '([[:digit:]]+\.){2}[[:digit:]]+') -PAKNAME=onescript-engine -DSTPATH=${DEBBUILDROOT}${PAKNAME} - -mkdir -p $DSTPATH -mkdir -p $DSTPATH/DEBIAN -mkdir -p $DSTPATH/usr/bin -mkdir -p $DSTPATH/usr/share/oscript/lib -mkdir -p $DSTPATH/usr/share/oscript/bin -mkdir -p $DSTPATH/etc -mkdir -p $DSTPATH/etc/bash_completion.d - -cp ${BUILDERROOT}settings/dirs $DSTPATH/DEBIAN/ -cat ${BUILDERROOT}settings/control | sed -r "s/VERSION/$VERSION/g" > $DSTPATH/DEBIAN/control -cp ${BINPATH}*.exe $DSTPATH/usr/share/oscript/bin -cp ${BINPATH}*.dll $DSTPATH/usr/share/oscript/bin -cp ${BINPATH}*.so $DSTPATH/usr/share/oscript/bin -cp ${BUILDERROOT}oscript $DSTPATH/usr/bin -cp ${BUILDERROOT}oscript-cgi $DSTPATH/usr/bin -cp ${BUILDERROOT}oscript-opm $DSTPATH/usr/bin -cp ${BUILDERROOT}oscript-opm-completion $DSTPATH/etc/bash_completion.d -cp -r ${SRCPATH}/lib/* $DSTPATH/usr/share/oscript/lib -cp ${BINPATH}/oscript.cfg $DSTPATH/etc - -ln -s /usr/bin/oscript-opm $DSTPATH/usr/bin/opm - -# TODO: Убрать это! -cp ${BINPATH}/oscript.cfg $DSTPATH/usr/share/oscript/bin - -fakeroot dpkg-deb --build $DSTPATH - -rm -rf $DSTPATH -chmod 777 $DSTPATH.deb -dpkg-name -o $DSTPATH.deb - -#copy results -OUTPUT=out/deb -mkdir -p $OUTPUT - -cp $DEBBUILDROOT/*.deb $OUTPUT - diff --git a/install/builders/deb/oscript b/install/builders/deb/oscript deleted file mode 100755 index 3644f82d4..000000000 --- a/install/builders/deb/oscript +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -dotnet /usr/share/oscript/bin/oscript.dll "$@" - diff --git a/install/builders/deb/oscript-cgi b/install/builders/deb/oscript-cgi deleted file mode 100755 index caca00423..000000000 --- a/install/builders/deb/oscript-cgi +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -if [ -z "$SCRIPT_FILENAME" ]; then - export SCRIPT_FILENAME=$1 -fi - -oscript -cgi "$@" - diff --git a/install/builders/deb/oscript-opm b/install/builders/deb/oscript-opm deleted file mode 100755 index 1c357d9c4..000000000 --- a/install/builders/deb/oscript-opm +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -OSPATH=/usr/share/oscript -oscript $OSPATH/lib/opm/src/cmd/opm.os "$@" - diff --git a/install/builders/deb/oscript-opm-completion b/install/builders/deb/oscript-opm-completion deleted file mode 100644 index 8589d684b..000000000 --- a/install/builders/deb/oscript-opm-completion +++ /dev/null @@ -1,16 +0,0 @@ -_opm_complete() -{ - local cur opts - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - if [[ $COMP_CWORD == 1 ]] ; then - opts="build prepare install update app help config list run test version" - COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) - return 0 - fi - COMPREPLY=( $(compgen -df ${cur}) ) - return 0 -} -complete -F _opm_complete opm - -# vim: filetype=sh diff --git a/install/builders/deb/settings/control b/install/builders/deb/settings/control deleted file mode 100644 index 4c1e0ed7c..000000000 --- a/install/builders/deb/settings/control +++ /dev/null @@ -1,18 +0,0 @@ -Package: onescript-engine -Version: VERSION -Provides: onescript -Maintainer: Sergey Batanov -Architecture: all -Section: interpreters -Description: 1Script execution engine. - Cross-platform scripting engine - for DevOps who use 1C:Enterprise Platform (http://1c-dn.com/1c_enterprise) -Depends: mono-runtime, - libmono-system-core4.0-cil | libmono-system-core4.5-cil, - libmono-system4.0-cil | libmono-system4.5-cil, - libmono-system-runtime-serialization4.0-cil, - libmono-system-data4.0-cil, - libmono-corlib4.0-cil | libmono-corlib4.5-cil, - libmono-i18n4.0-all | libmono-i18n4.5-all -Recommends: mono-complete -Origin: https://github.com/EvilBeaver/OneScript/ diff --git a/install/builders/deb/settings/dirs b/install/builders/deb/settings/dirs deleted file mode 100644 index d48b6e912..000000000 --- a/install/builders/deb/settings/dirs +++ /dev/null @@ -1,6 +0,0 @@ -/usr/bin -/etc -/usr/share/oscript/bin -/usr/share/oscript/lib -/etc/bash_completion.d - diff --git a/install/builders/deb/settings/docs b/install/builders/deb/settings/docs deleted file mode 100644 index 3ad7355f4..000000000 --- a/install/builders/deb/settings/docs +++ /dev/null @@ -1,3 +0,0 @@ -README.md -LICENSE - diff --git a/install/builders/rpm/Dockerfile b/install/builders/rpm/Dockerfile deleted file mode 100644 index 2a116bcfc..000000000 --- a/install/builders/rpm/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -FROM fedora:26 - - -# Install various packages to get compile environment -RUN dnf update -y && dnf -y group install 'Development Tools' - -# Install git command to access GitHub repository -RUN dnf -y install sudo git rpmdevtools rpm-build yum-utils dnf-plugins-core - -RUN sed -i.bak -n -e '/^Defaults.*requiretty/ { s/^/# /;};/^%wheel.*ALL$/ { s/^/# / ;} ;/^#.*wheel.*NOPASSWD/ { s/^#[ ]*//;};p' /etc/sudoers - -# This is an optimisation for caching, since using the auto generated one will -# make docker always run the builddep steps since new file -ENV RPMSOURCE /opt/rpm -COPY ./ ${RPMSOURCE} - -RUN dnf builddep -y --spec ${RPMSOURCE}/oscript.spec - -#uid 1000 is used by jenkins agent -RUN useradd -s /bin/bash -u 1000 -G adm,wheel,systemd-journal -m rpm - -ENV VERSION "" -ENV RELEASE "" -ENV ARTIFACTS_ROOT built/tmp - -RUN mkdir /bld && cp /opt/rpm/build.sh /bld/build.sh && chmod +x /bld/build.sh diff --git a/install/builders/rpm/build.sh b/install/builders/rpm/build.sh deleted file mode 100644 index 22b306863..000000000 --- a/install/builders/rpm/build.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# script run inside the container - -DATAROOT=$(pwd)/${ARTIFACTS_ROOT} - -VERSION=$(cat ${DATAROOT}/VERSION | grep -oE '([[:digit:]]+\.){2}[[:digit:]]+') -BLDTMP=/tmp/rpm-src -TMPDIR=${BLDTMP}/OneScript-$VERSION -DISTPATH=${DATAROOT} -mkdir -p $TMPDIR - -echo "Copying sources to tmpdir" -cp -r -v $DISTPATH/bin $TMPDIR -cp -r -v $DISTPATH/lib $TMPDIR -cp -r -v $DISTPATH/doc $TMPDIR -cp -r -v $DISTPATH/examples $TMPDIR -cp -r -v ${RPMSOURCE}/oscript $TMPDIR/oscript -cp -r -v ${RPMSOURCE}/oscript-opm $TMPDIR/oscript-opm -cp -r -v ${RPMSOURCE}/oscript-opm-completion $TMPDIR/oscript-opm-completion - -pushd ${BLDTMP} -echo "Compressing OneScript-$VERSION to tar" -tar -czvf OneScript-$VERSION.tar.gz OneScript-$VERSION/ -popd - -BUILDDIR=/tmp/rpm-out -mkdir -p ${BUILDDIR} - -rpmdev-setuptree -define="" -if [ -z $VERSION ]; then - echo "" -else - define="${define} --define '_version ${VERSION}'" -fi - -if [ -z $RELEASE ]; then - echo "" -else - define='$define --define "Release $RELEASE"' -fi - -echo $define -cp -arv $RPMSOURCE/* ~/rpmbuild/SOURCES/ -cp -arv $BLDTMP/*.tar.gz ~/rpmbuild/SOURCES/ -cp -arv $RPMSOURCE/*.spec ~/rpmbuild/SPECS/ -rpmbuild -ba \ - --define "_version ${VERSION:-1.0.13}" \ - ~/rpmbuild/SPECS/oscript.spec || exit 1 - -[[ -d $BUILDDIR ]] || exit 0 - -mkdir -p $BUILDDIR/RPMS -mkdir -p $BUILDDIR/SRPMS - -cp -ar ~/rpmbuild/RPMS/ $BUILDDIR/ -cp -ar ~/rpmbuild/SRPMS/ $BUILDDIR/ - -#copy results -OUTPUT=$(pwd)/out/rpm -mkdir -p $OUTPUT - -mv $BUILDDIR/RPMS/noarch/*.rpm $OUTPUT -mv $BUILDDIR/SRPMS/*.rpm $OUTPUT diff --git a/install/builders/rpm/oscript b/install/builders/rpm/oscript deleted file mode 100644 index 3644f82d4..000000000 --- a/install/builders/rpm/oscript +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -dotnet /usr/share/oscript/bin/oscript.dll "$@" - diff --git a/install/builders/rpm/oscript-opm b/install/builders/rpm/oscript-opm deleted file mode 100644 index 1c357d9c4..000000000 --- a/install/builders/rpm/oscript-opm +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -OSPATH=/usr/share/oscript -oscript $OSPATH/lib/opm/src/cmd/opm.os "$@" - diff --git a/install/builders/rpm/oscript-opm-completion b/install/builders/rpm/oscript-opm-completion deleted file mode 100644 index 8589d684b..000000000 --- a/install/builders/rpm/oscript-opm-completion +++ /dev/null @@ -1,16 +0,0 @@ -_opm_complete() -{ - local cur opts - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - if [[ $COMP_CWORD == 1 ]] ; then - opts="build prepare install update app help config list run test version" - COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) - return 0 - fi - COMPREPLY=( $(compgen -df ${cur}) ) - return 0 -} -complete -F _opm_complete opm - -# vim: filetype=sh diff --git a/install/builders/rpm/oscript.spec b/install/builders/rpm/oscript.spec deleted file mode 100644 index e6b35302b..000000000 --- a/install/builders/rpm/oscript.spec +++ /dev/null @@ -1,60 +0,0 @@ -%global debug_package %{nil} - -Name: onescript-engine -Version: %{_version} -Release: 1%{?dist} -Summary: 1Script execution engine. - -License: MPL 2.0 -URL: https://github.com/EvilBeaver/OneScript -Source0: OneScript-%{version}.tar.gz -BuildArch: noarch -BuildRequires: wget -Requires: mono-core -Requires: mono-locale-extras - -%define _binaries_in_noarch_packages_terminate_build 0 -%define _empty_manifest_terminate_build 0 -%define _subdir OneScript-%{version} - -%description -1Script execution engine. - Cross-platform scripting engine - for DevOps who use 1C:Enterprise Platform (http://1c-dn.com/1c_enterprise) - -%prep -pwd -%setup -c %{source0} - -%build -echo "build" -pwd - -%install -%{__rm} -rf %{buildroot} -pushd %{_subdir} -mkdir -p %{buildroot}%{_datadir}/oscript/ -mkdir -p %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d -install -p oscript -m 755 %{buildroot}%{_bindir}/oscript -install -p oscript-opm -m 755 %{buildroot}%{_bindir}/oscript-opm -install -p oscript-opm -m 755 %{buildroot}%{_bindir}/opm -install -p oscript-opm-completion -m 755 %{buildroot}%{_sysconfdir}/bash_completion.d/oscript-opm-completion -rm oscript -rm oscript-opm -rm oscript-opm-completion -%{__cp} -fpr ./ %{buildroot}%{_datadir}/oscript/ -popd - -%files -%defattr(-,root,root) -%{_bindir}/* -%{_datadir}/oscript/* -%{_sysconfdir}/bash_completion.d/oscript-* -%doc - - - -%changelog -* Sat Apr 23 2016 shenja@sosna.zp.ua -- diff --git a/install/choco/onescript.nuspec b/install/choco/onescript.nuspec deleted file mode 100644 index 09c54bd4d..000000000 --- a/install/choco/onescript.nuspec +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - onescript - onescript (Install) - __REPLACE__ - __REPLACE_AUTHORS_OF_SOFTWARE_COMMA_SEPARATED__ - __REPLACE_YOUR_NAME__ - __REPLACE__ - __REPLACE__MarkDown_Okay - - - - - onescript admin SPACE_SEPARATED - - - false - - - __REPLACE_OR_REMOVE__MarkDown_Okay - - - - - - diff --git a/install/choco/tools/ReadMe.md b/install/choco/tools/ReadMe.md deleted file mode 100644 index e9d10ef2b..000000000 --- a/install/choco/tools/ReadMe.md +++ /dev/null @@ -1,91 +0,0 @@ -## Summary -How do I create packages? See https://github.com/chocolatey/choco/wiki/CreatePackages - -If you are submitting packages to the community feed (https://chocolatey.org) -always try to ensure you have read, understood and adhere to the create -packages wiki link above. - -## Automatic Packages? -Consider making this package an automatic package, for the best -maintainability over time. Read up at https://github.com/chocolatey/choco/wiki/AutomaticPackages - -## Shim Generation -Any executables you include in the package or download (but don't call -install against using the built-in functions) will be automatically shimmed. - -This means those executables will automatically be included on the path. -Shim generation runs whether the package is self-contained or uses automation -scripts. - -By default, these are considered console applications. - -If the application is a GUI, you should create an empty file next to the exe -named 'name.exe.gui' e.g. 'bob.exe' would need a file named 'bob.exe.gui'. -See https://github.com/chocolatey/choco/wiki/CreatePackages#how-do-i-set-up-batch-redirects-for-applications-that-have-a-gui - -If you want to ignore the executable, create an empty file next to the exe -named 'name.exe.ignore' e.g. 'bob.exe' would need a file named -'bob.exe.ignore'. -See https://github.com/chocolatey/choco/wiki/CreatePackages#how-do-i-exclude-executables-from-getting-batch-redirects - -## Self-Contained? -If you have a self-contained package, you can remove the automation scripts -entirely and just include the executables, they will automatically get shimmed, -which puts them on the path. Ensure you have the legal right to distribute -the application though. See https://github.com/chocolatey/choco/wiki/Legal. - -You should read up on the Shim Generation section to familiarize yourself -on what to do with GUI applications and/or ignoring shims. - -## Automation Scripts -You have a powerful use of Chocolatey, as you are using PowerShell. So you -can do just about anything you need. Choco has some very handy built-in -functions that you can use, these are sometimes called the helpers. - -### Built-In Functions -https://github.com/chocolatey/choco/wiki/HelpersReference - -A note about a couple: -* Get-BinRoot - this is a horribly named function that doesn't do what new folks think it does. It gets you the 'tools' root, which by default is set to 'c:\tools', not the chocolateyInstall bin folder. -* Install-BinFile - used for non-exe files - executables are automatically shimmed... -* Uninstall-BinFile - used for non-exe files - executables are automatically shimmed - -### Getting package specific information -Use the package parameters pattern - see https://github.com/chocolatey/choco/wiki/How-To-Parse-PackageParameters-Argument - -### Need to mount an ISO? -https://github.com/chocolatey/choco/wiki/How-To-Mount-An-Iso-In-Chocolatey-Package - - -### Environment Variables -Chocolatey makes a number of environment variables available (You can access any of these with $env:TheVariableNameBelow): - - * TEMP = Overridden to the CacheLocation, but may be the same as the original TEMP folder - * ChocolateyInstall = Top level folder where Chocolatey is installed - * chocolateyPackageName = The name of the package, equivalent to the id in the nuspec (0.9.9+) - * chocolateyPackageVersion = The version of the package, equivalent to the version in the nuspec (0.9.9+) - * chocolateyPackageFolder = The top level location of the package folder - -#### Advanced Environment Variables -The following are more advanced settings: - - * chocolateyPackageParameters = (0.9.8.22+) - * CHOCOLATEY_VERSION = The version of Choco you normally see. Use if you are 'lighting' things up based on choco version. (0.9.9+) - - Otherwise take a dependency on the specific version you need. - * chocolateyForceX86 = If available and set to 'true', then user has requested 32bit version. (0.9.9+) - - Automatically handled in built in Choco functions. - * OS_PLATFORM = Like Windows, OSX, Linux. (0.9.9+) - * OS_VERSION = The version of OS, like 6.1 something something for Windows. (0.9.9+) - * OS_NAME = The reported name of the OS. (0.9.9+) - * IS_PROCESSELEVATED = Is the process elevated? (0.9.9+) - -#### Experimental Environment Variables -The following are experimental or use not recommended: - - * OS_IS64BIT = This may not return correctly - it may depend on the process the app is running under (0.9.9+) - * CHOCOLATEY_VERSION_PRODUCT = the version of Choco that may match CHOCOLATEY_VERSION but may be different (0.9.9+) - - it's based on git describe - * IS_ADMIN = Is the user an administrator? But doesn't tell you if the process is elevated. (0.9.9+) - * chocolateyInstallOverride = Not for use in package automation scripts. (0.9.9+) - * chocolateyInstallArguments = the installer arguments meant for the native installer. You should use chocolateyPackageParameters intead. (0.9.9+) - diff --git a/install/choco/tools/chocolateyinstall.ps1 b/install/choco/tools/chocolateyinstall.ps1 deleted file mode 100644 index 0748cbf8a..000000000 --- a/install/choco/tools/chocolateyinstall.ps1 +++ /dev/null @@ -1,90 +0,0 @@ -#NOTE: Please remove any commented lines to tidy up prior to releasing the package, including this one -# REMOVE ANYTHING BELOW THAT IS NOT NEEDED - -$ErrorActionPreference = 'Stop'; # stop on all errors - - -$packageName = 'onescript' # arbitrary name for the package, used in messages -$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)" -$url = 'http://oscript.io/downloads/latest/msi' # download url -$url64 = '' # 64bit URL here or remove - if installer is both, use $url - -$packageArgs = @{ - packageName = $packageName - unzipLocation = $toolsDir - fileType = 'EXE_MSI_OR_MSU' #only one of these: exe, msi, msu - url = $url - url64bit = $url64 - - #MSI - silentArgs = "/qn /norestart /l*v '$env:TEMP\chocolatey\$packageName\install.log'" # ALLUSERS=1 DISABLEDESKTOPSHORTCUT=1 ADDDESKTOPICON=0 ADDSTARTMENU=0 - validExitCodes= @(0, 3010, 1641) - #OTHERS - #silentArgs ='/S' # "/s /S /q /Q /quiet /silent /SILENT /VERYSILENT -s" # try any of these to get the silent installer - #validExitCodes= @(0) #please insert other valid exit codes here - - # optional - registryUninstallerKey = 'onescript' #ensure this is the value in the registry - checksum = '' - checksumType = 'md5' #default is md5, can also be sha1 - checksum64 = '' - checksumType64= 'md5' #default is checksumType -} - -Install-ChocolateyPackage @packageArgs -#Install-ChocolateyZipPackage @packageArgs - -## Main helper functions - these have error handling tucked into them already -## see https://github.com/chocolatey/choco/wiki/HelpersReference - -## Install an application, will assert administrative rights -## add additional optional arguments as necessary -##Install-ChocolateyPackage $packageName $fileType $silentArgs $url [$url64 -validExitCodes $validExitCodes -checksum $checksum -checksumType $checksumType -checksum64 $checksum64 -checksumType64 $checksumType64] - -## Download and unpack a zip file -##Install-ChocolateyZipPackage $packageName $url $toolsDir [$url64 -checksum $checksum -checksumType $checksumType -checksum64 $checksum64 -checksumType64 $checksumType64] - -## Install Visual Studio Package -#Install-ChocolateyVsixPackage $packageName $url [$vsVersion] [-checksum $checksum -checksumType $checksumType] -#Install-ChocolateyVsixPackage @packageArgs - -# see the full list at https://github.com/chocolatey/choco/wiki/HelpersReference -# downloader that the main helpers use to download items -# if removing $url64, please remove from here -#Get-ChocolateyWebFile $packageName 'DOWNLOAD_TO_FILE_FULL_PATH' $url $url64 -# installer, will assert administrative rights - used by Install-ChocolateyPackage -#Install-ChocolateyInstallPackage $packageName $fileType $silentArgs '_FULLFILEPATH_' -validExitCodes $validExitCodes -# unzips a file to the specified location - auto overwrites existing content -#Get-ChocolateyUnzip "FULL_LOCATION_TO_ZIP.zip" $toolsDir -# Runs processes asserting UAC, will assert administrative rights - used by Install-ChocolateyInstallPackage -#Start-ChocolateyProcessAsAdmin 'STATEMENTS_TO_RUN' 'Optional_Application_If_Not_PowerShell' -validExitCodes $validExitCodes -# add specific folders to the path - any executables found in the chocolatey package folder will already be on the path. This is used in addition to that or for cases when a native installer doesn't add things to the path. -#Install-ChocolateyPath 'LOCATION_TO_ADD_TO_PATH' 'User_OR_Machine' # Machine will assert administrative rights -# add specific files as shortcuts to the desktop -#$target = Join-Path $toolsDir "$($packageName).exe" -# Install-ChocolateyShortcut -shortcutFilePath "" -targetPath "" [-workDirectory "C:\" -arguments "C:\test.txt" -iconLocation "C:\test.ico" -description "This is the description"] -# outputs the bitness of the OS (either "32" or "64") -#$osBitness = Get-ProcessorBits -#Install-ChocolateyEnvironmentVariable -variableName "SOMEVAR" -variableValue "value" [-variableType = 'Machine' #Defaults to 'User'] - -#Install-ChocolateyFileAssociation -#Install-BinFile ## only use this for non-exe files - chocolatey will automatically pick up the exe files and shim them automatically -## https://github.com/chocolatey/choco/wiki/CreatePackages#how-do-i-exclude-executables-from-getting-batch-redirects - -##PORTABLE EXAMPLE -#$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)" -# despite the name "Install-ChocolateyZipPackage" this also works with 7z archives -#Install-ChocolateyZipPackage $packageName $url $toolsDir $url64 -## END PORTABLE EXAMPLE - -## [DEPRECATING] PORTABLE EXAMPLE -#$binRoot = Get-BinRoot -#$installDir = Join-Path $binRoot "$packageName" -#Write-Host "Adding `'$installDir`' to the path and the current shell path" -#Install-ChocolateyPath "$installDir" -#$env:Path = "$($env:Path);$installDir" - -# if removing $url64, please remove from here -# despite the name "Install-ChocolateyZipPackage" this also works with 7z archives -#Install-ChocolateyZipPackage "$packageName" "$url" "$installDir" "$url64" -## END PORTABLE EXAMPLE diff --git a/install/choco/tools/chocolateyuninstall.ps1 b/install/choco/tools/chocolateyuninstall.ps1 deleted file mode 100644 index 0fa02081d..000000000 --- a/install/choco/tools/chocolateyuninstall.ps1 +++ /dev/null @@ -1,61 +0,0 @@ -#NOTE: Please remove any commented lines to tidy up prior to releasing the package, including this one -# REMOVE ANYTHING BELOW THAT IS NOT NEEDED -# Auto Uninstaller should be able to detect and handle registry uninstalls (if it is turned on, it is in preview for 0.9.9). - -$ErrorActionPreference = 'Stop'; # stop on all errors - -$packageName = 'onescript' -# registry uninstaller key name is the key that is found at HKLM:\Software\Windows\CurrentVersion\Uninstall\ THE NAME -$registryUninstallerKeyName = 'onescript' #ensure this is the value in the registry -$msiProductCodeGuid = '{insert it here}' -$shouldUninstall = $true - -$local_key = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\$registryUninstallerKeyName" -# local key 6432 probably never exists -$local_key6432 = "HKCU:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\$registryUninstallerKeyName" -$machine_key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$registryUninstallerKeyName" -$machine_key6432 = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\$registryUninstallerKeyName" - -$file = @($local_key, $local_key6432, $machine_key, $machine_key6432) ` - | ?{ Test-Path $_ } ` - | Get-ItemProperty ` - | Select-Object -ExpandProperty UninstallString - -if ($file -eq $null -or $file -eq '') { - Write-Host "$packageName has already been uninstalled by other means." - $shouldUninstall = $false -} - -# The below is somewhat naive and built for EXE installers -#$installerType = 'EXE' -#$silentArgs = '/S' -#$validExitCodes = @(0) - -#if (!(Test-Path $file)) { -# Write-Host "$packageName has already been uninstalled by other means." -# $shouldUninstall = $false -#} - -# The below is somewhat naive and built for MSI installers -$installerType = 'MSI' -# The Product Code GUID is all that should be passed for MSI, and very FIRST, -# because it comes directly after /x, which is already set in the -# Uninstall-ChocolateyPackage msiargs (facepalm). -$silentArgs = "$msiProductCodeGuid /qn /norestart" -# https://msdn.microsoft.com/en-us/library/aa376931(v=vs.85).aspx -$validExitCodes = @(0, 3010, 1605, 1614, 1641) -# Don't pass anything for file, it is ignored for msi (facepalm number 2) -# Alternatively if you need to pass a path to an msi, determine that and use -# it instead of $msiProductCodeGuid in silentArgs, still very first -$file = '' - -if ($shouldUninstall) { - Uninstall-ChocolateyPackage -PackageName $packageName -FileType $installerType -SilentArgs $silentArgs -validExitCodes $validExitCodes -File $file -} - -## OTHER HELPERS -## https://github.com/chocolatey/choco/wiki/HelpersReference -#Uninstall-ChocolateyZipPackage -#Uninstall-BinFile # Only needed if you added one in the installer script, choco will remove the ones it added automatically. -#remove any shortcuts you added - diff --git a/install/dotNetFx40_Full_setup.exe b/install/dotNetFx40_Full_setup.exe deleted file mode 100644 index 384fb83433f7218f14aae50419923f3adabcdc03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889416 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

    Gj2@gtf^Sd$RWdjz_YU{N4G1@`Cdu+)* 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

    a#ojy#ILaE*R!ztKIx z;G-6oZ27Fv<%xGA;ljhK)jU6M9oU+TU29gie7J*3kFfyFsNM7xqI_&V1Vy2v!+jtD zKSbaw2jYd~(~}HeFd6JwYE^9b&CY$A_1Fh_qEGgx6a4f~iq(aJJdF6FPl~Dd(#1>5 zf?C;Hr86#okJK|3Y-=4bf4Rp`+0vr|>%_js*Suh%(sP3@u0x=bf-k$T&8SVnDiTw( zD6Uu^!Qnc973d>3bvL<8`us7C(2-wDQ0a$hIYYN}tNPT+g-QKcn1^3hBwQe22p*i& zh8xzdF4qmFDiftfbnvH38P9mse-8qq;HQ;(8lXzDTglmZIAHX_*C$1gL?*9rsmSno zYjb^lX&*Un?-ognx~SqJqFi!3Qr3NLi(Iio!){e{iNJ1-0X^!|i=Vmu>!>SrXW&Zb8W0H%FrPG@7jB;`4qm$;I?M z^j7b>TP&zQJG)bT6~OQSvHFR~R@jQpY-$2XP2QW7hw7U)7e z?|c*0+9V_$G%}edGm-Z#k{uz+CyUrcr4+$_#O z0*~|>S9`}PxVR6oO& zE6F8(=KWWZZW$6^%|JT$

    r@)+Tk*BilJDPOdoF4 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

    B$A=qH)?RBBW8p-s!Crj~^G@({K6fMf=|#tU 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

    uwa~qXPVpGdG#}6o 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ÐptgGs=A=y0F( z>vtL)FeI)`#s%IE&b6}9Qq%F%SQpl@21^_XYi;By2Dv0~+7A-7d(iGYX#wv`(1XEC z86p_+SE(w*%Ao&&Q`_#Wa;@ru*c@DlWq~)|uqCT?^xv1$Z}q%%ey`kiN%Zl#{VYjF z?Y0+b`FN>RPa?9hdn-*zl&e7@K2>eHz@kC#jT2aF<kcRg&z-rbBY`1R6;E0MvL5h>-e5Af(sWfeGL} zNWd}Cze?Bksx+aI^XC`@6T4Kjd-q6~Qm z4sTB3yV9Qxj!(+Kj=A%T&CyuBz*8>!DzBR%t~3F$K`=o--6qVw_(a^;jAcy+`5r^U z>CJ!TyE9pZUcYy}N&Z!@4Do2HswBHz@QlzvG<<=$7P-EOZhYoKaV=Mn`zVEZM zyYdyR|L^wDdKvNOyhAQ$j1El%TR@!as@8lwCFL5t3)c~+uz+x7u3^%$CLt9r)V4%9 zV-DaSspl6c1J7}^%Y8}@g3yK}&XX&_MupY#!r*x4gPn$u;5-b7R`(y#Wq+G5{kv>` z_pm_-#WGprXXv+Lo9mBU1hEvJKIOeK}dFs z2BNXzaDz;X^@fD{iXj0*e#(GU_7a1I{^!4I6fRZp@ZSO-(>)AIb+dEvw~J3~p(BTI ztE!0GN;1mUP^9IE{_b}aa0;@o%DUEc)zoW72$0pR4i5pW$Aj5T??bd3}w^lr3{yYDZ46i!(2L`X)o6y|%u z#SC{mC04xlBq}E+W$V33`quxu2uEZXx=(9SGW1L3))z|b=P9eyz4q=XMb6R!wj6uN zz$y{8{xf*+q*R5v@X;+#-4fo^BGTF)cqu<*oPZ{|dD!x`7QK#pr)1s}kl*Lccxb%> zY2pc+Oy*PWxf77?1(&$m5A_Fvi3-kbIHHFq$B2m5Mv{7z8rIbOT*rn-Guwi}Qu6+2 z8&SFW(d^x+;xAI^Br@jH`brzs&f#i?FMo`N**EJ4spzv%#CW=rV)1D6=)<~^VO2>x z-q)ECiq0z9&!Fqd^gy3i-q{>oE_W@##wdmJTq6bFM)tvR!>9kg4;!ZfWXco3L+3x>8vEV#;_zmvWyVZ>cvl5ak!%}J{Q-5letIR9nypsG z>oR-+Aa;SXn|Q9k#sxIM|O?BveG!he5sxEq*f|kk<9?#I~8T( zr;WGc`RZS2kRGj`fOHFF|RTWu76Og92nrg-< z+Pa?AC)h{`&z?LmLZ0=#;OQ?y(CfTC6EKqAX(@uEW`7|&;eswhkf2$41(H~cc&Z64 zA+~>*CT@Bnh3v{vV*@Ug=JHrX^*5}hjsWCBRj>nuAV}&I`diMre!V-LBEG;l+t^N8 zk_RXOklIf|#UF-R7CWn>nn2&a-R2%2;>VICmV8%7gM} zEg2H=%T>w~R<}?bL!AhJIPUusr_lm~Y}iPR;Ao?6g~glJz}X~hm5rH)@QXnXU$UlP+o zTLo4u`*&w!Oq%f^S0_aWK^KcX&3*4afgxpsb;jf8xboV`zq|EJVef$JG2qifpV8LR zxd=hM5+b3inSYY8>FXWTQ}7rJ9a(9bPxu64FkTJm38zU3YB3@zQ70i%Lv)^;oExm$ zHS;QW1$A219?^?v+!Dz0kH%IR41DG(rwmKlXAI-b92y(2%k5J@;|X3;W20WLRAQ(- z*7ME%4`k-0XfvlExGZB1CWDXAN+V}8?-H8AQy)4BL3c5gJ8i&nGYJJ)Vn(;o%tS5X z4NThs(`o=rXkz`(v71U2?J3+NO8e60DP~8uj#;?KEy;AW`t0-D)pFTSRWx|K(q|Dd zH!tqF*CGqhaS3A-0aY zZKjDj2;ya(G3uR@WaRjhgCZs5_S;Bp+`35<$h0kJJTnBsWaCc)NWOgyXQalj7E&+N0a0Vq8zKhf$|I02P9PLg zX1?q;v`}aWk+1*2vO(!)BUgZY>qs@+*i{0GVllt>s?j#$hRnRu2Rt7MW!}6wNvcQr zP)|pK^-d5FMhCWgKD5kpPQ=XI@tr>YwD!c=_`iT1MG^;zabUbMh!BjxspQ_*#Gb)e z_q~SS`~oxvKqoo)OWw2Q2Rb>%q!+G>fJc|vAL)%dzp2s^{7my9A!mD3jl>)?K-;@Z zVvZKTt^%QN>y)owXR$6cT&bFB1RZ-Kl3}e`&^D9U#e#QRbrw44F$oh27C*kloZ8rl zH8D;h{Ahq|>XrppI+U)v&Nfa%bCu~0KAyrfK5#is zdLNu34}WmmJimRzzU;s`y1+fsWV+3HS}tHJ7hGMkp{FfW)?kNps6#`*JT|PlSr~%O zvpJFU7t(zBl)Ec2o8e4zl_`4VQ5%Or-4+vCEb@fQ=i?x;QO~6uhH-~JBsAdEAh!8- zK_mb!O!&_Hw#E1ICv9ykLb%Y7b#G{gq|E+O;!mmmiN8UYp2N*_pMk&56YD`)Kl3k> zKy=G)f?0l}zv(;v-?v_$e75BAe@@}zeHY@xRwLC0bd=v#!|4#kDnA?Z*U*kx)=`^Y zK1bE$bV}P+La5wnuDw7}x;pem_7R2nT2JZb3f;g!yg3s=vauTZ7J!vLWGL)B7-lB& zw}+&*YM7gP64pojU;0qR}OO*AQpT&qT+0qemg!}wW2;n1ERx?-Pz-W%!eS^ z>#XsodEjrSLn@dGO!Czfe8YGCDbo)$C$1T;%M8fder)eR6vJSM$`}gLXxtZs4M%hw z%o6He67kSINk^K-7GSW-0^R#cj(0okVlA)BH<13v8iwiAJ9zQq%(af+KA1TLq&wuX z4L|2iEz9Ll(|SdDS4zx{QNP!>M^zp-l0~6FeT&I}KA6LPL;krvs=#*zBivA><|vn4 z6)HGz&WKkF-C*A_1KjZtt>H5|15RgQc2_&T!jUT8-};ksDjV;-pp$y%>f z83yOT94Ssu{CapI?J)3<4Xlq_snft6DKGZtj0YRXq^C$m-0ECAkC8b^FGqq&^UHZQ z`elHU=U?F0$bJY!JaPnyE8{{L=%s6>HP?5-ymETE!~^Btz`9{77u6v(iD@ZzOt;ZN z93LGqmN%E?3B@U(QY=`fH#V*u)gy7SNHwiAd4cSeFsi?4S@Js zbDr{C`us)i0hOWv9V`j15*?133Gkhl+^%%@f+g8r^n9ItvwTyku^bLNO=kdv03nB#Ouj@)*eB|`yT(ef0 zK%Jub@Cwld0K!9Fcd6bIc0JybtQBc{3q4xS8SA8PYJf#CeILYI;0f<=-@#JiFCJT# zV$4gxVtjz9`<~1+F=1|Zk9Ye^o=||@KiD(iX_!>v4J~9}JzY|bh@b78hbuX0#`OCq z(lA-MeWYH|hiA;4yJV<-7nK`zpxNv+D+Ca9XC+4jJ88G^`JfsMEdaB3-ZQ)56MNO~ z5e`%N4P^j?DVm2raQUlrrhvV;352%j=VoZ`lYq`*ebnve$F#IOMzxa)JI$9M`1_{M zb7A|pRvkq&A?$iZk+q&o<`Y=&04ZA|VzYe3Sqm|G7i1{X`WE-4x_Sne zIQM1h*^=^B_oK25349OGsO|O&Y96&OwB6l@HFy_xYLReY!n|ibx9|~kU0xyR{&@z< z4nK;SAc9fpSx-Vx$NPvMQ`#qsWMg+xrNvCZb2FVW$TbVMbY)|vEQoU$7bNa3K5i(c z;h1u*5N(Y^q;#`5yQ076fzWkP;{?3YRWQ-rHwOA|#Dxl9ioKo|86abLl@V+^cMiG1 z%Ywn_fd3hXB3#FtPq?^qBl7W`jVQDhLzkoy9XFBjKo6<~f*8}Pp+tA_q=Te$8~#e9 zq9lT2;~f@?yIc!Lo%99(H`U!9i_m22>G=~YiHO-HqrRIb-~SPA<74$T+&9I*w^6o| zSMU~6Nz;aKHZWv^z?tqH%l)43c9B@`StBjx=>$qj9@-b3o^7Q!WomhV)g};G-dx!M z^}xGE!lj8j`T(ts>LF4U#n-VV0Sn7^5u%F&@mY947i$5ktq(j}QR5D>(d^z?e+ii} z=xS!+xXEws!MD)l#i77PYn<4n9w=wAUUg9Pn=)&T`jnfa%LziJ@o8&2LOW=-vWQDA zR-k<}GEtp=1g|clJP=9-<%J|A*tAc{72;dzDGj*r<$c83{XUF)3>oe>2F~~3M(bYE z*giyaVaiHv39k%q57zeygZD7f^#plfsXWg z%n}$1B8gDOkt#Q!e>X?ULea39^rgg*X(0ZgL0Z7~m$(V+JEBz23t;Az`G0&0`eYjJ z`nyG~U~D^i`8v`-$;xAJaz7xOLs>_@Vzoxm+~$mKvMVW8;vViszUTxp`h>QyD2-;J zZD`6%{$A16Z0p8J|HTW}E-eCppK>BFd{H=;6U|WgQxpE-F&}0Vu{1*=1g=+#LZ%9a zq=S7Fz8wrq=PTu_CHje|Wl^zSD$WxL8`@v-NZr~Vn|I(a;)u3{=8W4k6npBQL@NlO zTx-%px=|CtkmsmMx@kgxUEFL1F$L~cUoEWNRXlpG7_}sslcpR5TQHr#7#lPJ3eK1n zx}?}D(f;YKgjlHvTlJ0#tl~{&qq6lGGcN1$=t9qL9T*;}>3~z6K&wzR?DZ&w^JHww z3gHjLBb}n{V<77I)zLF6-M%3Ev;+UzC8wGc9-hf zIPi!)mBd!})1*ts&os+Qswb9;YVLXw)TgaDkYv<9*up*G&{B)ihF(Thh~zj;lcD$u{dM|9c~}WT z&mMao@8TU{jJg@7%-LA)H5F%UBF5B?;6wKt{v`$3Qk%z)=EQLA(1YZ+2XK3U+k}gT z6#{5WTFFs%ol{$P;>Z04^bF=l1y1sh!S(G*1K zL5kw(Ick;&P2fA?$~uFYHux+azK72%Rs8M!{=Yg@~2go6kxtaGp=446W`p#@E-yZ{1 ziVHR`lqY*6@TUrfUL+5bsC}xq*-a1KzJ3J*@Gz}o1gMx6G5A5QH>Zx~1K=~BgoDO1 zz{DMXYH45MvDZbLeQndrazv)&Z#yfO0{eQ~b{5RyStaPmlW}j_76{Q~b*WDSb=2Zy zo`U^-StgSSfBG&EkN8z9lu4}3RvTvcm3C-;B6PlQC-j~?(?udCpEcvJUYOc-L%Bz7 zT~>Qe+(D_j{7Qp_fiE%ov{O}r!Mm;}MMH*S(0?i}BvO588E z62Lf^C;Eim&pPx%@Va4Bb?Qu4=KqoPM*HK+fjK$LIC;gk+MQH1%q-gpF4go7yl5(dNilohOpa~81C+2I}K^&k<6 zfFJiomGGp`Eq5@T9mhZY<>jo8#BCpHC<8AS9=5WJdkE=#U_eWuq(P%OZ~<{R5E+Ok ze-b7?_Sa%gge(HCA=`j=g`Il|J*S zvvm5@Ilo!)7s2ktSqKwopV9jy(4p6!q%)PKnR)iKtM_M*RiU45@FNw|NJ}XW?Yy-B z1h`(K920Lho4(wYI9iro&I(*Z0_`lj#)St4EL;Is97x)|)O1S`=s*INB4DS$FHcePNH0msAut=ZM7zGVv49*&AnQ6MfUROu$_PNtC{q-nj9^nAjWrlDhhRW(RW`=_W5mZ zH%f~NCfIzz#X@{K5Ru$DgwBr7I>F@WReFg!lRu?=&@7PjxWrD0R(jgw|-xTdgl#PSK`jk!Om9JDWZM zr-7jZ5)wvhB;H>yPv3h%)d}mssGw~MJp&;%vy3}|Z{*eH-BSu|7K;(3AQ*4&U*n@0 zM(gGb%gBbXfGH*{g{u7aU6CcWqO)z=HWUeAjzvUghB>n)C{ zo>;?+p#m!wf!=eki3-=vuZy={)wjS>iq_Iy@@u$-G|!Gqcs8WQ#7WUv1oo9Ld@M_x zja7oBsIc0@LTOmL;Z8m3Ag6yx48~^dP6Nh7W;S%_VK~tX?OSugMm%}aB4^-UwqGMM z;Q$ubpYbpBqZ&Wvc_-|TK1P8{U1h~;kgk-M%_4;y_Yvj$To@j-PBx6zA=H5QW&6i4 zR+!5!TUD2m3Sf^0hZs{(oo1gMt*cwjfINTBPTp@1xL2{HVfjbn*&ql*2KLM|ke;2S zZY$PIWmUC9$R0%KV$UW^vz~2g|I~9>T4^vlg7(yI9%z;R6^c33;rDvV4Un#X-8fLQ z+kTX{;K1ygP!gk`CGHBQYo9AZJUB0ALkC#BoO(zu8nMTVHy}Cd)E1P0w6x^t&L;+V zoL}| zJm=#K!JGJ06J-Fb5%`6MwH7`ArU4sf1EX%Sue8tEPIrELj0d>z-qV)%=3`~g=3J@{ zCG<>9nICxu`_dn-=WH>>F~cF0+&A$Fhk*%Dg!3xF0bw@t1mX`NS^l2dSwTc|spa_b zIvY+FAYaOKIB^B|uh+FmrqhaqGST#O?)x0{NB1jzDTv}4z=7Z>QkcgmO7ePmbPZdTXW#>P|W2Igm>!~v}4fqu1M#- zwlj5(iHYJILfbHJ-D}WRXczJqhl^ckhc>piU{DT3zFZNn?{TjKkS66{30oTH{VkPJ z50lzoGu_na(2ILMWs2t&YOG4Z<-P33;1)um3*J&++TuiAS1@C+^El2?5v(m%53tBR zy&axAJIZ!UchHp1OiS|ug^Sw59R2K+_GQsH5i^8S{J+@P0CeF(0v5Hax;(OUi(S8R zE>)I}P>U;jCHM6qRP0h#^!7^P5~%h=$e9}0oMJM+=k4qGOaD>vw*kBf9<*a>af+`D zqgx6BFS@<3g$0f?K_1b+5E_N%&NT|U!i|94KwDoL13W>hB23jmaTUgERezn2+A)4EP$9ymo- znl?#%(_8&Is17F5xE|JS*Cmo}^e}$nLq)!!p+hQ{N@`g{PDNDz7g_(|yQGbOCa={_5z~x^nMAG>3{yNB>6Zn-p&c(n zqo^ol#6>C3FXb~XTh{ywSzF>>2jhIefGhspK}I1FsSe*F)L-qZ$n}%;vxel0#FaEY zIv$E90SbcWJ#>$XMaRVM{uD@oh zSU=`&mVb*CyoW_>kSN+pIp3yXc0L_UlBZO~huMNiEWoUp&ho2^oF8C$RZhj4!Mpq?Sux zBVs|Dz+K+uadMx+OiP;Ro?*?)GB9t#4d^OBVCUYz!KSY_!gY3SWF@PZjHSklVr4cB zg>QpUMp3mn)B$GR0?;b{b2jJMJmQXIQ$b~6H6F^ICJiY3d|L?RH~83`!Wgy`=^l^A~hMH2{h|#$}^>o1 zn^^(dscYqxzpu7^6i#pJ$#|RtmP@y|*FcDY$P$zt%vFrjl&9u&wFud4@7$;t*SK~s z^KO@<$Q)ep`nFKK=V-_-b{4E>3w5&9(gC}T^~+Z5$0tn@=XqqPKukfl@N^^Kv`350 z$Wb=Y^NsH=(hWtAdl5GYNb<_2bRe8|_q6OpU@VEx3c8pSVz5nC(M-pKN@@~|L#ww- zE6gINI^T+L(YVB-{r%R2ngNch6gu~aU)1s#Q^OjE`bPAV^sbF{7~DHaqtBYGFd9+r zAa()h1)}*N;s^U~C0ZiKU99xA67JoyNk?MWHr-)3g$+H{U$9QHbR5*hY%t$htqj6V z6si^~&6V1J^6^;1jAg|1vxoJPxHe{S|o$6C8eE|PC;r2Ok@%Cc4-sEX- zg@zWFOn2LgXH(={jkoymkZ5ZUi`VUZ`zj?w>_Ya}7YZ4)S#@!erHnoZ(^<=M@0_gI za7LT;4!6<1n6E0ZJcP(s9^xzntaD;ma>hJ5sWCYUSpPO`h?=QxWRyss94*5t-chPu zio?LX&m7QcQ~pA(a7l!|xe^YHC{A;2lxWV$&gKd$IVMA|O_o|dZa2n6W}jSoF_|S~ zDvLF$QDm1<>2C2TlwI%OCv!~dtAXhgph`Ns+F8NpUygL-w}mDOD<3akfeG)X#KW2y z=P(PTAHF{KTb{vjM5l>j_=3k{ZE1v70y4atkyHyFo`)bm8ta!n**1HNi#^C4H1f<48IVRfvH4holEeq&H;MDg;Laz^jqciPr2c5ALK4V3WSK zfzg2b0rAbb^5pgw{rxm)f_^0DpRJ+MWDRTyYa}Okz}THQFi+TY8yv{lN^eeqfjj+o zTUpcmhH5&T;R5HR+yHMNSS`H^Xo>hcfRHGr5g&Y$Slu{~bYVeT>)#gR1V_95hrg*# z$Oy-n+VXjg(y)l8R{K8=UdkaGT|auQh!PbVjxy{-;F%@AWv$Yaf2k%Io4B)kSsQf| zhM*3;V=I`lCc1$c(1$Z3*A+09%Cc*K+<^;B@Z?ostE3}={Llq6SfPJ$pF2}lX&({^ zb7QhG3gsI7YxHNNqx?KSn0```vX&k%Qv268u}rw3$WjD2XEtF8?yXV>zt!KL2XC`9 zuzv@cQPHKGCG<8@Q|*c>)8;AV;sM}!6~E)hiVm#;XV5j_7x(jaU-ADSvJUoSQvCk^ zAXH{cg=U-^sE>kdS^DxO?flh|(=ZvTM_!Z`5ks9u8A8KRi;VqUcs>TkM}(cM`v$La zI}H^NI_wsj*`*bJ7r(-x1s=KPA>o-$1Se-Hrku{;m44m1d<4&7yVy4NDf4XB&4;}s zIiG%XYV;!Nbp#7{3L-zOhSRWa0=|}_;TYdQ<)XBDb)_fN4lG=Mh&V-j!oHKDY8&a~ z4JY@=_W(u8ol_*~94a^9Yv9#QcDAzlinz`f_XvvL|FsYWO{Eah2M=>tGdT2%$+EP2 zZ3e%;eLR*e6QYF98shc+{d7^f=@~zSTQAQ*pjfgiaVVh1JCER?o&pqRrcJon5u!aU zsO|k}IULw#hoGU>q0U(9IsTdkG3vm0XVdP-SjbNc9(%c_V$}bC_sG7J0F73@-#z&U zN05w9U_?r|&vFD3&Q=N2m9+>|mvmXN&muTsW*D84B7QQF;LpL_DJgJQzxZL1(LKA* zbhq^>NuwZ)(ZPRI3&@ldz#zo{Kc0%0eW!jIjr#NFY7{%;nan4RYLMLl`3=Q@K zV_@Z#wC&*s&R=4b%~@xA zm5WE4Y4X6J0YqLkbOuum@60l}44b!9A{8wYHVCpNRvh`m0lz$}H6=c8Cp_NdLwlpQ z+7o(nz}&pKRk?5nUA(Trgu=WUCgG_K?3f851WY~|+jGC{1A>*9fdeu3@=&KzYs>#Po;~m*;kbGcoULJF6={8PXtO_=6Z`vq$c3a1aYm;uh$||Tn zdkc%-+k6oNF`1of@Hm3e)N9VE1tn@XwQyA`WMRuwHI$YdS66ZbGd%~$$CvodUQs{z zZ`X77+3aG}JSLHBV3U&zFV)#C1}_~Nr{tB+Nn+kJ%DwrrFe=V{3%iX}T4A}AV|plm z1Z_w3YjX?^fjux(H4NmN>N-N#8kUk=tpKJoXKRXOPIOzI)LvL`FbJb9sHK4(>5X|A zX7){0Cqcj!jXyg?3R@iLLo?DqkrHbHa4A}1iUKtT`UcD2glxZ6rJE&}D=old#0xe1 zgufSCzbTIKez5Q~)oU7Pr`c`R=-Y~!w8KOu6eB-^TS+7S8 zZ+fLxfJ&jZ6n7FB?iNfx>JOdsUfG!)yqbrt1uy2>F&o^y-ky-p=g0e69`GDln2Qlk zDjK6Kbx5%3(|ZAOt3_!?3DBpFbT_QI$eb2<>F1;(4bgY}&35z@UPiBe-Ns70$YNN7 z^yh1lPJd!=a1#bLYXqf|%(et*_<$o8<2fCX1uF#RDSkL;#4%o;*JBJnIP7JX)*LK> z(WgsWdQ}|~f%_1};d;+USfSrO0CZA!3iX&)p7qX(IYr$M{Sim-fIqFJ6I!5%qI zawfzSci}=Q_9zHi7=x0DRoy|HDPot9*mtRediVDMu4*e^Y5=^(P@@PG9;9R39&R(A zt1cf7>7Z~8^`akD3C#d634BhS`JiON>|@wDd{sW&k=y?~`a$!x^gJ;O9EMX8(_-35 z_LT2z;zM&oX`)m+QJ}nLonmC#1ABqAeR0^u)3Q#5Ys~-8j^n?VE>BFXb^eWxE-N$m z3b?cE8L&c_n8AOwEV=I7_-D#39NhcMW8ZnG{$K2fF5eExT%xZ~g$b=-P zqH6HvB#sgx==e@o;sXCjh8pQ&vqdcqXnLr}q;f$Z@fsz1B#z?H09&Hy{L$Rs!^pTAVJSm+!~^X+NMK>J|0*4F(ir zs)WwXPGe?F3v(u4xBE3OlS&HK!Qi(z2J2?Vvd6ISJ{kI#S^zmf#=qL8_i!4Oipa`v z!Qa_Zg4m?ic^fY2viF))h39jw<03CCe@-FFfbZby&+5WYWSv z=5s!7UiK4TKy=`MJ)vM|LaP!r1_G5=3krM%ix5im+A?>~-7(Su5tXxc@{hoCj427lRr8<=m zw!V!+_n}pQ>&*q;-V#p{4-j)(^7PT}}ZtTL4=7%!2`>AyQMAvPgb1op~q+9^R)X4_S2XRk(Ji2yHi{zg^tSiCW2-aq?6PG{{)kmE{OlO%2 zulTJW_4?2faPG8x__mErOc6ew*^Lk;`b33_W*5I-$dZl=J;~8m%A#rD&zM0Koz1BR zU>fcba%9MfP@?l^bGI3@*z};w6XO8qmbc=Sw0M@VrGNr7;ow*of7b%SiQrjAC$pI0 zj4_)t{5|1a&xUyq=jNi9qN>T0#nijfO2eO-yOpvcnV<}klvq!8#f^V>)9?zCf(i!?ag=?+4yJS1HjgX0aF>2`4@o{WD@I9?tZq>1!v(W1nv z9g$oCHL#;@nqF5iU%Rxdi-$XD4Bw?&GPL!UVA3p&$ZQ7_A4Cc)F>#lYhAzWZr>BmX zX8W}dQQ^zAEC=$NTLMWwn$b7Cfb_%te96<0X97zElIS@MYw-ujzuhVo)~i^E=D4+- z*g=Y=hRZEoV50yGzX<~1y-yh}(Baw(GrDwN()6LzsijKP?v<7?wlEt#W2wQF=LQ2U` za{L4x*tQvSPImY+uHkBRQ0KZvwco|ifD4XT=K-+)%-J`Y{bt$T=O{RqNv9^xn!aSN zt6=OG1N=-+lv{KAbmTAXvM=YVf4?t;6+A{eW?YK@)%jx*%HvQTYo~Y5usVA%N-ZVC z;86pojPAw!N$$&**Uv(i-vW`YKdBFTBU0=mk+!d!S~PIIUB~Ips&PyFK-VwmR#7Ig z?ugfm%>^#$>|`jI#Zug@4tCxKlXRHLdf7~b%YQbT%;z<}Gv6U7b>^7<{ zM^FMsSOwp&>*VQX;ExzE@NKS9Un}KuSPkxCi>V~k-eMa?eOs|AFSuefLBoczoqyJY)NC4cAhl zGo{ps6HGPq=U{()EFG{<<5SJG&h&a3f+mN7?XTZH>p zYdpt1(Zj#cAodQAh+&~=Ayu_?pKItJLmU3I7@8ENw_qiWG$$t9(5!bl(gs$4Kr_xq zsiblI55%@FPJ5a&Pi?a;+F8Y<=wdL(1r)>uIO%q7y~Aw*mv&IP4$5tz1>Xh+!P2+#VmP7!!NANg}{>s98fo8oH@H9DJ`Z8>h0eH{F&*&Xf zz_7WB<%Z7i@A7Ekzh%w7NJ-#A5EUV7T*WAK%$NFcq|LV48xGjUaQSL#X}@r))y;6O zkXpC6bWb|utb|_&HC#!8QLnvT^#T{#@lzrYa+`8+FZCW=E^aohac+i8<{WNPUpu$0PSfvbL`yVlkdz-M@B^P^9c=EY>OtpD#Pzg) zN^j%0r=QiF#T8tpWf`va+k{GhZu#Nj0C{L@d#r%gXLaLF$0O9S?Q{V`o`l}|-*Mv< zJc4uXK66N!?(4K9;|=yl!WINsI0~(ps6gfiGmn0am}VI{%0QaTF)~}gS=Xm^Ck@{k`M2@?L)6Y`Ap%=t?Ub>vW8b4_Th?-gk*T^B?8Z^OCQq??u9kCZcsAW>Bd z8|{O(D40RbR(q6v&WoiDul}i~Q#8fo$}ArK_QB~{8(MqZ4RIaTen_hDjth<{$5{1N z#OI}nr;F}MFwDAb2G+Oys%m++87*@Sx*qs!B_FxA-TR6akI`n2mP`Ox(B@6(xfEI& zG+Ix{#9P4)Jqm$j?$z-zOYw>vSF7-UX;Em;cL=*<-|bBhg)Hx{2ae(^qTk|GsiYoR zL+AM5ZwaPq5;w;eG>ZJxS+FpTe)|D$kf%Y?_w~6(PxRSIjU|YY^Os}$v!bh9MCXq= z#oMjCx{}Ru8*@K5^qYr@`-m+j4_{BT6%s43AO2gil z&KJNsQ`hLW`waY3kpw+S%2bu#j%>0K*BitZqp2iR-FZHK#Bp0W)Mvc<7rVX)>SgV7|AJtZXss?9m$ zZ)9}&7=c&;eCp@^1aJ&0#z1!{c%h$U^x@Q$_J@F1n7`-m<}3>oA&HQvFkTNhq=q%^ zAC=tFfc#7r;G27>{ZQiDeeRL)>$@H(oDbM< zO93_?eDAj{Ex2nmf$SJ zNE<>GAOW_i6J22(N$2I&Eoog39fr~#m zEOL`mNH1p%shzO6JqRfhJ|R1$%)h=nb?9_IUfKOK$9LYfPx&syCJ*P=f@@H(BvVH~XJshzs*oiEcY{zm-(iO^ByURWVyrObS&W90| zdK4N9ci$EYS7p{%5Z*@%RdKxZsB~&6P4lMe*+Wztf`HQcya2fK9p%QS zFiYZlrOj#qUnp4(SqB!td}B}7E=fQ&T%ncA78Uk#=9=r5tOBq|g~6yLo@>0sR>i-ZK~~@k>BZQFAWpnqIKf*fJn~Oj-BL9Tu!KMI%Q*95 zE?Dy@BDdNWLtTde+eFZOo%az&SiKsJLu)f9eoxJOoU_Zb1r)ds$SG-z4Fpj@$haZ| z0QY~psQzCY)sbv)%I#&8R8yt%+-!oTM&4hfZE)%V_jJ8p&no2wmCg9D;FBu2?6T%1 zJWwA601nctJU#_$-H$x4Euy1r$;|4OiK3rGa#6Y32u7?<}kxL zMic=NgKrZ}!q`h-^-bYIq8dd4CgSttwSDW_a#VRDlp1_I3#cY9x2#X(VJ;4f2z9;O z-%qn!i#(RD$A8$19xiOAu$yn5{VR4Mu>aev#vYw-rZLub14UNmY=8`sBM~rV7&D~W zE9}ejPV!C)+E`qMr0DaW|2Vq7*04r;!^`hCJB@-(vk0%V=VEOk zXWa8bqPnt{#4x(kcXkQOf?e2&rlm}&8i!5Zzkd~Mrb;I58)i~ub&^!ehXvQt2NpcK z0kg(ipNr3|@P6E=#v?(#I1m>KZAa`Z! zUyv7y(j(s#Ua9vKv5h>U2rv z8_1qEx2kW&;2$eh9?>~>({YI%$BLqyM1B=w6%uk7GP^6%BR@`-4&K(?&Xkt8C^&8W z2n7kp*ib@OF)OvXOv8GW!VGZ|f|VsyKo|*gnoJeGFG}P=;cZUZ>c#c4SCxHv9^l?p zm$VcSm@kxmBTc5aQ@{a1XTPnSZ=pqa(v??|d`HGWp(i&l%8y@_0>7I$(ozM&+z z9W^=`vxIKD@C`Z-!3XabDMr~pAFW%4wJ2XbA-4o{*F{u;;m^-Q(Ka1*p#m++0qG^6xsg;LMVv49f0%zY-DaGt;(>5U=!Y-MtPX~46dlQy1q3Kwjcnvz z>rMQtaoNSr^p7J#itR@*lGX#A9!PDY+f@IMfvXf2!HRn`eRWCPg9&QnYg&*@j+p1M zz!(}+s`A0?i1m$@0buq_jUus!HS(vHV5ZbH$T?EU8+zZeE2~eT=aJigHcQNkO~6tU zT@G1OyZJJy(GCIL(-CCV4)On?tUrWWkV2K}RZo<=H9AJBP4oZVGj$sRxhqBO!?n(7 zO@mi(X&0Ow?)S{{!0e=n=79 zt_(EI<%rQ_62BL93_SKy%L~0|T}KL%>$;0{3iFa^-O>v))Y8)2EXnzZcrC~bCFW(?RU-;0}{zUmiC}UPQ z7k5Xjsc@2`2?YAI2Yuu8DU0x~-aSslleFu2h+G5CywK zZ71M^3g?3Er-6@1r|t-|0bLun=Uhc(c73N}<4U~6Hnc}r((40~REExEN&85{JbfL# zmcm?^-xPM)QqmT3MwE;&VL5J5TUGFlL@;*iG;bvuI82LDdE0hPXU~%OyR}0nLAvFq ztZ5(j&OfFIlub43Voxf(T&p)B$w0RGzLI9lyCUv_a3j&PDnq*D`hJK-GUJAlR0&$8 z{YMKiN4MD1Cp`-mo`K=BTq^Op_B=FJK<&fk`$_eUVhoI5*BuN1%A3T8@vrVDRvoKu z{scwDnk(@MAl)TGBZ^H%EqWzIUxXAV6jN)?s+!E~LZYoNBj2X2z(xqw>5$}#D+zZY z2+KNtZ6rCW5NsH3DM^^NLebAP3`cZ0s{kBs&iIQNMOw%Od;3WgVxgV;-L7`}E@9%i7j@APpq_VLoXSVpaf|FMfp#MgqNe6H_2XoIZai_$ zQ(EO8acHJlqz>QK4AR9kP-0U*W0l6^@1OcjPA>^=p~vOj$MWBRuw^@n0#zaETf<@` zNDUZUrn^8%It-j#f)@X-fbwZJZO>Zy_5bZDMB6jJXy;9p&i?PYPZy9(4PXM{87^(wtiut~v4A z6Zy8Ye%n}2c?KVpFo5)(%Ls(*l-c-rtr5KH4xA;0>ZSXx*5w(_0XFU3^|8t7N+k-g zz_EKn?1pNthwe%YmE6^US07MzcoU!2g@-Z?-pp?Z82*7_VWQv?9`ZOl-}hXch6P1^ z(_q&eGj>Ly*9Ugc3&ButlbsMs?yIzd(Yb7+;o4^(4k0^pcp99kV#P|Bu#Aulakc}s z#hR)&R+~cU+X=ZGd_erbxIdvD6&$0j$fPfjZg{ZnA&)Ev_Fz6R#`msB@O*bi4@(AA zfVzhl8ax`lAW9E^6Xml2R{RZ3r?Kxmsz;_s=b$N z9d8|YjBp=EUshsksTDa4tbz{@F3_n-T^S!*Xcb_!=K8JE5fK=fDK1($<+l8@MkBOT^k(RTCU zF%+E*xK9@J-tWPg#eTn_M*~+&1b?emzwqaW?_vc)DX1*~! zet6+jErA_$TkAY1HW1jKx1NVNBmcBjQ=B3U1~!{OnFh5oOhvo1=kuk{&V&>8#5?s) z>m%)ThpU)-3)-f-PGTUAQ0I_`#OwAoL5O;X+0#rGLAy%Bsx+W ze9A=LkGpT$C^)p*0XA|SKPess?VSznQ56SxbclSslr2!gtIwKyaV*b!S5WNP3n@Qn+7yqrm4=W-2GiZk0?z9?|2Xn$<4v}3uXSqt^F&)sBq*-yM~2j8Bu{s9Acv|gw9;H z@)J$82ia&GiPwO>_5<1QT*C5vZ@ALAx+kw{^%J$tN*2auF=@YmXy8{56!8Xt0)s*~ z&U-i_*ouA}I>7z2#{4aPtFIm?1e{E=M>reBz%xMn2Tga)AC0Qx5Sh!CB~!p>tb$1B z0th1sYZMqnZuT3G{h84JpN2_r!#*>vG#r$!Wuq-*5w`*w?NDLOV}-R?DsFO|!#N5% z9EJXdMIG~B`2u%zi!3#0!g$qy8o-b^$74~CB=iNAISUva_~L0$04TO>9)X{u$SKEw zrpV%x(8>C@{$&6(hX2u{_ziKw9{ZKFgdu_yIN+2;M^A*)n~JrUIDbMK4hPa%p#{1? z5bv#}Nj{D+O6#7=8DgXM+r`*pL>)xvHmv@}^yWPFU=0(7 zAnD!;BfH4ADt|y7_-IRAsN+ zgKXVkQ2H+dATCsZ2rsq4u|?l9VVIc7hx3}ZEnm|f2wNq|dXFrNwEz5Vf9Yxw*q|bt zR|j6YmQS64xf$>iSxv|z*3TG}@bhsPcUT}9TM;q=djb)!HT3>Y{J3utkY1!g}K?o;@CYP)mS#xjDf(^(mk&(vuh$s%>VwxjmyWOh+mo`PmADLuajRKzo7lzamFMH*TEOx%iZE zWBHf==H~29T%LtV!U~+P!u}qvRBvM1BmM9>Z7b%I{_{*HBeyrc;WnlZSEt!_M-wNJ z2NTbK1OjT>e71p1LA#ia1MW|1tg7HGE1SSt6!3M`mn(z92XJR4Xdil)eM28OC(P3l z&@^d)GnY^V8AKW=HK0DNCH9^!iDLQk;?NP#hco$&3o5XRTMP_t?I_PCaA*%ju9`LJ zpb)^bYTzREU>AQZBbV=JYO>%9`8x`sN*Ar^7t_QRVGn`4E8BtbaeObKKf@HWFRJ0J zlb*Dl9(xt}rnO;)RC4Ox49n+^j2Z;HKO{jObD^Zi9u)lUTR8*jO~h7JD)Oex{-)$j z=q+@}h>(J5wxr8mc*L2x)@*Q?C9Vy3WL#r^TctYPyMIjQZvBv?m)Yn(Hb`%I`@Nks zVBIL~0AO-PPqV6;Dh-sC?xUp!SMrsIDQ-_W5Us z@Eo@$Gfs0Z0Rh24lw+qfbqEZR7j|wXMINbAio zudRpNU2Kjxx^>++#}?gZ|3i@?M~S)2FWv`6Abn|WrN?EB!nsEUjBq%1>R}MyAYfGK zYLJ3Cj;wgv-^S99q!H^;hOqV$oFx`zDXqW)hx;4Z>&`G?G*B$Z4ZqKz!&>-0~t%||$-g3I!5BSHjCvzqQ0 z{IQV2A#OZ<!AEAmUZH)mg!^sb8N-f4uFOfMrVuhAMN|s+UZnst}6W;d`z6 zz0h?}6|ptI_Il8#^pC3S%>{$$AJs&^H^3Uxi@cI(@`y8FG0zV~wC)6wvf@OkTYOH# z6wi^yrD;2t%ZcmrtOk;}5zsCgN;a7d{Beh>~_n|=)or5_?@`7aA zBwq@HIn9Q7MDB*Ao=J>WxNF7(;U84ER)Ai#lMw7?Hu;6iYK8wH6jY=-%BJ??1nD3~ z1Jk=eYKcE!CME`=yttc1zcUmN3yOZ)x^y(rS;~Y4V#`1;QG7kd?C8g+jRA_r+mc4^ zo6en*_Aw9f3Ueglh!P5hd0(tFw^RcZp9bS0O6suve7J0MjgVVom_C{rIwE-9>zbtfZuHdh zE-H%Rw}kX>#;^P96&FQre97BPyd@-?cTL-4Dh(UJBDGJ?<_wA?aiknd)Nsv?p`OQ# z!U4eys*{_Yn+XRsM0On)Rt)3l(n)|7D$Q=3daJx89NXzwx8K5j!QF0<#A(wO;8g)~ zKCc^8xbG`u!BC&&W<0Un0|kA|OexnnzEx}=ft)X5z^qmg5{R{q_>G=h$d^FRE!~_oiW+z z>Wwjr<)Vvf1oW4aCrZX{+4jpc7P4UqK470Q30f|K^A>+#1+AR^}qrA?k^7cTgv`kH7x|caVMH^-vHx@i(VGO^fbb zn$H>}^Kh@Z8nSlc*=t{SWxF@CQ(!mZ)D|MA5W)w8tMo92H50^2lO#@W|A7#ET%s+9 zB~P=Q0bQsyZ#AS&b&|f)-=Ym}g+1TcRq!+h zUAQ=c{ivTIE+1&9XdPUDQo>-IjabP)bvPri1ieQuO#jf|Xc1KJs-3db)g+HNtza7J*+N#oBqs`*#P@^KZWN7T4y=FT&9 zS%CK6de14OE$?(ujz&ZZlK+x!9_X8%Ne%ijn~6j2(7o#CCvs2#G9h{nz!W(;nnqpu z`N5I`bD6gMcf%4Z%z^7bTt9e10AKPe^1CsXJ`}}RgeV{K3pI^z-nPvedNAm@98q)q zBlb&!=3H4l})y#YU0^2Cy55ChlY=X7$MTI~(1o}Py1k+$iv!AO^;;vP}!2ocY z;H&*GTf>=zEkM(CK2$bK?G(-@3cLJhI>icXx|bcAfv&!n#Pr+~;C=ZX z1siA9f!gbqow$0`h}?BGquSDYJ2P|!B=g(Ouc20~3hj#IFy2#N{rg2E$$dqfWEJvu z16BOF1TKP&OyPr1nvH1dq!s@Wz^;;P0aA`h&&Peug^URsT+sqtkq_4O4#yvMN7KrZD|Tefw2Fp|E82 z+q29z4@%ugF>_K8^P7>N2uuC-ZQ#wn!9KyXd*ZLfpgkfce@sj&adAVTWPLUis6MaAtV4iHJpw;Q{R$C{?L>f%` z&@Z)4xgxZr&XvEBMyamv?;Ox-OZLY#ocXr^Ega20`wIvTcgaJ9*Ub5<^`x>bLuPCm zj;2bEu%eU!BLk2-d#A@;P)>0f*yb3<(bbs6oO5Y3ZcuqGo$*?>rZl<0MT8>s0sKK- zKp5P^3iqZKq>P$LWOQ{EpV*S5qh~srYn&?;L$%Y_il7LvS{EUC9m^_vkJQm_+~GLpMZ>%KpwQ!kXy6ev)D^BI(|%~Xv6rqZzls+)?8cqh z36XUH?0>TdV$^9_29ivkm>UGh$TK2#DY>W57Ubg@A&tpsxiC%6UOVP0+;{XdQvOmZ z#olJ+#SO3o%~Pn-o;wn`J7SHVMwY$Vy_oxKyhDoFRY5ydih}m&fO?AH>w%3|U7#%H zYN7+ANmWM+Eu*dduhi}tYGw1f;pl9oHxT*OBb*43hjwfJ4MIp`SPx5-Z`cd}RWB8n zcF!$&feH|jG1}z%N=ZoN`q6pLM*|N1na47NdA{)D$Ibm#1WcVH)V;=!QcZ5VD^&02Ow6mrqF)TZ~xQ$Bqu; zvt@qdfw9Bnxp{ob5|w$aU9o}h&g+=!WKEFXuYDxUZS}-II>~YZo(l%eY?*q0jFgA6 z--7jb$BJW(gmNUs&v0&=$6L*6OVut+;mLnb8YtCBzjCWRCN;~C{c`JBgK*3fg55#< z95j_0c-J;Uqh>;kO3@wPE+swI;fPcvKmG^pQ<~z-%BnAm>Dw*G+&ARN54<91>w|)0 zQP3~u8oi-YZ&y2|Y;nPK65 zrm6V*#tEhqX>A**uOLQdK8?(oO9q>;CPx81Crf=ZxDv9lduWbqA%&bejbVC#NtBuU zAX&a-!ir>LlS|IllEbOCVp$`@>^( zc^aaj@7JMVcL8gh9zQ55$0ezqmPx?HFJ#Bjcx6UaR-Ebok)-Mh11NRna=Rqq!ttHa z1@vQLqhq7uz4~#K7IDaTRU4~gi?p3)VA|oP7l^$U z${sjmzyP#-taGW6k{Pk2%M{RT)Qq9N8UQvI^7sl<$mZneq z7K|BaSJfgdKbNcm$r$fH|DU#Xjy%EBwZ$Fv>dw*}9hqZ40GdVXd5X_t8Z$QwO=j8E z>nm;&kg@DVkAlrI;O7o@ujRmU*VckNc?>f*S0DKV^E4*?@ca-imBI?! z+Qp^JepdDEieD1rH*ao(t#N4e04ycfBrC>&hynr-*KlH2V@yKvJLxjS9<|rC?eIJJ z0|FkzZ>gEaS4WUI(QXLvktB_)D9M0G?`N0>Hk9voPzQ{S)E~Uy?n_j*grGb}Wr|*F ziqOg$-bKYo0q^fSZ^^65upz2fYc~j2H9*O7TG+WA@lB|UUx;K;1A!HdJ@#}nz$aSO zy%B=di}uqmAYs8!tz-lINi<0P<5c7%8tx4KyqZCj!m0l=*k!|N=8gg275EpeT!uG{ z{6lzfg-Ank=1FU;THH(N*6LXr$GrRtDWBZU%5jxY zTI-4>o^eMXDH_rz=R>mT+&(3f5UUa1wYGTBI&N^X`$%ghEqxt#2B}w3F^$@spOfC` zna#lW%n z#PGavY6U)X`8etlf-}uOQZS!N=_NqOPWQIv{QAT!lM(n!E2Z2{>BLl6_T`vEt)3T1 zE$|z77ik8cOvgcQHp((j&h?mYUhx-v!{R=ayRl*7B8ZB4@}j^D#1Y)~oH;52unXc1 zng1};kv+eGzE#cFxD?t-Rb&tEwOq#jA^7`6D1|)^0{*YF$mXvfoDAm1HB18;Ls;Qe zU`7dHqM8a?yyTDF6n8#(6IY721Ak8N+<(Z#b<&#R7H**USM2pOpfXq`wlUvLYJS=) zKkCuK>){Kx)shd>l5GWD)*~;0|Fa`{j?$%T1t6R^y}-^NpMB*N83t!q0y>Xs(L$wa z!MOT$(-KEl6EOr)OR4w#b-09^+fx?Of_Oc8^cn2gHKCT=6m{pV!?K=X&1g;G1Q1SR zevIF_5v=a*A3LYro-`*}lHQW> z028`5f`Nlqo1n9lYT=)Drm_F|9TU{KI%04ldfoiQ4ZXES8FdUF(@>{3@I-uZ2^(vR z{*U9nQyl@UEcf|OK?19jty>DlHN#I86@OX5UMM?K6Q{&pOhMf|8~l-E7majTFIcG| z;MBk-Sc z>CQ|4Xs|rEhC=L8wt1k95|o0KGJPFVkP|f4g}d|^0S5O5o(3FwN*tjJkjN?~%HzH2 z(wXx^z3Pq`Qkif|ExcCAuIo#J#+mStp*hw9#8}6=mogq&Q9;${Y3%Q#^b~4lb$PUs zn9^|flfYGLb}5!|21YATs#Zyjh+`!Q!s=fe)RhD}GWaHf?U!2Z0;oHU_1|{@nqaNt zU0(vDxvd}|PI7C**d%lqzkDR$KukZMe%!8pzstqHE6*IDo%M^dJhHUMZvZO}mitL4 zf=ru1<{*)%+Kk+SGX%xU>qQQz$B-K57y^W}<8#LQCw@c9cIHbAAV<}xdurWo`a-w~}|+Ys`ch0fR7Z~~=_74{n?L*8An^+|5CpOFknp(19k zzPrAj5twSp*GD0gQW1-g_bx5H+K+(8=Oiul1Q>%H{Ys8>3it9q4=_}Jg_e$Z*-$n_ z9d}LRG0RE>WCEbsM1z z)6J|xU4h#WRr9_8j~TInc3oEtwtse}(rHF%-Pa@a% z+}W$nLD%SE0S5{*b3kes%^)IVd`s}G9ZJGV5Z>Ls12^K99Lsqdsx*}?VC366f_2s8 z`%oYF=UEM#xSL8N-%S_Zxn|pa66yF-5xu&LXrTjsU_XX|$J*&FZn1mzHlb~)F+6uL zcE#2jDf8P`P3X*nAZovSCU_peqPx_-C_8l`1a6>Omiq$OaQDB#>Y+A!Db~1w5YdW^ z>QRzFZyWqLd+m$U%*ghHv7vzc{;KURUT=BEicHIQP#WW1CA>K_cqXf8uH)~(uzH^fD6D3CVKdr>tW7vO0 z#`iduAf`82+tfESQ?ePU`%`1&q7t%m8gH1g^5@B5QdMHtXTATInM$D)Q-i9RS zk7!%c<+0BZKC=2Niy3KG?n?oXWZep!?yL9(K;W;6a0}X**r#%x3>%Q<%7u)re>4gC ztF9SXqJ_Bk^`)JKUE`k(afC(v-B3Cm>^r3BzDR((mU@+4<#BaUGXFyk;NAWZjs5r# z_l&>g-w>M1tG1y&wh9Z;nzOSJ*P9VO26Y4QfSS{x@?Kc@>(h|uYRJLeby#>q z0m@AI-TW-&9c*g@L+ctBzmbxftaP7jc|-2W7c)ya8z7!{5fR0!*oK{J#ia{kGHDTa zXpOnV-=_|}a%^+@e8R2QORQ&!@9V73^qWzN5m_X4sc@q|h7lJfVq}O7Nf*d{=>mDw zL#II456q=M9w#DZhCqjj>QINFO`{z!vGvEDXOV-h_J?2Lda1O^8WCC@R}I5!xG@;0lXh{V2%qQq_ zquSvizu-kyy;CO6z!AY~sioO~KE zsiVoXy6IxsMy=h4f@%U%C7J|2;*5#3A-D`74fQ%+aZl%TF#CjH2@TV_2b10**fV@3 zPqS?z-k!Jf2hZrck7rA{oql=@+PdbPUC3-9M+3qzWSFwv@;P_cuJnnhBIoHjIdE+M zM|iGe#`J*@ziQl|a@O?mlspuM z`UIB>_J?@#MpQKStO`U!5?^G8XAD{skxmM%rb0nXBN}>VSNc)nZh~k2lR2pg9f6&jtD9=VKbnO8Omi-Pz>h4UjWNwCs}~xo-(CNTwee( zk7XoLc3aI3T$13jqB(S1i^Ang>_}9XP=N>Q)P|-67}~Ej>_!9BCD2oAFHC9vJM^@Z zCGXD{Jdo+fB=Cp;@vD=XQ{~basQ5f<9A-*zI%Yif@C`ZiidPdwg;(gh9u_@^P*P7Q z^qAbU1mY@hWcWZoAz4SbSn+*+MHS=Ty=FiV3=7&w^%yT{#L0&Ccu{fTS?1Y<8wr5` zQ$Vc03Sz<5oU3V{$E9Gx2H$<>W$vh^?6>oS{G-5oWjbokJ{i2+Da>?mj|7BAjvWXe z#}a_@bA_mX+waK{OJC07f2K`WN<@w2J)-)k#AT&#f@NsZ;tmZe39=$JFwz=R8`h;? znH<3g8d(go!uIw^i;Yu(Q(_|>uZ2e;S!UksGP4h?C&}`?yHlT}Kyf3l! zk|ye|A>N=TW=#Z|y+O6+Q~N^pq!!JpG|zhTVrkCY{!k#CIbDOM6jrxO zK0hpTW1o82$wx9g`@v}X5$`SRB3vOHDS2%%noXU9Vh+r8QnE5ymz5Y~9g-=JB5h&u zlkLdl*TI1zVI=-C_m$O7BM<3Ihv_o4M}{-T%}ROlH$QiXvP~7A-ungX%BgZ8E#7$p z9bNvkjv}*YITJ1p?B0jc1}_Z!^S)yBD4fZ@bw5{Pos-r5<`j;6ep!3!uNC%A_*Pt} zXinEYZC`v1@VRtx9(k;6DZBH-Xa~?ZR8{F6-c_Ld>O8r&2%q=1G7Nao!!}Ar#{v(& zxBL~*7>lU#y{5Oxrr@yqlPR28w{go)rtcS+2OvkOwQqzfe>5q^Hw>8)-RGLe4+)Y> znP&mBI@*+7-@DHlK0I+Bk9aT@KoD|7Q(AUXT`B2D_h5{4~sMTIb$z<>nu#(YT*DejS@yo?R*T> zq!vK#4Zyi$r~O8$^twWr<=)^*7W~%`}cI#Qo|= zs{y6!X?kKR2`oJ}v0&fL@1K+>3;8!qBr0E2)FAX>O*f=%vwa9X=_Bqwmcspc7`EH}p%7ffH5sVL}V(YbLenVarRb{Fl z?V{>{WWUe_1oOjc5lm-o>JlWBKh9uV}jW zt@JIHQ(Ou;1Zw8W%o`7jdQ3vmi+q8tvhzN*=qa(O_)5`INvqgDf5_nC1!3)J0ZCYP z29q9%BK{NYl!-(+T`?ly9^PRG)l1rP?=1Ipwe|wZ8qxPI&PM4iSKJw$$Z?ZR0xo{? zyvUVx;*w+qzNfjhk*EFus9qd(3j+v^AWBm^7Ayq!Q!O@;nvT1a1ae#Mta6IFZ0+zmF1oa0_9ujQBzQX( zNV!&DH|j*ze7D-$xN4|^h8r5?(7xtuXO4Si!Qfz~mD9dMXxm0WhOlA@+k!?>3qZ8l zSjUPP#aVA>o@S)Vy4IL93Ps&NbX1zR2W0zw5*d=d90_lB)1s+jIGt+1Cs@fg(jpg$ zZgUGT42!3E$RX*vl@7bmjp^ypom%zrNss8%RY~xKkT5SG)vE3_d;y+$%l$;*nmWee z6fUt0b9pD0I4;@qq^>_FwJq9>5u?#fpr+Z(B4&Q<;BVu{%E>rW%Ntb^9ddnbuU;+e zAi;q3NqRm7$IKg95}GvY-y%MSkXpqPgW~iZE2W$8k4mx{D&VL8L+x1Ze=-zNQ{vEN zZ1o69s&sDLN`(;(xo{S?kcP$nXWiUQWPX?&Yw|woBtPtB{ z^0XDv5gp$}elXHPP7qbQUO;TiD0vd+b z^?UHCCmNLY=>U{`f=B z*IYxlr~bI|aNVExk3GfPUu())bA<&@Y|2ofFsnO|V(E}ZG#!zA59W$D24M-1BcDih zEl+rd&=$2p0dOrI1M29`SjgQ_kRqlCZO )T$*d;8cIFyd=dDgV&I``g?G`>IN`( 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%0AlFY4VYKo}Y4r5hDm~Q#N)jGTu|@fo zyQOyY{0ep>lqfPREJE_)V&|j>pSsF8Zz@fLX~>i1qEc7{^*Y;jvwJ6I@5BM$H|#qKnP54N+ckIr}IK zu>FdWkdp5&AQ_=3uJ?RpOIfY)56y;HUFOcX=9ogzKUc~w4MCrDsm1?VtmS3s9yy8E zZzh!kamyd$?Sj;;0yQ2ZWrO3OhFhK$G)K%gjwF#m^p5M8JaT)k@*!zW-9f8FP9LaoXaY4w2mzl9C!Z&!rWw37{ z`q+bbe!6LxJvzxW1Cr9qC3OTJ!o5A1;WIJtr1W*x8 z3dhrm#qA6ZfWIy&bTUvp?KP}U0kL{}AB=n`S{CC=QK8lL{2R4xEHn*q{lOVmnzc~2 zgPwedJtP~IB{kCp73^YBuavt5Jw?L0O3JYdPbX6x@AoD8tn#{R3!+}jr@3j9yADZH z@SFj~N%cg7p+XG~m`8mUy_>t7ul6O4E&Q5nkY>e}>dnIc&}qGEM(ayAu8p(_xS0@d zJDY(m#d@f>&7;DRe)lveM<-}|Ez{B(b;-0U2u8w=;0WO0UgiX0{7U~($?tnM8K-H= zq+`b@3HE!9O*F-O4RPQq^h5fJLHee8CFlXh3KrLT4ztIK%`uANmuc9=pfIIawIh5f zs}#J$3Qq3Mg#BXag~kcB?esVBwi{23Z_0rHF^!RvCwgY1%x^0FwupYcx>r8nIP=ue zg+AD|>(C%LYTTG#i1|YGr@({#nL|kM`1}8XnVv~qZZ5y_0&UrjOslGQ1lR0#Pr-i+ zzEFI{_LNGB&cDPi52FAJ^StU!(C}RTos-%Fu;)9h(aGO_5j7d`_OmToZV>kbuT;i~ zAIlx0Lkjb^T!;vE5yHH1N*2?p*F^gkxlJAQ`G z%PZ6!EH`P$tTUXswFRkt)9~|}fPSw@70R9j=!>moZo#{Q?-DA)icZlaeW;Nxgy(1Z z@@@pE@pJ$Bwh#J7)yuQc%H9G8{CWWAnZLm~qzeh6d6an%#-SR}-tEK@;4jY1Y|9s4 zFIs$Xf~#O=a>27_)K{oa%<% zZ%kMtZ}~b$F6wtxDt_T7!F0J)gPmnQQD6UaR=$VqxfA8<;8It;D??BF$_{^HRxa6` z--6d2(g*LH)_o>1tb!9hp;{$pLzB!+U9L1+AYb9lYu^s=VwYrpA`@_SqO{R8Kb1WY zK{DexzLU{ikMk*xqIO0cvC@6(O-$z~&kF0enu(!$cw+VSIe7W>5n=+g0zcx9`{ zFOLjJ3#phaZVf@xhKS1FnpJ4!6Cj49u$v5P;^l6&PVfgK5m0GD>uR@1fTuz3%yI{D zq(cxz?=4xzbwDj)0jp8N&zJ*K_ldnJ!l;~NkE}#0AB1+KZKGi_y8s^=rkO9BwX`}- z4-=MOACP; zhVfLR7^-L&7YJnJGmpuNG=E{KM$n$+Dgy~JZw7UxovD6_^lGEQI!sakwp2Z?H%^KS zKu#1{Ya)tSsrDJ(k>CzBkB!)B3#rSnB7U}8Aa!)pF^_0_A|EI=XXp^dgZHdLISWvo zy3?J<;iaD7^-9ua6VoOa&?bY?uJCvVzp9w{j(Q`hejQ?w zfa#7^)VRu9eKT^aQeYP<-jLssmHdxBl`^sfd9Gai&-ffrD)&{|3%&mH-K!mMP)CpW zR_0px-I(+-4(($-byVx*xUH4JWDBaGtGwx3`UoWnOF`H9xs57O(~AC<<;oNDQvx?Y zu8Ckvx?y8IIFFlr%9~Vfp7|tB+FLJ+pGm#P*O{lpCfy&?c~Esk@R~Si-mI?;s#inBYg|xmg-LPW539(m5)2U_C_VMJ2dA;ltbG!6#G(l%eQ{8 zlY=W7aFHQ!!OB7(v#mN!M~G3ssGXXKEYI+Ju}vKHxw=g=aazQ+wJp04OgME`5*(|* zAFI94;Ddg^t1Fo5Tlx)?zOCM zpHcDKguV2alpF(+l zz*GVq`XW|OA`KlFN!8(x58ri)$7$i`DWj(AI*&zH;Qi6+tnty~%Mh^RnKcEk(#0ON zM<@)G7r*~-goKz4pz`lSmCumV3m6kuJvk#rY{G>n7mM@NBsL>m)rvW}UU5byL>Tb!48 zLy)EAbj6)H{MU0eaS93gy_}RG;5@1H=eX*w!L|~AB$F1}B^*IG#iNd`u3Jz+E%QYv z-aQ5+Oi-Y=Yq4`uxB3v&);!ZQ5qOnl5L9i4JTv8xl+(+AwFaih$%H`Z6&8niV_%Hr zOl#qIF)>y_N&AOMLFDa{t(4x&1@MICxGSZaoI`+DvVw6<79+&YQIx`<7|@iV`{t*1 zke}LA-%bjU8}&BscW)7zO+zG0@5oZP%G`69_cYiAeXpu`>?Z<;YwuU3L*b7t6poqL z5;U+C?t-_nU?#Ib7Mr}6nnq(Kh4N&X@zVx4Hj=IV-{RuYD-+$yLiE3`oMX}5AWZc4 z*kvo2kVZeukt_oj6{~+rY6i>$%K5F{9=GQ{@J_yRh(S>c+F#>t*iux%TtaLrhQm|) z&qA0lc2#jD(i^PtjJ6}t@IS81@*Z~9_~L>jL8(!?i=fXQlSQOKRNcc!)X`cpZTpYw zP3>26YHRTRq%2fUT5$V+D4Ro+U!)p2>`n%r+8#$FzD5j`z6;A#%HoZ6)OF<4Q#o*$ z1Q26G$TPC;tg>d9Z0hQs=MhGW=M9dBxyR&aw-6dKu+H0%>FgBxhvTuOwP3sFga?8y z^?IpZL~L^C9kqibwn2Gt2c0ywgTDA2FOxdmET>wWG+lIOPeVPS%nRM)Vlyq)lbVsRTP+#AkdYS=Vz#)2AgWp;^6@CbB|n{CT%C`Aq(se+9z7sHK|aF~E~^cuKn&Sa`TR_wLQ|b+3B3Aj z;s3<|yjOCLga54i@6%5PJtHhP0gvhdm1qr?Yye5l&m8ZB8fslfc%DsFmt&qNxDCFb z!Afn)pY~B3Vg;>N6x(US!%k^#2Fi zDx!bh`Y!wF1=;HWXIzL45=;KCDw8Jde^N-B9;e1u_X+-xb3wbI7WS%CpGmsa6# zbfG407TFXF`40Z#Vemqr&7F16Fo={H<8o!yHTq}jGYrp~4cC8&;?Ems#=E%c?W!T0 z2YNEkI7=Y+t2D5iU}wqw#dMPhH2m;kuHj)0@F9G^a$#SpaOOov2_ z1=PiaWC!npy0}fJ#}eCBr>YxI`k~%DUr=3cl+1k?N|1(c!=6ELfcj^7_rel$&B5_S zE4?5YO)14t-4;WgVL$lnr4DyRX z3>cXYUy_9>3?+BCSGcP{2^<>aNCsd=Yphm+{#ENLIYm{-w zx@?1<`+*wZgXuCtff8)#`UYxG%@mu* zcgxhX;^Smmf0LXL0`8l^gRdqDxMriP@Wk& zYNOwRwn#ZHnaFJ1p?~lR>ipe@?pw|ps-Uj`b-Hy`Vy*J{XFPJnVVZK_&{BEDRadwcA`1+r2m=~te93+0y9OXG zoAxixRE{GwVf=-(EQ3S0XYea9b7~7|cuX?JuZ84Md^Q75jh6@fd)14dHb( z##6|@%)|i>E9-y+WYvA5NyU4XXZd6@TmFb!+-WU=$8~XaE{A<2DEimpQriX#*nJ#l zYn<_aJD;vve3>kN>lyq=iJf6}1-1uXGol|E5qA@<3voLw%{A-c7PE99^74%&6|Z3< z=HN7g#uJM;WZJ#NSomj3oxvapTsdk2!_VoAQME`dL$ub!wKX31s7ZIaEB8K{FrSQR zQIw|S99mCLq8j8UBu)FN-cqJ|)%UZ76%V82UIv=8MfE|9Hiwl@{F-Gh6}wIW$5K7Z z5@T7@FAba+a%%nxQkOsBZ!Dv_Z9K5ZAVDM%14t`_ced_vVqTrlAc-yge9dU{yziV^ z+|1m|Aak-j9$Z^@P4$Z{;_A;4+KCWz7nYZtXczMm`X=Cp%|1~XziFnw9e?I2G zw4%iRrzcH6eHP+HB*y7|(vQQkvIP^vxCTgw5s3ToLrbG1c1b|+>SV(6gvf+_VNUM+ z=l`bI{!sg%OdiVbe6-yTm~oVBUy;KZu8Eh+Z(o~a`=QTUeYLAKG z3TpuSWIr^B@0yBe$ESX*fC-a*dz!zjuer>`-c@?dD%xB=Y-tg)!?NqfU9NTJv+6!C zQrxB9sl(Aio&nj$@mYZ>Ch^pZ=7)Ossg>EHIS~q|M3%ffR@!gsfar%WLgT=oYnBf7R97#Oa>~;jA3x zC5Ff65pvU_S;asNw%I6g_h;RoxTh(__>$kjjc9sHwLW4C`PB!$o*pM+s(-JV**gW4 zBZ};tG*V52pF4G48ZIUNZaQqLWnS1;l0AerENq!E>?NR>!wZ-<$}AXY3p;C#N0V@#q=z^;E`ru@ZA9CdGmn za6P}thTY!EHelZTNNqk-*Vh55j*U2}1Fip#uo6`B*GLE}S((HvMmqMRTfqyu5LG@G zgBNP%a#1cdy?LhNwu@jI&}4;5r*=4DKpXorVR*SCtWo!$?z^&I`><*%7dH;Tu8rnZ zEg=7Ka4$AZh$opXXN|M`An=8J`Fep;vEXBLocXGXVcJGVy zUu%Xibguft$Nc9B0x8K?`qW3-5J;9mtD0B20;(0>2iK^9^>ae1c&mY<_^}nE8xg$0 zmIz*C$Z7{y!L3FAezj}0zNF@gY`=I?rRKk$)2%kB=u7g}>9+NDMW$3?$8fhP5}Yxt ztvkt7?kA00;@K0%oln>TE>U0C5@1AT5W-&5&rSsi=?c^JLWGFt02-i*%0(#^V7r)O zLmN(N0@wJqGH2$sD&8qxE!0N@CMMB1jvAvdcUobQWGjy*((;5LdC&@m-8x0-BU)x5 z6Tfh2P{01=YNzt7fgd*;;ymNnQ6%mmieu1=J91Uj+2k%Iv1^Y6=xuubHu0Xz{G#Iv zcWAH{QlNdwHqjty+r0O3)B*1_a7{c+K7J^r&~>)NEB?TJ&}Z}gOmvQh2~HH~?@UQ= zppt)A8s zY74E{i_lnu8G=)(*!cAf6-NQf>@e2tg=vmt-wBX)yT_l#bZvnhJpk_KM(LI3{R&t2 zlaZGQVmnYcwE<}n>e+8D>v474=-@d$xH3inr1PH5GV}Y%p9IxGp=l|dbas*iB@89I zGm9u(DP-hsEN<#w8aKX^Bmkh^yK_;4YrEB3Q1cwX5Gz-pPRjz(Jw0-fp#h*=?t6&jjJjt2*X8d2$oIA|ny36qs@HL6E&Qlp0;R)iYUa^>f=ZOyMVLq1EYRrB! zlMO>`cGrJ$qm_>wsL$v9sKa_bm|OJfu#L3?Ru$fXACJH;z!B8Cz@?@7zu?i9!DW^( zIZN(gT676lVq3m~u-^GsH2yqa=1j>qYew05%x6hos&0XLLtSU?A<5W*P^8I`#17Rx< z-`vVwUpBmziWr|yk;!2%UZ!X;Sjd>;X73$S?*B)jzZRw1M zWnfO1DTGk$$U6Wae(11Kp=c|T7XBoSuVA7h&Gp(Mu&9(%RUYUN1wSA}F3TK_670|? z!UHW9ful%^Q(QS&q87s-XO@u!1sBNEzKfcos^OBZTWo@j;B|_(a!qkX)pU{MI2+Y-)1h4X`KZ!OiQG#LUd}4zncSce*a{o#S_sRnL@)W|+rutWd-C1EIK`3U! zzYr&nA(-ge+r@}DE<*wpefD{DrBE~P0u_XrWyvr<(oCA#1mOqA((YQ+{&v`7isSB33Lw&R7npt9VmqLVO$K zn|*%*l!%F#Fpt+<4=G_|OQy^{*rzHGVEzK=5ptP?WO*|UQ%*4rW71aP@a zW7d3qqU}DUJVARZM%gtX&th3!Ec~a9(UK@%JP5aQG9LtGW!4BF3P;$-`zW!q%k44M z+3=vdu8>B@n*1Be-m8j8_cry2UaRx?!8&e>@)$$2d9ybUfJ&T44udy=7X|*$Z1VJU zVvLq}9S0iEpi(!!!BNEpIW#GZf*|b5$O0|{B~0NpxX$c-k4In{<6m5C7$X)LYBfSx zM_OlM0WROD0A#>#&@qPP{5$tS6#QBw0Ze5LtTTGc4A4&c{Re>@SEp1HyCNvi@NXa>yl3YNh0s?5wg1ajRm zB^yYp{l)0(C(zHGE@xG>ubyung}7rtl>zkJOLh19d7{+Zh0dJd6J7b z*+(|Rr?a$1k?N-!V`2N`8gqs6j3k`mhiXB@WjHU|2LBmEF;nucO;O=UEuogpA7z;KrIJKj+ z<01>T4YF4Hxgv5B&z(pdq{?dH`-Ae(f1Qv~O{|(`*!+FfZnV2dGK!h6Hvg-J*t;Hg zi=rY|5g#dTdbZ*xF-Ba1Ro5bX43+CnQ$86#mr;Y74p13Qe)=3jGe7Va3=Vu^uvm7X z$`1RdRwAr=GIxqiFQdd%v`$-2U22e{xq)Pm`s^X;zWfd%Eea>Ms(|b*fX)~fDtY!| zEJ^KP*SCvJNem|G&DX$}aXNpS$3Qyc+@zf)I@B~#rtRKE=dmZvCgI<_*B%V(o#$QP zsS=ePz;peG)8Ca_zQ*rqW{4>x=k}gTMCpEZP4pP&DL`>NCjxLBPhd>2s`4gi{17DI z9bLn_w9X#NEk0-a%#ioOy4!t@osC&aD4g0$kr}Y|e*N*{&+g<-yV$q-t7Cm%5pRb8 z(<>11Bfa;*VW}D{IZu8^;mUfuaYM&F&JpCc@y;<0qu;7>KGH_ZJ`f)fMDNrYL?;g9yEYT4H$%SiwY{8vF_>RrATlV z%%O_$WiMjld&pz~=ww5GTQMGRJWl_GV>`zeistBKc8ppqiB+d{UViVj;pucBiqwIX z02nV1EciUDMika*qS++Xi0@5J@{UvtnD4 zk^TJi00%6+1zRLkp3|pC5S6=4vI_-e*h}s4#~4Ge>^bh4k3fUq7(syBpEOQ>`h|f6 zKfN4-& zA0%Ik5M~Vg&+TPxlM^Axb_OD!Ce5BpOP~~nQiP+0HR{SF=L+6h;zFZDcEa1W{JfCc z>Y-U%-6PUHEMFl&HOrfp)+Hdz>3a4R;@jF>zzu8=f3qv~cMl(dD4PtCh`sUt&>m7_7?t>D-5S(^3a2&+vzD)-h& z?BC7}w2Y-l{|7&v% zpyM?3S(}z(*60Z`r4bf#5F(=Zy+2mRwM_WTy{c){lA`U=AkQ;hOdI3DTT&jzBCw;I z_a-&fkX6d?d1@2Rq@EjP8r(Cw^(w*>#gaw_$q%x`2&ss*>}Zb}SX>CPCidnU0y!qT z^)PfHA$kEk6Ulb?yGbp3JpS0A8#EQEp&|@zjSD6<%hMoaoD{2?O{GZ zlvMxm80p5&IQoqz<%F63pqqOILdK|#79+=@Uq`d9_P~K61X2n z?k&8`wjb_CeFgj2g>O%O?jm5StXfA)%5)H*&!D%+=Y3*p9L(K;ar0Ke&XA(Qm z_*qlCzLA6M<;H$niaclh*Qi3PD{dJNcNUyd%-=mTRb836e2#@l@){+6pi1pG@%d-FS+OOAt)TrRPkw)I0*y)?3LXy(PW{o2oP>-82|L4Hw;VX_d4225n|-Cl%%Ks3Vy`l2j^!8L6IEY+); zEfB_F$dAk>t6-)~hlU}w_?tyual87y1L|PF(RC&7W6F}+aW2>mh4eSSD7R?0VY8JZ zWVS{drH9Q$ZB$>2LwPRp9<%rX0-uZ@mhE*QKX!rsPJ1j?3w85Ik&DN8feZ+`R$LTH z0-TMv%$L$==qtqAl44txVPaV5&8^pcs?}$A3eWelc9Aia_QZMJ9794W7-O7}=X1%F z(O8RBFa_Hci0H_A4#`hwwFF#7nAw{Jo+^cV*J;Qc?ud=!+l`q0#9|7BgPsvY3rw=s z06kaxVyH$mAVU#-0D8gz`Vh<&TYF_KCG{XAv?XagT>21`<6M)DtVsp${};d!DW~pm z4$f>gflEl$gn~Vine8^!?f>{kT{2UyoAX?qqrTZQ+a7D$Wc)uKZ$%}w3^@s|GRwR> z)K_mV^#%!ma`~lvbE3%`!%e(mB?6#RR6I41tpA;TT%mqihOpB%ZE`kx__hVL7BTukwu&W^|%iK%DoNy%4U6}&X3cy>FL00R6 zJ^8&I8!NE{Yj&(m+7pYY2|`qka~wwv9_7S8&PRVKcvopKB~V>68`MTm_Z~OOR^$rm z+sCJpWe-0jbbOK_23@+W(zn*H=Z*W6&vp;*wVDxu21lE2=bVrdwDLf9*}b5I?0a9K z+&euwNS={yDcWVN_mJW}!@i2SCeF3gHJ*O5$6z}qz!y*nf z6-*a>3y%I0##&!)x(Pv4|`lx0Aj>4{l+x+?zDg$)cmc`*kj^ zs{LG4rDU*T%?7kP>J_Z7_vHm+{mN0kmFZLts##+TZ;|DJ>%kuS8LrHKnAe4aG6&=O zQ25LlQ`dJ;dLpD)^z>MMxpAKrAhEh7ivN$bp?|B_>fuu^p7htytVEGFBKOyS{vcES z*rg>Y{d&84%UabCgF7>3ss&M9EKT0rF3j0`5+ZnN_}{F5Zd+;oAxo562*nNP zU_YIx^msjU&Fm>Nlx(3hxLZ>}h{%@!PI(V(r4$I=NvZ~7?RXIq6mNM(heVs$}%KP|IED=6(M7By!3uW$j zm`>@+e>BS#(!nAvy@qC&#)$q7+R9l-rtA4W6iX>n&os1;sfA<`nwgEgs#hF;*V?ye zqD`Q3WEau&VsKK_m1xk*k!E_$Hp=YWOFWD#I9rwU8z*=h^kX7r!I%i6nKl=YNwh?`=$pPGm~^(CstE!MWsF9tF(G8Uuc)y zSzqu7L%3=@810l9N}3p?<;F}mzW})tG0Jaka)rmQ)VONC1?3urXZYM(i`S9Ghbli2 zWO!}rgDl3NVgc&N;O(BD^Jd9&6{cvl8RwLOK>aDyrt5Riy}BMWqrV&+?Efpp zCGfU{z2CF|p&TWUCFt|lvBR;Fg(*^_cpANWhSP#>)Ia;p?!TIe_24!=uTQLRZSH$P z{l@Av>Vti~LFHSR&S(caq|%<8#zx9uL~la&QrUpMr|q?H+-!??v+-kQ&sNPTd1_TYg!+Q zNUb*PQQ=d2{wuG*5ayMk_3K`6ZFYR59p=rjsHwP>@ufT+NX2@Pc=&K_zJiehLu(z7 z4mz;X+}$ID>a*w-#ESDGCJ?#^Zzf0tO%64JCGw+DQ^nzHz%4^s{V_$c2sv>WsMUbvI!(dIOoe`86fd%{XS|`v zlJpMbt{g#LMhKFgQOW_KQ#`{0vPk&tDGIS>8Y&+mlA$nC5{SWR3$5Mb1BFXr$6{a| z3^r~SibLX?GD@Ej724nbF4v{@9vYGb`!P!=9Z@?Xax76cU!BOWR zcRR5|2n;YF^A?VW(qQFp9}-GycxR>K)}-TCHV)>T?nuQZm;bjHyxC|Zt2kJ6Pu@{i z79RnOol)LWXqI*VbjGrtERn~6h~rG%AFq*O7DZ(xNTOvt0(@`b{C17c1!?5XAfN5x zzO-03cv?{Yq%tdd>y5v~X13$`Aa;PN3JT&NnzOOWvsUfscV;yw0BzA~9D(w7?@<&J zdZW)lF`=}O+YCmU41@G1%Po1*N6#=-F;f~u8{c_jBCpL@#sptx9Jlp|zz=Sr7iMPp z9O0f-8@S)_*q%q=x*-wmLPzTau!v%P$Hc^~AiWGn1(614_kGj((N*&5{61MtJ092w zY4j}x2?S|aeg*1w@oh=~l_xmn~ zpI*fkaU_5&>D++-f6)78WRT;Lz0J<>eKEyx#Ye))K|4MEAht(tUkZ zZdeZ>F&i~Pm>723>bXxeg>#+3oS&c+qlovQkrOoBm-Y+zSCW5RMRD4JE48O`5!~kS zE}Su92pJ_umXCG{EDXE!Xm{Gl83NkqODV|Q_Rw`oHc6F}l*@Bc$!Kxe+a_rG8R0Z| zFyuQu35jun@#n%sK2l+DTMV7(7hD8yHT2M5(MoZk@Y&z~r!0C^4hL+LT$A0f(q8%J zI^Z8=!rP%hw)AQRACpdkNGb4tu_-Zd?X+8c5sC zlUF<3h8V%1|HM}dEO-iyAVWeXHXg$M_h>Q;w7_-JAXx%vUPr?#+uCFtT za+Mj=0%O-7`MGq5~lxM_vq2S3+I_> zJcaE9)gufLV>-59ai=@-9PSc~av}0N29u=Mk#U7^+{8hoQN9XW$QWzRlY}?GIMlJ8 zWB1q92vS@hl8(eapF1OC6J{TxEiu#Wh_C7x*I0AeOxgiIU zj!B%u>VF5KO#7B|C8w*O!!3QrglSh(TdxMvj*Yp#9lb(VsGgq;sa)|V=3{4 z;aB594SujRY$cFlabto!Pqk@{(X&m6}xR?JFT+I1o#v9Qc?z=>+xUs(rmxAUen;SIO(W;zb?EtraZP9^+=SeIeB6Z-m8-Fix%<)` zcL%M$95`s(Taw!Zl!z_yxybBFO3b}Hc<3N`@o%>cV)r$VMtwU~f3`!P*uZ_(kC0WM zCwKr9^{gTEWF0{3g9~%L8F5ky@(E6h*V`EMthnkr zw&ND7Xidll0NZG@g`jmjo_OJEp`j1r7`<#Jss<3?c)rW&B_5x9KCK ztytQ^I*HXl4v37wb9&7UvgPDGDYGr6xJyq`XL1=PGKtj?FsJq_GES0T8W?WM!{yl9 znM3RI*BMHhITfr88z#6xma6=C`@$blv}j1C^9`vBZOzCbyu$Tp9;l}o|3KG%u4hJr z$3J{?maL|%$`&Ks5vh`;)eFHM3%LgXnX9}Sg~9wo@ZC^u^?Svf8I?Cg$X!!cjfuG@ zYnB8I(ZP6}x5Wjm{OIW*V(XYmsv~eg3xioBEIqUz;!F1E62q2Ltp9TZ-8!wZpvp>L zcI)z_lMi48sJtcE9l>_gYnK$hJ#rX8#N=Irxuk~G5|yX}3r*<3Bp`-n%6#^1vnu%b z>*M4*QN3w?+6C|5D@VJN#F_L;f||8w0}-1{P=~_ubmeA&qUE#9NdAukYTc;S$uH`TlORF ze#y?V)_?xM|H*=1d}Mb^IP2@(^I_!0rSZA>B3}g6$Zl5|618bQepgguU&%coM;#au z4hVdvUY8l!KzDb z1^aeKvH*L3hEpycP16vsgFvF9avz5X7B%L%T{f~kUtQp^F~t;U%f!MCfX#MJt=znF zwv+g7PQf^qL{y>h`VBX^c}@j`Lbh{r>_R|>tY6&-A7^^7F!y%3kLddw2sf-s`YYKD zwIAQ?6JWiE%!;*xHQ)(>`+If$zRgzjsD0e-6!O#XbEpV<3DqM666jHOE>-nBNlX8~ zAy>sN{pbfxB~8!WPEoc!2|!19}#EP!wkmV8R_^H0ByV8=WS+a07Ye%fy>HJNf7vC?Zvvd@V1YdCPdOiMbY3?GNUkw<%o?d7Idnw;vg5LT-c)UE^o6O z8G}J-I5qu>-t`mkBbtD%2jh5>+U$zYzArxVCD;U+P{5<-!`Ejz<)}2)IGOd}!OOC5 zin1#W2`!-^(H+@F{@U$u(;-EVJ{T;eMH=YV)B0HTz|l$lko?iRZk!X7zb#u8HiJG3 zxf&;*yIO0QULC&?i5Q4mpuYmAW5_J1wPlIXP1VzLSse3AJ=p`4?7^xx7ro5pTod7& z6O&?HI#e?-Ss`~ekH}SzHvGe0wt$c@dX-T!ab#CoT72)`i7PM}MVITbH?>O#!Z8^d z;oe=cht1TJRDux?r@pA&v?nkTR$u(mq{3^4u%!ZT?AwRb)jpf=+#eW@#}{bOLu>Ev zpwJ=sbdLTerZYHTQ*>cb2q#qmn3S5LXmP~3l@jgPplLb(iZpC_kK~o%ggcX->6hYW zsgrz!U6Rp5kM^KI%V{9w%DGnU3vSA;1VT(g0gpusauOs^ELd$0&QfQoGq*w6s8nJN z`oEw8-3v?p_a1ukkpD7a+V9TR>6<_w7rW9(PBG~nEsPZ7v}r@3{z9p1FK6aX_V!%-N4-7Ow2sz3*@QUc_wgaMSqH|3L0v zYHI4vhWdK`r6F-bi&M>ebLhUsfhSFt?$jnhfc-6~?c(9oN^En!lhz1Af=T(4a3W`#R z_R)~$Sm$ru2qvp_cb5tPQ@{$$wVekqvpQ@f~{f1RlyMvY0@ zjs?mq`!F3wwa#Z&NF&WxYro4i*nZ}dnxm$Xt|fx4v&?hV zx{Td}x0B#;jYz49^d_SMg*uGZWx0z*;>7^zHB}psR`$Pz-P12UBeV|naZuB6*!C(V zi9eXe%?aI{VtEc@bLf7iCS@ zsfbXliqj?0fslmP=%IxSS&^(llXNJUGfSW#npLKiL9r_ms-x z$aNXYeY!IqQ4nWMI~M#z#+blb2$vz&+cO{lyU8Xo>qRYl(*wQ|o+=1Cy$!o)Jie%3!|6mRQN@@rOi9haWI z7*7Hjd68(fDzlPnT%L=aoFF$l)$1c2=`uz9F6*=mzlp5rW6Fz2c`L6UAuEN^TA-`o0aq<<|d+r^0-7EVe3n=5BtWBF(wT<&mA{-9~V<*+x z_CiMod}|$xtFZi)91sxC;)P5(>^gwN==7}72SRaKC+EyQ?6)tt^{K5#05BX=sSdyHMVXZl9L`QzzM{}b2w!E=YZ%PIW($)H z#K{#%cdf-~t{=PM#e2d?cf8OXapnEHzOh}rvbclKtrvnSPKuALex47I?l1h}%+rZV zv0#uuiKw2*RvU4ybyb^Ejj$-o_DjPbAXBBPdvmU@_}4ptKG6SAc!9bWGBGAl+DpTYp6#C!}$*m4f(GA2ZeeL|~$nNhD1 z%kT?IALqp)Lg>fY5e_{rJWLCi#lbv!bfBcO)gSpJiQR3Mm#~9pfS2~v z8NUh6iGS@z>hH?)hyv9X_qA&!$=Gz~Z&2pvB?WE^k!FfA$U{~KcLe=mmTFXDBPbY9)uvPm z6wi>c)%2}QnT%F_u3zSyu0mK+TYYg8(3Z60;JY$|NLeBTT8D9_a;O21Vi;~v zKnkY+lkW(u3+K+hGzRaGRDR^ z+RKh@0oiu`(vQs@b^|2Q7y8Tg9J}XZ8fG2Jsi0XL33Z;lphNzZHrw_=XId}hMG9-? zXU~Tj0u`xke4SQ6If3Z>MP}XWHtWIKYJbb~9*>AAw-COdzZpW&i9UMPS}Wzt(v9nG zJOVS3?PR815k6H|TBZHBknmblPG~D+%MHe=x=LYpe&PW(d?xehYd7&?9)mi^e*yTT zbsxAl5t*b=7w}h{RxMSbtE{Tus7vVrpzn+xfO0Cq`yJ}f+Riu!4$2@e5gZ)o-L|QV zx%3@-pS{6<7|Y$8Mm*5YbQilP-^L}PSrF3#Yj0h(wD%sURLDpcD$5-L2{usUsK@X9 z6vvNK15Dx8QpA9mYf*ER@lT0Z-;tp%B|5zdl zdXjF6O6t0zLXPaGz_MARPxW;i=R%!=02GJ(x*}i{rw?OMn(SRR0O}l^I%$i8a5vKQ zg}?mHJ!PJdbqGi&fzARKV)c>F$>2g|Ve0=SF@kW{SeL|F!&V31 z;>FV(fs=jseF^&IWhxII5YtAWhXzm5YQqW-ha)4M+f%MCU*@@gey)w@{tRI<(=jC-eL}%Zp$H||g`O%4P{KMhW@Z3k|udUEEORsvbXF~Si9CPog3TMpmqwcy3?8j$X z#9J*fXk^O){svs_8W|;tLb7!uXIZsZ_C3bhrFICI>BalMc0=)Ha!l)HL5iI;Fku7Y ze8WNFZ~x4JVlkrZh@1@ghOZnE)(o(41+OdP-S?d?V zNSXfPOQu=w3h(`-t&qK&1!#SZ2{&){%pG>fNlZVfv+!B1M*QjadnvPOxz`Ce+ZT<^ zryJ_el;U52bR&B;$6+Bw8Rj z?=chh;qDBXv|}KV$pQ48t4X8nJktYHc{YjiPbR!AyeLZ*po0?8B#*1go^BiYel#sl&`1|Wm_cJtz2^T}r=Y{A19t4QgsDn;ljjW^VI zZSgzL<$6^SF1#_bu81WSGvSaxM9{@8G^WseH(PfoW+EbL$O$zKhH|9KdBAK2IZ@GU zdh->;j;Xu^YZPr{ebQf#Sb4V3JGidMMKHqQYsyD6ApHEA0ImM5=V>L01hM{|g*pA8 z0Vd-F{Kt`eA_hw>mZ833;Ys~`s5>)MG7?{9?B1f*x#lXhBKsIwJ4CK05_KMa(Q-Ly zRUzg2?57j|-&VCvGAX%y;NbdhCR5uUtI#%4IX|`eiPHzBZxe>$7qn|lzyHE^Je$hG zY@lXHYEJ=#2L}?42?Y_EntX2;88J(ggcJ41pQ26+o`Qmx++ZmHq(XBV|C38Ijj^8d ztu5B3L`9q`$rP#;_33T42Rg=kk#b>E{Idli0U1xM`dgXO zGFgQk%G%YDd+6)tHS&UG;Zq^H6trMv$qq!v+J2~^legQ-z7reSW}E0-0UL5H50dH* z_HZRkm*iB_95r8c*Lq5Ob9Nli1JB#;+P-jTzz6Rp&#Gh(Io#I)MzdxbAurC_DqiS= zMS&&$r{Yw|#pBWJyT8~Me~F&wl>UkYtB6h}fHmd!4ymlP5Z~KhdPZ9i9u#VFKiNho zi`gFKL6D}CFUUiM#+NRwlyL77?CSecQ4bYb)o+gBx@*?q->Q_u-7Kn*)Ah_t>|0;K zIAyz4%r2qk9DOeTxCw51Sr0MV-h<`m5ff$(ij;9^REdmMx2Fefj z@HRC)Nf9=k+^WYj8?eXNvBqKjtVVtMT|D#Dq^BI^7s=k>D1x$DBRO9j9*Uo!=xi-{ z3!}{-{OZo}50>h;9>5QvLT5f~*qE7HC#pjiQhu_x*$1$Rg*uZw7s_x6(FYFpa0O!& zp4V_zZp0D0e`XkzEv5Mk$4>o6u1DFlpXk6%i{89xvs`=LnZ#M;a9oAbv6j(O_|S2? zC$ai8UUcc}Pbk;vB*!@HN2SFII9BwbWu5j4D)kM|E}4wRW(;pUX8VfBYh2py;1MJa z3NuuoRHF;~jE@S1-5_)M6-HS!f486$>_UaD^HnXGlh+q(PX4Fwm6!cCc*?>I0AbA_ z#><}mQyTcfCC@x=HPI6!pv}jA&s5)x%un34(z|_yl=&^?|{>qBI-$z zA_Vff>i_Ank>)s4+drk)D$_4)?Z^;3{Mq(^W02XH{XA(_;Dz1s^hJ)@S7fp z_5IRkrOW*QHK)RXV4zSFT~!%}HMKbLK52}pcD!U*&lv}iCqMts1+lz*TBhE9^OGHf zuK(^yC1N)@Y^ufGP4z=cFrg6$d<>GQW<}3KUq(AH{)F zwmnDR{{|L3xAk&Xtj2QRux=|(1e3V+tm>t?530PaVawy}I=*6H@asKR(AXSX2oQ0P zYf{-1k?-!=i~*9y`jq@iN}Kfu4Ipzsx(*S(+@qHnp2yVCo;S{h@CuO(lbV21UHB82!vKqxcu7H zH|8ZOC z!@I0dBA9k|e9|Xvk=MDBp(2c>3myD&r)cHZ?^AD~0M0tQlbtZrYK|me z=Wy(`G0%Q<)v{zx=p6~!FU4= zZ6Lm~EbV;DVod{hs__?r17&N1YDx;8?^)(iOWYj%laM#zlD8QOa!rSwkH`vYA_T@_{>dN|uPseiuvY)=3il|M8&b87O z!PPp2HpWjfB38v`N@}r%)^%n*jk~GB?umWBwUWKb^KSmRecr4CeP!8C(hheZ^*5CS zt!DwrV(2Ykw_^_Fr9SDrt|E;V zHzG|j-1G0}(ErCCuZsqeh}e>zY-!e^GVoLxdtQxpd0{sv2xHQ*b4+~D!M->R^g>C< zpKWetOhFlW9!(J|satFemDMNk=)x5^rE4B*Cyg6LSF8)s6u0f#t*Ok4hmTg-rz@jdto%u1T z%WEKu=?g90s|90F7ys$WUk9}p3eH2jayt3kq~U7ME?pQXFPucSS-1YFlf3aV4S;I| zQrfa+CFfyBv>Hu-&9@h3W_dGUq$MTQ9q^cUNi}Jn)4{mh`?f?5p9Haw`xs zI`bb!!U#Q~cMyYMxgH7pujjQsfEk`Tz@8V^ql%cpkti%lPr?IAxIax0E znE2ZD&t!*6YC~5OO*_O1mMs=Jj%K3ar=uEB9;WJw6aO)72rFa;Hw3yoewVz&~F z;@$lwK6usWChpA`CHorHnvMbnTD2)_=R4U$!Sq6>ESUe3igFa!3jzU+`6i0Vj&#tn z`g#F4w$Y7xMt&iQxDTj^2bgP1Y*9TC?IgyjMC0_g;cC`yfy)vh51>&+0Xz^r67fr* z+L5d=3pB2VqiQi#GCt3B?;*ng+yLBY`9E-XntSlOJaF(x{EruYVmHs^acyC37g14n z%RF0YLx2yA<&+ZH^x{DQ<0LA#F<7!Or}yMdRJOg;+h<@T|JY=Omi$tj^BbJaGe5a3 zY*>d2jQ$<8OPMl!=;29OYZ6eBWdn{Wm*Y8arA?t}_1*x)dt`+VCW84Fsgl6}IlfvB@vzykGfl1 zAuYSyTfCCsZvJsqzrR;B?&r%ziH8#ar3Lizgtom>nHLQq zpv1oIzxUpGNv4c)`EyMy{m!&1v9%`#Q%tQCfR8>18578%4cNbncr)hQd^MQFG|GEj z>q?HXX}E%!)Q&^eewt?Q_0;Z)Fn66f-Wta$C$k6Wa%}`>)Z+W^?D#G3o4xr%5v-ye z@Mt*R#m&+c;`_V=YLS96$W(pM~t}s|C%+P$cr9FU^-DwH+ z;^2Kxf#9|sOEm~fqXYP#vM7E{4RM#H?QQE%t(Y0muYh`JpYCy%>!i-_P0QsJ3B7dD zth6*aak?L`8M~)ut3N=q`ywa#yp{2gM|ae4P)~0;6s#ybEs|`+s2I<_@-mS`Ay|oT zoX1dMdT8&_xSMamp9a2rycJVAjjfyFhkA}v2FqSd>zesGTZ}lrWm5xq{CQ|=aL=6f zck_^Ud{>sx1R$H21=3TkriRTqes4TjW@60hjmH`fkT^$1nT(}FFI?>k5PC@mHlN7W zSDNPr>VO%FOtAnzQ3<pYYzcVcDLAZvmztxjZH0Y8T-wj5N3%S&g6TLl?M%n=uoE}PKM#J=?vZ3#f~aL zOO`ZGa+gyjW0Wz;We1!DFKdYXEm#>DiEQ)Eh93&Quqn?wp-0$>Gqh6AZePWjEwXQr zzL)DNq5s+wCvw`&!IW<4r~^{?Ia*R#`*xOS&enLuTEfIH5W68=onw`4!G`C2!Rtn$ z1ZG5=cfB*`qt7|sr^eWIrOD*YlaPx~sRMXg@rJV?Ca=TH&+J*{xFQPaK>+4qwb)8G z89XKQw^Y!GWI^BN*h^Tp62TkbzaIZurx3*$R5jC0AqfeH?$oa=X%jT0&EeEON_Az0 zT4kj=g>0N72WSYk#QLjS0X;-xM+9+^dUdrX2{0gXNU2$ymn6Nx8PIiIuNP50&;Lbt zR^e;mnMs2VE@b=+V1x;2(Yehnav~0R?P{adknG0gTJNj*i3@L6wI%oC^mT?_t8Hap zMzlOGR$H!8)9`Sq4w{Qrp$7EpdRP2 z04C^56A)AMCf}6Ab*jek+&u>b(EzLL!}nrD&kQ87N==XTxn~hgzQA&k)g-#TrtXkU zM$q}Eh8x0Z#v_}SCH|S+1I#v^_}rezedAX2wW*nh*Eymd;%nQN{>oCwyX+~r1rk2) zH1)G&yfGy1XndCnl;ULqwPcf6de))$`mW>GEF$<#iG6(${%q4}%cmBwY=fL2%>!6k z^I$*D^XodIc8(^wZJK5{QjlU%jFV1IU+X|n+vQnb!ht?3l1BN(B8ueKzk^f)@K;;- z0h@FFt!z)}odHk(`^^&%lx&!z`l+9K%RRL0NVY5C`WlMAp$A3#ZARt&B@GgO&$JI! zvNCOn1G<~4=<31SXHC07&}$W0`-={7MhksrPTktt;?7^;>>;JgHwvdutiXmL^0+wz z9g1U*JsmRxHm$HYQSmI@y05A7&&xzfh4`A9@9gPdLg5eVyPTU>V5 zyL`X*Us4tt`MC9gWj?MM-aOgx=k?Dgh9EcKnl^1?WN%lXeg8OI1Bpj{>8sB^t> zU|U>QJRXG^YR^b`rjR#hm{J(UOiV2+mqL;J#03C=!K1*1e0n&LsfEMiu!Fa`dnMcm zh4`pXvfIM7KDO#p8YAf-XGFwdWBZK9IaSs_b4L-}c0I+`l3*nYA9!4Z=^p(f*{^Bk zodXJ6$J%pdEeJ*9r&~5Oa2C$hoRgVsTG>1;t_L@zA42mh@b(wrD(8fAP^?KCT=n2p z7ZvTvu)zfvT8v3r$ViPO6pw*~Z(k67j^yN$Jl2OX!|b(>LkQJX!&`=!=JzN4%J$IO zA>WuimH1P8=ZlgHbBrl*pG41tL?FxhPJ;CFvQ1uoi(8pV*C_5BY-O4r3b`Kb6dv!M zX@E6=!|4#oiw#`>=Q@FEm^q%(biw0bR@namPq4qu&!6dC6~F(hMd{*LAc!U~gVk4_ z8pt!izzAJP)J`Qn3k(a8GCCgi4U$SocOcSQhOAA^s3$(<-Vq(J5LexQ4{5QQ3H&3y z*scr&^EWgPtbt~@;vD>YVRN(}wj83c6^UzW%~47EMyh^>tUgyRoAc68OLYYbIyl{? z7&9pH+yI!cQFIt&jilc&%O(1b9Ny6UKLK;j46Izbs16D0WtmX{D`S~I@SyIj8zu^b zftA77@`2%wf_a){YrHE^**g-r+TR#1O*5q(QSYh$EjFd?c6$@a^!uW4>Qw`!Z7nbx z#>{Bm>hj$hZ>Ycf%brGqHij+N(|1lh?4`3eeIZXQS*ofM#*e`+2E{7Pge*#P*U`bh z|L?YKn{penp4!ti{n_x6wXyZ;_0htvg;RMf048xs!S{RVvl$C+rY=0;k*rb5$wucK#KZj3lxP@U&1*TFWr_>OrOl-g zs8|2T8oqC$S?Sxoe7Z@;00H?WCB@l?y`^7l=*JCm4feB)kGXs~&8DR_oy+38rpm@q^lX5%VgHVE=kT2#2$g2gR7o!o7q_Y8afcYisyDGm@aXvH( zcY|~Z;g@L#E@nG=(%XRE(X+Yj5Ji&2%9L-|+7EH%J;=@hpMtI^NhNd{(pS`=R4b}t zI~zb-pFCXob4x0KzA$537!9@GM|D&CBLSF+Rx#bA-E`jrqAzaV9#r%VASsU8A2#jD zwxkni`Ck;i4vhK=1b1}-xkCb|O-0>BH6E$F9bg~mKI$=y^n4mt@3#(oXGx2lIV+Cg ze!oYeXP_Ni+%-O%8vi>-*D~&K)?{_!pz@@|5TDd%S-gIiHF|AAE+f;rb3FC(8pUsi z*O_1~`4ua!#ukR``evr8mN#QLe)s1$<3r$pIKRSuk7j<(#Ou<%^C@W8BnaNe98NQ+}N1S`V*T}OQ{cA{=e`oWw9 z&zX)MEpMmiE8cmvuGQg(KV(7~pJyOJtROl$(S<<8{^l(|ia7T0;JNkW6kcC~FfuWv zkrmi4LDK=oT@r+|dAQZm!3JQN*-es?oBT^XzRP- zzG_pGelcgRhkN3ect`}Q4DvcDh5ec>4V+sr18rNwl>lhY1l=QGQkZp+6zB_e_kMHUQq?-0IygH=;Sszgrnu&Bm*w^FQJ z&CA0p!OV=r9D#UY&RMjsr@3`iBHm6joxR{$)6hwIn>0nc2~U}VjVMNt?JSFn`>Tpt z&Mzmz7H2vqDg?e-?nRyewN2|sSN}b*kz!oBPmCvvaW6Gk(h$-x$ zXqA)}vOwQ+=YS|@cdYf<3ftHnF=8vMR0c4MobfHn5#>7A(F{nckR) z%OuXn!ZOU!V4^NGu{5JM`J{4)@TD{}B((AO+52qS)+%V8r&MQ@TITt)Mxoi+zS5nr zJ~Q;}bSGRWg{-in>>UGcc6N=TNi0UA_*=fodDX)%NHpo#-IPyp^{uODsXXk(izIA` zo>{iw!6<@W2dDj{_h!y`CZuGIe=#b+_oTOXI*yvr9N%BlH1xs_}>{hjf z!z5z0d^iHmF^)>(p##2jC||O!5d3x1nP?V`Q%zPx?#c9rdZ@gK7J~?UsCx=Y*%9J2 z-W%XcqS=&mVLVas=ghyuXZfW#b!k`T#|2jqEKO6_j<9;J6SZLY+5u+uoiYvA+9yRs z6}g(9PqRXe)b9i>o-ag-?)vEIe^B%I`LstyylVQI-TPzHGzi4AZ!Bxn zMzM`E-MkBRYtG)+{F? zrx->%_X5f2v3OeVy@h2w=oZKM-0I{pwZk>s^BkBwxm_FimlU?0k|iDjE*#?XRrSr=&B(4ltjz&ID=~hzT~` zy(j=jdQMj}CG}%&7T&wS=`kppyTGA`U%ulH8@EIfH!?+V!D5Yy@pdfJHM*!JcUEX_ z3PK(6OHII;Wbv}MOvlt$4!}7Ar+4O2qDDf$yKzgh0y(%ZK=QOT-Lyi=_yDUNF8Y63 zy;k)+p8a&H{ZHB>&l^b%8NVo|UlvZ$+lSP+Zor03ONIw^cQx;u$PrF^<~3En@-}NC z#u1tCHF4y#X}^AFry(7Qzg?dadb5f@o`YzemMkXA8hzV_4v|!2K3lfz-;vq!knUR_ zH0kw-dKL5pd)fVsX`cQgDr$?e(dKH8F9j*4UkJ0n9)U=4^0kZ} ztxVnQZI;uG41Mqvyy3h=RTo6uw6weS#ISnjgAEs94)R@Mx*VfmWbPwsAAjZ|mpq~tL8+m|T7x#y#49mCuT>qnBA|;P`?`G0Hhh04c#!M^ZnkdJsAkfNT2QaC%PO_0koxnHcLZc?~xA!0r#_ziW(IF|hnMo{= z>NUL!DFbDPBzul`$y0TzqP`tFbP1_A_h;Yrpr{+c@ig?9&xin^#8K2wd%v59DQxvp3XIQ&!IT`}ED{3FY(+9)}tB{?Io(X5zihe`0~ z;v`*C2~}=_6lxopK6`#FD4%gJ|2yEmA_8lkX)nF4wBIzMMH=1m-kE^gm6Iy-VpEVJ zix(4S#xKTGuW1&XVlVc%h#WSh*Gtgac5g(V^eeeln5{ZNLi*I-NKy(8D^5mi2U?lW z&isE1?Q19r!RB@hq<7QyFSm+Ew0{|Jm&ax)y&q)133N0Cu0xW83$Et>;=(%AKuMr7 zD)A68D|bZZQM>_QNN(`c^ib$M zQ@wh^p7=R{ana|0yg$MaOl`D6G=o%@hUgk8V@6wH|farI7eI-3h&IC~< zkhpxt#a?o=WX$}+xMSDMS~tiphfE32iH$mB^uMPrtZO#G0t*dr7!-V=uxx&$gcEzq z+tKQ21CL~1CEpBl5;3?6LWF@zOSdpBywHe)PZIoW-}sRG!JxjJ^3JLoNUKf`B*7po zAssfqbB7Q^5_XBMDR(*?Oe!i(usS!?LcZOdC5p$UYY$tlq`L6>pb@g&hV?*tm>g4N z;8h9YBl}@LE@)tq=ydqiFXqwvF%g|d8x7Z6JgakFx5P~3l5+)f1U&{lIM-s)S{fd;u)y&;_67ym#3ZW+7~Gzv;E=^Kl<%$y_x_V03t@E3d6g*UDP_4^W5#FbRk z&sz05m^ctazW(pUQy7nk_O!Z+`Z~p(RGQunJ^SAWM_A~TzSp$4v%;ffmopuNZ31(6 z=6QV>Eo6@Q`lHn@Jh(Q(swZnO`tmX2lVi`4bvbepWDPVteLqjs;*x_7=!nd2*Tk$k zAuj50ay0hb0AkafwotIngE`E#Odzw#J$%NvR%EQ$K&1Q&pl$w3X(P1&nRlKpo9e!K z1gMnUy^q_zsijPgvUC}~e1w%U+jBiVCV7bZ=J_DJMJdURk4g3xV{=Afu4b#KPLSsx zHl9kg4$=GvKOmugw;>^HdDX8={DW))V4-xa4|DA>Ukohdnf8a`73^Xqdfx5To3EIh zeUoYutDp;H1#RCjpM(# z&EiEA6ixruG+|bDzye`r!LeG#X3VRL9w{6Cy9lIdaxJ&hbriTOJ$x4jlauYMlq#z@ z(L$c=(?3!ZYCvEaz+>v&#PeM((!Yk%d{Ea4BqPO>F#V-IoCP0Kx514L+2sIjF=y!w zSVv<-l8TVKRA3S5>$TS=43wL`zO~at+*@)nhtvV7*K3KXhUiF7a%_&h%0aHh?LpqW zxD-7ntlr-^!hk$xLDB&jM;bLLvnV9%vOEnN6f2ynFOAjJINFthj<9ST*mv(`=0B6R zQOkK?jRn=o)C9}*kX;HJ2&Y2jcFWbElruBsHW`vA<@xF~m0#WAFH%6E1V?lwBn=?g z5ksDh=gPlei0&d-7AqRi)cXN2@5cH7FrgC>@pFuxkHds2UZo)3M!lW`p?FMnnzUvnP(I^GAQ=AuP2V6-8%u6(%B zZpc9NjXPY-cBQKb`5XoMr3C>-Vqp=^#3VB);G`i=>s~mCJr2F=7G_d^)fWb5BXX5lT>37^eQXnGJc*# ztU;)Wpltv5)428_;BvOnLzaf`&$^eE-pZ>Ep0OXb*3{ddVPnF612AsU2HNTE#El$l zbzEebpeV(7IY|?u*;570Pb<`36dWYy4Y&%i39o4a!B_p}- z^Lwhy{|Ir9FFQO6LZ%R{TK~Z`Cw}Dr?rLyZf*~Leip=`F?A>0}lI6Z2Q_HV)rs4!maRZCr$oSMMizTj17*8 zBCx04lnuZBy!$+QrWAlQ{1J)9gUcYtmUsxWEVt@0gUG`u-Rv%n2FsFi&zpX?6pLfC z64mZ69O{LQa-sZEW}WS$=BUXq;7@aN*F(FwzJoO$NeucqzIU623x@5Fsjk`2jw_&Y zt7F0S$^1pzc(c7QxQczXsm1u)0lH^5-tMTYam%`KFTM5j0!Jj7qh5Yr5F5S$Aay#g zZ5ybzn(oECDHs3Q@aU=90IM}bP?x2KaEnLc!jli|wocQE1G_kiQtA-0r&?svgt(Z^ zgNnJw7H!(ri!H9`(HO2U7lcephW|lE*9wJilfbXx?@;4Q@DaYDByCwK4{#vSA!A=B z!!&OvKS_MEEkmX0ox&Hh!`6ig0eyo}ghPA{w%TJNJTYO`b?(;mAXe$}(P&Td_V!{| zpfcwHLZRaE(P+QEgQ7E}Vw>>M?&%3JWu(@Q!Cc(CH!SGJ(@zMa z^Ei&mQJe}m8swfiP6!3wgS>{GpIE>XVC-iR9)EJ+;nD1v*RABML;$k#Gq8~)F-!L* ze<9|ZIWRgqvfIdY98HNbPHoudSwV5bO-u@O-23R^mJOel)kyC_&ZJAH8kjykFCVVX zW6d>D0_8_s0sNMzxO|pd>XUApIcV$amswd=i~ZO9qpK07pwH<7JLZtCf$gHo0L;1k z2xKmsRJTmcnlMEW+;y4TVOlML{60t#&CWe7|_btg;-r7RHRimmdU9D zDR(3l%W23od{nzeiWDKP)+oi)(9GkSjC!g*3LEQCQc{jlAawXBwv02D-IFnITT~u8 znFvZM%{1ES%|6~9NfYQ%h~zaPH-gIFM{BNJz~dZZvKvb<%uA%~f`Yk=osB{)ImXJB z<_^|7jA5dQ&{$z-FIfCGKA~!y3UVBT zq@eI?s4UQPA6XqUr6c55;(jv|eo?}GNa`#ZB66F!0FhQc+s)4!lY~pS(J#rmXtb7E z9}mFBn}Y!kr?RbbZ6n?XgM{2`BtXCHZrTrD;e4u+|l* zG0v{;C7kAA_2wK;#4pH%zHYIABi`!s@N^Wnq{qSWz5y%V!d~N+$ponu6UtSP#&|;$ z2U6#KK^_S_OJmiC=%S&i^cjAE8ZK;W#d#qMotxK9Ybo1>@>w`pe7%twRgeav-`o*K zR)s7T>P6OxbYnqGET87ZZwG=#)ow;;?|sIs2nDVj3RQ1r1lx^AQstkel#w=d>>k^u*Z5vOBjtfCSq9>^2}|&-COJ_mdbpLbPQuwmMTcu02QrzDMia%}R)? zH~Lzw*O-^9_TXOkGZp{cL?5rb;s;Hj`So4MceNIV8|WHXi-bc}1jabc0l?TsvDqi2 z&&Ssh)v*z!CYb1kB+e zNLXjyQW+kC~nI2-!347`s8}7o@6eT~-))NxchLx~UuesB4~`S6$RA^tycaxj97vE(gR1^?&{B z0`Hw6%Gttn%rR1GM!(K5at!l|$JPx5@<5O~yJkZ+h-r82gObrZ90o~xzxFNiR=zo; zzP)rXE~tBC%|kSE&&~H6`}ei>*>T=+x-5b>wf4v`(2BCG)ssUicmV0tAP0V7aO{IQ zUg8IJNwEN9pNJdATU!CW8HMd410qvp#LxMQdY%A>d34^_OSejad-x_`OjmNh?r$j; z@^NlH`-GfpgZken0)$FZB)KnD7Ewpo#x32w(}UofjK%<<%!*QrxOG^df$83sE01+u z|B7dDtEz-QH~E9z!AmjraXFf$=PxVSOJuKS zMt0v$N2#vkq3`D46f4e5`@c5UaXHfIgPV`CI~D7Z{S` zOr{@?EG(N+qx;CvM_2EU{$$bt`l|zaa2U_r4!w`dPC|Qc{(Gw(M=qbW5{SwQgizyk z;TiFwc>c7@t69VhDyo)gmGW?g@PcAPli#$ejWv!YP47{Scz7J?W6cIqvo8NvreD-_xrM+(|u&EEJ|0 zp)_cUwyv{?8eRi18}>XwztEataxrl#P|9Qds;sJ#Q8cpp-e)qDCLlMa3b%$e|nr@%zFHrDFi(Sd2yOomM<**XGV8ZjF1 zqBivM^@QMbIN74-{-(EOS!|`XwA(z(2YXz8N}TTFPM=XdcGvc7Kh)j6c;5`(C5~XD(SRgb~R53Y!tCZdx*#O}zR8+ktxX3F}tcDSiSC(#vt~^L8 z5L77NkcUzx!3v4~cN3kwb5H))Chob2HN_L-X~irPHXBHH^w6N0Ld$`{Ug{w@W|r8K z$897et+0;LKFpg~X#ES|j)7iSyU%a208a^m>Ddlid-o9iI7%Ns`Zv??SMr8pHSm#T zMc&*}j`zk-Asdltapr$xI@zZhCUM1Wy-pd5k#g{M;YucC4K}UaWM8Jj`x)F<0uSf~ z3OzL%b{^7FAqbXiq&#n;2=pD(9>G2~(&VEb9$zuf4#*Uowy-pjWs(xo3 zu1QBWT~H&Le06dvc%q|WB0@4t!`ZUU#M+E|jgz`zeQ1@|o(mUad==GXdl6$dshA8= ztkLNAc#usLzjdps&8*L<+{r98_k)yjI~i*qP^ffvcYM~LkjJRBBW+?2W<6fIBp*MW zN&i)!e4h7Ia2&E1cVY%gb|U99P^AZ;ox(QWgdYesZIXNFAP0XDCXl>d6&u&U__+(v zAy`2&_aAv$vX->usQhUWrgwCHXiv2IsGZi^@!dlM3{ocvzI;yzNsiGSdjS+boSNGBID_b*YQ{h;n zZjltS5^vpCO+lrG9Yfr4p?lIH)eb3%0OU^wyv_~&epdn2#TUjB*1Zng!eCdL4Q4-MgFv(nB@FFdZ;>SWmCV9X-i%&aCLs`aFt@a`}Xe_2~0!bc|>4?4hs zQg+%|oc@10e+!*g60X)hL)nu(KSxI-y_8}yQlZ?z7jbHp%u#&u1nWCFG3Sa>d_Z#A zp=LMiKDf&`N~kLxPe$C%ux`vW04Lzd&@VEi zDCT-@U_|^3szWm|cj(5*AlS|Vt%DSWHp{YLEf>9o9G$ViRjp`-OC4n;?MGzu zP9WdGm$S_pf1Bp|gqZnC(6g1nutiu3dV|62Zr|m%|6DsU!He{y;<@s{SYGBMauH?5yWad6PwvcrINU6gO5CB0Npa?zh`0ybD5XOPBkfvPE zcDb&bpPiZP@inyC4FPI>OK2%~NO>ji#E$K6{vl)PCJzP1;D`6-wa2A%ZSJr|~{X|Nr5<=^cR-ZYc`x`Gl%&)!n~*z-?6sy zEQ&{41C!M#og^X>nn~vKuXNe};YPGxbrY^VXQ6uLf|m#mmpG6DLXlpJeQn~g06=p# zfS~Q$kK$f{P}S2PBT(qw;@ndww+n&!@Q8D!*y;?C`JgouCM9^0NnGKn!sHuy3T8pq zma?5}_%9kj)JvZP8PifR=+e<8{>H`vr7X)SDk4B&d4yq0mJSQud6=K+urr-lGC;*n zxfGPla=VmZAYx6^iqMo}S+}e;Kq#e+# zN_bod3BhAnC(pzZ_&wTzum9?tWsTOskH-UIx>U7_`>Q|e3SeR{&;?vVmMcgw|D{m%yk|fa=BcyEtj&>(*+PZ9^I8R{Skq8ezO<_w3+=?ZK`mI-2ySoW0 zQQeM>_TcFIuQTZEVUfadO~{%}iOt|OAMStRPZRLjedupd8D8&=Q`!VA^GOZgAQV_^ zmf>tf}$o_Q&g+j z*cq!q^`Y;6j*bn-YuH2Xs3B+lQc<06ghd8w+mZrw3SWUKp%|RYZoRp$Kb)Yo)kOQh zr}#QoV95C>PW0KXTtadUr9@xyGSA@<-^4anp;y!KiQWhpARt7mGJRk8f;hQ2XN`h& zn?=x)ezfolNpVKp0W@^s7L4k=e8!#1KtZEu2WnZ9k7|PGT)38P8xz}8vds)ZRlf(bGDtv~Fo^L9(k7;mHFtv)BYt$&zpS=uMz+qi=9X%XM29-loq z5qyP)xZih;Bz#gTwT_!AM_l)mu4mkezQUOVCcEFJNI?lBV+Ox14oeYB=q@(J=|yy{ z$|_)(D%e?(obkOsyPuhomN4X~UE_#LWugcBop4nk75 z8|#$X$OE>XJ4lDjOJWz>v&yvIw#9cl4}z@D5uA;5p)K`qS#eW1lbC`|Ji-lvbmh+D zz)wCAzRx>=8^Yg{Ne`{cD+basa;spOO3Vao*MUenIlp0W_HU81boD|ka1Pbjipch~ zM)M1zT6?avN44bBL{?@EB~i1!6-(ND)<(G8xbbYS@vO`FhX;rXi=$c;J|`*g(e{8X ztBp1C%Ve)$6f%j5o|&3^oil@-fhH?JWG@)KEQ>uj|&%J^9~DFgFTJ#WHzMx zcr3w$Cl?kUw9+*av~#3bb-MBsyK?;hgJNAwlTqOjD;NTE)(_+pK0h*XGs0|_WD~Ge-Pz!?aX&V@WZZVkspBgdzb=m z!6zOUW~apReKWOL{lZHqkaA2ggXb-!A)>ElGo#q7=10)X#PHv4`)_Mc%Om{xiRp_DfP=;$0PhvlJL<)N8&lpfd4ANcll( zTd+9E`dLe0{P>boh9C!d{OA5<`E<7Bh!PAz?9$FD)(P{)e>$ecAotj6BCQuN=i{$! zl4^!g6J6#3el)lK-tkjP`J!Cox)`M&7%C72y{0V9avk<2MfMOuc9H5uwbeIZ zrl%!r*+SzG!{W6pL0{_uA7Q&I=NGSSrBnPlvI(#SVR{0`_u|%1`2uq#@S!WRxedG{ zq)eGh7B^|H49~n%O&O>UyNqH6`aws+UO@ZNrQ6iwpYBt=$5#8HLNfoO^)J=C*QL&J zH&6}w2q2Xtc3t5PlS3J;AZ)I2RUwK+Tb4Xh!*m1OhjBW9d|B~&4O@twE&-QBUM+i5jmI}oL8j!W%^*0L0oo6dI{gy*N4ku-sA zF1ERGCb|YQ{UUlB=xk7KKs_^UdIk-T^G$!UQ6%>&{CnGDxX(;PFKyj#`MxK{v_hnR zi3Q4H*r*MU-6^^zCPT3H89sEFiEO39CQ?;WDd0$?a+Pp?Z3d9{vPOMl^0J%{?syXW zV!Ch4#N=*FnXq}E%&=|$O-u`dRPwyuW?=UCiXol^FCsbl+1xEMXbs?|CvC73gAhO~ z*klku+DC}a0l&TLgevCkVgJD=t(=4f`RK23g?AtVA(d+uz-?&dxjY;+9+khJMM@}N z0$9%Ei=PDxKfitigBoSK((o{IepJmAGg*%kYJA9~NXjsSx|&|VHU)&0f6}yLG3*zv zYWOHS?ULwonX3I!pIly_c#fF-X`9MG2#QPAF8;rzM1azDKlPPueA5&0(gK`c34c`P z_d%TK{9k6wY}6Zm9S+v0Uyws$^i0vl|JfT+Wms*4)r+CVRl@-AVuPyxC3L{!o-?fi z^WhTpYw;o_#s5H$fRMa=F2d;nR}zR?uwJ@&QoZ}SY80p{c*-e!avva5p3D^Z`836> z+rZ)ZRsDut;-J?d=B-t$6Z(+~N>)4(nb1y^@JrM9Qay^2My_=r=`5Z${0dry?>Jsd z74|c3oKFRRbG52urO82Y&sPK*;z`+kiST)^5{odGd` zAmvq!B^lSuPXk_CjrZZvn`Zajo&KkI8TqJ*iR1h!DIj-R({F2EE-511^eVz{hSg`( z8Pi%ssul9@MAO_UdsEY|GX)^AQkwuw`53eOX@oW$CD+=9>C1+LJGA~xHc4T^R&fD6 zH)EGX>z7&$HvMh&X%v>|hY%L+$90Q9G0@Exb9Jn{9-shGb9eQ~pmLmDA6iz^kvT;d zvF}VnFRRktQ^BpFq0^1a`LdA$;3M%y&6zE=e`m6CBkTf$OaU`yfVDh&lhS;f8n3FX z&-`B0A;R2xf8-Vsn3oy^9KP1X+Gq#CNf>xT1+SlJ2!VO8Js{g<`XNk zS91u@cP|Scmek)x2v;VM&iKm*SRNczEmFOYz-c*V=vK&~x^SvK<;#qfsKr}Y!?M4n zhT;@b>gnY@kZhm1xnqPQF8&v_;l|zv%m6BH3~0m>zLP2xQK*MBFUcXBg+WsV1pQMte?|F##5LRHQbmkVp9$C5kt2)@ z$mB+xw(@>A=h-j$v3LY$$j(r6lMQB$5+(;Qpo^DTe3zU>S`GfeUc(46LN?dk-U$cg zD@%Qh&_xyay~K-q+71BKjv9jtB?S%xtJu<}|6XKsjIGq%?#_Oe+mUA|Ysk`CV^a}; z+P6nZ!z%!~%yy%upHY-EPKCUzjlCMRK*QWK^fc5{p+FRrCo#T1M=CZPqiz!QMLd`mE{FmM}3DoX;#{k8I`E zQ)1$i9Q2{IV&aM{qA(YyJdZs4V@izr94wgOzVPP9MbJD-Y8p@1#oTX)sB|C^wjP zL8p$wFJIfHPa7tZ2#@82t7rTwMogj(- z|0?gs7r2bov7!cK?Q&k(57uDE5E3!PQ~YxXWZy^DOd!*a8BbrktnqK%8ko2FZFISx z3*JN7AUh!t9HXpD0Xb&S{X5WGXyRmD>+K_W8Ril80`BSU3-5$>0)!7!vCU0f(yq^8 zr|O6x^iOKB-9h#ead`SZ&dQAt%%Cp$O&zdDLoKeqX$1*~XS1vEKbxwmx)e^xa6QFA z8qQMkV)DOY7hVsG0>-z25I8f~q`@NM5B+N7sIquuTSvWK+Uj zoal%6nf{{_NWHnl4L}TF6(&vrhb}QNCeil(DF;^}d2ZR_K@pcaR#5ezIu==4J}(G~ zD@buq0n0pI@+8>!0;Js+}bXbQ7#%SNK@2nh#I9%(V`p z(Aq}eAxI<|x-0mOs*$8Ok0ULF1Zj`qcNkH{G|4z|<(U*O-h!0?z~DYarq#33=#wG` ztfS#8T~tr)?xYyDUvaTfzAaWN85LsR=&1UdhrD%46ht|i)`TvnBXjupdI3u~fPoKA zWaQW;{9MtchYIuU3git<85L<~Fot(s68fVqgl08U+H^i!tF(qR&7rOyg|PDN3F?qD zg%32&Gp3s>23vu>(Q1oR60EmguZ2oHEQ`pmg9wQF9+%(?FT&l){x0`sk!@c(hmREW zs4s0|b4TL+fFPOW_M5~v42!BxIYbNKy#rI1Yg!vMs~8_U_b!ZpI30Z3f^RipsNTJ5 zGeiLoq5fA>K+@vQJE;KnTQ~7ci|`w5G`M6L(e$aHnAUzn|JUK41PHeg<7H5*2EE%rk!0ff+X(zC zske3x2E8!>i*b1Y8pa3#(@P7dpyMJ|WQw=2D}dR7Z!Z&G0d&mMr>Vy=ao!7vTQxvy zl8~3=fc6kK&W9!VK;Vq(0Vhgyc6*n|=#p`RVY5h{Cv-tfMVb#GYuilIb=db1{+Hg_ zYo5_bNhxybl!YeuJ$GJhox`~!i(1)4qOZ@k^D}Bsix9VI;8ykG1x5U;buu{!%->c8_d`ju?n13n%j5~#ZCd}FxqX{5+9F_!tJHnXTBryCx9rMWeL)C>(a*fe; zpO~Lrl7o&bf1a@#|E#&9v7Yw# zUV;+=0#yE-2G0gpUWr}))iK2@m(T5U=^qTKkA*YTFIR;(%Z*DQQPMWFiI5pXCoez- z9XC$tuEM+*(2a7g}|45-gU6C@q7|9_>{aS3n9lNXzRhhbhn4$5sgI#JZy z_tR7saE28(6#loeS)v=Aj>DDk^(i(D7boEi@_a^8fTb9HyF3BpVm#bNOQ2B6udo^ET%@ofd-_&Tbpz z(cD$oC>`7dH^V0xiCXL6!K3m-SYH;n4lh*0&NFB7B+6N@qd}`jd)lW@+P;cu!~sL< ztp%c~?dKD;={c_lq_6t+;|lk&EDEWpBdV!BN?}&Zp@JvI$3=~qI`S~g2*{)kF=;Zx{Uxf9V1chJY5h^WzJY z54iDf#j_-y?DDgAhF^B{YTLb#f{oG}{_v`msfK&_w!T5%Jx8A~!T4)!*Y#skXtA|I zC#MhjI^z3)<7O%`EPZ7DqPuHW5BFN!5<4V+T&Glk>?n)^Wcc}`>2=2~1N{)>&`8an(cpuFu*p|;r~ zY+`+HeTU51p8~Hs=|Z{3$yUcr?P6Qpdz!VG4|P>GJ?2#^60HY)P9b2eZvh-UvqJd3 zAMI9llOR6?EtJIOnQS$ZkW{e#Hmtd5oQH^XuVv_py?C6h zb7D~|O+87C{b5WH@u0G0FhVG&&JFFgWDo_as8Dj5gmA?{PWER54FcvyY{y3J#H?!{ zp1>x0idI$nFW3~yniR88NscTp7%xeOQdXpTMBlTEAMRr8WL-`yqof|c0bG!8p*L-F z(ptXT-I{m?xT_*hP=lRb(3o(KCv``+F3?7i61K%|U@(k9J^*#g_ISmBuz9SCW}e}5 zTlU*b_aKao&_V7v1Vj|X(K4D$^g1IlN-E=O zr%)bT8K85h8KuyjD!SUZC)3Kh$+;#9J$y=(WJI23@aGa(9*=EYJwN1p7`g<$IZ$0) zZ!f45z9;@{gZF%ZhZU?Tk$wDyP5h&G*KZdWVTodtzvE=-=X^O__>c0b>`+CVR>Lq&m-D7?X;V->G9bMx@vY$ zrv|ZC#NROlzT3!qP?N=@<-VFIjWumL*f<{@ri_kt2JLQ36*r-6nX;=&#v0NsJVg$a z%-bREv9exIF(^>aX8_csET_a@+$sS#grZuMzl@1Jb{zuMviyfK%mYn8SRO;n z^x{nG6c5_xR1?r%!qW&Z0lN*fLazdc7a^_S9S}WdF*w|Q(=f{Q3qJ||F)({p#S&8l zyNZUaHgr^=c%-DvzaN)$&!}{-=vlTZ|_lGu<{s~JKKv+Bc`$RqrInIzm$Qjsy zchL|^)Dl=;CZ;GeSKy|UXI8?`3WRmWoF5gamVW&S4jRKD zFeGF_)vQd4-p46(0$LF}{@rD%4NE}2=|bWbK%yvZA#(cdL(hxR(RoQxhquO=LndhW z(^{kBdmG$c!&SP2TLjOFa3!UdMpJJcHdGwqsm;0?;2S^=jZLTgl?l&l)|bkhyco)K z^Hu;mOJ$6IZl1nY8)_kQ90x@sJ2mr)6#`{xUSHSC7)GelfgyA+{E-%W)MM&Aff)U*@clRTA5LopBkFR)T;{}& zbnk2^YSLYL!+7+auJ@vsTXI_(UtUXH-H(#L3c>nAz>%rr=*n*a zRKwF}D1(JElw-HeW3ytc2E-n{yWh7fU;$L*3u;E~BD!Pmh{nn@uUXus`Qe2ZDA?1z z|5D4<8k+uO6w6_g;0=eV*mY}7g#YnTFdO!f_ni8(a-r1Z8)Hd(GW&CjO>x3wA#kat z<~s@kYfMn|fDSFD>G`Qf3EQ{!S!2CNTOq(7#EFvTBK`TX zU8!9j9`8vdWd`9lfELcCbMT0F9d$CaX;Tr=Z{9+n;`< zuK9V#D-|IR`#|jVn&YOp2O&zDLa+Dp1zN+dD_H+6`ytt|QM>DOR3}*d5c-Tx^jVy# zct3|%uNp;}E&j8W7Tq+Phz$DGrTW&hd<0QU?ly%ljVGH~H^6uS2CI4>fL2(WHOPab z-bqMx_i+IHlA{O3D3kqJI2mx*y=YQ*vv!b!R9-h=d`@!%yl#b zO$%G!aGs9R9^FeAz8xT_3`Qw_s6o!=AhUw#*Z3K2qkU6BX#OC3G@@FB&4k8{aP*{h z7)!*ktTk`mxr@in=W9@fz9U?0j%iH>eiEQ$kFxdN)?N%&J6Ut1g>dY{3HC+z$I&&*l814*#+hdmm8VCM9|d{Jot=^OapJn4o5x0BG8Lz<(z z2r1QGwye6(Em;cJ3T&eRv(lO?BZIpB&pS%=oN2p=!PHr0KiISo{Ud|3k z6>ihBg{7dn7LMdyP~1CGhD9DA<6EwM=fcQdcjQM?W?qi<_v+^Bj=YyMN$FWJgTM|X zGkUilH(5A$Sk|E*qS?rIxBr2-{FZDvu?~)q@pJumVF-^MR-_{I#ge#=$+~_$O%Ejm z-^tW_b4G(A9~+H*@hhxL)A4<|-8Lg13L4WgKQ0j66GImL&Nd{A2x)6hkbIcLVJThU z%-=Y{CkXB9TB&f2H}C?QGH?Q$9U*F`ZIH$SuogfXYt z#cxfE_8^x`Xj-bsg;7A~y&v@=Oq0r?f7?E^z+`au@ZgZlVu~c|UA+w@jOEc0f<;lk zd@l5oEh!eR(jq#pe{7_l&ETR7_=$!?za5MOxYz4mCtCf8-Kh-ddewb^_{{!CkX6zOV03fHm|b1U7Ewg3FhPi$Lf=2@ zDKlGG)=)Py*ix0Vd~ip#nC(!SsaYs(o1DTc)#B=brT|SFZbbXoX;< zD`!mP;@n`3-b}r&zr8AwQ?G#yT8xuWyQB&x5xjFJruY>fRpjwD(SFv(ze{lRo|$P; zi@$72_j~$DMQ&LKEjIcbTczhJtt>p=DxAHjTpwvH_|ZN?vH;`JOrbc}D(tLdq0W~K zP@x5p+C238ln~JRpm*`wZ1@aoG~@aSX;td9?UAXvdBLbB^DBYCn(4?l z=PnAY-8aT(@$B-j;1=a+&=(_k#M{r!TUnJ%k2N~H**nPtR!}g5Y2kX}&W0xC70N z^?+%_ed|M9BG8E~uS`O3+(rs6zev7uS zX>_S6c**B;i=;n=dh`Tc@E)yL!meAffWc)++0h?u8p41h2TNsF&6=**`#d*VfyqD7 zl)W=t^$hI;26lP5=-23EQ}Ozo&~@-`9Sjxu5)mFPc6wBfzh>Ny;lbd zURoth;z@`5Qt4$7DDwA|i#qz-=Yts8At_TZexDHFcIOrODsc7{J?o-T@@X|30A0%) z$@*4Lm@U{Bb-D;rkNyCI9uu_}sBLGt+r9JGacqp@eXEJ!JmHrs z^xUDJ%wz~4sC#sxbNRhIn2k@!x6MH9;_``L~qYKs5mX7Jg8}$ zf?{$a4GSr5FsP5RHm8&lgtM@f7xIx_ChFDTVTtNIsXjJ866}g8EmxxFw`W zO)e@pS1%zSzv|`E9*3pgXZG!TF|WVvb6G*i!Z1dh)s@8hrw|O296CK7-lX=XeNP=*X`Bi}(3e z{k@S1C(F40iD{)5so|a453I}~{vW!PKNE$@qt3ph5CO!6jEdFnER%-b{p0n} zX&yL({I|eGepV0k$cH9tI+pRxsu_x(pqFB-0z6?o1IaIb%vRfm`?qNQufh$cIYm!v zMR2*yzv~amUjDA6tLipMz33NdSZjk5yUf zwTE336m0%k+oKbF!z3Z{NXn|vvl|YOESELx5w_o_5ne*iy>1eAd{q@UX9FdXhko^A zEgq6gS7Em4W5Tit76e2Sc{?&M5QhDE``gSAJDHPDwZj!1vb>iPsI|^F$)J~i8ymxV zL`8R}5ymn%tpiN+;NPqK{Lr92OIGpxNAi!JiFMA(RFtd_8Bcdie4IisW$p|Ab8CTv z+AG+$J5kp28C!ypQqoJ*Dr680BXmhq@wcQs&8G+uu)NZ+i+3n^*1wSfEf!Lbpsi%_ z69}Mtd5vYB z?>(8>q1lnfJ85WuFb?e)hle->UcHiMv;)2ZTmT%Naee@eCb&+Mcw=Af-+P{eO2wFyS`bkd)G`xQ<#u z!{oh?KTPsKSnP>N6^d(o@K%gW$5%6PZ-&e)>?`*7PrVk^-1)t;`4%_To8r*Gga7|E zA=05;?Hl{8Z4fV|X*BExgJc9b)M$cxDXu=LUPNm*;mfXOe}k1yD>#<}$65Ds!VX9% zr}%giH3^VV7b+>F6M1bsDzRPxaC}}1EDX_{8=q7dpf}bJmgt3q? zW?U-z{7?)vRgL|d^!sqn7!RcQ5vXyJLVLYw|C#Vz8`*aeno_BC zK)vC|MQq-#&Y_Rr zb_}=sn_o!j?khq`-Sy1~+jJV}A?5~LE*pH7?wLd$Uql10%d<*j-_NnTRvIT@=U+P~NT73Ga zz!snXWjnDYh4gD~IC9^W& z;A*uld#IFY;x$ZzEU)~N2B;0*Ii-f7ys76d+-`Og9Tiy#tER>Et}R5Lv5dBt(JNAY z7JKbJHt6~CAgTiZohDB%qG*4KVf%63Tb))SoF9Y(DP(zE^$gsVq0sjJ5qvfj*6z!Y z8wxQfs)#y#n+88Ot>ujSL=AAxa<}-cdxq&Jplkc~H`!iDtX=>P$_7!u4kV#cnhlUqR^gCt*XE0nLfmSnZx^$+0 z<#F#&3Sh;7%{(bhncg)bb`G`B5@PHiM~Z%6`J&2~dyJ|HRI;i|O?^z{BO;hB0%@R3 z@QQ~`0Ikpp4{~xn1BGluJXga)3-r!3y^jW(P9|3EVXib&^MbP{rj^5Ju^$>+I@+4^ z*|Ppyq6jo(R{qKJbJyDwP@kZ_k5YEMvoIe2Vcoc#)m}4!1gE?tOIDNfJ?84;46UHq zHvUaa>!K`#uLXy3p|i81%?P%{8g2Da7G5`XlcK~Ak+$o{ji>a2dXhO`0S`+Wm=(!J z%95hlcTjnr!k|5ti_9Q7OSVpdQ9v3o7>r+FG;)D3gLbn<**`j+2z z7b+9s&+2sJ%m)LfYZ$VOenNeva*?WULLv03AX9chV*JYg`d2=qYX#7LK6?69MS7kE z-&1-W2-Q(YQDW@vL2Q0MQX>djbcMswwinF8JX8X0jXUqUw~b{dqcKHn_H^52bUkx> zl&Ay_?_fsC`uc;tnxRJh43R)(9H0V&OT1VFGMH^e^rzcAt{(d|TRhCTXH^-vQ2iNl zRP)8DYYsPq!ol0zyL+lJjNP8QN#%zcB6JtKv zkJd|Eml*X}RQrgLd|a{J%o5w*-F@_FLJL14euJs@)oew0*j75fD4yZV!YqW6gsmF! z=q4Ejh)tTj)cvnA4BerZuI9D*;EZp85zcw&(Wza}v8ON5S`cp~)Djv(DmokrNQC+MQhU{mMuN=GicQeSi08ncd+Bt4cZw+GB$nfb+fR1)6Su|dlgQ(TFZ+l0 zHZBI8y{#MnH!ymXFUr)ANsWE>Xido{-HMS%%syb6D8Fq zvG?(@MX#)B$xwwma!`yd#M#9lQ$R$(1GLKy1?9&5J)QdEqFUJ-4N1qTWeeu~;tShO z&my^sOp5zGa^=<%ebe7lSt|wrmx(CJdTC^AWMMYKT@i-2Y5f|WZ9f*stL=+W(z-VfaqRQ~kNpN3z8^f|M`mUA}N>5W5&mu){03={Tkg8Z^`O+Y1t@_nGzIK=E zHqYNbpas8r^7$9kV%?R`m?*m)yJ?A?=_4duK0qPiV7LCQT)oV9-2qb(RtN<7PcjOa zc0uG)R6VMt$=$sWup!d9RW2N*Y*E#tzRUeQWCt9!>~61h7R&MA_{Wc2dt>t1V6Gc0 zJZLEU{6U9VS0U^*_&cj1axtNga6>dmaX$V?H3aei9W)}rXa!k|8S8eS;4k{9BYLGD zH#}L(%VJViI~(gB-miFUTr*MI4(8bkMGj&GhU6iXd1XG>BT2DP0gab_L6uw`p&IB; z_-1mk3!aH^=9mw3)cmj0n$s@{AkVwZH{j!w`$fT*P{&AvMRA+Z|8w;pe`A*WR^DGW zyH`j7b>zE87n-G*Do(YJ4W_d3h`DJ35J_J3FPtvUWaN>oaia0?C8wDrp!kBA3i$m7 z54p>Mg*Jg?s5Ot^H}yVTDbi;YpD8vH!3fA7?vqhFUaZ612HxPzet+BvCS@ors7M`- zKi!Vn1Khk05)%P`0cKRK|LvcnHLMTuG3#C4>|Lz9CTt?=B2q2N;yz_1-AwusNV z5o(mSD0c*1$c;Md#vG7feb9VHFDn8+VWlhXUIFDBJO}NeAUGP6M|4nBP(YvP1gUaA zbVN2^>a)^3ApMY*_9V&3f4&u5ic`SB1deWEIKBBl_&01`+1aJT1hfv#pRWO(j{F^Z zVfP?*c)`k9g2-}V_GAWVB;Ax7Y2ee#PYx((>#^?$$f-0iYEXdF6}C2q-WRyV zio0N)bSPux2QdTqk(J(aTZTx>zRd*x8LPuC5KSNuJVVDLZ-@8aoL_r4ThX9GkhmQJ8VHF_AR-h7a!zsuC5#P$gEm708XQ zvDq<4L3)5`Vpy1GH54vi8N<$hSCX@_m>iuDnB{5e<6>$KSrNId3gVFP$B`rHaQkO* zf?@vhu4%<9Gm0gi(wmq9F85_ygtz%*e;)7cbLid?UR3w{AN>5&(yWeMUU<%oOiaTP z3gt#gtAPrVBx4$so8nukb@7|=^{?`;k31bK(|e5{h#hs(tYP;mydx$aFmcpl>Y*?( z_Z&>Ff1jkbmAs={Vo=x>lZnLp18(=$M1_02SS@9!qu&IL)ExVM%{rLp%T z$E(-M{xL{6#_1&YdwZd4YPm!2r#$&ak(}ePeSM-7q&ZjIq5Nex-=7P;dau{039%Mm zQiV*^rVJTC?%byu3Ikm|64}iQ(5pPju<(OLQT}ho`g|&PvGOpOUBYN zsu3$j+O|U|n^uI@Gm8ImuFSQN<$_}p>LRDieL?2NN|e8u(aD%SoE%jeDyD32@;(Cn zP)0?bao(5D8!hdtoKWi%`!ms)E}GJyH$&Mf(Ax?ew^Q%sZ2x4|{coNS0?BN8R3aqA zb#9a!pH4(7q8nNvj%t3mH@g3G$ca2aNkWc$m}<7ha;+0%*E8sMtFJkBPj z03_?s85{zm`GVz``_c+-f*wq_b6@KqNZOKm&~A&@Fvo&EvK1ce{1XCW>%94&*sbHM zB?H5uTB(>z?uYf@>ccM>-Yai2i*rG=SI>dQ;fdrJp%3-1e!l9mFN;@pr(bhZM>SW8 za7&JcV9hc!kLHfI_AuYXv#&y{=CqZ$w|e~@d&S8HI;gL32ab3<6Z`nnbCS`J(X4$wyse8TasE0x*w2`A!rx; zrbDNn&x0QLm70bm=gpLj^|yIFm<-nCdQQKp61rqJ=N(2YX50}zbJUnBflwXj(K@Mb z*n6+&oPaoQZr1GHz~TU({Q&4OBWv2Q$F?81ehaOL{lY(>b4!54;cMaKKW={d6Q>|J z+a(&m=jOqPyHaxAi&1%M>6Q%x*fNq8voF9o*~o(f;tGzf14 zR-5%11@j7GhKdjR<^ef$f)@YcLZjcMGr?u{T3|dg56ajWaNKMThO?nQVvsE4V0ts{2+%0xWXP;e4m~B7o_praD#E|CZBCOub97jK#;=>AEYE zO=rT1|7yehv?v{M+*bqdwH-L z{D6?hIdCCFSty9~a*mfQuNtLecCeE)R<*SK&{qB%5o-Q_?lE5E4|Z@&v{xqLEC)>5 zkMFUflu1z(GL5wd4*luhvFsLn@$)SRRz1mGx&J>#2#@O;nOZe7_>^Szek4dv_)9WZ zeGG@Hih_R3lBSI#?`l{E?eChmgkTpwr5g+u*Tf|Dg|FR_Ms@J7-#Ul)Q z8#Ia(tgg)K(DjanjQR%oO!CBJ5+OK-57-ZREby1og)6dtM`UHG8_qw4jU!#eFAtTL zX1&;%akAbvdLSJWn8CfdH&x%0)u(BQ)lGLJpAc*!-$ST~g8q`9ymB^tn{~1cb7UG@ zy$M^1ymzegC5JZc%m-MrEb&H>_j0OpCt+*UD8SO8(287<43BCfg9F5R+`DWF-jo%- zm(#@{`J*?zgVH4Nc$(sadt4QNDPN$SX2g_Or;;pr!^;%KOtA47tSc@iAJ5;k0F&s7 zJKst*H6N>j6X!yLGq5+jbweW%cGgwj_?6gY6k;J^mGjxe7xnrtJc$1-GV94OW~p%P zv{D=o!dtF+O5ga~(=-T9=c7;Q+zD?0XzNvH?%V9NeYmzU47)JLPD_@73Q@1XrH?4m z?)`aiO{MIvG;?)N&W4cWTX(AB)ofXkT*=eSSM%Q+8c?gnhekeX*@`7_v7K99m2+pleb zvLHWzW(G1F%^W(7+K=(o#{G@w9qL#S{Nn`w+6cEW?)fSdDBzwVQ<-RO10{I_L2}i!XkvkO&Kg3e%2Y47F)N*WOu8)Ge5njI$Qu~10)F(>I{2o`{=5JveZj@2~!=8$LPDTbY!1aGVNZ0P_bEqqL7oLvme;+5*vPoM={17@M|Us^-T#CtCOczvVRHeTPVh zd&+AuDvPq6>sDEUCY!a@TrK3^8qC|31Zfh5FZj_?7 z=dcV}u6V-Hq!4eY?lVqGEBK6E=9RNYWqUQSMs=rn@BkZrJ#7qup5>@vy0O!LWz~@f zNA4fg_v8A?NO9u2F*(0mYc|LtoY9O}8s!MunO3A36V@j5e+PTCltYojyz{nf;vkL+ zQrLZ4L=>lraO$~vFC6z31Td$cBd3ki zD9^aIAT^QiT#S>~wo{N->a!o5w^Esx+ktKU&BO!iZkTSU@pm`BHV)@U6+~75)C_t-Sx&Gc1ZY9zzdLORo|t2+OFgj1SGX^ z0}yajQ@oIYW?e}tjumL!Qc;V=C(Vvlfaq&V@4<+4xIMW_Tq%jUU&*$Jl;OtBi%yRY zeDW)KM#eD{x5~OclmDau&luJ@sOJLavX;Y9fE58nVnZ>w-O)6sW4u^Pc;}LlH6< z9WkIUciWS7N6zp$vQ@m(N~WyvTKml=|7rMi+)$OAw-DY&L%m!E$z+_uHd2w`{WXn* zFKK7!6p@J9m$hxcgcFt*mp|)w7}k78qJyFNhM!cPA9k2h>OVvJ}4G?$%j)D%+w$;>|wS8vfA2S>7N5N~T>{;A=MP%#CLs^)n2S zF1G%&@e5`cZh+o+?Dz)iU&QKtVYzK%DpHStX0!z~Iacq&q&_z)fbS*efaj~Bgp*FA zTPa_o46pmf=bg!@lX6sxHN2<=i%`AZ#W3K|Pp5fuUlTD(Y^3cLjuLZxXO#eG03Gm70bpOo87k znh1B0=;Z1XIy3D8m~h9S#5VLLq)(&see%h<&MlEQPaWUDhOYKk#R!eHZh;o@aBdu! z&(Q^ho+znZ6k!EyC8{;Cz*#ekmB9(1gc5>RrZ)ZAY4=T^yXwRMGzoME9kv_hvewT6 z6v5CEXP~%+^?x@@;?uscb44S+uMJ~`+FM)h zm-tKp@Of5DBh$%svxoR^9SM}1ANvdER=I`V3zX8uok%`NJqJKFi*sRf#Ou}s5_Jk- zSbOt;MdD3Rzs4~V5ubt0dT4>~e1olG&tc- zSOXz*CH@qI;s^GZfHzrC>wy;g=tXvh?`^*tGv_Z>|MR+<0fqI8fI>hK+^Zt?QWpbfRAWmM#j7q(BSs2( z;hJP07Oo4(e@IuH7=J3V4T zCyMcy8P0|EyJ9Y-PxIBH6C5dTvqh#GZp?I7hLPLy%kz}n%K1R|P?t0+M+TbBnqN$H z!1U0!FkGPJfndsr3(5rs)Cau`@2MntzN`nQ2oq<|vHrh6-f=_e^F&d8G*C5;uk|_# zi)^IKcGYLSheJ=^BC{xlUo+3gD3bP?^j)7918%sb2}9gcPB4JoTkxg^xW8O^3*j}5 zwSmO1_szxhhNow+YcNknzCEeN=?AnHg6vy?0po z?phRjqxM+8LhuMNAjJIiWB?YNg4i{oES+tjq?uwAD~}nBaI%`PAyVHEo#if zjd-KQYbRNi4U3YIafyOv*Tg#dz}83Fh704SHr=h_#=TdsSud_gGUBT%I_mHz=(C4jN$l0Oy*l?@s85$mBmdQ|hIyTnf-a2O#$ z`q*NtUlf>fz#PxMZpC|v?ft^V-Ca%l#cjp(cBR13{K>Om&Y#p}U09~+Jwz0e2L-{w zuCC{-)yElaI*W7zg2xnBro9;_W+;jG72bQ)d`~f^3ZYfJ!V~%{2-1JutQ<(}G3)|b zREub*UU)ty$H>o19HX2re^&a|LlV8m=pfTSvV7((3mM_hS~|w`UY@#fmq@QPH@!GRy2vqtqeSQGTnh1JU&C01A zeC5bao|tY73OLswL}R!x`^Z%+9B7W08ul}&TTfyL>BttzXPZ&`1ix=Twj0898_AU=Bl z`_DZyA_4#QUnryVHoEt>)@3w6o{E1EhFT-<59i~I+46cwwm(8B6M*F^qwTBz2H_lG`P(ps zc>20`lcwaHo{TX5lJID6UYPULv?=MZy)00?(t($Srb=q#3U)tRd^`CFF7`>6UOiUx zhc*$0U_6bok47BwGu8biP{!XI0|@oVHX-to+6t@^7$54Op~1sF39LXNnOSQ?NC@Uj%s*uX5T^T4 zX&EM^_%e0bpBdP{HccG?P@!$t&3St4_;?#8v{JN9=Xk-i2b`|fF)scl$RP$UIW~o{ zW&($=;~K2Cq7i7k2Bq@fMR3@lJN|(96pcjTjrYYvX zebh?#IYggQ5VE1a^aE8k%@{3@T>Bk879dLodAGJCXLtfA4q-L>pVAGLL&tE2*24TV zhh^;lT9>y6lJ3P2w#{x&;9$NL9TDZEv$6_<56ij-?upsBu$#Id|1yM*uIE35Km|4; zl6EBI|%C@9wOW0ub z9L9=j2+r(K35{aaz>j@y@*(a*joM%OOBGi!qgUD{w*)Ynu&5dZlC!PsJ@9{UJK!RT=GNO z%p$MNQlSl!buJM@{ar8zntosHvS@Bc4;6n)2tNMXqg={S1ht}y$+mUw9+}qCW4|+7 zFK~E2d9sZ=@N&xc!cXm=@d1Ln-cO2LIWM^Q|5p4>e>xFbjv`t}QRR9qB;O>w<01d9 zCJagfGbe}8YjDX-U%Z6uR{Rd~mDGE2@l56aj#Ld9(!@rVvF*D3_LHJN$_eTrj{x#q zto6c}1RQto;-6sjk2nIWoeS(r~l$UrYuc4i= zK!2j35%}Cy6F)w-ckwrclz?(O}CB z-|qi&=1J$$G02GB;Vh-v;}8Sy*CLY|{1Y;rVx0RH_h!qLLX9alF*E!i6)KNcNsFFF z#N1*XaB5BCXoXGcYKw&RgoIzFAeC#x{Oi;9gP{oKfCumg7@H3JGQPnt@{86g-(=YC zT!gTl$tmR2)`z)6zd%yr`D4h!ezX_+9i~-vjjQsMo zu}1}}7attVm%slv%pMzH+4OS`#qnacWp|Q)J5k9&P*YrH53B!&ze8qf+!;MLCF1oV z4$hZrD2r7y`^2wCxtC(WGza|{WSN5G>&RRTv^b0kUd!0Dq8enqfz8{D32TID3!DZ6AX+KHjez3gOC%wYer zv!w2x%d2khDfWTFRe%troW;>m6THUkSJIlf+1c>pAUrYK=hM=+n6>DLTmgMF-+Ae1 zm#=vfGNPwyM6!u8uhdIGS@zjvK&0RWV^LZ4K>PBH$K3ww6%x}j&ydoP+*HmSpX}aODyBsaBYI#?0q&x0J zLsCyiulfMU6USoJJqKI~oZ6qU>q1^S)0Fx&a5Vgq!vWHzrjI9g`@0L*bGI667YxAS zA($~4cn<***22mWsGC*VGM#l=D_@p4_i)EzoLGy=Be7yZ0tK{me#5sZe#d{7YOJVA z#2*g2@vrVk8xp*YVRy8c1{c?W4yB!hbA1{H9D0VoqtYivmwfd7Sg~#^|r^cWVM5@1vyg;W) zuGfj3E-fz+1f!J;fb|S`X)9QDdECcb&Y(+0iB?GBN|j-r?(VC3WabD&o+D>0U>bA8 z5{{bd5oA9xyj}@xDhA|Po9Kez>sUH1ch5~A&q~>h1;s|%YWWv%u*68Jv90?j@ZXyX zR`2U3U}Q!|JWv>WXF1o+{$*)$9X1qqAe7N2b!doD_! z&FNPgX$vY4-9&&pw^2?pA1f`~EJT!f3y?QSZ=k1|_*hrEC({nPnc@BghwKDow_m)q3cBfX{|= z@UasjRlE}UjSKIYm6Au45N4@RBH5*p9c}AC^hIP6aa%^MA&~*tz5l-a+mQ9#_8wyr z{X2&upDl-RD@2|rPP%vi>yjfKaNoQwA4Q#Y=Cb;O{bRWAg6vIbY(KsQk?`+rqTju0 z7Rw}3$ag=?)P~CwO!QYwHkTu6s^&xPISG{^P#1;wcV?Uv(if7Da$X#KAabF8W03c8 z1LijG^ga?xn+)da$E{LWfM3N3Kg%ersD&|@%-5V63}wSk!P?K4y;F^g4kQ34{PRhU# z$uca`uy_^kE^~TW?!;Vh*kyn3ex<=+FKOM0*47$r~)J5;R`*I#(&C2UzP*aeA6icKdrXQT#} z>z|Q;--emd)ePhaZ^xORJ3MaHloI~~R2|mpe%#jAYj!J1Xb9%gfFc-Q409H00TFQj z^Fik2DynUpMXemvV%q?iq<+ch%dVG2f9SW{c5U+(VdhNJJW!kXQp~~cF2rQO8s@BW zP+qKH={56(ZdKu ztIGIQoSHPK2kxZQ))S&GwG-TNu_OIvh?jQE=NO8U4R(``9a^5YQj%{~=b`A#%a08Z zJ!p!uKZwk>qR+D^I)=M22y#>7Z;vf5c#aaNPmyteMBWF*Y_ZY~NxS8{Ir?|5pDZJA zac0rpE$GhM8^en(eSrrN z1Sf|)I!y!&O;S`(>$B#J3LF9~Zebo{7x3289XKQ%*xPY3L@78RCdAQ51Fr zcg4_eOSn=q$$)QjXsL_I2*mF^1Jda-wBKH!ZcKPZ6@!9X72;iyCiX9RSP)V~W(;_d zno%xnMyPfe0T!bi#Dth70vL7-qnPAO8!d8ard0|4rOdlX6H}UQC^WF5B&$fu=euAq zdm4m10AKS>I`0Axi7xiU#Js8L^67reI0nh$E4q1T^D|`=;KL|sIco*VO={Lhfkccy z6oF%H;Qg!aoOj54%PBA9+MX59YEXY}>1{Q5LE$IW;}uO!SeEa&YDgjsMo_=nMHBaS z<6igkj(OMqsT`xq?@hACb-prlDA9?IEoLTLI1BmyaZP@tCxr0BP&OF4$JxRn88XHv z6;GQ>SfyA~g{L2k%ed ziw)NmYDh6FF>ntNVYFi_UKbKD`F%+$_WsMPARvWeblP^_a9f=)1A;4he=g#aTOXgx z=wXA)(4yRmv15@6mm2eusMAGRsck4z0~F=|M1__Sc5eM&KHX@49Nr_A4xYfUTtuXB zL=mD#3{^4@x|BN`k;o1A8R7)Zji=8H;&{0m7hg=(e>_~+!swVz8E^bSHM^x`ekEzD z36RrC?hB3%t)T9&8>5v|DRs0mPC0S-nI1+d;a^H0i&YsiNm10CAWDHfXt8FVSxr|l zdB?F~E?a6?CQxq=A3&J|hNJH!H1wP~`}if26zq}t;)~zX&o^(iBn@Aw6Z2Jsje!$s zPJl_?a}rIS(>yUnz`pKmLQnr6R`Wm>c+woNCECP_DiLeem)0j;)4lZ<21BKdnKx{RZ3&1>(2O0CS@48b$1he z(FekX2nZS9Go_cJAL$W>XEL%E+Exd^Uq)L%SEaD1cKczZ#w{H0g-v zY)DIVwT|;-YK2jP;T@<#Luy8cfq2|sYqWV5_fWYr^ z2oH1>rH%+bSUMpT0Q#9d#M!yjrkv7>K(^0FHWn>?SzvnmlP?74)MbmtlTclEg2fO( zSU#7$RoV2Vn5vc{(t&S^k4pAIY`dS25(zMJnrrl>KTktJc! zn6sVt;h)h78V!j9izTFvH@0IES$ahc>O0|EtS9|!y%f%E(19SpbRLxgm#@D zv0~K}xI2qe66{Dq+KB;ztUXl`3lxxTwq|c5VzdJS6yM`ADa9N69KFLa+>lZ!l(Wh?D)IO-wCVAvs~IqXp=zIenKZCP zp>{7?;6V@fVsc=rDhb?*eCIHay^1URqw$3Q+|TOOU2uab*1MQm0R!+cQ>ZoriHRK{ ztTcZ{xE#tx6{ay?Ol&V$e5vMOB)lF71BLe**i*4Oz3i{=JAJ95bsPQqIAbxXgPy|j z9-zO!Y-RGP;8_-vll&jt)aQh`=qjqu0cn9#h-#LZxLcfUCr9woHQ{Shlz)Y>>?-V; zB!uvv3sVsJo~>B+-?yp2xDHDILX|d@&OQK|k0b79rPxW%W}U!4(0YKLnwwav`MOTJ z$Gh$hj&7wb{%UrGKZTSUG%|U9lwD>J5e-WVKRUq^<49aD^K^)~YUK&7{qWHtN}m~w z?lqAk$O8%`aEx)_FZH8y+9@&+DVr?$)VejwlEXi+o=UTUW+sa4SbeBOBwZ;NYVifb z)zXxD1b!Zy2V(~I%iQxjKoFk_D|}%ZXwooFUuS77V^Y=54?`=C62tDFHId{J|F=<_ zz)`F4F48>U_f<*+peAiMOny(HmagfV3*-`7M&;&op@JL?I)yP!tYR+P$=g+HkfU# zT=`kY0qE*YE!C*1FV-xYUlb9?Rj^VSX${ykRQylZ$cyZOH z8ONA8LNH3h}U(3G?XYqg{0?*%$2KQhYK6-xpuHA|PAHpFD3J!3i>@ zvq&5ww2wq?l9#>{5x65+CDd&fQ4tm0$Dt3Z0C%&ZTqRRoz7S}TC}-2u`(|5@Axl^0 z&(+ezdvMuIVZi?JpF@ce1*#_Ae&(iK=(q>Z3DW6%(tV&_p4>39N`^6}1bVK9HZZPL zwiC?XSZ5-@7 zs5%{gDS(YD{#K({IE=P3?Lu#ec=T)=iQ^VP+@~zzfgu49t9W_<-ZTbwEIqh@y0a03 zg2J-81_ad_$QPRfae<1S&FLAv{BU?8OtG`tUu)osTAx{M0V^eC|}edt=r9|;sO zuR`T^#V#UnRE)3#0Rp-o)OM|mI5WN;)O_B>pUKyX~2uTmBrF23foFbzDrv5Qe!-ScbQ+A{O2;G{YZy|!*lVwm;w zsOgg~i9bF7n%c~y+`~#oVFHMdd|V8MhT$PxTfi_WTA-uPirjIA)@@oNG!`d|%ZK zP7@YK+{|Xps z?^h@>l^J_l2%ITTm`{pMA}oae9&W*Ja2w}dC#Q0VKug=+D9Y7HrDz1vZxI=GsbS~+ zoJ1|A{OZr+a!aBo7@9LR^*%-?xw7xJ<>>W-^}WY zfr57pEq@M`^?`9gYqsy^dPI$Qk5fd)p~I&_&0xmu%lg-{b}m@LLHh1Ku5<5yq6hZe zy_ZjUFa!Oa8;`%MPK*@3D(otPtLY609#w7prhrTH2(b+(^2@HeHSd!wiSTtB+rSx9YfB^E`OoeOE;VeDi>^dpya)Ng zAP)Y)^q#~v2aqMwENXk68=Ei@qs~A<0lp=Snr3(lJuI^!*eB1ia#{kLK|l`Fmw0!m zEJNnYYXs|)WB9z^8nVm*+pEX7Jsh8@{tIrOElFTgBtW;{6)FRBae?}2N~!S2Q{0R# z%k&A_bfEySTvHAVFwaq6HN1A`ME}+wPpjEo_Y2L0XHBcF(L^wS_rbZ@FgLyTDD`NU z#@?|Oe&=UdayMG??sDO^T(t~<6keNA7~fmEKTE3~OqxWfgf;n4R@Lz>SX`!xv)-(Lt-USArKObPSJOw#xZyjmCnR;Vi)OwAGyZtXYNW9`kPnxmWa;O7u!reF1Kg&96_6cfwqY+jF&KaD8Y-3Bl?-H>4x zmH9ks6_z2#LYP)fD4)ohr`pC+!!Vz~Nc!*yg9sP1@+nrnoWI;_yj~>fu{3gtZPe*E z9|-krA^3~NI~{;ZHw>xXrzWzJhsz@4#eyFP)&YXj&hD1hN z4xdJ9SxVH9ns!mnu0JxB_#Or;(0bR9U50XcK;e5>Wz`XG7AQR?Z}dFuQDW%Q?i_zk zt`r(m>WHMoJjy5b*JkH0^d^fWhIHc6 zpnkyxN&{hRSWi188=j-iv~kYWiC*i{imC(UF5UUfuy2D5#~b(bW`H{*bbf+}Wazjd z+crMdf>&zTRDPenQzG^_y9fj4(sm&ptKw$fzhk%V!7Y4Zr%H5T`6Ornv=)w$WFG@Z zJm3**TIXHGCE8a&4d!A+s06N%dVVrpNhUS@3+L)=YQvG`qnt?|plWyUz)Zw~aUl}H z|3xB&KO5|GpEm}h!2t(StmRy?TjqL~r)9SlRc+S4a)w?k+K$NIRevxh33;m2+4yAZ zh8>a;A<{$i9RvcGq=Pv3?>3PQG4kERba=WQa()U-&w=q*_{u(Y!GUJFNU%3T8;C(Z zM(9AuCexV-*83@+1x=AxA~{h*~hs!jxZ7wCL7#%Wq|)1w0l z--LNb`oB!>_?RC&U2}_|PSY=_ey@R+PovABnJ16Wv9g%1F_$9AwJePwpV=Fy?xT3# zVQ>BU^)sq%+knUP%RwOZ!$z($@hmyTrf|d`Dm*Ca$%Ap{`2f8B$`#r^#yOxK=Oc zR~6&|H5JwY{H#??;KtZ!?QxS1^DZjy`^{OV&+3g~LMAeAyaz)|NgMSA__O8eo#?PY zVUnzGD!JV7%3#T5=6=A}08?`{_;rApv<|S1>VrY7^!Uwf?@DbrLuD-aM#mc{qoQvu z^kHeWPjRtw4OrUIJ!V6PSu!`5%rLXStdtiK%UFz%Z{jPk5YeR#^o2iuUs zzH_XMSuBHf6$Qz|v19?Vj0WH&F^zox{y0a%FN+vA7*rAZ>u)ozoEQ9Rw=#S}A2MjB zn!b!FrZwRH9>j3|Aje&O1pO<0@ZNHm))QHbXztLRU=kiEpZl8(IiQ(c(8+9GE)Qcp zj2}e<1PMT-+NKqa93ZW-8z3#i!!C zHqd)@tO$-Ezy*;liz3jis?F^AqvkNVypzu_$thgD4XGyvEn@>qY-KgvrtjfgqelMv z<%5FCnQ!9-u4?Nc0tZ@Dj=DB11>Q{qy#+1@w^S4w*ru-sr>??DRvqNaSh6LOXbuPF z3LE&;MlVc7Ly#|0*XKqxqGS|hueDk=iA+mpTQ(X2{2#*=mWeroC!+IeX0>m#+)$p? z85=%f?L%WipZtEag?d?T0()pU-*_|*`HAgES)GNr!#~2-Os)DpUUsIIKllJv5WIQ! z7+|{b^T^(P!!R?odbo#`;(vr3AhdYrT>SZoEVYxg<;WV{wrbS7 zd|!0(}8JST*r__OYv zec)V8xWIHIyeKVl<$k?*8{JgfTnQNcODSN=e&SS)PJ2bsg2^opON^Eyx17{jN6b(^ z5c3-YCsyV0ifG$dMzE-jh-Llm32T$`wv~k_(2>O0FuTS7bpB^v)$A_Op;$l7dauMi z`Emp)zoWQ!JMkSt$A7G~?HWM^$!F&b7m&KlA0afn=C9^EK>>{HR!O^MAufHIX^)(* zjiAUV&@3i_su{)Yzw$zFSVun*(acG)@z>Y7K$NHV|xd#7i@}Pm@`UrY4K?|RNu;Fq=(1@x9x!JBHNJOh#)A7i<14s`dc^N zU{*)4_+V*jt)Q>3SGX~&5Jk*^y^yCbBS3tmp58bv75Rm02HGhLt&p>xOA$6G6BH0b z2Horupa`tvoI$K$R~83-&MZ|ma!u;8-6g|ijeEUw&v^lG&%#kQI4v|( z$m}V4352@RZ_%5$N!#*Tv{1ag)m=-Qulx-AaZ@FCn!zmuwzWjE-qEUfZHg`aYa?){ zf8#*~0HqPpZPb)a*WU>i6&`$7FkGbeMYnn6)drP4REj}-$v)9k4vFI;;>|a*W#>F| zW1-2R;$gP8yWq5n@gBGSonXeam$m))uI)eVspRQy6{j9!b;O8w7p&8{k=*?rFdc4l zFP%?w$y#(Kk^?*RPDB?P)T?H^{IJL(;E-+zt4^8w+y9pLU);{Mk4_sy+wY|o0b1Nn zP+(@e%gg?FK5U?Yb}=rL3q=J=)YLzOmVb4vLS{i0ts_eI`$)lv;3u#qf7EPF7&e*zErTjDnBwt}_*+U}fa*+M$ zeSBL$9Mw1~jMZVtHi>j?N-4`M2R?Yp>8`B;rUbD<$gq(k@+xw*`KW78rurMn^pfXn z%qye?v?<}jd5XH#g9|H?!S(-E<6{tshJbWckhZ;HEms6dc5Oqc#mqR9qugy+4;PX} z1-km>*WM*QZ8tFY8NfvO+~odc?gOMt&%SphsrIwN$b(M5-XeuPIK_jlTM~02IJR2e zrx?BXto3nxVNeb181X(19$N*BeH9;miw4`Z*r{}bjJ!28Zo>R5V7P~NDdmZPC6jHp z*M$eba%`W*sJ1vS?4vgRF!evvIY_9HIBLUBZLVwgurGb?R#qyi=Y(yvkig!v*~}C) zbnR07a9r>VXnXCi$L>!FI=QD#jjb+{vM2S)jx;op(4�JOWxAb+SVn2p^BWZsB6X{Hs5R3}&DLieFm9+rvO5 zCag}3hpLiR`b|2>`-Rl7kwo_bHn3*9Tp`=0``b zKKTOf5kpCYT)KQ+FxkvHGoBozdmfA=sX$F|_qq!LtCOW0MU6Xm@YwFhoU~3!=V2*= zmpje~t8l3DndXzlT#6S!kzYr(81mMpoAb3`9DLogx*850izyf`0PjL33Q1hfP(;7J!vnWpX(qY4u2QG~L ze^JVLW#wSKO9CWlPO~Jb?CHw3I$Y+D@-(pmqE>Wrh*b#a`%nuLUGc9Q5XzMilzmz8 z+RJfDV#~Z4kCi6>O-*eiC=MXFx5#;iN) zKqf+=*~Zjq(;?`Uvgo`-Dx_w2IfEsFyhG1YL}P`MA_0t>#fFlKux}CGcRj&vp9DI(P*CJ}Zm3mMW-$WXxIVOQRHfC>C%n{q{YvlbYT17uz-j zJl#Q5=&+D$SllebNB^`>E}{w%vN4QmDg`yZMOQps01T*|6|hcCi6-ibsJDp_A z&c~Qtt8zu~Sw;NTk|pMw3qsW~H8yf8f*w4KF4jE*`c!{!=2{^ML^*Ht+QNN`;QIP~{$6y|N#RvHd$_ME}+uFJ)?h{v>nn zkoRUuGSU|oNJ2DgBW9d$%yQFH4`>hrXI&gIy*(2dB;V4M471>3Vc0&P*hCaT?;6y` zyV0md14-Xm0Q$ajR>N+rO00*hVST3nDRlUigw4QsrXr3WJBM%0o0iDdy7FeKcwLz) zY=~Thnon$^8Yxxuj2-D>o>pUP?rzQ4c}T|VOOR60X5<1*QS8L^+Nm2$s9WDPlSI8_d*5>WOv+_*4xcX z9+!Y>Ib(p+8}QXWoek0KZOjgi|nHk?Nw;^(Mn5?*v* zcbcVGzfUzHP%Jh*K}N$B{his~_jh{9p>{&_5u@xh=Y`;5n5Alsx=j`9$qsoHK7$)p z?O*)VEHu{rXf`RIR4rK1~boo|$s SaJ*h06YXYdcc^$*Sh`FbuKQSi?RqK{)%jEYX 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%0DK zoKM?~kKk5IT?-5)<@bS>L)u3os1!_`5%$8n9rx2t=0ZNnEz2Ov+pNMC`nAg})iy07 zjaNSWaXeft^HN7+Z&oJs39b<$4Rejt(Y7#Y@y&#J)CyU|~?w&DMqZ0+s9*Gr! zjv<644qFtWU%-Iw3N3^voHzM2$VjzXBlIgFd<0g+O|N<&TnY_ZDyox~ zZ&fWM4⋙+fys99(^E$u|L6p_#O_GS1q3=uu{23 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

    x5;gm>VT!?oms0MMU~6EalVkD=m2ix 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 -#define AppName "OneScript engine" -#define FSFriendlyName "OneScript" -#define MainExe "TestApp.exe" -#define ArtifactRoot "..\built\tmp" - -#define VerMajor -#define VerMinor -#define VerRelease -#define Build - -#ifndef Suffix - #define Suffix "x86" -#endif - -#if Suffix == "x64" - #define Binaries="bin" -#else - #define Binaries="bin32" -#endif - -; duplicates ArtifactsRoot because ISPP can't resolve directives -#expr GetVersionComponents(ArtifactRoot + "\" + Binaries + "\ScriptEngine.dll",VerMajor,VerMinor,VerRelease,Build) - -[Setup] -AppName={#AppName} -AppVersion={#VerMajor}.{#VerMinor}.{#VerRelease} -AppPublisher=1Script Team (Open Source) -DefaultDirName="{pf}\{#FSFriendlyName}" -DefaultGroupName="{#FSFriendlyName}" -OutputBaseFilename="OneScript-{#VerMajor}.{#VerMinor}.{#VerRelease}-{#Suffix}" -DisableProgramGroupPage=yes -UninstallDisplayIcon="{app}\bin\{#MainExe}" -Compression=lzma2 -SolidCompression=yes -VersionInfoVersion={#VerMajor}.{#VerMinor}.{#VerRelease}.{#Build} -#if Suffix == "x64" - ArchitecturesInstallIn64BitMode="x64" -#endif - -[InstallDelete] -Type: files; Name: {app}\*.dll -Type: files; Name: {app}\*.json -Type: files; Name: {app}\*.exe -Type: files; Name: {app}\*.bat -Type: files; Name: {app}\*.cmd - -[Types] -Name: "normal"; Description: "Стандартная установка" -Name: "custom"; Description: "Выборочная установка"; Flags: iscustom - -[Components] -Name: "main"; Description: "Основные файлы"; Types: normal custom; Flags: fixed -Name: "stdlib"; Description: "Стандартная библиотека скриптов"; Types: normal custom; -Name: "testapp"; Description: "Тестовая консоль (TestApp)"; -Name: "docs"; Description: "Документация по свойствам и методам (синтакс-помощник)"; - -[Files] -Source: "{#ArtifactRoot}\{#Binaries}\oscript.exe"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\ScriptEngine.HostedScript.dll"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\ScriptEngine.dll"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\OneScript.DebugProtocol.dll"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\OneScript.StandardLibrary.dll"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\OneScript.DebugServices.dll"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\OneScript.Language.dll"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\DotNetZip.dll"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\Newtonsoft.Json.dll"; DestDir: "{app}\bin"; Components: main -Source: "{#ArtifactRoot}\{#Binaries}\oscript.cfg"; DestDir: "{app}\bin"; Components: main; Flags: onlyifdoesntexist - -#if Suffix == "x64" - Source: "{#ArtifactRoot}\{#Binaries}\ScriptEngine.NativeApi64.dll"; DestDir: "{app}\bin"; Components: main -#else - Source: "{#ArtifactRoot}\{#Binaries}\ScriptEngine.NativeApi32.dll"; DestDir: "{app}\bin"; Components: main -#endif - -Source: "{#ArtifactRoot}\examples\*"; DestDir: "{app}\examples"; Components: main - -; testapp -Source: "{#ArtifactRoot}\{#Binaries}\TestApp.exe"; DestDir: "{app}\bin"; Components: testapp -Source: "{#ArtifactRoot}\{#Binaries}\ICSharpCode.AvalonEdit.dll"; DestDir: "{app}\bin"; Components: testapp -Source: "{#ArtifactRoot}\{#Binaries}\System.*.dll"; DestDir: "{app}\bin"; Components: testapp - -; библиотека -Source: "{#ArtifactRoot}\lib\*"; DestDir: "{app}\lib"; Components: stdlib; Flags: recursesubdirs -Source: "{#ArtifactRoot}\{#Binaries}\*.bat"; DestDir: "{app}\bin"; Components: stdlib - -; документация -Source: "{#ArtifactRoot}\doc\*"; DestDir: "{app}\doc"; Components: docs; Flags: recursesubdirs - -Source: "dotNetFx40_Full_setup.exe"; DestDir: {tmp}; Flags: deleteafterinstall; Check: not IsRequiredDotNetDetected - -[Icons] -Name: "{group}\{#FSFriendlyName}"; Filename: "{app}\bin\{#MainExe}" - -[Registry] -Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}\bin;"; Check: NeedsAddPath(ExpandConstant('{app}\bin')) - -[Run] -Filename: {tmp}\dotNetFx40_Full_setup.exe; Parameters: "/q:a /c:""install /l /q"""; Check: not IsRequiredDotNetDetected; StatusMsg: Microsoft .NET Framework 4.0 is being installed. Please wait.. -Filename: "{app}\bin\{#MainExe}"; Description: "Launch application"; Components: testapp; Flags: postinstall nowait skipifsilent unchecked - -[Code] - -#IFDEF UNICODE - #DEFINE AW "W" -#ELSE - #DEFINE AW "A" -#ENDIF -type - INSTALLSTATE = Longint; -const - INSTALLSTATE_INVALIDARG = -2; // An invalid parameter was passed to the function. - INSTALLSTATE_UNKNOWN = -1; // The product is neither advertised or installed. - INSTALLSTATE_ADVERTISED = 1; // The product is advertised but not installed. - INSTALLSTATE_ABSENT = 2; // The product is installed for a different user. - INSTALLSTATE_DEFAULT = 5; // The product is installed for the current user. - - // Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.61030.0 (Update 4) - VC_2012_REDIST_MIN_UPD4_X86 = '{BD95A8CD-1D9F-35AD-981A-3E7925026EBB}'; - VC_2012_REDIST_MIN_UPD4_X64 = '{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}'; - // Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.61030.0 (Update 4) - VC_2012_REDIST_ADD_UPD4_X86 = '{B175520C-86A2-35A7-8619-86DC379688B9}'; - VC_2012_REDIST_ADD_UPD4_X64 = '{37B8F9C7-03FB-3253-8781-2517C99D7C00}'; - -function NeedsAddPath(Param: string): boolean; -var - OrigPath: string; -begin - if not RegQueryStringValue(HKEY_LOCAL_MACHINE,'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', OrigPath) - then begin - Result := True; - exit; - end; - // look for the path with leading and trailing semicolon - // Pos() returns 0 if not found - Result := Pos(';' + UpperCase(Param) + ';', ';' + UpperCase(OrigPath) + ';') = 0; - if Result = True then - Result := Pos(';' + UpperCase(Param) + '\;', ';' + UpperCase(OrigPath) + ';') = 0; -end; - -function IsDotNetDetected(version: string; service: cardinal): boolean; -// Indicates whether the specified version and service pack of the .NET Framework is installed. -// -// version -- Specify one of these strings for the required .NET Framework version: -// 'v1.1.4322' .NET Framework 1.1 -// 'v2.0.50727' .NET Framework 2.0 -// 'v3.0' .NET Framework 3.0 -// 'v3.5' .NET Framework 3.5 -// 'v4\Client' .NET Framework 4.0 Client Profile -// 'v4\Full' .NET Framework 4.0 Full Installation -// 'v4.5' .NET Framework 4.5 -// -// service -- Specify any non-negative integer for the required service pack level: -// 0 No service packs required -// 1, 2, etc. Service pack 1, 2, etc. required -var - key: string; - install, release, serviceCount: cardinal; - check45, success: boolean; -//var reqNetVer : string; -begin - // .NET 4.5 installs as update to .NET 4.0 Full - if version = 'v4.5' then begin - version := 'v4\Full'; - check45 := true; - end else - check45 := false; - - // installation key group for all .NET versions - key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version; - - // .NET 3.0 uses value InstallSuccess in subkey Setup - if Pos('v3.0', version) = 1 then begin - success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install); - end else begin - success := RegQueryDWordValue(HKLM, key, 'Install', install); - end; - - // .NET 4.0/4.5 uses value Servicing instead of SP - if Pos('v4', version) = 1 then begin - success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount); - end else begin - success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount); - end; - - // .NET 4.5 uses additional value Release - if check45 then begin - success := success and RegQueryDWordValue(HKLM, key, 'Release', release); - success := success and (release >= 378389); - end; - - result := success and (install = 1) and (serviceCount >= service); -end; - -function IsRequiredDotNetDetected(): Boolean; -begin - result := IsDotNetDetected('v4\Full', 0); -end; - -function InitializeSetup(): Boolean; -begin - if not IsDotNetDetected('v4\Full', 0) then begin - MsgBox('{#AppName} requires Microsoft .NET Framework 4.0 Client Profile.'#13#13 - 'The installer will attempt to install it', mbInformation, MB_OK); - end; - - result := true; -end; diff --git a/install/make-dockers.sh b/install/make-dockers.sh index 4450ad8aa..54521cb72 100755 --- a/install/make-dockers.sh +++ b/install/make-dockers.sh @@ -2,11 +2,5 @@ THISDIR=$(pwd) -cd $THISDIR/builders/deb -docker build -t oscript/onescript-builder:deb . - -cd $THISDIR/builders/rpm -docker build -t oscript/onescript-builder:rpm . - cd $THISDIR docker build -t oscript/onescript-builder:gcc -f $THISDIR/builders/nativeapi/Dockerfile .. From 27bab54d5adebc951d1d2c72f1482840215092ef Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 4 Nov 2025 13:04:30 +0300 Subject: [PATCH 114/191] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D0=BE=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=BE=D0=BA-=D0=BF=D0=BE=D1=8F=D1=81=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20package-loader.os?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/package-loader.os | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/install/package-loader.os b/install/package-loader.os index 176c3cfac..6cad5d28e 100644 --- a/install/package-loader.os +++ b/install/package-loader.os @@ -1,4 +1,7 @@ -// Пояснения по переменным даны в конце модуля +// Стандартный загрузчик библиотек, включаемый в дистрибутив OneScript +// Данный загрузчик используется, если библиотека не предоставляет свой, альтернативный загрузчик. +// Можно сказать, это загрузчик по-умолчанию. + Перем ПоказатьСообщенияЗагрузки; Перем ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей; From c3db3dc8fe1728984071c91a9271c808691e724b Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 4 Nov 2025 13:05:22 +0300 Subject: [PATCH 115/191] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D1=83=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/1Script.sln | 8 - src/ASPNETHandler/ASPNETHandler.cs | 313 ---------- src/ASPNETHandler/ASPNetApplicationHost.cs | 71 --- .../ASPNetNullApplicationHost.cs | 45 -- src/ASPNETHandler/AspEntryScriptSrc.cs | 29 - src/ASPNETHandler/AspNetNullEntryScriptSrc.cs | 26 - src/ASPNETHandler/DemoApp/Default.os | 57 -- src/ASPNETHandler/DemoApp/Default.ospt | 24 - src/ASPNETHandler/DemoApp/highlight.pack.js | 2 - src/ASPNETHandler/DemoApp/home.png | Bin 3390 -> 0 bytes src/ASPNETHandler/DemoApp/source.ospt | 25 - src/ASPNETHandler/DemoApp/styles/agate.css | 108 ---- .../DemoApp/styles/androidstudio.css | 66 --- .../DemoApp/styles/arduino-light.css | 88 --- src/ASPNETHandler/DemoApp/styles/arta.css | 73 --- src/ASPNETHandler/DemoApp/styles/ascetic.css | 45 -- .../DemoApp/styles/atelier-cave-dark.css | 83 --- .../DemoApp/styles/atelier-cave-light.css | 85 --- .../DemoApp/styles/atelier-dune-dark.css | 69 --- .../DemoApp/styles/atelier-dune-light.css | 69 --- .../DemoApp/styles/atelier-estuary-dark.css | 84 --- .../DemoApp/styles/atelier-estuary-light.css | 84 --- .../DemoApp/styles/atelier-forest-dark.css | 69 --- .../DemoApp/styles/atelier-forest-light.css | 69 --- .../DemoApp/styles/atelier-heath-dark.css | 69 --- .../DemoApp/styles/atelier-heath-light.css | 69 --- .../DemoApp/styles/atelier-lakeside-dark.css | 69 --- .../DemoApp/styles/atelier-lakeside-light.css | 69 --- .../DemoApp/styles/atelier-plateau-dark.css | 84 --- .../DemoApp/styles/atelier-plateau-light.css | 84 --- .../DemoApp/styles/atelier-savanna-dark.css | 84 --- .../DemoApp/styles/atelier-savanna-light.css | 84 --- .../DemoApp/styles/atelier-seaside-dark.css | 69 --- .../DemoApp/styles/atelier-seaside-light.css | 69 --- .../styles/atelier-sulphurpool-dark.css | 69 --- .../styles/atelier-sulphurpool-light.css | 69 --- .../DemoApp/styles/atom-one-dark.css | 96 --- .../DemoApp/styles/atom-one-light.css | 96 --- .../DemoApp/styles/brown-paper.css | 64 -- .../DemoApp/styles/brown-papersq.png | Bin 18198 -> 0 bytes .../DemoApp/styles/codepen-embed.css | 60 -- .../DemoApp/styles/color-brewer.css | 71 --- src/ASPNETHandler/DemoApp/styles/darcula.css | 77 --- src/ASPNETHandler/DemoApp/styles/dark.css | 63 -- src/ASPNETHandler/DemoApp/styles/darkula.css | 6 - src/ASPNETHandler/DemoApp/styles/default.css | 99 ---- src/ASPNETHandler/DemoApp/styles/docco.css | 97 --- src/ASPNETHandler/DemoApp/styles/dracula.css | 76 --- src/ASPNETHandler/DemoApp/styles/far.css | 71 --- .../DemoApp/styles/foundation.css | 88 --- .../DemoApp/styles/github-gist.css | 71 --- src/ASPNETHandler/DemoApp/styles/github.css | 99 ---- .../DemoApp/styles/googlecode.css | 89 --- .../DemoApp/styles/grayscale.css | 101 ---- .../DemoApp/styles/gruvbox-dark.css | 108 ---- .../DemoApp/styles/gruvbox-light.css | 108 ---- .../DemoApp/styles/hopscotch.css | 83 --- src/ASPNETHandler/DemoApp/styles/hybrid.css | 102 ---- src/ASPNETHandler/DemoApp/styles/idea.css | 97 --- src/ASPNETHandler/DemoApp/styles/ir-black.css | 73 --- .../DemoApp/styles/kimbie.dark.css | 74 --- .../DemoApp/styles/kimbie.light.css | 74 --- src/ASPNETHandler/DemoApp/styles/magula.css | 70 --- .../DemoApp/styles/mono-blue.css | 59 -- .../DemoApp/styles/monokai-sublime.css | 83 --- src/ASPNETHandler/DemoApp/styles/monokai.css | 70 --- src/ASPNETHandler/DemoApp/styles/obsidian.css | 88 --- src/ASPNETHandler/DemoApp/styles/ocean.css | 74 --- .../DemoApp/styles/paraiso-dark.css | 72 --- .../DemoApp/styles/paraiso-light.css | 72 --- src/ASPNETHandler/DemoApp/styles/pojoaque.css | 83 --- src/ASPNETHandler/DemoApp/styles/pojoaque.jpg | Bin 1186 -> 0 bytes .../DemoApp/styles/purebasic.css | 96 --- .../DemoApp/styles/qtcreator_dark.css | 83 --- .../DemoApp/styles/qtcreator_light.css | 83 --- .../DemoApp/styles/railscasts.css | 106 ---- src/ASPNETHandler/DemoApp/styles/rainbow.css | 85 --- src/ASPNETHandler/DemoApp/styles/routeros.css | 108 ---- .../DemoApp/styles/school-book.css | 72 --- .../DemoApp/styles/school-book.png | Bin 486 -> 0 bytes .../DemoApp/styles/solarized-dark.css | 84 --- .../DemoApp/styles/solarized-light.css | 84 --- src/ASPNETHandler/DemoApp/styles/sunburst.css | 102 ---- .../DemoApp/styles/tomorrow-night-blue.css | 75 --- .../DemoApp/styles/tomorrow-night-bright.css | 74 --- .../styles/tomorrow-night-eighties.css | 74 --- .../DemoApp/styles/tomorrow-night.css | 75 --- src/ASPNETHandler/DemoApp/styles/tomorrow.css | 72 --- src/ASPNETHandler/DemoApp/styles/vs.css | 68 --- src/ASPNETHandler/DemoApp/styles/vs2015.css | 115 ---- src/ASPNETHandler/DemoApp/styles/xcode.css | 93 --- src/ASPNETHandler/DemoApp/styles/xt256.css | 92 --- src/ASPNETHandler/DemoApp/styles/zenburn.css | 80 --- src/ASPNETHandler/DemoApp/viewsrc.jpg | Bin 44492 -> 0 bytes src/ASPNETHandler/DemoApp/web.config | 21 - src/ASPNETHandler/Dockerfile | 33 -- src/ASPNETHandler/HTTPServiceContext.cs | 53 -- src/ASPNETHandler/HTTPServiceRequest.cs | 208 ------- src/ASPNETHandler/HTTPServiceResponse.cs | 210 ------- src/ASPNETHandler/HTTPServices.csproj | 27 - src/ASPNETHandler/HttpMeans.cs | 36 -- src/ASPNETHandler/SessionState.cs | 36 -- src/ASPNETHandler/check-docker.sh | 3 - src/ASPNETHandler/nixconfig/Web.config | 16 - src/ASPNETHandler/nixconfig/apache2-site.conf | 46 -- src/Installer/BinaryContent.wxs | 46 -- src/Installer/DocumentsContent.wxs | 6 - src/Installer/ExamplesContent.wxs | 11 - src/Installer/Features.wxs | 33 -- src/Installer/Installer.wixproj | 105 ---- src/Installer/LibraryContent.wxs | 6 - src/Installer/Product.wxs | 49 -- src/Installer/installer_left.bmp | Bin 461814 -> 0 bytes src/Installer/mpl2_license.rtf | 550 ------------------ 114 files changed, 8410 deletions(-) delete mode 100644 src/ASPNETHandler/ASPNETHandler.cs delete mode 100644 src/ASPNETHandler/ASPNetApplicationHost.cs delete mode 100644 src/ASPNETHandler/ASPNetNullApplicationHost.cs delete mode 100644 src/ASPNETHandler/AspEntryScriptSrc.cs delete mode 100644 src/ASPNETHandler/AspNetNullEntryScriptSrc.cs delete mode 100644 src/ASPNETHandler/DemoApp/Default.os delete mode 100644 src/ASPNETHandler/DemoApp/Default.ospt delete mode 100644 src/ASPNETHandler/DemoApp/highlight.pack.js delete mode 100644 src/ASPNETHandler/DemoApp/home.png delete mode 100644 src/ASPNETHandler/DemoApp/source.ospt delete mode 100644 src/ASPNETHandler/DemoApp/styles/agate.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/androidstudio.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/arduino-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/arta.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/ascetic.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-cave-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-cave-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-dune-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-dune-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-estuary-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-estuary-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-forest-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-forest-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-heath-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-heath-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-lakeside-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-lakeside-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-plateau-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-plateau-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-savanna-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-savanna-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-seaside-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-seaside-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-sulphurpool-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atelier-sulphurpool-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atom-one-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/atom-one-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/brown-paper.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/brown-papersq.png delete mode 100644 src/ASPNETHandler/DemoApp/styles/codepen-embed.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/color-brewer.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/darcula.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/darkula.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/default.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/docco.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/dracula.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/far.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/foundation.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/github-gist.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/github.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/googlecode.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/grayscale.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/gruvbox-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/gruvbox-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/hopscotch.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/hybrid.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/idea.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/ir-black.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/kimbie.dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/kimbie.light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/magula.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/mono-blue.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/monokai-sublime.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/monokai.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/obsidian.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/ocean.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/paraiso-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/paraiso-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/pojoaque.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/pojoaque.jpg delete mode 100644 src/ASPNETHandler/DemoApp/styles/purebasic.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/qtcreator_dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/qtcreator_light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/railscasts.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/rainbow.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/routeros.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/school-book.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/school-book.png delete mode 100644 src/ASPNETHandler/DemoApp/styles/solarized-dark.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/solarized-light.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/sunburst.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/tomorrow-night-blue.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/tomorrow-night-bright.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/tomorrow-night-eighties.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/tomorrow-night.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/tomorrow.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/vs.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/vs2015.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/xcode.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/xt256.css delete mode 100644 src/ASPNETHandler/DemoApp/styles/zenburn.css delete mode 100644 src/ASPNETHandler/DemoApp/viewsrc.jpg delete mode 100644 src/ASPNETHandler/DemoApp/web.config delete mode 100644 src/ASPNETHandler/Dockerfile delete mode 100644 src/ASPNETHandler/HTTPServiceContext.cs delete mode 100644 src/ASPNETHandler/HTTPServiceRequest.cs delete mode 100644 src/ASPNETHandler/HTTPServiceResponse.cs delete mode 100644 src/ASPNETHandler/HTTPServices.csproj delete mode 100644 src/ASPNETHandler/HttpMeans.cs delete mode 100644 src/ASPNETHandler/SessionState.cs delete mode 100755 src/ASPNETHandler/check-docker.sh delete mode 100644 src/ASPNETHandler/nixconfig/Web.config delete mode 100644 src/ASPNETHandler/nixconfig/apache2-site.conf delete mode 100644 src/Installer/BinaryContent.wxs delete mode 100644 src/Installer/DocumentsContent.wxs delete mode 100644 src/Installer/ExamplesContent.wxs delete mode 100644 src/Installer/Features.wxs delete mode 100644 src/Installer/Installer.wixproj delete mode 100644 src/Installer/LibraryContent.wxs delete mode 100644 src/Installer/Product.wxs delete mode 100644 src/Installer/installer_left.bmp delete mode 100644 src/Installer/mpl2_license.rtf diff --git a/src/1Script.sln b/src/1Script.sln index 2cc56c55e..b6efc468b 100644 --- a/src/1Script.sln +++ b/src/1Script.sln @@ -24,8 +24,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution oscommon.targets = oscommon.targets EndProjectSection EndProject -Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Installer", "Installer\Installer.wixproj", "{BBE794A6-B159-422F-B655-B7F03F25F223}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Component", "Component\Component.csproj", "{B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VSCode.DebugAdapter", "VSCode.DebugAdapter\VSCode.DebugAdapter.csproj", "{C979F151-AA29-47E4-B020-3039BA0986D9}" @@ -126,12 +124,6 @@ Global {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Release|Any CPU.Build.0 = Release|Any CPU {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Release|x86.ActiveCfg = Release|x86 {2590E2BB-CC1F-4775-80ED-451F45C9A4F1}.Release|x86.Build.0 = Release|x86 - {BBE794A6-B159-422F-B655-B7F03F25F223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BBE794A6-B159-422F-B655-B7F03F25F223}.Debug|x86.ActiveCfg = Debug|x86 - {BBE794A6-B159-422F-B655-B7F03F25F223}.LinuxDebug|Any CPU.ActiveCfg = LinuxDebug|Any CPU - {BBE794A6-B159-422F-B655-B7F03F25F223}.LinuxDebug|x86.ActiveCfg = LinuxDebug|Any CPU - {BBE794A6-B159-422F-B655-B7F03F25F223}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BBE794A6-B159-422F-B655-B7F03F25F223}.Release|x86.ActiveCfg = Release|x86 {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Debug|Any CPU.Build.0 = Debug|Any CPU {B6C3C000-699B-4A2F-92D1-EEAEA9CFE2AB}.Debug|x86.ActiveCfg = Debug|Any CPU diff --git a/src/ASPNETHandler/ASPNETHandler.cs b/src/ASPNETHandler/ASPNETHandler.cs deleted file mode 100644 index 4832dea67..000000000 --- a/src/ASPNETHandler/ASPNETHandler.cs +++ /dev/null @@ -1,313 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.Collections.Generic; -using System.Web; -using System.Runtime.Caching; -using System.IO; -using ScriptEngine.Machine; -using ScriptEngine.Environment; -using ScriptEngine.HostedScript; - -using System.Runtime.CompilerServices; - -namespace OneScript.ASPNETHandler -{ - public class ASPNETHandler : IHttpHandler, System.Web.SessionState.IRequiresSessionState - { - HostedScriptEngine _hostedScript; - // Разрешает или запрещает кэширование исходников *.os В Linux должно быть false иначе после изменений исходника старая версия будет в кэше - // web.config -> -> - static bool _cachingEnabled; - // Список дополнительных сборок, которые надо приаттачить к движку. Могут быть разные расширения - // web.config -> -> Сделано так для простоты. Меньше настроек - дольше жизнь :) - static List _assembliesForAttaching; - - public bool IsReusable - { - // Разрешаем повторное использование и храним среду выполнения и контекст - get { return true; } - } - static ASPNETHandler() - { - _assembliesForAttaching = new List(); - - System.Collections.Specialized.NameValueCollection appSettings = System.Web.Configuration.WebConfigurationManager.AppSettings; - - TextWriter logWriter = OpenLog(appSettings); - - _cachingEnabled = (appSettings["cachingEnabled"] == "true"); - WriteToLog(logWriter, "Start assemblies loading."); - - foreach (string assemblyName in appSettings.AllKeys) - { - if (appSettings[assemblyName] == "attachAssembly") - { - try - { - _assembliesForAttaching.Add(System.Reflection.Assembly.Load(assemblyName)); - } - // TODO: Исправить - должно падать. Если конфиг сайта неработоспособен - сайт не должен быть работоспособен. - catch(Exception ex) - { - WriteToLog(logWriter, "Error loading assembly: " + assemblyName + " " + ex.ToString()); - if (appSettings["handlerLoadingPolicy"] == "strict") - throw; // Must fail! - } - } - } - - WriteToLog(logWriter, "Stop assemblies loading."); - CloseLog(logWriter); - } - - public ASPNETHandler() - { - System.Collections.Specialized.NameValueCollection appSettings = System.Web.Configuration.WebConfigurationManager.AppSettings; - - // Инициализируем логгирование, если надо - TextWriter logWriter = OpenLog(appSettings); - - WriteToLog(logWriter, "Start loading."); - - try - { - _hostedScript = new HostedScriptEngine(); - // метод настраивает внутренние переменные у SystemGlobalContext - if (appSettings["enableEcho"] == "true") - _hostedScript.SetGlobalEnvironment(new ASPNetApplicationHost(), new AspEntryScriptSrc(appSettings["startupScript"] ?? HttpContext.Current.Server.MapPath("~/web.config"))); - else - _hostedScript.SetGlobalEnvironment(new AspNetNullApplicationHost(), new AspNetNullEntryScriptSrc()); - - _hostedScript.Initialize(); - - - // Размещаем oscript.cfg вместе с web.config. Так наверное привычнее - _hostedScript.CustomConfig = appSettings["configFilePath"] ?? HttpContext.Current.Server.MapPath("~/oscript.cfg"); - _hostedScript.AttachAssembly(System.Reflection.Assembly.GetExecutingAssembly()); - // Аттачим доп сборки. По идее должны лежать в Bin - foreach (System.Reflection.Assembly assembly in _assembliesForAttaching) - { - try - { - _hostedScript.AttachAssembly(assembly); - } - catch (Exception ex) - { - // Возникла проблема при аттаче сборки - WriteToLog(logWriter, "Assembly attaching error: " + ex.Message); - if (appSettings["handlerLoadingPolicy"] == "strict") - throw; - } - } - - //Загружаем библиотечные скрипты aka общие модули - string libPath = appSettings["commonModulesPath"]; - - if (libPath != null) - { - libPath = HttpContext.Current.Server.MapPath(libPath); - - string[] files = System.IO.Directory.GetFiles(libPath, "*.os"); - - - foreach (string filePathName in files) - { - _hostedScript.InjectGlobalProperty(System.IO.Path.GetFileNameWithoutExtension(filePathName), ValueFactory.Create(), true); - } - - foreach (string filePathName in files) - { - try - { - ICodeSource src = _hostedScript.Loader.FromFile(filePathName); - - var compilerService = _hostedScript.GetCompilerService(); - var module = compilerService.Compile(src); - var loaded = _hostedScript.EngineInstance.LoadModuleImage(module); - var instance = (IValue)_hostedScript.EngineInstance.NewObject(loaded); - _hostedScript.EngineInstance.Environment.SetGlobalProperty(System.IO.Path.GetFileNameWithoutExtension(filePathName), instance); - } - catch (Exception ex) - { - // Возникла проблема при загрузке файла os, логгируем, если логгирование включено - WriteToLog(logWriter, "Error loading " + System.IO.Path.GetFileNameWithoutExtension(filePathName) + " : " + ex.Message); - if (appSettings["handlerLoadingPolicy"] == "strict") - throw; - } - } - } - - _hostedScript.EngineInstance.Environment.LoadMemory(MachineInstance.Current); - - } - catch (Exception ex) - { - // Возникла проблема при инициализации хэндлера - WriteToLog(logWriter, ex.Message); - - if (appSettings["handlerLoadingPolicy"] == "strict") - throw; // Must fail! - } - finally - { - WriteToLog(logWriter, "End loading."); - CloseLog(logWriter); - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - static TextWriter OpenLog(System.Collections.Specialized.NameValueCollection appSettings = null) - { - if (appSettings == null) - appSettings = System.Web.Configuration.WebConfigurationManager.AppSettings; - - string logPath = appSettings["logToPath"]; - - try - { - if (logPath != null) - { - logPath = HttpContext.Current.Server.MapPath(logPath); - string logFileName = Guid.NewGuid().ToString().Replace("-", "") + ".txt"; - return File.CreateText(Path.Combine(logPath, logFileName)); - } - else - return null; - } - catch - { - return null; - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - static void WriteToLog(TextWriter logWriter, string message) - { - if (logWriter == null) - return; - try - { - logWriter.WriteLine(message); - } - catch { /* что-то не так, ничего не делаем */ } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - static void CloseLog(TextWriter logWriter) - { - if (logWriter != null) - { - try - { - logWriter.Flush(); - logWriter.Close(); - } - catch - { /*что-то не так, ничего не делаем.*/ } - } - } - - public void ProcessRequest(HttpContext context) - { - CallScriptHandler(context); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static void ProduceResponse(HttpContext context, IRuntimeContextInstance runner) - { - int methodIndex = runner.FindMethod("ОбработкаВызоваHTTPСервиса"); - IValue result; - IValue[] args = new IValue[1]; - args[0] = new ScriptEngine.HostedScript.Library.HTTPService.HTTPServiceRequestImpl(context); - runner.CallAsFunction(methodIndex, args, out result); - - // Обрабатываем результаты - var response = (ScriptEngine.HostedScript.Library.HTTPService.HTTPServiceResponseImpl) result; - context.Response.StatusCode = response.StatusCode; - - if (response.Headers != null) - { - foreach (var ch in response.Headers) - { - context.Response.AddHeader(ch.Key.AsString(), ch.Value.AsString()); - } - } - - if (response.Reason != "") - { - context.Response.Status = response.Reason; - } - - if (response.BodyStream != null) - { - response.BodyStream.Seek(0, SeekOrigin.Begin); - response.BodyStream.CopyTo(context.Response.OutputStream); - } - - context.Response.Charset = response.ContentCharset; - context.Response.End(); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private IRuntimeContextInstance CreateServiceInstance(LoadedModule module) - { - var runner = _hostedScript.EngineInstance.NewObject(module); - return runner; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private LoadedModule LoadByteCode(string filePath) - { - var code = _hostedScript.EngineInstance.Loader.FromFile(filePath); - var compiler = _hostedScript.GetCompilerService(); - var byteCode = compiler.Compile(code); - var module = _hostedScript.EngineInstance.LoadModuleImage(byteCode); - return module; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void CallScriptHandler(HttpContext context) - { - _hostedScript.EngineInstance.Environment.LoadMemory(MachineInstance.Current); - #region Загружаем скрипт (файл .os) - // Кэшируем исходный файл, если файл изменился (изменили скрипт .os) загружаем заново - // В Linux под Mono не работает подписка на изменение файла. - LoadedModule module = null; - ObjectCache cache = MemoryCache.Default; - - if (_cachingEnabled) - { - module = cache[context.Request.PhysicalPath] as LoadedModule; - - if (module == null) - { - CacheItemPolicy policy = new CacheItemPolicy(); - - List filePaths = new List(); - filePaths.Add(context.Request.PhysicalPath); - policy.ChangeMonitors.Add(new HostFileChangeMonitor(filePaths)); - - // Загружаем файл и помещаем его в кэш - module = LoadByteCode(context.Request.PhysicalPath); - cache.Set(context.Request.PhysicalPath, module, policy); - } - } - else - { - module = LoadByteCode(context.Request.PhysicalPath); - } - - #endregion - - var runner = CreateServiceInstance(module); - - ProduceResponse(context, runner); - } - } -} diff --git a/src/ASPNETHandler/ASPNetApplicationHost.cs b/src/ASPNETHandler/ASPNetApplicationHost.cs deleted file mode 100644 index 8060222f3..000000000 --- a/src/ASPNETHandler/ASPNetApplicationHost.cs +++ /dev/null @@ -1,71 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ -using System; -using OneScript.StandardLibrary; -using ScriptEngine.HostedScript; -using ScriptEngine.HostedScript.Library; - -namespace OneScript.ASPNETHandler -{ - class ASPNetApplicationHost : IHostApplication - { - public void Echo(string str, MessageStatusEnum status = MessageStatusEnum.Ordinary) - { - if (status == MessageStatusEnum.Ordinary) - { - Console.WriteLine(str); - } - else - { - var oldColor = Console.ForegroundColor; - ConsoleColor newColor; - - switch (status) - { - case MessageStatusEnum.Information: - newColor = ConsoleColor.Green; - break; - case MessageStatusEnum.Attention: - newColor = ConsoleColor.Yellow; - break; - case MessageStatusEnum.Important: - case MessageStatusEnum.VeryImportant: - newColor = ConsoleColor.Red; - break; - default: - newColor = oldColor; - break; - } - - try - { - Console.ForegroundColor = newColor; - Console.WriteLine(str); - } - finally - { - Console.ForegroundColor = oldColor; - } - } - } - - public void ShowExceptionInfo(Exception exc) - { - throw new NotImplementedException(); - } - - public bool InputString(out string result, string prompt, int maxLen, bool multiline) - { - throw new NotImplementedException(); - } - - public string[] GetCommandLineArguments() - { - throw new NotImplementedException(); - } - } -} diff --git a/src/ASPNETHandler/ASPNetNullApplicationHost.cs b/src/ASPNETHandler/ASPNetNullApplicationHost.cs deleted file mode 100644 index aea1c5b0c..000000000 --- a/src/ASPNETHandler/ASPNetNullApplicationHost.cs +++ /dev/null @@ -1,45 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ -using System; -using ScriptEngine.HostedScript; -using ScriptEngine.HostedScript.Library; - -namespace OneScript.ASPNETHandler -{ - // Класс-заглушка для вывода Сообщить. - // Поведение как на сервере 1С - public class AspNetNullApplicationHost : IHostApplication - { - public AspNetNullApplicationHost() - { - - } - - public void Echo(string str, MessageStatusEnum status = MessageStatusEnum.Ordinary) - { - // Обработчик Сообщить, в HTTPСервисе ничего не делает, также поступаем и мы - } - - public void ShowExceptionInfo(Exception exc) - { - // Непонятно что это, наверное аналог системного диалога, на сервере нет никаких диалогов - } - - public bool InputString(out string result, string prompt, int maxLen, bool multiline) - { - // Мы не можем вводить никаких строк на сервере в 1С это недоступно - result = null; - return false; - } - - public string[] GetCommandLineArguments() - { - // У нас нет никаких аргументов командной строки - return new string[0]; // возвращаем массив из 0 аргументов т.к у нас их нет - } - } -} diff --git a/src/ASPNETHandler/AspEntryScriptSrc.cs b/src/ASPNETHandler/AspEntryScriptSrc.cs deleted file mode 100644 index 386a2def7..000000000 --- a/src/ASPNETHandler/AspEntryScriptSrc.cs +++ /dev/null @@ -1,29 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using ScriptEngine.Environment; - -namespace OneScript.ASPNETHandler -{ - class AspEntryScriptSrc : ICodeSource - { - string _sourceDescription; - - public string Code - { - get { return ""; } - } - public AspEntryScriptSrc(string sourceDescription) - { - _sourceDescription = sourceDescription; - } - public string SourceDescription - { - get { return _sourceDescription; } - } - } -} diff --git a/src/ASPNETHandler/AspNetNullEntryScriptSrc.cs b/src/ASPNETHandler/AspNetNullEntryScriptSrc.cs deleted file mode 100644 index aacc6e140..000000000 --- a/src/ASPNETHandler/AspNetNullEntryScriptSrc.cs +++ /dev/null @@ -1,26 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using ScriptEngine.Environment; - - -namespace OneScript.ASPNETHandler -{ - // Класс заглушка стартового скрипта. У нас нет стартового скрипта, поскольку это веб-приложение - class AspNetNullEntryScriptSrc : ICodeSource - { - public string Code - { - get { return ""; } - } - - public string SourceDescription - { - get { return ""; } - } - } -} diff --git a/src/ASPNETHandler/DemoApp/Default.os b/src/ASPNETHandler/DemoApp/Default.os deleted file mode 100644 index 4b851ab35..000000000 --- a/src/ASPNETHandler/DemoApp/Default.os +++ /dev/null @@ -1,57 +0,0 @@ - -// Это предопределенная функция - обработчик запроса HTTP-сервиса -// -Функция ОбработкаВызоваHTTPСервиса(Запрос) Экспорт - - Если Запрос.HTTPМетод = "GET" Тогда - - Возврат ПоказатьГлавнуюСтраницу(Запрос); - - Иначе - - Возврат ПоказатьИсходныйКод(Запрос); - - КонецЕсли; - -КонецФункции - -Функция ПоказатьГлавнуюСтраницу(Запрос) - - Контекст = Запрос.Контекст; - - ИмяФайлаШаблона = СтрЗаменить(Контекст.ФизическийПуть, "Default.os", "Default.ospt"); - СтрокаШаблон = ПолучитьМакетСтраницы(ИмяФайлаШаблона); - СтрокаТело = СтрЗаменить(СтрокаШаблон, "{ClientAddress}", Контекст.АдресКлиента); - - Ответ = Новый HTTPСервисОтвет(200); - Ответ.УстановитьТелоИзСтроки(СтрокаТело); - - Возврат Ответ; - -КонецФункции - -Функция ПоказатьИсходныйКод(Запрос) - - Контекст = Запрос.Контекст; - - СтрокаИсходныйКод = ПолучитьМакетСтраницы(Контекст.ФизическийПуть); - - ИмяФайлаШаблона = СтрЗаменить(Контекст.ФизическийПуть, "Default.os", "Source.ospt"); - СтрокаШаблон = ПолучитьМакетСтраницы(ИмяФайлаШаблона); - - СтрокаТело = СтрЗаменить(СтрокаШаблон, "{SourceCode}", СтрокаИсходныйКод); - - Ответ = Новый HTTPСервисОтвет(200); - Ответ.УстановитьТелоИзСтроки(СтрокаТело); - - Возврат Ответ; - -КонецФункции - -Функция ПолучитьМакетСтраницы(ПутьКФайлу) - - Документ = Новый ТекстовыйДокумент; - Документ.Прочитать(ПутьКФайлу); - Возврат Документ.ПолучитьТекст(); - -КонецФункции \ No newline at end of file diff --git a/src/ASPNETHandler/DemoApp/Default.ospt b/src/ASPNETHandler/DemoApp/Default.ospt deleted file mode 100644 index b70b1d892..000000000 --- a/src/ASPNETHandler/DemoApp/Default.ospt +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - OneScript HTTP Service Test Page - - - -

    -

    Привет ({ClientAddress})!

    -

    Эта страница создана HTTP сервисом OneScript.

    -
    -
    -
    -
    - - -
    -
    -
    - - - \ No newline at end of file diff --git a/src/ASPNETHandler/DemoApp/highlight.pack.js b/src/ASPNETHandler/DemoApp/highlight.pack.js deleted file mode 100644 index 2b63060fe..000000000 --- a/src/ASPNETHandler/DemoApp/highlight.pack.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! highlight.js v9.12.0 | BSD3 License | git.io/hljslicense */ -!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/&/g,"&").replace(//g,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return w(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||w(i))return i}function o(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset"}function u(e){s+=""}function c(e){("start"===e.event?o:u)(e.node)}for(var l=0,s="",f=[];e.length||r.length;){var g=i();if(s+=n(a.substring(l,g[0].offset)),l=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===l);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return s+n(a.substr(l))}function l(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map(function(n){return o(e,{v:null},n)})),e.cached_variants||e.eW&&[o(e)]||[e]}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var o={},u=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");o[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?u("keyword",a.k):x(a.k).forEach(function(e){u(e,a.k[e])}),a.k=o}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]),a.c=Array.prototype.concat.apply([],a.c.map(function(e){return l("self"===e?a:e)})),a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var c=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=c.length?t(c.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function l(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function p(e,n,t,r){var a=r?"":I.classPrefix,i='',i+n+o}function h(){var e,t,r,a;if(!E.k)return n(k);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(k);r;)a+=n(k.substring(t,r.index)),e=l(E,r),e?(B+=e[1],a+=p(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(k);return a+n(k.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!y[E.sL])return n(k);var t=e?f(E.sL,k,!0,x[E.sL]):g(k,E.sL.length?E.sL:void 0);return E.r>0&&(B+=t.r),e&&(x[E.sL]=t.top),p(t.language,t.value,!1,!0)}function b(){L+=null!=E.sL?d():h(),k=""}function v(e){L+=e.cN?p(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(k+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?k+=n:(t.eB&&(k+=n),b(),t.rB||t.eB||(k=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?k+=n:(a.rE||a.eE||(k+=n),b(),a.eE&&(k=n));do E.cN&&(L+=C),E.skip||(B+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"")+'"');return k+=n,n.length||1}var N=w(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var R,E=i||N,x={},L="";for(R=E;R!==N;R=R.parent)R.cN&&(L=p(R.cN,"",!0)+L);var k="",B=0;try{for(var M,j,O=0;;){if(E.t.lastIndex=O,M=E.t.exec(t),!M)break;j=m(t.substring(O,M.index),M[0]),O=M.index+j}for(m(t.substr(O)),R=E;R.parent;R=R.parent)R.cN&&(L+=C);return{r:B,value:L,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function g(e,t){t=t||I.languages||x(y);var r={r:0,value:n(e)},a=r;return t.filter(w).forEach(function(n){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function p(e){return I.tabReplace||I.useBR?e.replace(M,function(e,n){return I.useBR&&"\n"===e?"
    ":I.tabReplace?n.replace(/\t/g,I.tabReplace):""}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function d(e){var n,t,r,o,l,s=i(e);a(s)||(I.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):n=e,l=n.textContent,r=s?f(s,l,!0):g(l),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),l)),r.value=p(r.value),e.innerHTML=r.value,e.className=h(e.className,s,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function b(e){I=o(I,e)}function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll("pre code");E.forEach.call(e,d)}}function m(){addEventListener("DOMContentLoaded",v,!1),addEventListener("load",v,!1)}function N(n,t){var r=y[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function R(){return x(y)}function w(e){return e=(e||"").toLowerCase(),y[e]||y[L[e]]}var E=[],x=Object.keys,y={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="
    ",I={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=f,e.highlightAuto=g,e.fixMarkup=p,e.highlightBlock=d,e.configure=b,e.initHighlighting=v,e.initHighlightingOnLoad=m,e.registerLanguage=N,e.listLanguages=R,e.getLanguage=w,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("1c",function(s){var x="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",o="далее ",m="возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",t=o+m,l="загрузитьизфайла ",e="вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ",n=l+e,a="разделительстраниц разделительстрок символтабуляции ",d="ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ",i="acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ",c="wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",r=a+d+i+c,p="webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ",b="автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы ",w="виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ",h="авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ",j="использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ",z="отображениевремениэлементовпланировщика ",f="типфайлаформатированногодокумента ",k="обходрезультатазапроса типзаписизапроса ",u="видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ",y="доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ",N="типизмеренияпостроителязапроса ",g="видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ",E="wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson ",M="видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных ",_="важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения ",v="режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ",A="расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии ",C="кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip ",L="звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ",Z="направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ",$="httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений ",q="важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",B=p+b+w+h+j+z+f+k+u+y+N+g+E+M+_+v+A+C+L+Z+$+q,I="comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ",P="comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",T=I+P,W="null истина ложь неопределено",D=s.inherit(s.NM),F={cN:"string",b:'"|\\|',e:'"|$',c:[{b:'""'}]},G={b:"'",e:"'",eB:!0,eE:!0,c:[{cN:"number",b:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},H=s.inherit(s.CLCM),J={cN:"meta",l:x,b:"#|&",e:"$",k:{"meta-keyword":t+n},c:[H]},K={cN:"symbol",b:"~",e:";|:",eE:!0},O={cN:"function",l:x,v:[{b:"процедура|функция",e:"\\)",k:"процедура функция"},{b:"конецпроцедуры|конецфункции",k:"конецпроцедуры конецфункции"}],c:[{b:"\\(",e:"\\)",endsParent:!0,c:[{cN:"params",l:x,b:x,e:",",eE:!0,eW:!0,k:{keyword:"знач",literal:W},c:[D,F,G]},H]},s.inherit(s.TM,{b:x})]};return{cI:!0,l:x,k:{keyword:t,built_in:r,"class":B,type:T,literal:W},c:[J,O,H,K,D,F,G]}}); \ No newline at end of file diff --git a/src/ASPNETHandler/DemoApp/home.png b/src/ASPNETHandler/DemoApp/home.png deleted file mode 100644 index a1686704ceec1df3d8392b156aace2926bd51ef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3390 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 diff --git a/src/ASPNETHandler/DemoApp/source.ospt b/src/ASPNETHandler/DemoApp/source.ospt deleted file mode 100644 index 4d9ce78fb..000000000 --- a/src/ASPNETHandler/DemoApp/source.ospt +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - OneScript HTTP Service Test Page - - - - - - - - -
    -
    
    -            {SourceCode}
    -        
    - - - \ No newline at end of file diff --git a/src/ASPNETHandler/DemoApp/styles/agate.css b/src/ASPNETHandler/DemoApp/styles/agate.css deleted file mode 100644 index 8d64547c5..000000000 --- a/src/ASPNETHandler/DemoApp/styles/agate.css +++ /dev/null @@ -1,108 +0,0 @@ -/*! - * Agate by Taufik Nurrohman - * ---------------------------------------------------- - * - * #ade5fc - * #a2fca2 - * #c6b4f0 - * #d36363 - * #fcc28c - * #fc9b9b - * #ffa - * #fff - * #333 - * #62c8f3 - * #888 - * - */ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #333; - color: white; -} - -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-code, -.hljs-emphasis { - font-style: italic; -} - -.hljs-tag { - color: #62c8f3; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-selector-id, -.hljs-selector-class { - color: #ade5fc; -} - -.hljs-string, -.hljs-bullet { - color: #a2fca2; -} - -.hljs-type, -.hljs-title, -.hljs-section, -.hljs-attribute, -.hljs-quote, -.hljs-built_in, -.hljs-builtin-name { - color: #ffa; -} - -.hljs-number, -.hljs-symbol, -.hljs-bullet { - color: #d36363; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal { - color: #fcc28c; -} - -.hljs-comment, -.hljs-deletion, -.hljs-code { - color: #888; -} - -.hljs-regexp, -.hljs-link { - color: #c6b4f0; -} - -.hljs-meta { - color: #fc9b9b; -} - -.hljs-deletion { - background-color: #fc9b9b; - color: #333; -} - -.hljs-addition { - background-color: #a2fca2; - color: #333; -} - -.hljs a { - color: inherit; -} - -.hljs a:focus, -.hljs a:hover { - color: inherit; - text-decoration: underline; -} diff --git a/src/ASPNETHandler/DemoApp/styles/androidstudio.css b/src/ASPNETHandler/DemoApp/styles/androidstudio.css deleted file mode 100644 index bc8e473b5..000000000 --- a/src/ASPNETHandler/DemoApp/styles/androidstudio.css +++ /dev/null @@ -1,66 +0,0 @@ -/* -Date: 24 Fev 2015 -Author: Pedro Oliveira -*/ - -.hljs { - color: #a9b7c6; - background: #282b2e; - display: block; - overflow-x: auto; - padding: 0.5em; -} - -.hljs-number, -.hljs-literal, -.hljs-symbol, -.hljs-bullet { - color: #6897BB; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-deletion { - color: #cc7832; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-link { - color: #629755; -} - -.hljs-comment, -.hljs-quote { - color: #808080; -} - -.hljs-meta { - color: #bbb529; -} - -.hljs-string, -.hljs-attribute, -.hljs-addition { - color: #6A8759; -} - -.hljs-section, -.hljs-title, -.hljs-type { - color: #ffc66d; -} - -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #e8bf6a; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/arduino-light.css b/src/ASPNETHandler/DemoApp/styles/arduino-light.css deleted file mode 100644 index 4b8b7fd3c..000000000 --- a/src/ASPNETHandler/DemoApp/styles/arduino-light.css +++ /dev/null @@ -1,88 +0,0 @@ -/* - -Arduino® Light Theme - Stefania Mellai - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #FFFFFF; -} - -.hljs, -.hljs-subst { - color: #434f54; -} - -.hljs-keyword, -.hljs-attribute, -.hljs-selector-tag, -.hljs-doctag, -.hljs-name { - color: #00979D; -} - -.hljs-built_in, -.hljs-literal, -.hljs-bullet, -.hljs-code, -.hljs-addition { - color: #D35400; -} - -.hljs-regexp, -.hljs-symbol, -.hljs-variable, -.hljs-template-variable, -.hljs-link, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #00979D; -} - -.hljs-type, -.hljs-string, -.hljs-selector-id, -.hljs-selector-class, -.hljs-quote, -.hljs-template-tag, -.hljs-deletion { - color: #005C5F; -} - -.hljs-title, -.hljs-section { - color: #880000; - font-weight: bold; -} - -.hljs-comment { - color: rgba(149,165,166,.8); -} - -.hljs-meta-keyword { - color: #728E00; -} - -.hljs-meta { - color: #728E00; - color: #434f54; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-function { - color: #728E00; -} - -.hljs-number { - color: #8A7B52; -} diff --git a/src/ASPNETHandler/DemoApp/styles/arta.css b/src/ASPNETHandler/DemoApp/styles/arta.css deleted file mode 100644 index 75ef3a9e5..000000000 --- a/src/ASPNETHandler/DemoApp/styles/arta.css +++ /dev/null @@ -1,73 +0,0 @@ -/* -Date: 17.V.2011 -Author: pumbur -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #222; -} - -.hljs, -.hljs-subst { - color: #aaa; -} - -.hljs-section { - color: #fff; -} - -.hljs-comment, -.hljs-quote, -.hljs-meta { - color: #444; -} - -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-regexp { - color: #ffcc33; -} - -.hljs-number, -.hljs-addition { - color: #00cc66; -} - -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-template-variable, -.hljs-attribute, -.hljs-link { - color: #32aaee; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #6644aa; -} - -.hljs-title, -.hljs-variable, -.hljs-deletion, -.hljs-template-tag { - color: #bb1166; -} - -.hljs-section, -.hljs-doctag, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/ascetic.css b/src/ASPNETHandler/DemoApp/styles/ascetic.css deleted file mode 100644 index 48397e889..000000000 --- a/src/ASPNETHandler/DemoApp/styles/ascetic.css +++ /dev/null @@ -1,45 +0,0 @@ -/* - -Original style from softwaremaniacs.org (c) Ivan Sagalaev - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: white; - color: black; -} - -.hljs-string, -.hljs-variable, -.hljs-template-variable, -.hljs-symbol, -.hljs-bullet, -.hljs-section, -.hljs-addition, -.hljs-attribute, -.hljs-link { - color: #888; -} - -.hljs-comment, -.hljs-quote, -.hljs-meta, -.hljs-deletion { - color: #ccc; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-section, -.hljs-name, -.hljs-type, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-cave-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-cave-dark.css deleted file mode 100644 index 65428f3b1..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-cave-dark.css +++ /dev/null @@ -1,83 +0,0 @@ -/* Base16 Atelier Cave Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Cave Comment */ -.hljs-comment, -.hljs-quote { - color: #7e7887; -} - -/* Atelier-Cave Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-regexp, -.hljs-link, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #be4678; -} - -/* Atelier-Cave Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #aa573c; -} - -/* Atelier-Cave Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #2a9292; -} - -/* Atelier-Cave Blue */ -.hljs-title, -.hljs-section { - color: #576ddb; -} - -/* Atelier-Cave Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #955ae7; -} - -.hljs-deletion, -.hljs-addition { - color: #19171c; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #be4678; -} - -.hljs-addition { - background-color: #2a9292; -} - -.hljs { - display: block; - overflow-x: auto; - background: #19171c; - color: #8b8792; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-cave-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-cave-light.css deleted file mode 100644 index b419f9fd8..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-cave-light.css +++ /dev/null @@ -1,85 +0,0 @@ -/* Base16 Atelier Cave Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Cave Comment */ -.hljs-comment, -.hljs-quote { - color: #655f6d; -} - -/* Atelier-Cave Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #be4678; -} - -/* Atelier-Cave Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #aa573c; -} - -/* Atelier-Cave Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #2a9292; -} - -/* Atelier-Cave Blue */ -.hljs-title, -.hljs-section { - color: #576ddb; -} - -/* Atelier-Cave Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #955ae7; -} - -.hljs-deletion, -.hljs-addition { - color: #19171c; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #be4678; -} - -.hljs-addition { - background-color: #2a9292; -} - -.hljs { - display: block; - overflow-x: auto; - background: #efecf4; - color: #585260; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-dune-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-dune-dark.css deleted file mode 100644 index 1684f5225..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-dune-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Dune Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Dune Comment */ -.hljs-comment, -.hljs-quote { - color: #999580; -} - -/* Atelier-Dune Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d73737; -} - -/* Atelier-Dune Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b65611; -} - -/* Atelier-Dune Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #60ac39; -} - -/* Atelier-Dune Blue */ -.hljs-title, -.hljs-section { - color: #6684e1; -} - -/* Atelier-Dune Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #b854d4; -} - -.hljs { - display: block; - overflow-x: auto; - background: #20201d; - color: #a6a28c; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-dune-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-dune-light.css deleted file mode 100644 index 547719de8..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-dune-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Dune Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Dune Comment */ -.hljs-comment, -.hljs-quote { - color: #7d7a68; -} - -/* Atelier-Dune Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d73737; -} - -/* Atelier-Dune Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b65611; -} - -/* Atelier-Dune Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #60ac39; -} - -/* Atelier-Dune Blue */ -.hljs-title, -.hljs-section { - color: #6684e1; -} - -/* Atelier-Dune Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #b854d4; -} - -.hljs { - display: block; - overflow-x: auto; - background: #fefbec; - color: #6e6b5e; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-estuary-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-estuary-dark.css deleted file mode 100644 index a5e507187..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-estuary-dark.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Estuary Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Estuary Comment */ -.hljs-comment, -.hljs-quote { - color: #878573; -} - -/* Atelier-Estuary Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ba6236; -} - -/* Atelier-Estuary Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #ae7313; -} - -/* Atelier-Estuary Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #7d9726; -} - -/* Atelier-Estuary Blue */ -.hljs-title, -.hljs-section { - color: #36a166; -} - -/* Atelier-Estuary Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #5f9182; -} - -.hljs-deletion, -.hljs-addition { - color: #22221b; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #ba6236; -} - -.hljs-addition { - background-color: #7d9726; -} - -.hljs { - display: block; - overflow-x: auto; - background: #22221b; - color: #929181; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-estuary-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-estuary-light.css deleted file mode 100644 index 1daee5d98..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-estuary-light.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Estuary Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Estuary Comment */ -.hljs-comment, -.hljs-quote { - color: #6c6b5a; -} - -/* Atelier-Estuary Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ba6236; -} - -/* Atelier-Estuary Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #ae7313; -} - -/* Atelier-Estuary Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #7d9726; -} - -/* Atelier-Estuary Blue */ -.hljs-title, -.hljs-section { - color: #36a166; -} - -/* Atelier-Estuary Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #5f9182; -} - -.hljs-deletion, -.hljs-addition { - color: #22221b; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #ba6236; -} - -.hljs-addition { - background-color: #7d9726; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f4f3ec; - color: #5f5e4e; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-forest-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-forest-dark.css deleted file mode 100644 index 0ef4fae31..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-forest-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Forest Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Forest Comment */ -.hljs-comment, -.hljs-quote { - color: #9c9491; -} - -/* Atelier-Forest Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #f22c40; -} - -/* Atelier-Forest Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #df5320; -} - -/* Atelier-Forest Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #7b9726; -} - -/* Atelier-Forest Blue */ -.hljs-title, -.hljs-section { - color: #407ee7; -} - -/* Atelier-Forest Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6666ea; -} - -.hljs { - display: block; - overflow-x: auto; - background: #1b1918; - color: #a8a19f; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-forest-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-forest-light.css deleted file mode 100644 index bbedde18a..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-forest-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Forest Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Forest Comment */ -.hljs-comment, -.hljs-quote { - color: #766e6b; -} - -/* Atelier-Forest Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #f22c40; -} - -/* Atelier-Forest Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #df5320; -} - -/* Atelier-Forest Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #7b9726; -} - -/* Atelier-Forest Blue */ -.hljs-title, -.hljs-section { - color: #407ee7; -} - -/* Atelier-Forest Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6666ea; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f1efee; - color: #68615e; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-heath-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-heath-dark.css deleted file mode 100644 index fe01ff721..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-heath-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Heath Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Heath Comment */ -.hljs-comment, -.hljs-quote { - color: #9e8f9e; -} - -/* Atelier-Heath Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ca402b; -} - -/* Atelier-Heath Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #a65926; -} - -/* Atelier-Heath Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #918b3b; -} - -/* Atelier-Heath Blue */ -.hljs-title, -.hljs-section { - color: #516aec; -} - -/* Atelier-Heath Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #7b59c0; -} - -.hljs { - display: block; - overflow-x: auto; - background: #1b181b; - color: #ab9bab; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-heath-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-heath-light.css deleted file mode 100644 index ee43786d1..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-heath-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Heath Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Heath Comment */ -.hljs-comment, -.hljs-quote { - color: #776977; -} - -/* Atelier-Heath Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ca402b; -} - -/* Atelier-Heath Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #a65926; -} - -/* Atelier-Heath Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #918b3b; -} - -/* Atelier-Heath Blue */ -.hljs-title, -.hljs-section { - color: #516aec; -} - -/* Atelier-Heath Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #7b59c0; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f7f3f7; - color: #695d69; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-lakeside-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-lakeside-dark.css deleted file mode 100644 index a937d3bf5..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-lakeside-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Lakeside Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Lakeside Comment */ -.hljs-comment, -.hljs-quote { - color: #7195a8; -} - -/* Atelier-Lakeside Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d22d72; -} - -/* Atelier-Lakeside Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #935c25; -} - -/* Atelier-Lakeside Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #568c3b; -} - -/* Atelier-Lakeside Blue */ -.hljs-title, -.hljs-section { - color: #257fad; -} - -/* Atelier-Lakeside Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6b6bb8; -} - -.hljs { - display: block; - overflow-x: auto; - background: #161b1d; - color: #7ea2b4; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-lakeside-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-lakeside-light.css deleted file mode 100644 index 6c7e8f9ef..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-lakeside-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Lakeside Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Lakeside Comment */ -.hljs-comment, -.hljs-quote { - color: #5a7b8c; -} - -/* Atelier-Lakeside Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d22d72; -} - -/* Atelier-Lakeside Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #935c25; -} - -/* Atelier-Lakeside Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #568c3b; -} - -/* Atelier-Lakeside Blue */ -.hljs-title, -.hljs-section { - color: #257fad; -} - -/* Atelier-Lakeside Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6b6bb8; -} - -.hljs { - display: block; - overflow-x: auto; - background: #ebf8ff; - color: #516d7b; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-plateau-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-plateau-dark.css deleted file mode 100644 index 3bb052693..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-plateau-dark.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Plateau Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Plateau Comment */ -.hljs-comment, -.hljs-quote { - color: #7e7777; -} - -/* Atelier-Plateau Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ca4949; -} - -/* Atelier-Plateau Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b45a3c; -} - -/* Atelier-Plateau Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #4b8b8b; -} - -/* Atelier-Plateau Blue */ -.hljs-title, -.hljs-section { - color: #7272ca; -} - -/* Atelier-Plateau Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #8464c4; -} - -.hljs-deletion, -.hljs-addition { - color: #1b1818; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #ca4949; -} - -.hljs-addition { - background-color: #4b8b8b; -} - -.hljs { - display: block; - overflow-x: auto; - background: #1b1818; - color: #8a8585; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-plateau-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-plateau-light.css deleted file mode 100644 index 5f0222bec..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-plateau-light.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Plateau Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Plateau Comment */ -.hljs-comment, -.hljs-quote { - color: #655d5d; -} - -/* Atelier-Plateau Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #ca4949; -} - -/* Atelier-Plateau Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b45a3c; -} - -/* Atelier-Plateau Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #4b8b8b; -} - -/* Atelier-Plateau Blue */ -.hljs-title, -.hljs-section { - color: #7272ca; -} - -/* Atelier-Plateau Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #8464c4; -} - -.hljs-deletion, -.hljs-addition { - color: #1b1818; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #ca4949; -} - -.hljs-addition { - background-color: #4b8b8b; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f4ecec; - color: #585050; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-savanna-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-savanna-dark.css deleted file mode 100644 index 38f831431..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-savanna-dark.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Savanna Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Savanna Comment */ -.hljs-comment, -.hljs-quote { - color: #78877d; -} - -/* Atelier-Savanna Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #b16139; -} - -/* Atelier-Savanna Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #9f713c; -} - -/* Atelier-Savanna Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #489963; -} - -/* Atelier-Savanna Blue */ -.hljs-title, -.hljs-section { - color: #478c90; -} - -/* Atelier-Savanna Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #55859b; -} - -.hljs-deletion, -.hljs-addition { - color: #171c19; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #b16139; -} - -.hljs-addition { - background-color: #489963; -} - -.hljs { - display: block; - overflow-x: auto; - background: #171c19; - color: #87928a; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-savanna-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-savanna-light.css deleted file mode 100644 index 1ccd7c685..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-savanna-light.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Base16 Atelier Savanna Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Savanna Comment */ -.hljs-comment, -.hljs-quote { - color: #5f6d64; -} - -/* Atelier-Savanna Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #b16139; -} - -/* Atelier-Savanna Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #9f713c; -} - -/* Atelier-Savanna Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #489963; -} - -/* Atelier-Savanna Blue */ -.hljs-title, -.hljs-section { - color: #478c90; -} - -/* Atelier-Savanna Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #55859b; -} - -.hljs-deletion, -.hljs-addition { - color: #171c19; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #b16139; -} - -.hljs-addition { - background-color: #489963; -} - -.hljs { - display: block; - overflow-x: auto; - background: #ecf4ee; - color: #526057; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-seaside-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-seaside-dark.css deleted file mode 100644 index df29949c6..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-seaside-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Seaside Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Seaside Comment */ -.hljs-comment, -.hljs-quote { - color: #809980; -} - -/* Atelier-Seaside Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #e6193c; -} - -/* Atelier-Seaside Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #87711d; -} - -/* Atelier-Seaside Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #29a329; -} - -/* Atelier-Seaside Blue */ -.hljs-title, -.hljs-section { - color: #3d62f5; -} - -/* Atelier-Seaside Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #ad2bee; -} - -.hljs { - display: block; - overflow-x: auto; - background: #131513; - color: #8ca68c; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-seaside-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-seaside-light.css deleted file mode 100644 index 9d960f29f..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-seaside-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Seaside Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Seaside Comment */ -.hljs-comment, -.hljs-quote { - color: #687d68; -} - -/* Atelier-Seaside Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #e6193c; -} - -/* Atelier-Seaside Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #87711d; -} - -/* Atelier-Seaside Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #29a329; -} - -/* Atelier-Seaside Blue */ -.hljs-title, -.hljs-section { - color: #3d62f5; -} - -/* Atelier-Seaside Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #ad2bee; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f4fbf4; - color: #5e6e5e; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-sulphurpool-dark.css b/src/ASPNETHandler/DemoApp/styles/atelier-sulphurpool-dark.css deleted file mode 100644 index c2ab7938d..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-sulphurpool-dark.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Sulphurpool Dark - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Sulphurpool Comment */ -.hljs-comment, -.hljs-quote { - color: #898ea4; -} - -/* Atelier-Sulphurpool Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #c94922; -} - -/* Atelier-Sulphurpool Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #c76b29; -} - -/* Atelier-Sulphurpool Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #ac9739; -} - -/* Atelier-Sulphurpool Blue */ -.hljs-title, -.hljs-section { - color: #3d8fd1; -} - -/* Atelier-Sulphurpool Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6679cc; -} - -.hljs { - display: block; - overflow-x: auto; - background: #202746; - color: #979db4; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atelier-sulphurpool-light.css b/src/ASPNETHandler/DemoApp/styles/atelier-sulphurpool-light.css deleted file mode 100644 index 96c47d086..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atelier-sulphurpool-light.css +++ /dev/null @@ -1,69 +0,0 @@ -/* Base16 Atelier Sulphurpool Light - Theme */ -/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ -/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ - -/* Atelier-Sulphurpool Comment */ -.hljs-comment, -.hljs-quote { - color: #6b7394; -} - -/* Atelier-Sulphurpool Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #c94922; -} - -/* Atelier-Sulphurpool Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #c76b29; -} - -/* Atelier-Sulphurpool Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #ac9739; -} - -/* Atelier-Sulphurpool Blue */ -.hljs-title, -.hljs-section { - color: #3d8fd1; -} - -/* Atelier-Sulphurpool Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #6679cc; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f5f7ff; - color: #5e6687; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atom-one-dark.css b/src/ASPNETHandler/DemoApp/styles/atom-one-dark.css deleted file mode 100644 index 1616aafe3..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atom-one-dark.css +++ /dev/null @@ -1,96 +0,0 @@ -/* - -Atom One Dark by Daniel Gamage -Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax - -base: #282c34 -mono-1: #abb2bf -mono-2: #818896 -mono-3: #5c6370 -hue-1: #56b6c2 -hue-2: #61aeee -hue-3: #c678dd -hue-4: #98c379 -hue-5: #e06c75 -hue-5-2: #be5046 -hue-6: #d19a66 -hue-6-2: #e6c07b - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #abb2bf; - background: #282c34; -} - -.hljs-comment, -.hljs-quote { - color: #5c6370; - font-style: italic; -} - -.hljs-doctag, -.hljs-keyword, -.hljs-formula { - color: #c678dd; -} - -.hljs-section, -.hljs-name, -.hljs-selector-tag, -.hljs-deletion, -.hljs-subst { - color: #e06c75; -} - -.hljs-literal { - color: #56b6c2; -} - -.hljs-string, -.hljs-regexp, -.hljs-addition, -.hljs-attribute, -.hljs-meta-string { - color: #98c379; -} - -.hljs-built_in, -.hljs-class .hljs-title { - color: #e6c07b; -} - -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-type, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-number { - color: #d19a66; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-meta, -.hljs-selector-id, -.hljs-title { - color: #61aeee; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/src/ASPNETHandler/DemoApp/styles/atom-one-light.css b/src/ASPNETHandler/DemoApp/styles/atom-one-light.css deleted file mode 100644 index d5bd1d2a9..000000000 --- a/src/ASPNETHandler/DemoApp/styles/atom-one-light.css +++ /dev/null @@ -1,96 +0,0 @@ -/* - -Atom One Light by Daniel Gamage -Original One Light Syntax theme from https://github.com/atom/one-light-syntax - -base: #fafafa -mono-1: #383a42 -mono-2: #686b77 -mono-3: #a0a1a7 -hue-1: #0184bb -hue-2: #4078f2 -hue-3: #a626a4 -hue-4: #50a14f -hue-5: #e45649 -hue-5-2: #c91243 -hue-6: #986801 -hue-6-2: #c18401 - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #383a42; - background: #fafafa; -} - -.hljs-comment, -.hljs-quote { - color: #a0a1a7; - font-style: italic; -} - -.hljs-doctag, -.hljs-keyword, -.hljs-formula { - color: #a626a4; -} - -.hljs-section, -.hljs-name, -.hljs-selector-tag, -.hljs-deletion, -.hljs-subst { - color: #e45649; -} - -.hljs-literal { - color: #0184bb; -} - -.hljs-string, -.hljs-regexp, -.hljs-addition, -.hljs-attribute, -.hljs-meta-string { - color: #50a14f; -} - -.hljs-built_in, -.hljs-class .hljs-title { - color: #c18401; -} - -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-type, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-number { - color: #986801; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-meta, -.hljs-selector-id, -.hljs-title { - color: #4078f2; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/src/ASPNETHandler/DemoApp/styles/brown-paper.css b/src/ASPNETHandler/DemoApp/styles/brown-paper.css deleted file mode 100644 index f0197b924..000000000 --- a/src/ASPNETHandler/DemoApp/styles/brown-paper.css +++ /dev/null @@ -1,64 +0,0 @@ -/* - -Brown Paper style from goldblog.com.ua (c) Zaripov Yura - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background:#b7a68e url(./brown-papersq.png); -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal { - color:#005599; - font-weight:bold; -} - -.hljs, -.hljs-subst { - color: #363c69; -} - -.hljs-string, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-attribute, -.hljs-symbol, -.hljs-bullet, -.hljs-built_in, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable, -.hljs-link, -.hljs-name { - color: #2c009f; -} - -.hljs-comment, -.hljs-quote, -.hljs-meta, -.hljs-deletion { - color: #802022; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/brown-papersq.png b/src/ASPNETHandler/DemoApp/styles/brown-papersq.png deleted file mode 100644 index 3813903dbf9fa7b1fb5bd11d9534c06667d9056f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18198 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
    G3S-EN>9CM!{YB*|;6wg-K3V?)eR((z#1 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 diff --git a/src/ASPNETHandler/DemoApp/styles/codepen-embed.css b/src/ASPNETHandler/DemoApp/styles/codepen-embed.css deleted file mode 100644 index 195c4a078..000000000 --- a/src/ASPNETHandler/DemoApp/styles/codepen-embed.css +++ /dev/null @@ -1,60 +0,0 @@ -/* - codepen.io Embed Theme - Author: Justin Perry - Original theme - https://github.com/chriskempson/tomorrow-theme -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #222; - color: #fff; -} - -.hljs-comment, -.hljs-quote { - color: #777; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-regexp, -.hljs-meta, -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-params, -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-deletion { - color: #ab875d; -} - -.hljs-section, -.hljs-title, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-type, -.hljs-attribute { - color: #9b869b; -} - -.hljs-string, -.hljs-keyword, -.hljs-selector-tag, -.hljs-addition { - color: #8f9c6c; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/color-brewer.css b/src/ASPNETHandler/DemoApp/styles/color-brewer.css deleted file mode 100644 index 7934d986a..000000000 --- a/src/ASPNETHandler/DemoApp/styles/color-brewer.css +++ /dev/null @@ -1,71 +0,0 @@ -/* - -Colorbrewer theme -Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock -Ported by Fabrício Tavares de Oliveira - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fff; -} - -.hljs, -.hljs-subst { - color: #000; -} - -.hljs-string, -.hljs-meta, -.hljs-symbol, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition { - color: #756bb1; -} - -.hljs-comment, -.hljs-quote { - color: #636363; -} - -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-bullet, -.hljs-link { - color: #31a354; -} - -.hljs-deletion, -.hljs-variable { - color: #88f; -} - - - -.hljs-keyword, -.hljs-selector-tag, -.hljs-title, -.hljs-section, -.hljs-built_in, -.hljs-doctag, -.hljs-type, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-strong { - color: #3182bd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-attribute { - color: #e6550d; -} diff --git a/src/ASPNETHandler/DemoApp/styles/darcula.css b/src/ASPNETHandler/DemoApp/styles/darcula.css deleted file mode 100644 index be182d0b5..000000000 --- a/src/ASPNETHandler/DemoApp/styles/darcula.css +++ /dev/null @@ -1,77 +0,0 @@ -/* - -Darcula color scheme from the JetBrains family of IDEs - -*/ - - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #2b2b2b; -} - -.hljs { - color: #bababa; -} - -.hljs-strong, -.hljs-emphasis { - color: #a8a8a2; -} - -.hljs-bullet, -.hljs-quote, -.hljs-link, -.hljs-number, -.hljs-regexp, -.hljs-literal { - color: #6896ba; -} - -.hljs-code, -.hljs-selector-class { - color: #a6e22e; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-section, -.hljs-attribute, -.hljs-name, -.hljs-variable { - color: #cb7832; -} - -.hljs-params { - color: #b9b9b9; -} - -.hljs-string { - color: #6a8759; -} - -.hljs-subst, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-symbol, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition { - color: #e0c46c; -} - -.hljs-comment, -.hljs-deletion, -.hljs-meta { - color: #7f7f7f; -} diff --git a/src/ASPNETHandler/DemoApp/styles/dark.css b/src/ASPNETHandler/DemoApp/styles/dark.css deleted file mode 100644 index b4724f5f5..000000000 --- a/src/ASPNETHandler/DemoApp/styles/dark.css +++ /dev/null @@ -1,63 +0,0 @@ -/* - -Dark style from softwaremaniacs.org (c) Ivan Sagalaev - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #444; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-section, -.hljs-link { - color: white; -} - -.hljs, -.hljs-subst { - color: #ddd; -} - -.hljs-string, -.hljs-title, -.hljs-name, -.hljs-type, -.hljs-attribute, -.hljs-symbol, -.hljs-bullet, -.hljs-built_in, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #d88; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion, -.hljs-meta { - color: #777; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-title, -.hljs-section, -.hljs-doctag, -.hljs-type, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/darkula.css b/src/ASPNETHandler/DemoApp/styles/darkula.css deleted file mode 100644 index f4646c3c5..000000000 --- a/src/ASPNETHandler/DemoApp/styles/darkula.css +++ /dev/null @@ -1,6 +0,0 @@ -/* - Deprecated due to a typo in the name and left here for compatibility purpose only. - Please use darcula.css instead. -*/ - -@import url('darcula.css'); diff --git a/src/ASPNETHandler/DemoApp/styles/default.css b/src/ASPNETHandler/DemoApp/styles/default.css deleted file mode 100644 index f1bfade31..000000000 --- a/src/ASPNETHandler/DemoApp/styles/default.css +++ /dev/null @@ -1,99 +0,0 @@ -/* - -Original highlight.js style (c) Ivan Sagalaev - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #F0F0F0; -} - - -/* Base color: saturation 0; */ - -.hljs, -.hljs-subst { - color: #444; -} - -.hljs-comment { - color: #888888; -} - -.hljs-keyword, -.hljs-attribute, -.hljs-selector-tag, -.hljs-meta-keyword, -.hljs-doctag, -.hljs-name { - font-weight: bold; -} - - -/* User color: hue: 0 */ - -.hljs-type, -.hljs-string, -.hljs-number, -.hljs-selector-id, -.hljs-selector-class, -.hljs-quote, -.hljs-template-tag, -.hljs-deletion { - color: #880000; -} - -.hljs-title, -.hljs-section { - color: #880000; - font-weight: bold; -} - -.hljs-regexp, -.hljs-symbol, -.hljs-variable, -.hljs-template-variable, -.hljs-link, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #BC6060; -} - - -/* Language color: hue: 90; */ - -.hljs-literal { - color: #78A960; -} - -.hljs-built_in, -.hljs-bullet, -.hljs-code, -.hljs-addition { - color: #397300; -} - - -/* Meta color: hue: 200 */ - -.hljs-meta { - color: #1f7199; -} - -.hljs-meta-string { - color: #4d99bf; -} - - -/* Misc effects */ - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/docco.css b/src/ASPNETHandler/DemoApp/styles/docco.css deleted file mode 100644 index db366be37..000000000 --- a/src/ASPNETHandler/DemoApp/styles/docco.css +++ /dev/null @@ -1,97 +0,0 @@ -/* -Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #000; - background: #f8f8ff; -} - -.hljs-comment, -.hljs-quote { - color: #408080; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-subst { - color: #954121; -} - -.hljs-number { - color: #40a070; -} - -.hljs-string, -.hljs-doctag { - color: #219161; -} - -.hljs-selector-id, -.hljs-selector-class, -.hljs-section, -.hljs-type { - color: #19469d; -} - -.hljs-params { - color: #00f; -} - -.hljs-title { - color: #458; - font-weight: bold; -} - -.hljs-tag, -.hljs-name, -.hljs-attribute { - color: #000080; - font-weight: normal; -} - -.hljs-variable, -.hljs-template-variable { - color: #008080; -} - -.hljs-regexp, -.hljs-link { - color: #b68; -} - -.hljs-symbol, -.hljs-bullet { - color: #990073; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #0086b3; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - background: #fdd; -} - -.hljs-addition { - background: #dfd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/dracula.css b/src/ASPNETHandler/DemoApp/styles/dracula.css deleted file mode 100644 index d591db680..000000000 --- a/src/ASPNETHandler/DemoApp/styles/dracula.css +++ /dev/null @@ -1,76 +0,0 @@ -/* - -Dracula Theme v1.2.0 - -https://github.com/zenorocha/dracula-theme - -Copyright 2015, All rights reserved - -Code licensed under the MIT license -http://zenorocha.mit-license.org - -@author Éverton Ribeiro -@author Zeno Rocha - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #282a36; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-section, -.hljs-link { - color: #8be9fd; -} - -.hljs-function .hljs-keyword { - color: #ff79c6; -} - -.hljs, -.hljs-subst { - color: #f8f8f2; -} - -.hljs-string, -.hljs-title, -.hljs-name, -.hljs-type, -.hljs-attribute, -.hljs-symbol, -.hljs-bullet, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #f1fa8c; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion, -.hljs-meta { - color: #6272a4; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-title, -.hljs-section, -.hljs-doctag, -.hljs-type, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/far.css b/src/ASPNETHandler/DemoApp/styles/far.css deleted file mode 100644 index 2b3f87b56..000000000 --- a/src/ASPNETHandler/DemoApp/styles/far.css +++ /dev/null @@ -1,71 +0,0 @@ -/* - -FAR Style (c) MajestiC - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #000080; -} - -.hljs, -.hljs-subst { - color: #0ff; -} - -.hljs-string, -.hljs-attribute, -.hljs-symbol, -.hljs-bullet, -.hljs-built_in, -.hljs-builtin-name, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition { - color: #ff0; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-section, -.hljs-type, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-variable { - color: #fff; -} - -.hljs-comment, -.hljs-quote, -.hljs-doctag, -.hljs-deletion { - color: #888; -} - -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-link { - color: #0f0; -} - -.hljs-meta { - color: #008080; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-title, -.hljs-section, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/foundation.css b/src/ASPNETHandler/DemoApp/styles/foundation.css deleted file mode 100644 index f1fe64b37..000000000 --- a/src/ASPNETHandler/DemoApp/styles/foundation.css +++ /dev/null @@ -1,88 +0,0 @@ -/* -Description: Foundation 4 docs style for highlight.js -Author: Dan Allen -Website: http://foundation.zurb.com/docs/ -Version: 1.0 -Date: 2013-04-02 -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #eee; color: black; -} - -.hljs-link, -.hljs-emphasis, -.hljs-attribute, -.hljs-addition { - color: #070; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong, -.hljs-string, -.hljs-deletion { - color: #d14; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-quote, -.hljs-comment { - color: #998; - font-style: italic; -} - -.hljs-section, -.hljs-title { - color: #900; -} - -.hljs-class .hljs-title, -.hljs-type { - color: #458; -} - -.hljs-variable, -.hljs-template-variable { - color: #336699; -} - -.hljs-bullet { - color: #997700; -} - -.hljs-meta { - color: #3344bb; -} - -.hljs-code, -.hljs-number, -.hljs-literal, -.hljs-keyword, -.hljs-selector-tag { - color: #099; -} - -.hljs-regexp { - background-color: #fff0ff; - color: #880088; -} - -.hljs-symbol { - color: #990073; -} - -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #007700; -} diff --git a/src/ASPNETHandler/DemoApp/styles/github-gist.css b/src/ASPNETHandler/DemoApp/styles/github-gist.css deleted file mode 100644 index 155f0b916..000000000 --- a/src/ASPNETHandler/DemoApp/styles/github-gist.css +++ /dev/null @@ -1,71 +0,0 @@ -/** - * GitHub Gist Theme - * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro - */ - -.hljs { - display: block; - background: white; - padding: 0.5em; - color: #333333; - overflow-x: auto; -} - -.hljs-comment, -.hljs-meta { - color: #969896; -} - -.hljs-string, -.hljs-variable, -.hljs-template-variable, -.hljs-strong, -.hljs-emphasis, -.hljs-quote { - color: #df5000; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-type { - color: #a71d5d; -} - -.hljs-literal, -.hljs-symbol, -.hljs-bullet, -.hljs-attribute { - color: #0086b3; -} - -.hljs-section, -.hljs-name { - color: #63a35c; -} - -.hljs-tag { - color: #333333; -} - -.hljs-title, -.hljs-attr, -.hljs-selector-id, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #795da3; -} - -.hljs-addition { - color: #55a532; - background-color: #eaffea; -} - -.hljs-deletion { - color: #bd2c00; - background-color: #ffecec; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/src/ASPNETHandler/DemoApp/styles/github.css b/src/ASPNETHandler/DemoApp/styles/github.css deleted file mode 100644 index 791932b87..000000000 --- a/src/ASPNETHandler/DemoApp/styles/github.css +++ /dev/null @@ -1,99 +0,0 @@ -/* - -github.com style (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #333; - background: #f8f8f8; -} - -.hljs-comment, -.hljs-quote { - color: #998; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-subst { - color: #333; - font-weight: bold; -} - -.hljs-number, -.hljs-literal, -.hljs-variable, -.hljs-template-variable, -.hljs-tag .hljs-attr { - color: #008080; -} - -.hljs-string, -.hljs-doctag { - color: #d14; -} - -.hljs-title, -.hljs-section, -.hljs-selector-id { - color: #900; - font-weight: bold; -} - -.hljs-subst { - font-weight: normal; -} - -.hljs-type, -.hljs-class .hljs-title { - color: #458; - font-weight: bold; -} - -.hljs-tag, -.hljs-name, -.hljs-attribute { - color: #000080; - font-weight: normal; -} - -.hljs-regexp, -.hljs-link { - color: #009926; -} - -.hljs-symbol, -.hljs-bullet { - color: #990073; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #0086b3; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - background: #fdd; -} - -.hljs-addition { - background: #dfd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/googlecode.css b/src/ASPNETHandler/DemoApp/styles/googlecode.css deleted file mode 100644 index 884ad6353..000000000 --- a/src/ASPNETHandler/DemoApp/styles/googlecode.css +++ /dev/null @@ -1,89 +0,0 @@ -/* - -Google Code style (c) Aahan Krish - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: white; - color: black; -} - -.hljs-comment, -.hljs-quote { - color: #800; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-section, -.hljs-title, -.hljs-name { - color: #008; -} - -.hljs-variable, -.hljs-template-variable { - color: #660; -} - -.hljs-string, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-regexp { - color: #080; -} - -.hljs-literal, -.hljs-symbol, -.hljs-bullet, -.hljs-meta, -.hljs-number, -.hljs-link { - color: #066; -} - -.hljs-title, -.hljs-doctag, -.hljs-type, -.hljs-attr, -.hljs-built_in, -.hljs-builtin-name, -.hljs-params { - color: #606; -} - -.hljs-attribute, -.hljs-subst { - color: #000; -} - -.hljs-formula { - background-color: #eee; - font-style: italic; -} - -.hljs-selector-id, -.hljs-selector-class { - color: #9B703F -} - -.hljs-addition { - background-color: #baeeba; -} - -.hljs-deletion { - background-color: #ffc8bd; -} - -.hljs-doctag, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/grayscale.css b/src/ASPNETHandler/DemoApp/styles/grayscale.css deleted file mode 100644 index 5376f3406..000000000 --- a/src/ASPNETHandler/DemoApp/styles/grayscale.css +++ /dev/null @@ -1,101 +0,0 @@ -/* - -grayscale style (c) MY Sun - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #333; - background: #fff; -} - -.hljs-comment, -.hljs-quote { - color: #777; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-subst { - color: #333; - font-weight: bold; -} - -.hljs-number, -.hljs-literal { - color: #777; -} - -.hljs-string, -.hljs-doctag, -.hljs-formula { - color: #333; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat; -} - -.hljs-title, -.hljs-section, -.hljs-selector-id { - color: #000; - font-weight: bold; -} - -.hljs-subst { - font-weight: normal; -} - -.hljs-class .hljs-title, -.hljs-type, -.hljs-name { - color: #333; - font-weight: bold; -} - -.hljs-tag { - color: #333; -} - -.hljs-regexp { - color: #333; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link { - color: #000; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat; -} - -.hljs-built_in, -.hljs-builtin-name { - color: #000; - text-decoration: underline; -} - -.hljs-meta { - color: #999; - font-weight: bold; -} - -.hljs-deletion { - color: #fff; - background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat; -} - -.hljs-addition { - color: #000; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/gruvbox-dark.css b/src/ASPNETHandler/DemoApp/styles/gruvbox-dark.css deleted file mode 100644 index f563811a8..000000000 --- a/src/ASPNETHandler/DemoApp/styles/gruvbox-dark.css +++ /dev/null @@ -1,108 +0,0 @@ -/* - -Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #282828; -} - -.hljs, -.hljs-subst { - color: #ebdbb2; -} - -/* Gruvbox Red */ -.hljs-deletion, -.hljs-formula, -.hljs-keyword, -.hljs-link, -.hljs-selector-tag { - color: #fb4934; -} - -/* Gruvbox Blue */ -.hljs-built_in, -.hljs-emphasis, -.hljs-name, -.hljs-quote, -.hljs-strong, -.hljs-title, -.hljs-variable { - color: #83a598; -} - -/* Gruvbox Yellow */ -.hljs-attr, -.hljs-params, -.hljs-template-tag, -.hljs-type { - color: #fabd2f; -} - -/* Gruvbox Purple */ -.hljs-builtin-name, -.hljs-doctag, -.hljs-literal, -.hljs-number { - color: #8f3f71; -} - -/* Gruvbox Orange */ -.hljs-code, -.hljs-meta, -.hljs-regexp, -.hljs-selector-id, -.hljs-template-variable { - color: #fe8019; -} - -/* Gruvbox Green */ -.hljs-addition, -.hljs-meta-string, -.hljs-section, -.hljs-selector-attr, -.hljs-selector-class, -.hljs-string, -.hljs-symbol { - color: #b8bb26; -} - -/* Gruvbox Aqua */ -.hljs-attribute, -.hljs-bullet, -.hljs-class, -.hljs-function, -.hljs-function .hljs-keyword, -.hljs-meta-keyword, -.hljs-selector-pseudo, -.hljs-tag { - color: #8ec07c; -} - -/* Gruvbox Gray */ -.hljs-comment { - color: #928374; -} - -/* Gruvbox Purple */ -.hljs-link_label, -.hljs-literal, -.hljs-number { - color: #d3869b; -} - -.hljs-comment, -.hljs-emphasis { - font-style: italic; -} - -.hljs-section, -.hljs-strong, -.hljs-tag { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/gruvbox-light.css b/src/ASPNETHandler/DemoApp/styles/gruvbox-light.css deleted file mode 100644 index ff45468eb..000000000 --- a/src/ASPNETHandler/DemoApp/styles/gruvbox-light.css +++ /dev/null @@ -1,108 +0,0 @@ -/* - -Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fbf1c7; -} - -.hljs, -.hljs-subst { - color: #3c3836; -} - -/* Gruvbox Red */ -.hljs-deletion, -.hljs-formula, -.hljs-keyword, -.hljs-link, -.hljs-selector-tag { - color: #9d0006; -} - -/* Gruvbox Blue */ -.hljs-built_in, -.hljs-emphasis, -.hljs-name, -.hljs-quote, -.hljs-strong, -.hljs-title, -.hljs-variable { - color: #076678; -} - -/* Gruvbox Yellow */ -.hljs-attr, -.hljs-params, -.hljs-template-tag, -.hljs-type { - color: #b57614; -} - -/* Gruvbox Purple */ -.hljs-builtin-name, -.hljs-doctag, -.hljs-literal, -.hljs-number { - color: #8f3f71; -} - -/* Gruvbox Orange */ -.hljs-code, -.hljs-meta, -.hljs-regexp, -.hljs-selector-id, -.hljs-template-variable { - color: #af3a03; -} - -/* Gruvbox Green */ -.hljs-addition, -.hljs-meta-string, -.hljs-section, -.hljs-selector-attr, -.hljs-selector-class, -.hljs-string, -.hljs-symbol { - color: #79740e; -} - -/* Gruvbox Aqua */ -.hljs-attribute, -.hljs-bullet, -.hljs-class, -.hljs-function, -.hljs-function .hljs-keyword, -.hljs-meta-keyword, -.hljs-selector-pseudo, -.hljs-tag { - color: #427b58; -} - -/* Gruvbox Gray */ -.hljs-comment { - color: #928374; -} - -/* Gruvbox Purple */ -.hljs-link_label, -.hljs-literal, -.hljs-number { - color: #8f3f71; -} - -.hljs-comment, -.hljs-emphasis { - font-style: italic; -} - -.hljs-section, -.hljs-strong, -.hljs-tag { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/hopscotch.css b/src/ASPNETHandler/DemoApp/styles/hopscotch.css deleted file mode 100644 index 32e60d230..000000000 --- a/src/ASPNETHandler/DemoApp/styles/hopscotch.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Hopscotch - * by Jan T. Sott - * https://github.com/idleberg/Hopscotch - * - * This work is licensed under the Creative Commons CC0 1.0 Universal License - */ - -/* Comment */ -.hljs-comment, -.hljs-quote { - color: #989498; -} - -/* Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-link, -.hljs-deletion { - color: #dd464c; -} - -/* Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #fd8b19; -} - -/* Yellow */ -.hljs-class .hljs-title { - color: #fdcc59; -} - -/* Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #8fc13e; -} - -/* Aqua */ -.hljs-meta { - color: #149b93; -} - -/* Blue */ -.hljs-function, -.hljs-section, -.hljs-title { - color: #1290bf; -} - -/* Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #c85e7c; -} - -.hljs { - display: block; - background: #322931; - color: #b9b5b8; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/hybrid.css b/src/ASPNETHandler/DemoApp/styles/hybrid.css deleted file mode 100644 index 29735a189..000000000 --- a/src/ASPNETHandler/DemoApp/styles/hybrid.css +++ /dev/null @@ -1,102 +0,0 @@ -/* - -vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) - -*/ - -/*background color*/ -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #1d1f21; -} - -/*selection color*/ -.hljs::selection, -.hljs span::selection { - background: #373b41; -} - -.hljs::-moz-selection, -.hljs span::-moz-selection { - background: #373b41; -} - -/*foreground color*/ -.hljs { - color: #c5c8c6; -} - -/*color: fg_yellow*/ -.hljs-title, -.hljs-name { - color: #f0c674; -} - -/*color: fg_comment*/ -.hljs-comment, -.hljs-meta, -.hljs-meta .hljs-keyword { - color: #707880; -} - -/*color: fg_red*/ -.hljs-number, -.hljs-symbol, -.hljs-literal, -.hljs-deletion, -.hljs-link { - color: #cc6666 -} - -/*color: fg_green*/ -.hljs-string, -.hljs-doctag, -.hljs-addition, -.hljs-regexp, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #b5bd68; -} - -/*color: fg_purple*/ -.hljs-attribute, -.hljs-code, -.hljs-selector-id { - color: #b294bb; -} - -/*color: fg_blue*/ -.hljs-keyword, -.hljs-selector-tag, -.hljs-bullet, -.hljs-tag { - color: #81a2be; -} - -/*color: fg_aqua*/ -.hljs-subst, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #8abeb7; -} - -/*color: fg_orange*/ -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-quote, -.hljs-section, -.hljs-selector-class { - color: #de935f; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/idea.css b/src/ASPNETHandler/DemoApp/styles/idea.css deleted file mode 100644 index 3bf1892bd..000000000 --- a/src/ASPNETHandler/DemoApp/styles/idea.css +++ /dev/null @@ -1,97 +0,0 @@ -/* - -Intellij Idea-like styling (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #000; - background: #fff; -} - -.hljs-subst, -.hljs-title { - font-weight: normal; - color: #000; -} - -.hljs-comment, -.hljs-quote { - color: #808080; - font-style: italic; -} - -.hljs-meta { - color: #808000; -} - -.hljs-tag { - background: #efefef; -} - -.hljs-section, -.hljs-name, -.hljs-literal, -.hljs-keyword, -.hljs-selector-tag, -.hljs-type, -.hljs-selector-id, -.hljs-selector-class { - font-weight: bold; - color: #000080; -} - -.hljs-attribute, -.hljs-number, -.hljs-regexp, -.hljs-link { - font-weight: bold; - color: #0000ff; -} - -.hljs-number, -.hljs-regexp, -.hljs-link { - font-weight: normal; -} - -.hljs-string { - color: #008000; - font-weight: bold; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-formula { - color: #000; - background: #d0eded; - font-style: italic; -} - -.hljs-doctag { - text-decoration: underline; -} - -.hljs-variable, -.hljs-template-variable { - color: #660e7a; -} - -.hljs-addition { - background: #baeeba; -} - -.hljs-deletion { - background: #ffc8bd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/ir-black.css b/src/ASPNETHandler/DemoApp/styles/ir-black.css deleted file mode 100644 index bd4c755ed..000000000 --- a/src/ASPNETHandler/DemoApp/styles/ir-black.css +++ /dev/null @@ -1,73 +0,0 @@ -/* - IR_Black style (c) Vasily Mikhailitchenko -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #000; - color: #f8f8f8; -} - -.hljs-comment, -.hljs-quote, -.hljs-meta { - color: #7c7c7c; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-tag, -.hljs-name { - color: #96cbfe; -} - -.hljs-attribute, -.hljs-selector-id { - color: #ffffb6; -} - -.hljs-string, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition { - color: #a8ff60; -} - -.hljs-subst { - color: #daefa3; -} - -.hljs-regexp, -.hljs-link { - color: #e9c062; -} - -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-doctag { - color: #ffffb6; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-variable, -.hljs-template-variable, -.hljs-literal { - color: #c6c5fe; -} - -.hljs-number, -.hljs-deletion { - color:#ff73fd; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/kimbie.dark.css b/src/ASPNETHandler/DemoApp/styles/kimbie.dark.css deleted file mode 100644 index d139cb5d0..000000000 --- a/src/ASPNETHandler/DemoApp/styles/kimbie.dark.css +++ /dev/null @@ -1,74 +0,0 @@ -/* - Name: Kimbie (dark) - Author: Jan T. Sott - License: Creative Commons Attribution-ShareAlike 4.0 Unported License - URL: https://github.com/idleberg/Kimbie-highlight.js -*/ - -/* Kimbie Comment */ -.hljs-comment, -.hljs-quote { - color: #d6baad; -} - -/* Kimbie Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-meta { - color: #dc3958; -} - -/* Kimbie Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-deletion, -.hljs-link { - color: #f79a32; -} - -/* Kimbie Yellow */ -.hljs-title, -.hljs-section, -.hljs-attribute { - color: #f06431; -} - -/* Kimbie Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #889b4a; -} - -/* Kimbie Purple */ -.hljs-keyword, -.hljs-selector-tag, -.hljs-function { - color: #98676a; -} - -.hljs { - display: block; - overflow-x: auto; - background: #221a0f; - color: #d3af86; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/kimbie.light.css b/src/ASPNETHandler/DemoApp/styles/kimbie.light.css deleted file mode 100644 index 04ff6ed3a..000000000 --- a/src/ASPNETHandler/DemoApp/styles/kimbie.light.css +++ /dev/null @@ -1,74 +0,0 @@ -/* - Name: Kimbie (light) - Author: Jan T. Sott - License: Creative Commons Attribution-ShareAlike 4.0 Unported License - URL: https://github.com/idleberg/Kimbie-highlight.js -*/ - -/* Kimbie Comment */ -.hljs-comment, -.hljs-quote { - color: #a57a4c; -} - -/* Kimbie Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-meta { - color: #dc3958; -} - -/* Kimbie Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-deletion, -.hljs-link { - color: #f79a32; -} - -/* Kimbie Yellow */ -.hljs-title, -.hljs-section, -.hljs-attribute { - color: #f06431; -} - -/* Kimbie Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #889b4a; -} - -/* Kimbie Purple */ -.hljs-keyword, -.hljs-selector-tag, -.hljs-function { - color: #98676a; -} - -.hljs { - display: block; - overflow-x: auto; - background: #fbebd4; - color: #84613d; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/magula.css b/src/ASPNETHandler/DemoApp/styles/magula.css deleted file mode 100644 index 44dee5e8e..000000000 --- a/src/ASPNETHandler/DemoApp/styles/magula.css +++ /dev/null @@ -1,70 +0,0 @@ -/* -Description: Magula style for highligh.js -Author: Ruslan Keba -Website: http://rukeba.com/ -Version: 1.0 -Date: 2009-01-03 -Music: Aphex Twin / Xtal -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background-color: #f4f4f4; -} - -.hljs, -.hljs-subst { - color: black; -} - -.hljs-string, -.hljs-title, -.hljs-symbol, -.hljs-bullet, -.hljs-attribute, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #050; -} - -.hljs-comment, -.hljs-quote { - color: #777; -} - -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-type, -.hljs-link { - color: #800; -} - -.hljs-deletion, -.hljs-meta { - color: #00e; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-built_in, -.hljs-tag, -.hljs-name { - font-weight: bold; - color: navy; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/mono-blue.css b/src/ASPNETHandler/DemoApp/styles/mono-blue.css deleted file mode 100644 index 884c97c76..000000000 --- a/src/ASPNETHandler/DemoApp/styles/mono-blue.css +++ /dev/null @@ -1,59 +0,0 @@ -/* - Five-color theme from a single blue hue. -*/ -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #eaeef3; -} - -.hljs { - color: #00193a; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-title, -.hljs-section, -.hljs-doctag, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-comment { - color: #738191; -} - -.hljs-string, -.hljs-title, -.hljs-section, -.hljs-built_in, -.hljs-literal, -.hljs-type, -.hljs-addition, -.hljs-tag, -.hljs-quote, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #0048ab; -} - -.hljs-meta, -.hljs-subst, -.hljs-symbol, -.hljs-regexp, -.hljs-attribute, -.hljs-deletion, -.hljs-variable, -.hljs-template-variable, -.hljs-link, -.hljs-bullet { - color: #4c81c9; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/monokai-sublime.css b/src/ASPNETHandler/DemoApp/styles/monokai-sublime.css deleted file mode 100644 index 2864170da..000000000 --- a/src/ASPNETHandler/DemoApp/styles/monokai-sublime.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - -Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #23241f; -} - -.hljs, -.hljs-tag, -.hljs-subst { - color: #f8f8f2; -} - -.hljs-strong, -.hljs-emphasis { - color: #a8a8a2; -} - -.hljs-bullet, -.hljs-quote, -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-link { - color: #ae81ff; -} - -.hljs-code, -.hljs-title, -.hljs-section, -.hljs-selector-class { - color: #a6e22e; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-name, -.hljs-attr { - color: #f92672; -} - -.hljs-symbol, -.hljs-attribute { - color: #66d9ef; -} - -.hljs-params, -.hljs-class .hljs-title { - color: #f8f8f2; -} - -.hljs-string, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition, -.hljs-variable, -.hljs-template-variable { - color: #e6db74; -} - -.hljs-comment, -.hljs-deletion, -.hljs-meta { - color: #75715e; -} diff --git a/src/ASPNETHandler/DemoApp/styles/monokai.css b/src/ASPNETHandler/DemoApp/styles/monokai.css deleted file mode 100644 index 775d53f91..000000000 --- a/src/ASPNETHandler/DemoApp/styles/monokai.css +++ /dev/null @@ -1,70 +0,0 @@ -/* -Monokai style - ported by Luigi Maselli - http://grigio.org -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #272822; color: #ddd; -} - -.hljs-tag, -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-strong, -.hljs-name { - color: #f92672; -} - -.hljs-code { - color: #66d9ef; -} - -.hljs-class .hljs-title { - color: white; -} - -.hljs-attribute, -.hljs-symbol, -.hljs-regexp, -.hljs-link { - color: #bf79db; -} - -.hljs-string, -.hljs-bullet, -.hljs-subst, -.hljs-title, -.hljs-section, -.hljs-emphasis, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #a6e22e; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion, -.hljs-meta { - color: #75715e; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-selector-id { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/obsidian.css b/src/ASPNETHandler/DemoApp/styles/obsidian.css deleted file mode 100644 index 356630fa2..000000000 --- a/src/ASPNETHandler/DemoApp/styles/obsidian.css +++ /dev/null @@ -1,88 +0,0 @@ -/** - * Obsidian style - * ported by Alexander Marenin (http://github.com/ioncreature) - */ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #282b2e; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-selector-id { - color: #93c763; -} - -.hljs-number { - color: #ffcd22; -} - -.hljs { - color: #e0e2e4; -} - -.hljs-attribute { - color: #668bb0; -} - -.hljs-code, -.hljs-class .hljs-title, -.hljs-section { - color: white; -} - -.hljs-regexp, -.hljs-link { - color: #d39745; -} - -.hljs-meta { - color: #557182; -} - -.hljs-tag, -.hljs-name, -.hljs-bullet, -.hljs-subst, -.hljs-emphasis, -.hljs-type, -.hljs-built_in, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable { - color: #8cbbad; -} - -.hljs-string, -.hljs-symbol { - color: #ec7600; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion { - color: #818e96; -} - -.hljs-selector-class { - color: #A082BD -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-name, -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/ocean.css b/src/ASPNETHandler/DemoApp/styles/ocean.css deleted file mode 100644 index 5901581b4..000000000 --- a/src/ASPNETHandler/DemoApp/styles/ocean.css +++ /dev/null @@ -1,74 +0,0 @@ -/* Ocean Dark Theme */ -/* https://github.com/gavsiu */ -/* Original theme - https://github.com/chriskempson/base16 */ - -/* Ocean Comment */ -.hljs-comment, -.hljs-quote { - color: #65737e; -} - -/* Ocean Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #bf616a; -} - -/* Ocean Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #d08770; -} - -/* Ocean Yellow */ -.hljs-attribute { - color: #ebcb8b; -} - -/* Ocean Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #a3be8c; -} - -/* Ocean Blue */ -.hljs-title, -.hljs-section { - color: #8fa1b3; -} - -/* Ocean Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #b48ead; -} - -.hljs { - display: block; - overflow-x: auto; - background: #2b303b; - color: #c0c5ce; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/paraiso-dark.css b/src/ASPNETHandler/DemoApp/styles/paraiso-dark.css deleted file mode 100644 index e7292401c..000000000 --- a/src/ASPNETHandler/DemoApp/styles/paraiso-dark.css +++ /dev/null @@ -1,72 +0,0 @@ -/* - Paraíso (dark) - Created by Jan T. Sott (http://github.com/idleberg) - Inspired by the art of Rubens LP (http://www.rubenslp.com.br) -*/ - -/* Paraíso Comment */ -.hljs-comment, -.hljs-quote { - color: #8d8687; -} - -/* Paraíso Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-link, -.hljs-meta { - color: #ef6155; -} - -/* Paraíso Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-deletion { - color: #f99b15; -} - -/* Paraíso Yellow */ -.hljs-title, -.hljs-section, -.hljs-attribute { - color: #fec418; -} - -/* Paraíso Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #48b685; -} - -/* Paraíso Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #815ba4; -} - -.hljs { - display: block; - overflow-x: auto; - background: #2f1e2e; - color: #a39e9b; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/paraiso-light.css b/src/ASPNETHandler/DemoApp/styles/paraiso-light.css deleted file mode 100644 index 944857cd8..000000000 --- a/src/ASPNETHandler/DemoApp/styles/paraiso-light.css +++ /dev/null @@ -1,72 +0,0 @@ -/* - Paraíso (light) - Created by Jan T. Sott (http://github.com/idleberg) - Inspired by the art of Rubens LP (http://www.rubenslp.com.br) -*/ - -/* Paraíso Comment */ -.hljs-comment, -.hljs-quote { - color: #776e71; -} - -/* Paraíso Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-link, -.hljs-meta { - color: #ef6155; -} - -/* Paraíso Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-deletion { - color: #f99b15; -} - -/* Paraíso Yellow */ -.hljs-title, -.hljs-section, -.hljs-attribute { - color: #fec418; -} - -/* Paraíso Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #48b685; -} - -/* Paraíso Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #815ba4; -} - -.hljs { - display: block; - overflow-x: auto; - background: #e7e9db; - color: #4f424c; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/pojoaque.css b/src/ASPNETHandler/DemoApp/styles/pojoaque.css deleted file mode 100644 index 2e07847b2..000000000 --- a/src/ASPNETHandler/DemoApp/styles/pojoaque.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - -Pojoaque Style by Jason Tate -http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html -Based on Solarized Style from http://ethanschoonover.com/solarized - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #dccf8f; - background: url(./pojoaque.jpg) repeat scroll left top #181914; -} - -.hljs-comment, -.hljs-quote { - color: #586e75; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-addition { - color: #b64926; -} - -.hljs-number, -.hljs-string, -.hljs-doctag, -.hljs-regexp { - color: #468966; -} - -.hljs-title, -.hljs-section, -.hljs-built_in, -.hljs-name { - color: #ffb03b; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-class .hljs-title, -.hljs-type, -.hljs-tag { - color: #b58900; -} - -.hljs-attribute { - color: #b89859; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link, -.hljs-subst, -.hljs-meta { - color: #cb4b16; -} - -.hljs-deletion { - color: #dc322f; -} - -.hljs-selector-id, -.hljs-selector-class { - color: #d3a60c; -} - -.hljs-formula { - background: #073642; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/pojoaque.jpg b/src/ASPNETHandler/DemoApp/styles/pojoaque.jpg deleted file mode 100644 index 9c07d4ab40b6d77e90ff69f0012bcd33b21d31c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1186 zcmZXSe^8Tk9LK-kXFs3)f@f?)Cddzw3v4wdZyXQ;4x3=;Ja*N#%n9ik!UGmt9H3k0 zJST|5jOc(ID$FQt3C?jQZBws#kXolO1lg9Pba9BB=Q+UEBX!nY@6Uhl&+ofe$Q$y5 z@ci`~)&qzDP(lOiQ5p?p z(`j^e7!yUAVHk%K#^GQXn?s0=VLYCI$HRoe=xCuZ>A6A3@sxEP#XqNFpIb=0)KQ#Nss_tD17;m4@$JKL;LR|K|QF3f%!L5+s(9Ft8SQ zG|~pGpEGFW5Z|OA)-O@mNHy-g@7m8JTf?kl@vUKBGmw)Y*9sDRNr3PN!IKefWaydTe1D zjzpyzPnD3}hBNaS4aFX7=0&~I*Hu7#4au@qVBglH#-m;QFOx_`=j z{EqRY#Eh*yoWP^pa4H>8GH{rO?!_+xwL0(k4yL^D%^nBkJ*UI;Lx;ped8d|f*S_s@ z3~ilcRC(&NT#9Gn#UD;o^EYSMXDMf%XcUi3>;WXXD-QX3P9wMyP7eA&RS{)h5{??W3^Rq=goFJ>?lA~J- zdYe>!xvYLW*fPT0RK7wsJRg^?x#W1*GP9_f`6t>QD_X>0d!owyN>nO2?U5}|3?hX_UZYT@^>S!9eB~bZ9U`q;`U)@L670o1g z`Hd}h<_WRvUc|n*%v4Hbb-4tJD40iyF^q%g*&!6>hkYDvi-{Uc4yTM zzcthN4Z{ka!+F_KzYV#yWi;c^X^q6g`pD8cp?$Kl?hCz0s^a|mH%P!CF%*<6k^~i` zT5Mi-t5-frUcHkk^Qh}+N)Kz1&Bi95`oNc|quI>tUi~BY>xcF9(%tv2i{G6kE9*q~ qCoAGl20`)w0rdgp9H%Q=M5|p`hOhFz6$I%Y&ncY8>c?7PXyh+SL&XXJ diff --git a/src/ASPNETHandler/DemoApp/styles/purebasic.css b/src/ASPNETHandler/DemoApp/styles/purebasic.css deleted file mode 100644 index 5ce9b9e07..000000000 --- a/src/ASPNETHandler/DemoApp/styles/purebasic.css +++ /dev/null @@ -1,96 +0,0 @@ -/* - -PureBASIC native IDE style ( version 1.0 - April 2016 ) - -by Tristano Ajmone - -Public Domain - -NOTE_1: PureBASIC code syntax highlighting only applies the following classes: - .hljs-comment - .hljs-function - .hljs-keywords - .hljs-string - .hljs-symbol - - Other classes are added here for the benefit of styling other languages with the look and feel of PureBASIC native IDE style. - If you need to customize a stylesheet for PureBASIC only, remove all non-relevant classes -- PureBASIC-related classes are followed by - a "--- used for PureBASIC ... ---" comment on same line. - -NOTE_2: Color names provided in comments were derived using "Name that Color" online tool: - http://chir.ag/projects/name-that-color -*/ - -.hljs { /* Common set of rules required by highlight.js (don'r remove!) */ - display: block; - overflow-x: auto; - padding: 0.5em; - background: #FFFFDF; /* Half and Half (approx.) */ -/* --- Uncomment to add PureBASIC native IDE styled font! - font-family: Consolas; -*/ -} - -.hljs, /* --- used for PureBASIC base color --- */ -.hljs-type, /* --- used for PureBASIC Procedures return type --- */ -.hljs-function, /* --- used for wrapping PureBASIC Procedures definitions --- */ -.hljs-name, -.hljs-number, -.hljs-attr, -.hljs-params, -.hljs-subst { - color: #000000; /* Black */ -} - -.hljs-comment, /* --- used for PureBASIC Comments --- */ -.hljs-regexp, -.hljs-section, -.hljs-selector-pseudo, -.hljs-addition { - color: #00AAAA; /* Persian Green (approx.) */ -} - -.hljs-title, /* --- used for PureBASIC Procedures Names --- */ -.hljs-tag, -.hljs-variable, -.hljs-code { - color: #006666; /* Blue Stone (approx.) */ -} - -.hljs-keyword, /* --- used for PureBASIC Keywords --- */ -.hljs-class, -.hljs-meta-keyword, -.hljs-selector-class, -.hljs-built_in, -.hljs-builtin-name { - color: #006666; /* Blue Stone (approx.) */ - font-weight: bold; -} - -.hljs-string, /* --- used for PureBASIC Strings --- */ -.hljs-selector-attr { - color: #0080FF; /* Azure Radiance (approx.) */ -} - -.hljs-symbol, /* --- used for PureBASIC Constants --- */ -.hljs-link, -.hljs-deletion, -.hljs-attribute { - color: #924B72; /* Cannon Pink (approx.) */ -} - -.hljs-meta, -.hljs-literal, -.hljs-selector-id { - color: #924B72; /* Cannon Pink (approx.) */ - font-weight: bold; -} - -.hljs-strong, -.hljs-name { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/qtcreator_dark.css b/src/ASPNETHandler/DemoApp/styles/qtcreator_dark.css deleted file mode 100644 index 7aa56a365..000000000 --- a/src/ASPNETHandler/DemoApp/styles/qtcreator_dark.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - -Qt Creator dark color scheme - -*/ - - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #000000; -} - -.hljs, -.hljs-subst, -.hljs-tag, -.hljs-title { - color: #aaaaaa; -} - -.hljs-strong, -.hljs-emphasis { - color: #a8a8a2; -} - -.hljs-bullet, -.hljs-quote, -.hljs-number, -.hljs-regexp, -.hljs-literal { - color: #ff55ff; -} - -.hljs-code -.hljs-selector-class { - color: #aaaaff; -} - -.hljs-emphasis, -.hljs-stronge, -.hljs-type { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-function, -.hljs-section, -.hljs-symbol, -.hljs-name { - color: #ffff55; -} - -.hljs-attribute { - color: #ff5555; -} - -.hljs-variable, -.hljs-params, -.hljs-class .hljs-title { - color: #8888ff; -} - -.hljs-string, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition, -.hljs-link { - color: #ff55ff; -} - -.hljs-comment, -.hljs-meta, -.hljs-deletion { - color: #55ffff; -} diff --git a/src/ASPNETHandler/DemoApp/styles/qtcreator_light.css b/src/ASPNETHandler/DemoApp/styles/qtcreator_light.css deleted file mode 100644 index 1efa2c660..000000000 --- a/src/ASPNETHandler/DemoApp/styles/qtcreator_light.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - -Qt Creator light color scheme - -*/ - - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #ffffff; -} - -.hljs, -.hljs-subst, -.hljs-tag, -.hljs-title { - color: #000000; -} - -.hljs-strong, -.hljs-emphasis { - color: #000000; -} - -.hljs-bullet, -.hljs-quote, -.hljs-number, -.hljs-regexp, -.hljs-literal { - color: #000080; -} - -.hljs-code -.hljs-selector-class { - color: #800080; -} - -.hljs-emphasis, -.hljs-stronge, -.hljs-type { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-function, -.hljs-section, -.hljs-symbol, -.hljs-name { - color: #808000; -} - -.hljs-attribute { - color: #800000; -} - -.hljs-variable, -.hljs-params, -.hljs-class .hljs-title { - color: #0055AF; -} - -.hljs-string, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-template-tag, -.hljs-template-variable, -.hljs-addition, -.hljs-link { - color: #008000; -} - -.hljs-comment, -.hljs-meta, -.hljs-deletion { - color: #008000; -} diff --git a/src/ASPNETHandler/DemoApp/styles/railscasts.css b/src/ASPNETHandler/DemoApp/styles/railscasts.css deleted file mode 100644 index 008cdc5bf..000000000 --- a/src/ASPNETHandler/DemoApp/styles/railscasts.css +++ /dev/null @@ -1,106 +0,0 @@ -/* - -Railscasts-like style (c) Visoft, Inc. (Damien White) - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #232323; - color: #e6e1dc; -} - -.hljs-comment, -.hljs-quote { - color: #bc9458; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag { - color: #c26230; -} - -.hljs-string, -.hljs-number, -.hljs-regexp, -.hljs-variable, -.hljs-template-variable { - color: #a5c261; -} - -.hljs-subst { - color: #519f50; -} - -.hljs-tag, -.hljs-name { - color: #e8bf6a; -} - -.hljs-type { - color: #da4939; -} - - -.hljs-symbol, -.hljs-bullet, -.hljs-built_in, -.hljs-builtin-name, -.hljs-attr, -.hljs-link { - color: #6d9cbe; -} - -.hljs-params { - color: #d0d0ff; -} - -.hljs-attribute { - color: #cda869; -} - -.hljs-meta { - color: #9b859d; -} - -.hljs-title, -.hljs-section { - color: #ffc66d; -} - -.hljs-addition { - background-color: #144212; - color: #e6e1dc; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #600; - color: #e6e1dc; - display: inline-block; - width: 100%; -} - -.hljs-selector-class { - color: #9b703f; -} - -.hljs-selector-id { - color: #8b98ab; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/src/ASPNETHandler/DemoApp/styles/rainbow.css b/src/ASPNETHandler/DemoApp/styles/rainbow.css deleted file mode 100644 index 905eb8ef1..000000000 --- a/src/ASPNETHandler/DemoApp/styles/rainbow.css +++ /dev/null @@ -1,85 +0,0 @@ -/* - -Style with support for rainbow parens - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #474949; - color: #d1d9e1; -} - - -.hljs-comment, -.hljs-quote { - color: #969896; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-type, -.hljs-addition { - color: #cc99cc; -} - -.hljs-number, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #f99157; -} - -.hljs-string, -.hljs-doctag, -.hljs-regexp { - color: #8abeb7; -} - -.hljs-title, -.hljs-name, -.hljs-section, -.hljs-built_in { - color: #b5bd68; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-selector-id, -.hljs-class .hljs-title { - color: #ffcc66; -} - -.hljs-section, -.hljs-name, -.hljs-strong { - font-weight: bold; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-subst, -.hljs-meta, -.hljs-link { - color: #f99157; -} - -.hljs-deletion { - color: #dc322f; -} - -.hljs-formula { - background: #eee8d5; -} - -.hljs-attr, -.hljs-attribute { - color: #81a2be; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/routeros.css b/src/ASPNETHandler/DemoApp/styles/routeros.css deleted file mode 100644 index ebe23990d..000000000 --- a/src/ASPNETHandler/DemoApp/styles/routeros.css +++ /dev/null @@ -1,108 +0,0 @@ -/* - - highlight.js style for Microtik RouterOS script - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #F0F0F0; -} - -/* Base color: saturation 0; */ - -.hljs, -.hljs-subst { - color: #444; -} - -.hljs-comment { - color: #888888; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-meta-keyword, -.hljs-doctag, -.hljs-name { - font-weight: bold; -} - -.hljs-attribute { - color: #0E9A00; -} - -.hljs-function { - color: #99069A; -} - -.hljs-builtin-name { - color: #99069A; -} - -/* User color: hue: 0 */ - -.hljs-type, -.hljs-string, -.hljs-number, -.hljs-selector-id, -.hljs-selector-class, -.hljs-quote, -.hljs-template-tag, -.hljs-deletion { - color: #880000; -} - -.hljs-title, -.hljs-section { - color: #880000; - font-weight: bold; -} - -.hljs-regexp, -.hljs-symbol, -.hljs-variable, -.hljs-template-variable, -.hljs-link, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #BC6060; -} - - -/* Language color: hue: 90; */ - -.hljs-literal { - color: #78A960; -} - -.hljs-built_in, -.hljs-bullet, -.hljs-code, -.hljs-addition { - color: #0C9A9A; -} - - -/* Meta color: hue: 200 */ - -.hljs-meta { - color: #1f7199; -} - -.hljs-meta-string { - color: #4d99bf; -} - - -/* Misc effects */ - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/school-book.css b/src/ASPNETHandler/DemoApp/styles/school-book.css deleted file mode 100644 index 964b51d84..000000000 --- a/src/ASPNETHandler/DemoApp/styles/school-book.css +++ /dev/null @@ -1,72 +0,0 @@ -/* - -School Book style from goldblog.com.ua (c) Zaripov Yura - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 15px 0.5em 0.5em 30px; - font-size: 11px; - line-height:16px; -} - -pre{ - background:#f6f6ae url(./school-book.png); - border-top: solid 2px #d2e8b9; - border-bottom: solid 1px #d2e8b9; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal { - color:#005599; - font-weight:bold; -} - -.hljs, -.hljs-subst { - color: #3e5915; -} - -.hljs-string, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-symbol, -.hljs-bullet, -.hljs-attribute, -.hljs-built_in, -.hljs-builtin-name, -.hljs-addition, -.hljs-variable, -.hljs-template-tag, -.hljs-template-variable, -.hljs-link { - color: #2c009f; -} - -.hljs-comment, -.hljs-quote, -.hljs-deletion, -.hljs-meta { - color: #e60415; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-doctag, -.hljs-title, -.hljs-section, -.hljs-type, -.hljs-name, -.hljs-selector-id, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/school-book.png b/src/ASPNETHandler/DemoApp/styles/school-book.png deleted file mode 100644 index 956e9790a0e2c079b3d568348ff3accd1d9cac30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmeAS@N?(olHy`uVBq!ia0y~yV7?7x3vjRjNjAS6Ga$v1?&#~tz_9*=IcwKTAYZb? zHKHUqKdq!Zu_%?nF(p4KRlzeiF+DXXH8G{K@MNkD0|R4)r;B4q#jQ7Ycl#YS5MfK$ z?b^fh#qmaEhFDxvyThwfhdfkOPApt1lr{NA;Vr%uzxJuVIyzm(ed_8_-0$LLU})H&o5Re&aDemE>EG#(|F^t9_pa-H z_Mf?rMVrs}-M?S|?ZdY@c6s41zy8~}@a{v&#Ea7V)wJ$+#K|u$5UvWCdFLwGac}6w{_s*=8A6L7Rfc|9gboFyt I=akR{0OLZ+qyPW_ diff --git a/src/ASPNETHandler/DemoApp/styles/solarized-dark.css b/src/ASPNETHandler/DemoApp/styles/solarized-dark.css deleted file mode 100644 index b4c0da1f7..000000000 --- a/src/ASPNETHandler/DemoApp/styles/solarized-dark.css +++ /dev/null @@ -1,84 +0,0 @@ -/* - -Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #002b36; - color: #839496; -} - -.hljs-comment, -.hljs-quote { - color: #586e75; -} - -/* Solarized Green */ -.hljs-keyword, -.hljs-selector-tag, -.hljs-addition { - color: #859900; -} - -/* Solarized Cyan */ -.hljs-number, -.hljs-string, -.hljs-meta .hljs-meta-string, -.hljs-literal, -.hljs-doctag, -.hljs-regexp { - color: #2aa198; -} - -/* Solarized Blue */ -.hljs-title, -.hljs-section, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #268bd2; -} - -/* Solarized Yellow */ -.hljs-attribute, -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-class .hljs-title, -.hljs-type { - color: #b58900; -} - -/* Solarized Orange */ -.hljs-symbol, -.hljs-bullet, -.hljs-subst, -.hljs-meta, -.hljs-meta .hljs-keyword, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-link { - color: #cb4b16; -} - -/* Solarized Red */ -.hljs-built_in, -.hljs-deletion { - color: #dc322f; -} - -.hljs-formula { - background: #073642; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/solarized-light.css b/src/ASPNETHandler/DemoApp/styles/solarized-light.css deleted file mode 100644 index fdcfcc72c..000000000 --- a/src/ASPNETHandler/DemoApp/styles/solarized-light.css +++ /dev/null @@ -1,84 +0,0 @@ -/* - -Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fdf6e3; - color: #657b83; -} - -.hljs-comment, -.hljs-quote { - color: #93a1a1; -} - -/* Solarized Green */ -.hljs-keyword, -.hljs-selector-tag, -.hljs-addition { - color: #859900; -} - -/* Solarized Cyan */ -.hljs-number, -.hljs-string, -.hljs-meta .hljs-meta-string, -.hljs-literal, -.hljs-doctag, -.hljs-regexp { - color: #2aa198; -} - -/* Solarized Blue */ -.hljs-title, -.hljs-section, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #268bd2; -} - -/* Solarized Yellow */ -.hljs-attribute, -.hljs-attr, -.hljs-variable, -.hljs-template-variable, -.hljs-class .hljs-title, -.hljs-type { - color: #b58900; -} - -/* Solarized Orange */ -.hljs-symbol, -.hljs-bullet, -.hljs-subst, -.hljs-meta, -.hljs-meta .hljs-keyword, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-link { - color: #cb4b16; -} - -/* Solarized Red */ -.hljs-built_in, -.hljs-deletion { - color: #dc322f; -} - -.hljs-formula { - background: #eee8d5; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/sunburst.css b/src/ASPNETHandler/DemoApp/styles/sunburst.css deleted file mode 100644 index f56dd5e9b..000000000 --- a/src/ASPNETHandler/DemoApp/styles/sunburst.css +++ /dev/null @@ -1,102 +0,0 @@ -/* - -Sunburst-like style (c) Vasily Polovnyov - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #000; - color: #f8f8f8; -} - -.hljs-comment, -.hljs-quote { - color: #aeaeae; - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-type { - color: #e28964; -} - -.hljs-string { - color: #65b042; -} - -.hljs-subst { - color: #daefa3; -} - -.hljs-regexp, -.hljs-link { - color: #e9c062; -} - -.hljs-title, -.hljs-section, -.hljs-tag, -.hljs-name { - color: #89bdff; -} - -.hljs-class .hljs-title, -.hljs-doctag { - text-decoration: underline; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-number { - color: #3387cc; -} - -.hljs-params, -.hljs-variable, -.hljs-template-variable { - color: #3e87e3; -} - -.hljs-attribute { - color: #cda869; -} - -.hljs-meta { - color: #8996a8; -} - -.hljs-formula { - background-color: #0e2231; - color: #f8f8f8; - font-style: italic; -} - -.hljs-addition { - background-color: #253b22; - color: #f8f8f8; -} - -.hljs-deletion { - background-color: #420e09; - color: #f8f8f8; -} - -.hljs-selector-class { - color: #9b703f; -} - -.hljs-selector-id { - color: #8b98ab; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/tomorrow-night-blue.css b/src/ASPNETHandler/DemoApp/styles/tomorrow-night-blue.css deleted file mode 100644 index 78e59cc8c..000000000 --- a/src/ASPNETHandler/DemoApp/styles/tomorrow-night-blue.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Tomorrow Night Blue Theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #7285b7; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #ff9da4; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #ffc58f; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #ffeead; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #d1f1a9; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #bbdaff; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #ebbbff; -} - -.hljs { - display: block; - overflow-x: auto; - background: #002451; - color: white; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/tomorrow-night-bright.css b/src/ASPNETHandler/DemoApp/styles/tomorrow-night-bright.css deleted file mode 100644 index e05af8ae2..000000000 --- a/src/ASPNETHandler/DemoApp/styles/tomorrow-night-bright.css +++ /dev/null @@ -1,74 +0,0 @@ -/* Tomorrow Night Bright Theme */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #969896; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #d54e53; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #e78c45; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #e7c547; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #b9ca4a; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #7aa6da; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #c397d8; -} - -.hljs { - display: block; - overflow-x: auto; - background: black; - color: #eaeaea; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/tomorrow-night-eighties.css b/src/ASPNETHandler/DemoApp/styles/tomorrow-night-eighties.css deleted file mode 100644 index 08fd51c74..000000000 --- a/src/ASPNETHandler/DemoApp/styles/tomorrow-night-eighties.css +++ /dev/null @@ -1,74 +0,0 @@ -/* Tomorrow Night Eighties Theme */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #999999; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #f2777a; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #f99157; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #ffcc66; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #99cc99; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #6699cc; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #cc99cc; -} - -.hljs { - display: block; - overflow-x: auto; - background: #2d2d2d; - color: #cccccc; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/tomorrow-night.css b/src/ASPNETHandler/DemoApp/styles/tomorrow-night.css deleted file mode 100644 index ddd270a4e..000000000 --- a/src/ASPNETHandler/DemoApp/styles/tomorrow-night.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Tomorrow Night Theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #969896; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #cc6666; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #de935f; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #f0c674; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #b5bd68; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #81a2be; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #b294bb; -} - -.hljs { - display: block; - overflow-x: auto; - background: #1d1f21; - color: #c5c8c6; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/tomorrow.css b/src/ASPNETHandler/DemoApp/styles/tomorrow.css deleted file mode 100644 index 026a62fe3..000000000 --- a/src/ASPNETHandler/DemoApp/styles/tomorrow.css +++ /dev/null @@ -1,72 +0,0 @@ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #8e908c; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #c82829; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #f5871f; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #eab700; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #718c00; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #4271ae; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #8959a8; -} - -.hljs { - display: block; - overflow-x: auto; - background: white; - color: #4d4d4c; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/vs.css b/src/ASPNETHandler/DemoApp/styles/vs.css deleted file mode 100644 index c5d07d311..000000000 --- a/src/ASPNETHandler/DemoApp/styles/vs.css +++ /dev/null @@ -1,68 +0,0 @@ -/* - -Visual Studio-like style based on original C# coloring by Jason Diamond - -*/ -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: white; - color: black; -} - -.hljs-comment, -.hljs-quote, -.hljs-variable { - color: #008000; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-built_in, -.hljs-name, -.hljs-tag { - color: #00f; -} - -.hljs-string, -.hljs-title, -.hljs-section, -.hljs-attribute, -.hljs-literal, -.hljs-template-tag, -.hljs-template-variable, -.hljs-type, -.hljs-addition { - color: #a31515; -} - -.hljs-deletion, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-meta { - color: #2b91af; -} - -.hljs-doctag { - color: #808080; -} - -.hljs-attr { - color: #f00; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link { - color: #00b0e8; -} - - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/styles/vs2015.css b/src/ASPNETHandler/DemoApp/styles/vs2015.css deleted file mode 100644 index d1d9be3ca..000000000 --- a/src/ASPNETHandler/DemoApp/styles/vs2015.css +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Visual Studio 2015 dark style - * Author: Nicolas LLOBERA - */ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #1E1E1E; - color: #DCDCDC; -} - -.hljs-keyword, -.hljs-literal, -.hljs-symbol, -.hljs-name { - color: #569CD6; -} -.hljs-link { - color: #569CD6; - text-decoration: underline; -} - -.hljs-built_in, -.hljs-type { - color: #4EC9B0; -} - -.hljs-number, -.hljs-class { - color: #B8D7A3; -} - -.hljs-string, -.hljs-meta-string { - color: #D69D85; -} - -.hljs-regexp, -.hljs-template-tag { - color: #9A5334; -} - -.hljs-subst, -.hljs-function, -.hljs-title, -.hljs-params, -.hljs-formula { - color: #DCDCDC; -} - -.hljs-comment, -.hljs-quote { - color: #57A64A; - font-style: italic; -} - -.hljs-doctag { - color: #608B4E; -} - -.hljs-meta, -.hljs-meta-keyword, -.hljs-tag { - color: #9B9B9B; -} - -.hljs-variable, -.hljs-template-variable { - color: #BD63C5; -} - -.hljs-attr, -.hljs-attribute, -.hljs-builtin-name { - color: #9CDCFE; -} - -.hljs-section { - color: gold; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -/*.hljs-code { - font-family:'Monospace'; -}*/ - -.hljs-bullet, -.hljs-selector-tag, -.hljs-selector-id, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #D7BA7D; -} - -.hljs-addition { - background-color: #144212; - display: inline-block; - width: 100%; -} - -.hljs-deletion { - background-color: #600; - display: inline-block; - width: 100%; -} diff --git a/src/ASPNETHandler/DemoApp/styles/xcode.css b/src/ASPNETHandler/DemoApp/styles/xcode.css deleted file mode 100644 index 43dddad84..000000000 --- a/src/ASPNETHandler/DemoApp/styles/xcode.css +++ /dev/null @@ -1,93 +0,0 @@ -/* - -XCode style (c) Angel Garcia - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fff; - color: black; -} - -.hljs-comment, -.hljs-quote { - color: #006a00; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal { - color: #aa0d91; -} - -.hljs-name { - color: #008; -} - -.hljs-variable, -.hljs-template-variable { - color: #660; -} - -.hljs-string { - color: #c41a16; -} - -.hljs-regexp, -.hljs-link { - color: #080; -} - -.hljs-title, -.hljs-tag, -.hljs-symbol, -.hljs-bullet, -.hljs-number, -.hljs-meta { - color: #1c00cf; -} - -.hljs-section, -.hljs-class .hljs-title, -.hljs-type, -.hljs-attr, -.hljs-built_in, -.hljs-builtin-name, -.hljs-params { - color: #5c2699; -} - -.hljs-attribute, -.hljs-subst { - color: #000; -} - -.hljs-formula { - background-color: #eee; - font-style: italic; -} - -.hljs-addition { - background-color: #baeeba; -} - -.hljs-deletion { - background-color: #ffc8bd; -} - -.hljs-selector-id, -.hljs-selector-class { - color: #9b703f; -} - -.hljs-doctag, -.hljs-strong { - font-weight: bold; -} - -.hljs-emphasis { - font-style: italic; -} diff --git a/src/ASPNETHandler/DemoApp/styles/xt256.css b/src/ASPNETHandler/DemoApp/styles/xt256.css deleted file mode 100644 index 58df82cb7..000000000 --- a/src/ASPNETHandler/DemoApp/styles/xt256.css +++ /dev/null @@ -1,92 +0,0 @@ - -/* - xt256.css - - Contact: initbar [at] protonmail [dot] ch - : github.com/initbar -*/ - -.hljs { - display: block; - overflow-x: auto; - color: #eaeaea; - background: #000; - padding: 0.5; -} - -.hljs-subst { - color: #eaeaea; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-builtin-name, -.hljs-type { - color: #eaeaea; -} - -.hljs-params { - color: #da0000; -} - -.hljs-literal, -.hljs-number, -.hljs-name { - color: #ff0000; - font-weight: bolder; -} - -.hljs-comment { - color: #969896; -} - -.hljs-selector-id, -.hljs-quote { - color: #00ffff; -} - -.hljs-template-variable, -.hljs-variable, -.hljs-title { - color: #00ffff; - font-weight: bold; -} - -.hljs-selector-class, -.hljs-keyword, -.hljs-symbol { - color: #fff000; -} - -.hljs-string, -.hljs-bullet { - color: #00ff00; -} - -.hljs-tag, -.hljs-section { - color: #000fff; -} - -.hljs-selector-tag { - color: #000fff; - font-weight: bold; -} - -.hljs-attribute, -.hljs-built_in, -.hljs-regexp, -.hljs-link { - color: #ff00ff; -} - -.hljs-meta { - color: #fff; - font-weight: bolder; -} diff --git a/src/ASPNETHandler/DemoApp/styles/zenburn.css b/src/ASPNETHandler/DemoApp/styles/zenburn.css deleted file mode 100644 index 07be50201..000000000 --- a/src/ASPNETHandler/DemoApp/styles/zenburn.css +++ /dev/null @@ -1,80 +0,0 @@ -/* - -Zenburn style from voldmar.ru (c) Vladimir Epifanov -based on dark.css by Ivan Sagalaev - -*/ - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #3f3f3f; - color: #dcdcdc; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-tag { - color: #e3ceab; -} - -.hljs-template-tag { - color: #dcdcdc; -} - -.hljs-number { - color: #8cd0d3; -} - -.hljs-variable, -.hljs-template-variable, -.hljs-attribute { - color: #efdcbc; -} - -.hljs-literal { - color: #efefaf; -} - -.hljs-subst { - color: #8f8f8f; -} - -.hljs-title, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-section, -.hljs-type { - color: #efef8f; -} - -.hljs-symbol, -.hljs-bullet, -.hljs-link { - color: #dca3a3; -} - -.hljs-deletion, -.hljs-string, -.hljs-built_in, -.hljs-builtin-name { - color: #cc9393; -} - -.hljs-addition, -.hljs-comment, -.hljs-quote, -.hljs-meta { - color: #7f9f7f; -} - - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/src/ASPNETHandler/DemoApp/viewsrc.jpg b/src/ASPNETHandler/DemoApp/viewsrc.jpg deleted file mode 100644 index 98b37e43aac512c68901778752853d0fe75a9512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44492 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 diff --git a/src/ASPNETHandler/DemoApp/web.config b/src/ASPNETHandler/DemoApp/web.config deleted file mode 100644 index 3afa63324..000000000 --- a/src/ASPNETHandler/DemoApp/web.config +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/ASPNETHandler/Dockerfile b/src/ASPNETHandler/Dockerfile deleted file mode 100644 index 70a939ce7..000000000 --- a/src/ASPNETHandler/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM mono - -MAINTAINER oscript.io team - -RUN apt-get update \ - && apt-get update \ - && apt-get install mono-devel apache2 libapache2-mod-mono mono-apache-server4 -y --no-install-recommends \ - && a2enmod mod_mono \ - && service apache2 stop \ - && apt-get autoremove -y \ - && apt-get clean \ - && rm -rf /var/tmp/* \ - && rm -rf /var/lib/apt/lists/* \ - && mkdir -p /etc/mono/registry /etc/mono/registry/LocalMachine \ - && sed -ri ' \ - s!^(\s*CustomLog)\s+\S+!\1 /proc/self/fd/1!g; \ - s!^(\s*ErrorLog)\s+\S+!\1 /proc/self/fd/2!g; \ - ' /etc/apache2/apache2.conf - -ADD ./nixconfig/apache2-site.conf /etc/apache2/sites-available/default - -RUN mkdir -p /srv/www/mono.localhost - -COPY ./bin/Debug/ /srv/www/mono.localhost -COPY ./nixconfig/Web.config /srv/www/mono.localhost - -RUN ls /srv/www/mono.localhost - -RUN /usr/bin/mod-mono-server4 --version - -WORKDIR /var/www -EXPOSE 80 -CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] \ No newline at end of file diff --git a/src/ASPNETHandler/HTTPServiceContext.cs b/src/ASPNETHandler/HTTPServiceContext.cs deleted file mode 100644 index 0c6af79e6..000000000 --- a/src/ASPNETHandler/HTTPServiceContext.cs +++ /dev/null @@ -1,53 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using ScriptEngine.Machine; -using ScriptEngine.Machine.Contexts; - -namespace ScriptEngine.HostedScript.Library.HTTPService -{ - [ContextClass("HTTPСервисКонтекст", "HTTPServiceContext")] - public class HTTPServiceContextImpl : AutoContext - { - System.Web.HttpContext _context; - SessionStateImpl _sessionState; - - public HTTPServiceContextImpl(System.Web.HttpContext context) - { - _context = context; - _sessionState = new SessionStateImpl(_context); - } - - [ContextProperty("ФизическийПуть", "PhysicalPath")] - public IValue PhysicalPath - { - get - { - return ValueFactory.Create(_context.Request.PhysicalPath); - } - } - - [ContextProperty("АдресКлиента", "UserHostAddress")] - public IValue UserHostAddress - { - get - { - return ValueFactory.Create(_context.Request.UserHostAddress); - } - } - - [ContextProperty("Сессия", "Session")] - public SessionStateImpl Session - { - get - { - return _sessionState; - } - } - - } -} diff --git a/src/ASPNETHandler/HTTPServiceRequest.cs b/src/ASPNETHandler/HTTPServiceRequest.cs deleted file mode 100644 index 1cd00220a..000000000 --- a/src/ASPNETHandler/HTTPServiceRequest.cs +++ /dev/null @@ -1,208 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using ScriptEngine.Machine; -using ScriptEngine.Machine.Contexts; - -/// -/// -/// - -namespace ScriptEngine.HostedScript.Library.HTTPService -{ - /* HTTPСервисЗапрос - * Свойства: - - +HTTPМетод (HTTPMethod) - +БазовыйURL (BaseURL) - +Заголовки (Headers) - +ОтносительныйURL (RelativeURL) - +ПараметрыURL (URLParameters) - +ПараметрыЗапроса (QueryOptions) - - Методы: - - +ПолучитьТелоКакДвоичныеДанные (GetBodyAsBinaryData) - ПолучитьТелоКакПоток (GetBodyAsStream) - +ПолучитьТелоКакСтроку (GetBodyAsString) - - */ - [ContextClass("HTTPСервисЗапрос", "HTTPServiceRequest")] - public class HTTPServiceRequestImpl : AutoContext - { - System.Web.HttpContext _httpContext; - - FixedMapImpl _headers; - FixedMapImpl _urlParams; - FixedMapImpl _queryOptions; - HTTPServiceContextImpl _context; - - #region Свойства 1C - [ContextProperty("Контекст", "Context")] - public HTTPServiceContextImpl Context - { - get - { - return _context; - } - } - - - [ContextProperty("HTTPМетод", "HTTPMethod")] - public string HTTPMethod - { - get - { - return _httpContext.Request.HttpMethod.ToUpper(); - } - } - - [ContextProperty("БазовыйURL", "BaseURL")] - public string BaseURL - { - get - { - return _httpContext.Request.Url.Host; - } - } - - [ContextProperty("Заголовки", "Headers")] - public FixedMapImpl Headers - { - get - { - return _headers; - } - } - - [ContextProperty("ОтносительныйURL", "RelativeURL")] - public string RelativeURL - { - get - { - return _httpContext.Request.FilePath; - } - } - - [ContextProperty("ПараметрыURL", "URLParameters")] - public FixedMapImpl URLParameters - { - get - { - return _urlParams; - } - } - - [ContextProperty("ПараметрыЗапроса", "QueryOptions")] - public FixedMapImpl QueryOptions - { - get - { - return _queryOptions; - } - } - #endregion - - #region Методы1С - - [ContextMethod("ПолучитьТелоКакДвоичныеДанные", "GetBodyAsBinaryData")] - public BinaryDataContext GetBodyAsBinaryData() - { - System.IO.Stream str = _httpContext.Request.InputStream; - int bytes_count = Convert.ToInt32(str.Length); - byte[] buffer = new byte[bytes_count]; - str.Seek(0, System.IO.SeekOrigin.Begin); - str.Read(buffer, 0, bytes_count); - - return new BinaryDataContext(buffer); - } - - [ContextMethod("ПолучитьТелоКакСтроку", "GetBodyAsString")] - public string GetBodyAsString(IValue encoding = null) - { - // Формируем кодировку как в 1С. Если не указана, смотрим Content-Type. Если там не указана - используем UTF8 - System.Text.Encoding enc = System.Text.Encoding.UTF8; - - if (encoding != null) - enc = TextEncodingEnum.GetEncoding(encoding); - else - { - System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("charset=([^\\\"']+)", System.Text.RegularExpressions.RegexOptions.IgnoreCase); - string charsetString = regex.Match(_httpContext.Request.ContentType).Value; - - if (charsetString != "") - { - // Что-то нашли - try - { - //charsetString.Substring(8) делает "charset=Кодировка" -> "Кодировка" - enc = TextEncodingEnum.GetEncodingByName(charsetString.Substring(8)); - } - catch - { - // что то не так, осталась UTF8 - } - } - } - - System.IO.Stream str = _httpContext.Request.InputStream; - int bytes_count = Convert.ToInt32(str.Length); - byte[] buffer = new byte[bytes_count]; - - str.Seek(0, System.IO.SeekOrigin.Begin); - str.Read(buffer, 0, bytes_count); - - return enc.GetString(buffer); - } - - //ПолучитьТелоКакПоток(GetBodyAsStream) - [ContextMethod("ПолучитьТелоКакПоток", "GetBodyAsStream")] - public GenericStream GetBodyAsStream() - { - return new GenericStream(_httpContext.Request.InputStream); - } - - #endregion - - public HTTPServiceRequestImpl(System.Web.HttpContext ctx) - { - _httpContext = ctx; - // Инициализируем объект для 1С - // Заголовки - MapImpl headers = new MapImpl(); - - for (int i = 0; i < _httpContext.Request.Headers.Count; i++) - headers.Insert(ValueFactory.Create(_httpContext.Request.Headers.GetKey(i)) - , ValueFactory.Create(_httpContext.Request.Headers.Get(i)) - ); - - this._headers = new FixedMapImpl(headers); - - // ПараметрыURL будут пустыми - _urlParams = new FixedMapImpl(new MapImpl()); - - // Параметры запроса - MapImpl queryOptions = new MapImpl(); - - // Изменено для совместимости. в 1С только параметры командной строки - // Надо перенести в Контекст - //for (int i = 0; i < _httpContext.Request.Params.Count; i++) - // queryOptions.Insert(ValueFactory.Create(_httpContext.Request.Params.GetKey(i)) - // , ValueFactory.Create(_httpContext.Request.Params.Get(i)) - // ); - for (int i = 0; i < _httpContext.Request.QueryString.Count; i++) - queryOptions.Insert(ValueFactory.Create(_httpContext.Request.QueryString.GetKey(i)) - , ValueFactory.Create(_httpContext.Request.QueryString.Get(i)) - ); - - _queryOptions = new FixedMapImpl(queryOptions); - - _context = new HTTPServiceContextImpl(_httpContext); - } - } -} \ No newline at end of file diff --git a/src/ASPNETHandler/HTTPServiceResponse.cs b/src/ASPNETHandler/HTTPServiceResponse.cs deleted file mode 100644 index dcc73f02c..000000000 --- a/src/ASPNETHandler/HTTPServiceResponse.cs +++ /dev/null @@ -1,210 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.IO; -using System.Text; -using OneScript.StandardLibrary; -using OneScript.StandardLibrary.Binary; -using OneScript.StandardLibrary.Collections; -using OneScript.StandardLibrary.Text; -using ScriptEngine.Machine; -using ScriptEngine.Machine.Contexts; - -/// -/// -/// - -namespace ScriptEngine.HostedScript.Library.HTTPService -{ - /* - 8.3.10.2650 - - HTTPСервисОтвет (HTTPServiceResponseImpl) - - Свойства: - - +Заголовки (Headers) - Соответствие - +КодСостояния (StatusCode) - Целое - +Причина (Reason) - Строка - - Методы: - - +ПолучитьИмяФайлаТела (GetBodyFileName) - +ПолучитьТелоКакДвоичныеДанные (GetBodyAsBinaryData) - +ПолучитьТелоКакСтроку (GetBodyAsString) - +ПолучитьТелоКакПоток (GetBodyAsStream) - +УстановитьИмяФайлаТела (SetBodyFileName) - +УстановитьТелоИзДвоичныхДанных (SetBodyFromBinaryData) - +УстановитьТелоИзСтроки (SetBodyFromString) - - Конструкторы: - - +По коду состояния, причине и заголовкам - - ОТЛИЧИЯ: - При возврате потоков в несколько переменных, в 1С не обновляется текущее положение потока, - в настоящей реализации обновляется - */ - - [ContextClass("HTTPСервисОтвет", "HTTPServiceResponse")] - public class HTTPServiceResponseImpl : AutoContext - { - MapImpl _headers = new MapImpl(); - string _reason = ""; - int _statusCode = 200; - string _contentCharset = Encoding.UTF8.WebName; - - Stream _bodyStream = new MemoryStream(); - - public Stream BodyStream => _bodyStream; - public string ContentCharset => _contentCharset; - - public HTTPServiceResponseImpl() - { - } - - #region Свойства 1C - - [ContextProperty("Заголовки", "Headers")] - public MapImpl Headers - { - get - { - return _headers; - } - set - { - _headers = value; - } - } - - [ContextProperty("Причина", "Reason")] - public string Reason - { - get - { - return _reason; - } - set - { - _reason = value; - } - } - - [ContextProperty("КодСостояния", "StatusCode")] - public int StatusCode - { - get - { - return _statusCode; - } - set - { - _statusCode = value; - } - } - - #endregion - - #region Функции 1С - - [ContextMethod("ПолучитьИмяФайлаТела", "GetBodyFileName")] - public IValue GetBodyFileName() - { - if ((_bodyStream as FileStream) == null) - return ValueFactory.Create(); - else - return ValueFactory.Create(((FileStream)_bodyStream).Name); - } - - [ContextMethod("ПолучитьТелоКакДвоичныеДанные", "GetBodyAsBinaryData")] - public BinaryDataContext ПолучитьТелоКакДвоичныеДанные() - { - if ((_bodyStream as MemoryStream) == null) - return null; - else - return new BinaryDataContext(((MemoryStream)_bodyStream).GetBuffer()); - } - - [ContextMethod("ПолучитьТелоКакПоток", "GetBodyAsStream")] - public GenericStream GetBodyAsStream() - { - return new GenericStream(_bodyStream); - } - - [ContextMethod("ПолучитьТелоКакСтроку", "GetBodyAsString")] - public IValue GetBodyAsString() - { - var body = _bodyStream as MemoryStream; - if (body == null) - return ValueFactory.Create(); - else - { - // Выяснено экспериментальным путем, используется UTF8 (8.3.10.2650) - return ValueFactory.Create(Encoding.UTF8.GetString(body.GetBuffer(), 0, (int)body.Length)); - } - } - - [ContextMethod("УстановитьИмяФайлаТела", "SetBodyFileName")] - public void SetBodyFileName(IValue fileName) - { - _contentCharset = Encoding.UTF8.WebName; - _bodyStream = new FileStream(fileName.AsString(), FileMode.Open, FileAccess.Read); - } - - [ContextMethod("УстановитьТелоИзДвоичныхДанных", "SetBodyFromBinaryData")] - public void SetBodyFromBinaryData(BinaryDataContext binaryData) - { - _contentCharset = Encoding.UTF8.WebName; - _bodyStream = new MemoryStream(); - _bodyStream.Write(binaryData.Buffer, 0, binaryData.Buffer.Length); - _bodyStream.Seek(0, SeekOrigin.Begin); - _bodyStream = new MemoryStream(); - binaryData.CopyTo(_bodyStream); - _bodyStream.Seek(0, SeekOrigin.Begin); - } - - [ContextMethod("УстановитьТелоИзСтроки", "SetBodyFromString")] - public void SetBodyFromString(string str, IValue encoding = null, IValue useBOM = null) - { - // Получаем кодировку - // useBOM должен иметь тип ИспользованиеByteOrderMark он не реализован. Его не используем - // Из синтаксис-помощника в режиме совместимости Использовать - // Из синтаксис помощника если кодировка не задана используем UTF8 - - Encoding enc = Encoding.UTF8; - if (encoding != null) - enc = TextEncodingEnum.GetEncoding(encoding); - - _contentCharset = enc.WebName; - - _bodyStream = new MemoryStream(); - byte[] buffer = enc.GetBytes(str); - _bodyStream.Write(buffer, 0, buffer.Length); - _bodyStream.Seek(0, SeekOrigin.Begin); - } - - [ScriptConstructor(Name = "По коду состояния, причине и заголовкам")] - public static HTTPServiceResponseImpl Constructor(IValue statusCode, IValue reason = null, MapImpl headers = null) - { - var response = new HTTPServiceResponseImpl(); - - response._statusCode = Convert.ToInt16(statusCode.AsNumber()); - - if (reason != null) - response._reason = reason.AsString(); - - if (headers != null) - response._headers = headers; - - return response; - } - - #endregion - } -} \ No newline at end of file diff --git a/src/ASPNETHandler/HTTPServices.csproj b/src/ASPNETHandler/HTTPServices.csproj deleted file mode 100644 index 5c2718918..000000000 --- a/src/ASPNETHandler/HTTPServices.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - - ASPNETHandler - HTTP services for 1Script - ASPNETHandler - $(TargetFrameworkId) - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/ASPNETHandler/HttpMeans.cs b/src/ASPNETHandler/HttpMeans.cs deleted file mode 100644 index bc747bd66..000000000 --- a/src/ASPNETHandler/HttpMeans.cs +++ /dev/null @@ -1,36 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using ScriptEngine.Machine.Contexts; -using System.Web; - -/// -/// -/// - -namespace ScriptEngine.HostedScript.Library.HTTPService -{ - [ContextClass("СредстваHTTP", "HTTPMeans")] - public class HttpMeansImpl : AutoContext - { - [ContextMethod("ПолучитьФизическийПутьИзВиртуального", "MapPath")] - public string MapPath(string virtualPath) - { - return HttpContext.Current.Server.MapPath(virtualPath); ; - } - - [ScriptConstructor(Name = "Без параметров")] - public static HttpMeansImpl Constructor() - { - return new HttpMeansImpl(); - } - - public HttpMeansImpl() - { - } - } -} diff --git a/src/ASPNETHandler/SessionState.cs b/src/ASPNETHandler/SessionState.cs deleted file mode 100644 index 37660b1f4..000000000 --- a/src/ASPNETHandler/SessionState.cs +++ /dev/null @@ -1,36 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using ScriptEngine.Machine; -using ScriptEngine.Machine.Contexts; - -/// -/// -/// - -namespace ScriptEngine.HostedScript.Library.HTTPService -{ - [ContextClass("HTTPСервисПараметрыСессии", "HTTPServiceRequestSessionState")] - public class SessionStateImpl : AutoContext - { - System.Web.HttpContext _context; - - public SessionStateImpl(System.Web.HttpContext context) - { - _context = context; - } - - [ContextProperty("Количество", "Count")] - public IValue Count - { - get - { - return ValueFactory.Create(_context.Session.Count); - } - } - } -} diff --git a/src/ASPNETHandler/check-docker.sh b/src/ASPNETHandler/check-docker.sh deleted file mode 100755 index 1a9439ae2..000000000 --- a/src/ASPNETHandler/check-docker.sh +++ /dev/null @@ -1,3 +0,0 @@ -docker build -t oscript/http-service . - -docker run --rm -it -p 8080:80 oscript/http-service diff --git a/src/ASPNETHandler/nixconfig/Web.config b/src/ASPNETHandler/nixconfig/Web.config deleted file mode 100644 index 6f9b6ae07..000000000 --- a/src/ASPNETHandler/nixconfig/Web.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/ASPNETHandler/nixconfig/apache2-site.conf b/src/ASPNETHandler/nixconfig/apache2-site.conf deleted file mode 100644 index 3a131d082..000000000 --- a/src/ASPNETHandler/nixconfig/apache2-site.conf +++ /dev/null @@ -1,46 +0,0 @@ - - ServerName mono.localhost - ServerAdmin web-admin@mono.localhost - DocumentRoot /srv/www/mono.localhost - # MonoServerPath can be changed to specify which version of ASP.NET is hosted - # mod-mono-server1 = ASP.NET 1.1 / mod-mono-server2 = ASP.NET 2.0 - # For SUSE Linux Enterprise Mono Extension, uncomment the line below: - # MonoServerPath mono.localhost "/opt/novell/mono/bin/mod-mono-server2" - # For Mono on openSUSE, uncomment the line below instead: - MonoServerPath mono.localhost "/usr/bin/mod-mono-server4" - - # To obtain line numbers in stack traces you need to do two things: - # 1) Enable Debug code generation in your page by using the Debug="true" - # page directive, or by setting in the - # application's Web.config - # 2) Uncomment the MonoDebug true directive below to enable mod_mono debugging - MonoDebug mono.localhost true - - # The MONO_IOMAP environment variable can be configured to provide platform abstraction - # for file access in Linux. Valid values for MONO_IOMAP are: - # case - # drive - # all - # Uncomment the line below to alter file access behavior for the configured application - MonoSetEnv mono.localhost MONO_IOMAP=all - # - # Additional environtment variables can be set for this server instance using - # the MonoSetEnv directive. MonoSetEnv takes a string of 'name=value' pairs - # separated by semicolons. For instance, to enable platform abstraction *and* - # use Mono's old regular expression interpreter (which is slower, but has a - # shorter setup time), uncomment the line below instead: - # MonoSetEnv mono.localhost MONO_IOMAP=all;MONO_OLD_RX=1 - - MonoApplications mono.localhost "/mono:/srv/www/mono.localhost" - - Allow from all - Order allow,deny - MonoSetServerAlias mono.localhost - SetHandler mono - SetOutputFilter DEFLATE - SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary - - - AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript - - \ No newline at end of file diff --git a/src/Installer/BinaryContent.wxs b/src/Installer/BinaryContent.wxs deleted file mode 100644 index a5791c50f..000000000 --- a/src/Installer/BinaryContent.wxs +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Installer/DocumentsContent.wxs b/src/Installer/DocumentsContent.wxs deleted file mode 100644 index 5a9e577ac..000000000 --- a/src/Installer/DocumentsContent.wxs +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/Installer/ExamplesContent.wxs b/src/Installer/ExamplesContent.wxs deleted file mode 100644 index 9b738987e..000000000 --- a/src/Installer/ExamplesContent.wxs +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/Installer/Features.wxs b/src/Installer/Features.wxs deleted file mode 100644 index 9bf4cc664..000000000 --- a/src/Installer/Features.wxs +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Installer/Installer.wixproj b/src/Installer/Installer.wixproj deleted file mode 100644 index 009bfbcd0..000000000 --- a/src/Installer/Installer.wixproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - Debug - x86 - 1.0.0 - $(SolutionDir)..\install\build\ - 3.9 - bbe794a6-b159-422f-b655-b7f03f25f223 - 2.0 - OneScript-$(Version) - Package - $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets - $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets - Installer - - - bin\$(Configuration)\ - obj\$(Configuration)\ - Debug;ProductVersion=$(Version);OutputPathForBuild=$(OutputPathForBuild);LibraryContentPath=$(OutputPathForBuild)lib;DocContentPath=$(OutputPathForBuild)doc - - - -cultures:ru-RU - False - False - True - - - - - bin\$(Configuration)\ - obj\$(Configuration)\ - ProductVersion=$(Version);OutputPathForBuild=$(OutputPathForBuild);LibraryContentPath=$(OutputPathForBuild)lib;DocContentPath=$(OutputPathForBuild)doc - -cultures:ru-RU - True - - - - - - - - - - - - $(WixExtDir)\WixNetFxExtension.dll - WixNetFxExtension - - - $(WixExtDir)\WixUIExtension.dll - WixUIExtension - - - - - - - - - "%25WIX%25\bin\heat.exe" dir "$(OutputPathForBuild)lib" -o "$(ProjectDir)LibraryContent.wxs" -dr LibFolder -cg Library.Content -sfrag -gg -srd -var var.LibraryContentPath -"%25WIX%25\bin\heat.exe" dir "$(OutputPathForBuild)doc" -o "$(ProjectDir)DocumentsContent.wxs" -dr DocFolder -cg Docs.Content -sfrag -gg -srd -var var.DocContentPath - - - obj\$(Configuration)\ - Debug;ProductVersion=$(Version);OutputPathForBuild=$(OutputPathForBuild);LibraryContentPath=$(OutputPathForBuild)lib;DocContentPath=$(OutputPathForBuild)doc - - - -cultures:ru-RU - False - False - True - - - bin\Debug\ - - - obj\$(Configuration)\ - ProductVersion=$(Version);OutputPathForBuild=$(OutputPathForBuild);LibraryContentPath=$(OutputPathForBuild)lib;DocContentPath=$(OutputPathForBuild)doc - -cultures:ru-RU - True - bin\Release\ - - - obj\$(Configuration)\ - Debug;ProductVersion=$(Version);OutputPathForBuild=$(OutputPathForBuild);LibraryContentPath=$(OutputPathForBuild)lib;DocContentPath=$(OutputPathForBuild)doc - - - -cultures:ru-RU - False - False - True - - - bin\LinuxDebug\ - - - \ No newline at end of file diff --git a/src/Installer/LibraryContent.wxs b/src/Installer/LibraryContent.wxs deleted file mode 100644 index d03be78d7..000000000 --- a/src/Installer/LibraryContent.wxs +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/Installer/Product.wxs b/src/Installer/Product.wxs deleted file mode 100644 index d0106c97d..000000000 --- a/src/Installer/Product.wxs +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Installer/installer_left.bmp b/src/Installer/installer_left.bmp deleted file mode 100644 index d6d64fae83c37a9dbf0056aa80dfab6cae9533ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461814 zcmeFaS9l}WnXc=7buRYvoa=MzZsySJoP(mJmgO0b_u1Yv9!FWSTCEPu2|4Es5Q&Hc zh(Lfj=bU3RHQ6~QsTJFbo_)Tm#fB)UZEL*eT(Q=(R4RZ4uq&EueDzI*`NRW z|MerP?ZNe7kKv1V7pQFtPvbS3Kj<*I$24 zo=xl|9^#oq!;@tH8E^5drxO2wXYTw15!?Je|G>+cmoO1vBEUr8zcK=wkwo_K?qml@ z{PN2$|NQ4afAYyEAAR)E2XuS?{rBH{?>%hs=)(^`#Pc72{PB|~Pd@+r^Uvspcz6x>{S%np<02J32c6_o1Po;o;#Cx{cCpY*QP5 z+He6tn|#`)rlzK+r)Oqna8;P2+rq-a1-juE;U*w)X8_bwcMLS*aRULq<6LlmK;RCt z1M5V>6Xm{{=|D411dRxGf^0m*so^kO1Bm>`JK*wg_43+h(3I9 zpP(FJB$vY<{#Rg*WFo*sfQi6A5&=SR;uv5H27ypu-_iM59G0{zvan zjDzWogTZtl9p(a_0qKA_yd1cMECxP-QuO7O<(cWpzTWQo`nu}sV0CqMO-)T*U0oyH z0C@1dy}iBTY3uCl?4nzDcXv-uPj7E;UteE;e?P762XPG`7XXl-P#%0o1K+`RsD8j5 zSckm>tP@cWtP`da!A^h<1&T@*-pTnI4MYf>egg+d3>m&z0MW$D}#1c zz*-!3v4f6suc^4dyAjaGg$-e0Q2vj6BAM4P5nv+lpNaq=4%UD;;11{m2ZCnb%KdwH zKmO<=C{s#-QYfR^`|mvh(?9x{N@IfBcnN_xc?alm_|9+`pmU+$p?^Ve*dTbrB~W!~ z3A%Z1b_PTaheCFn&2G1QJf1)x0IWwMkytDikH>3kYr*&W`uc{320*^4sj0cS8K7@# zYXj&B-wD|X)`_l%peIZxG*1AXh;#rQG>3ch*Jw^$mxRL(xeaOq@wgh{EC6o25bprJ zk1NE)Xn%dkLA*2?25T8;1IHmwkuC(Gh=UA{CyZbK z3)&n%0{U?zI0ynl(?bOV<=`olG9WuXP6=o*x4o^+=kb_KMvKMba5&s#z)qtOJ`3DW`e&9WV0ok(@id~k3>p>LMw#Cw4@$HfEuO`tqswtUBFp^fz01l+ij zz&{(@#}x?Ro|%~*8yy-N=xMI?_{`-t<-1;UVbmjRuF(y4Rn1McEY5Y#PBpGv=pE?t zH-wc@H_xHYy|6HcC=p4HIR7X9D$Jow1egdg5%_@-AR-#@1*2)bxpL_eDokzx+;Ebw z)A>U94*(qGY9coX;&0|SBqy;Buq7PF0l+;tj@N>fgySG7kP5Z}wa9w{zGz)N-F5YK zPN&0cGFh!wXmg*>S5;L7ngiuf=VgcAb(!XjzGc6b;)8jsnnR)^i;^?HHwgfLH_9A-;Gl@pW` zkA+Bb7&Rnu3ey}03w{OCq9h%Pn*hS`&5|4!twbZDJ8_u-yYVLdeSIwr;gDPHF|%Fz zLYJW+=-@O)^*wFg@uAw;iPpKP=H@06M-KR0YDrg5fBGnCnm-(uC1aH99k8kl_*wl z9QriDaVT_fJW47@Q{d;kS@W z3#Ge5p*;%vn9fvO8XDhF%l6SRwCq^1(C)?+y+WUJv4(A(%oSo-c z8E4B=&z7g0W2J!O=u;E1#o3O9>Gqbm#AE*5t*eW5Rf>jq05>#=yA}rJKjibt9K%F_ ziNN2908j$>g0^$>b1*ufzt>P52(Zx&m;-rfMSdAlo#=6p2>Lp~aa;h1wX)eChw9wO zbJBVo94G!b;W$Jw1Ty?_aCV@tucx=Cqrb0ZWVC*6K6LeZ;KBQ~?>}z6un-JYduXE^ z$xq^yllzVPd`_lex8M%c8--wcZ%kdW0A$#&e`$i=D5Tl zd9^VrSeWVzSXnKNaYTa{QaU%R+bgRwx5 z(1B1zLt#cD83-05^+z~PQk}Q}zyXKuMiLJ)GhrGKjsx*TkK-kz(gOk?7YHK8Q3nos zqJ*%sx36_*sA+1Zc4aMc`)=UT2i{LUi#~bMc4<9QTkCeYpvqCif}AI@R{pabr*f&2 zli)QPcJL4lmk^@6;p#xkH#OEpgHEqq<V`Ua_vJ1I8&IE6C5YL3f>kR2iXb7aU|$Z%yCk#hhG7tQb|ro;J&_&zW$cc z@rH%P_@(QSd+&!ncvAJr7oN|)tp4n?#w%AMwed=a1J(-RIBHi=kNACm{QJHNsVfJs z@r$s9(+zOLZ-HR~-3?0}6)&iJ2?yN{gTNroGsw=Ekl31ZUwqz%GX#2gi~9Ba$51PGYUVB8MJFAxc7zBh?8bh1dmnXD}TP!Ew-v zBspQrz*PB$M6SED=m*O|>*F5|r`r+rHCtp=R`P%#WS5=>W z)^hnuG#YVLR-$$#QG-ZIRzTrIo^vzDiA7FE31N$e5Zx#?M`a6+N3Bad77JHbIgBDX z>kS#}w|dDtHch^#f)x)NI$8q#U9o|lcxRi}X@94veAn5clyk)?xn=43<(Y+?>=NFt zQsG{<_#jtyM4&h(P#hO1kMk8r*^&b#qMe02sB(BLsr}uy<@xU69)Ddmhj5%y<*J|G zxH{im?}+&HlM~~(h~f`{_ILkY%mGXUmsIF4r$#VW*9!Sw(a2AJb;r7=1mgzf30 zIX*brJiFMib~AqGaqPW6*L?70_>-@zpZulz(=YuWeO7({y@uJjns^NE3S9DpwE`S} zhvOhMDI~`hjer}4i5Nfx{f-=IDCqaPtTvNOD?Tr0{Xrx6Qw4=@Zpf!@s;%s93%548 z;x$@VWu8R(>iMFyvxUj$i&LS&3(B*KI6F#tyI8{g9LXWR{HREIT&#Xxta*;^FG#d6 z2q={AEf(x3;AG^oQoA}#D+@gXot~J#G{JG~cr0(MUKnT!>+2#e1R2poxEPdw>jTO> zU?RXo;BQBOl7Ij49}vr!cWNHvDQBjM;eahE(Szdw&Jt?{D2E=0hz5d@?S!V@Y>`82 zLy{AYL)w3zOsC zI*x>dukw4H640&o1HYEaUHC3lH!lhXwLuLd6NO>N%kjO8f|4c91VWC{i7jYF`kk zPjKZ2N`;W*nR%?V_Ezoch2FtVca6VfGsg{*lZ_Gn{CG>q!ELUuMz#Q|9GBI<{a0gt z%0z&P026_4A^>Di5Wl#(Fh4gjL5X5CGH?baG9)>vwuZF=;Y=hsI8G!vSPUX3Qk|q^ zC85Xhwxptt=yB+M=yBLDi6kf92k(h@#&5xIM15dae}BjDSj*I6)AEgm>mM}S{jBc6 zSMm410?KRN`y%q-)6lJlfu)PC-hs;chPsyKSWOfaEW{#Dxa34`1M39b5bQ{b!h`|z zopzI2QY0#SQ(X3jjPs^O@@|E`B;Z!Y!q&!GPfJ4}7SS0DZX-E2`#xiFh0%HhlQOEf2> zy61$7LoD&`Vt!^mJFT@@e(^&8(D(E>m~NK;Y@oxoFxlp}ly-MC!fwJ<5JCIqkHqXT z5nv*~MBr~k0K8aVTZf&3A&Nby_(RsOx0j$CX+WTy80C=U5Y8}O5-105;I1U94--}7 zfHf2)TolwDZuZB)ak%Fs$q8c}uZ5|C_ryEH#6j7355)MuP}|sS>)hqmiw~Nwf6{dC ztA_hu*FXHS?&0V0dru-a-V3c>^AArrYa8^HF00E0WLH)BT`m_;j@MMF6>!p;8pRhE2Zy`8wE@<*^*ELDG|67S zxYRd4(HeHi2Ku{kfyCVmgYv)exn+LDM1Y9^6#>{OAO(yORByo9=*4`4^z?zq0U{F! zl#>DvGA#*l$%!P#y+7O)NOIr?E_ou=Ni1@}`a2xQP#{nVWQXg5V{klP2xkWG12K;4 z1PVv``v{;pPTM{)pYl(#`|B^-+dCl_BgtHEjT*sZfdvs zsyQpkuDSI!AcYrHA%$FP&%AONS zPY7g3`I18%5%9f}CCD!0r?V4ga2$FZ z948}yz;V1B>V89v4-NM84|EO;cZ|$-%&fPsJZQiCY1{QLT5o;Ta{H^M+n+aF{UEk{ zGdw!yY3{TJLpqyHsntoOGO1LG!j(uQWS|=+)iUUHN*PbUI>#ycBP;*coWkFT%KxaA z=2hr9F1sS&Glr_nE<0Z#{~eq2YF@$KQ|~69dN=9xx#Tmssps?4a|^Tbi*t&~cbBsF zvH6F1qGJLH@cleE&X*kFiuSVwyUKalWxR|sZfXf9xs;n!%H3AN-B!w@JAXS%l*R|g zbri=Xnj>75!jj$02<(5gQOVmGtl3U>S;2)6pA{CDhJ2OaCV}~N$m=8SBSL&5W`x5 z9tX!E>fw5Ww`Y1Z(`PbIolbuH^tMxH zK=70^=hM#TQ3Nk2-dR$%r)%|FZ&g5b{!Bq#XdV_e}O4u21ems7^gD&eG;a6s^+ z63#ZNgW%jBQym=VZz~gQXN%JWid_o*F_rN}!trt;#qn?`_tMJn_&{}YRAQ8z{3|F& z&Xc>oG!(R!b~Z8G7bp83rtTWIX9c*w5c+L=})@*hq{KQ zyC&AU=I{5eKIysqW%re@I|c3bA?bS zRIAi}Pi1-0sk3kXOL@U>gsivKvO=p-^b}2i(gq>Q# zN-kz?FJW&hrh6&p$7S3fm+`1x&fkX45^m=_<+$4PqEvf?FUR1ZtYThjAaMH9%E-h} zs5P$m>l}a8C_Opa?^~Yh4%&FQYT{xECyGJ&-}y8%KV~AZH6sA3Vv)@8F+jW-<$6dM zVoOk-m@E+PN9J_+Vh=v%d8&doF*`wf>}a>Ai-D^+@NKH`Y|)_UlY$rAkc` zTuGW-E|W+kHmk*H({svB%O%A|ozP~H8MLJ`$y?>6KRtbF#~XkA@gLvX_9qbhRMI=A zQ{FwBdiGq#`Mj+B!kogA-6bG6`yh*Z7!c?14|8}2+1!2Q99SzkrR>ZSR$2)wrMP@M z)mhun!Eq?@Qo2(Fry%}gmS7tjUAUbqNfW7Z6#Ap!xJ-LgAm5EFXbCUX>wEL^>geQf zq`giBSR3gfozGO|Zu4*7dvHDE5aOzdP~+YOaRbT`OcWO}9?RDJ!ZK&gMBuv-01i;| zhh!R%jXWV~n^B$^3<*^Zl#`q%<)qUM)@`C{g%pyL>O+_SAPzitSSUz!5{~0{L63vu zxN_X5ryYkCgWrB(@xt`XH0ogn`oZy$?*7@{(JKS94+bxMICo<(-S~H&0%V zbxrwW%{F(H9uQY+0P)Qn$G%K1Q>#_MDzC$;mx&A5<^Ps@{`q%K?RoRf=|4h7{5I-^Wo^i zXG2S03@rY+ckYAsiJSF3^TE1KyCA4{FxkwNdNewhhZn> ztB|sNT=tNGKwuG4ToiF>+{&L`=G>VGFcJ9Q$U4FmL9Jn9Q$xJA4h7e!yvC3jsB%bh zG)y@Hqdei26O==eCq{TeCngG4fEZ*uiA4_21gTCaM{pdzO2P`jXdtZD3E!M5R=IX< zovJuooSB&(9v$l+80zgE?d_ZIAG|y~`CxqJlZpAy#}_^yocpM2^iE^fVz{BF(qCh+ zI8NQE|=S|WbycfZT{{qK|BdNbwJ+v%rIXP!BeeeQftZr;v< zg55>Mdy7luZP*rjuYx^1nj!$M4;W`{dJ8lZZ2Mu@Ge3?jW$Zvmq#F3>N0g%tT=8MgW|hnwsqD z=%B~VP-ABjtD_}UIgD~NsPcrtLX2`!OHM}W6TXmaC#(_(MsOUYMyeCIfv=L_IP^HM zj^7Kx4&@G49c3~ocBJNs?Hlgvo$T*h9vQkdG4Xh6`pM+%pT}lC?w@$r*1Hz1AM{kk z%@vgzjH0J0{uJHc{XbAHk%|;@p~EiA%YEgIH_}g?$~yDzj`Qbt=jH7!DA-q2w7;lm zUvV+|o}yw%^6a9b%)-L-!oswIqU3@?^rV8K?S(}Y#Ea2Ow^I-=+g@6}y^OWJl)b%- z1Bh>jm%`?4qdK4BI7gVo6(;dSNjz~9U!2UBCX3{05*76L5xx0ExGN&%9*#JxjGt;U zzkYRXe14*Su)|@LzD5x|(P?46S(`t&ceyF7o17TIeGiEI_Pyic;dw(Bj_!9SKj7i0`!PmGZN1 zy}9SinO(Vg`w9vV6crsTF4|vMw70NuS3$v!f`ZKag7m!nw7k5Of`a6Nf~5R{q=Lfj zh3MdT@%G}9?Ije%DS}g-MRA-~;uObO+$1({I|rS=oh#T*AkGKGB}qbQGCDXeRqa$8 zj_55fs`SSs$~`=BRyjXaZ~V#C^@)YahS6@fNd}J7*2=e0o=AJ%zOmRIw@i!;;)0h5 zGK%gIVO%D0QA9{_UqzFgDJ|c!UufpUw`v4nQsZvDuDd-Dst#9SEe5PvOszl zx^($6MuNgFz}zhZePaW?Qv^4nYiHlxSCD_8pkRMt;huv0o%#9M`T3c7d1<-1skyl+ zxp_%>c}ajch3~@cMUdf?65meA@Y19W8BQzla@KaLQv~16rg{>GpTrR)aRo^{;dX&2 zNdQkA5SJv0WXb4adAdx!Q)4({u)L%)9G58f3dGqgL7GZ?;`*h@#i^$8UY|wrGn(T- z`7>w^VSa6WqPN*KG1>R5J@!!D1&S#tQAtVf_r~t z4C>XT{qhr z=c1u@S7p#>tWc>n#8LUX90$`O$(2f}+ig}V&!0NA_uSc>^XGQt=4R!d&&bV9%RQfx zmz$iMn}nYK4aAd*ijs;U!;6!OOOj}aCzX~Zm6j)!v(UG**yu?tP7)wa$#5RUajqbl zCrswk5T^((O%ltJByvDJS)xdnYjOz3HHPC-)jokFn=MF}s}6(XOViC0y*{hz=O&8a ziT+)WWqoM?O9hP&cLU-eIKm5vLyzO82i_F!Y;ebeoF@q{qsq7T*P1!|EfxWM`7s?; zyuC@$7n9C5=_i|9Epck4OMhVVGHI~O(MaYKC`W@TCnzWG3PCw>$>ESdGbYqx!diLC zaq9LT9LKM|d+#1V59ovb6XO%ZgX2RzQ{!E$vt73rdLA$Kelp+t!9>@c?v|xkq{mYk zGMlU#jSg-K#%%)P*!jB+2g#(EZ&q97*PlQ4+&ibz&%B#<4&!~!rJO&PeExh=UM|%s zi02bAPD7mHcv4A8QfcW1!OO~%&?%0C;2RK6q6p4Q;!+S#;t7)Z!eoIcStv;sNt4C0 zWT^rKr@B;;uF&LY4M&U>FKLV?WZ<|onIHqqyI=zj^0{|%Hc&9;tp zSC0+0Cm@c?B<^@NUn$|PAm@o|Gcj1U*k_qJT_yrsH3ATKo$c+B>X6Ihw%3Qv6Rp+@ zoxYKlU~NsHDiFl-I`oQ{PaX4bidcv$Cqwpua@4NCD2FNs$^m6~xOit2R6s2fYvtiX zs)QW=_!nP%{`Fs|;&E63D7OHKR+d*_$V`k*4EIfrc3+t4x_Y7O!E)CJOFbV>ciru8 zy4X}Rq7uf{QmGE|DcmKK%8^q%FN1K$7EksrQug58O8CxhVq%Q=tN(1bf6Vcg$xJ8 z5nDh!QQV27F(ORd6=Wb7lyBAVG;`itECTSU2L}4vTAQgE0Ub_{qtYGpyZagf%l*;0 zfoNMZrOUloVW%2)IZ#eK7Nk8%JtAGe(gKu|@%oVD7>5a$92_UL+H7MB*MF^+V2Vyt_5vU7F5^Tu-Ldn=tEE_OZ|Yq{K7GZJ*yTFoxK z)=1gnKSYFoTcs-$a*S%0#F7+=G(}1gJXNMl zl`FALky4%FxXyUkT=AmLbV9D)FOu!xiPG8p)SFjlSLeH?1_EBo?!`n%@}EFC+?9kXCz2c-CnG$Ov_wq>$#w!a z34i>_6ROe~QW2{B!w(+czI_Mkk{bRqJ~`GmIo>rt)3LtPd2hAj@pAj4*_In!vDt{P z$zgFDv__SZ8hrl`aa<`D33WPkFkme%eC^$LQgY8x5YNj^$7m=xL7YO(zuU{bHKqEMCg>%TpH@D31HBfBc5yPlY+H%{PqlzEsPN|y?p87^0h0Mu3x{lh9oCea2}Z+@0p(NUcS(I<6_stmG*~o%{K<) z3w8cZw=H1QnKzBw{I=Ns0gr%wSS#3g+-4!~x2NCEpp|$^0jdo1Qws}HC?!sbaRPC0 zJf*ZGrMxtyyo~Cs@)Q;e5T`oL@f02}h0mwEAVnxl6^T;Cl2oF^Wr|dVGF7Rfx`OTi zxF< z>aHbT3bGE6;Z$Jh86_dckx9lK4>%5M1-8{@NzR~r3w)uOQ{0jffV0ul)7#P3T2W!K zR8&~4R-oKLHwbe|n>#B}Mm{t;iV^d$O2BJmJ_CUODM>`y6RMn4u;53?d6Ge%kmO{+ zAXqCXjsvFGR#xWcXE6iU)Wq1t*vL>{cWu~J7xi?u)%A6^^!2oi4foBC&CT>L&G)RY z_TE|Veze$rbEsjVsk*1i5iuKVY87Tsp{oq>zkjGvD3?l2MzvN`^zJ*m^Unj~sfBr| zMfs^k1*ye_=qV*o;zg;YC8=d4spaSd;$D^WnVcdx z*sWAkT}5v}bEtBKDqXFmIBv1MXf!{k(j1V|9Ov*;F0b~lFZIq0ha&DX-{trQ%84F7 zSs!A}48@1L;|VVX5Qhv$rAh+g@W)XFL^zI2G9$^i8%t2s5umX*T!Q;qY;ZO zfa7RbOb0YagEj}!?RJ~r>+fjqKwThA5-=L<2Fd~Sguz1U5edq>yRe#O|M1Ar#N@=> z{QMl&Xr7vwo*0`NADx^)2giq-YpZHQj^;XlZPezn7FSvds(rGKruh88>e|qq_5S-n z`E<)_TeQE*6|oxaTD2bN28hxAA%<_fNG6l2lv1Z%k)Qi~-Z>iLd1*!YX~hMpC534v zMXBgzC23`)=&9wUsqC^;b~)8KtW*v=m5a_v<#AIJ5Elwk#iCS+I87=|lgrW+iZrD% zO{Gp#YtmGjRMG)-T9s2AH<%7r*j_T3pI2)SN)1LYNTO8^}l2hHs^is_&>R5lUjkltA95-3OJlN2KYC*7M`L6Ze+R?DL&T6*nG=^_%@&6-?E5UJzMCh(Gl$ZYE{F&5(4Tz@!;-%PQh;fN1RVpD6Pgg;7tJ5`_bd45U z(40m&RJke@Kho%OjHbg@>x*W~^BV0znPQhvoXHcUU0iItyfQF15~&N8m}Rd$o8vNy z;{p4h=EfR^yKBB9!;#yBokAc^#5m#jcl0>J@vZUAX3laeMF8e0N9J6?0+gd6`H6jkauk&lNj@?>G%-GcA`}pOVQyw+ zd2wxRb#-O2yS1jfHP{f<)`eA#HM)kVD(vU^DvLb!^IlhBbKE`OH#^cg6Aw03T0KS` za+_3v3Tgi*VqB?Ip^HTVhg~NXy?OR@dSPCAQ9)WUrNlQNUS6EWDosacm!&@?cp8VD z#-%$A@iYN1O~_9Z3DU&EG(cPih)bcw(^bk0jXFc4$wFQ0S@PyH>Zu zXgXxIy=bm@L906`SL_r^GWmk^mHDPCtAq1nH4Pz_S^gT;X;r>Sl4HST^pkG$uNNko z!Es`w5E%}LCkPHD4o3wQK}3uvIF76`lkMC}UvB1Hw@d`^g@;;htg8habvivHIib0U zZqVk0=>R%`IJU4{(4fRoUx*?T&>Xf5IF9@$P)^3~H#IkPbhHl*_0LR>&rDCCFD=er zxwL-i;tF;~2D@Sbz0-KkVL0Qm<^?LtYQysO=8CokL&VSaIL`Y$CG|Dd=6I8*GGH=T zv>Gi+2LCG{jJyOGI5$hny!=s;^}}m2(EkDpQ4-==5Sin={nsGlj)Gn_M)ZY z1)ctoLP>L6n0{dih9dJ%JXmh}vY(aD4x4>+nWI5fuUN78mR2HHf z1p|MO>IB@8{Dj9+-_X$2)j2Uf3R`@3W^#FHVSR0N>B7Ro?DX8sWM@;@Y0S0j&p3={ z-4(fBTfW~}7_H*AH5t3xZLyHR@5&GQSo zOd%D?gnS8?FX0F!yb7byYUJjg-Bp~QURsz@T9i>%oB@Kf&`UFDC7!{d2%f=X)18yf z=cEg`=>lH5ke4nJq>C{QQ(HoOmg4 z!(pTl84fSy`w%B3o{SjZGGA-vM7L4|Ak9$o(BIdGLKO^fCmh#kG}uYd9149i$`drF zMY#=*IlzrVLo$IXa+}cOn2!a^PYe$Y%uJ1g+AGT!)-HnKb8|CO^D~q4GgFN*hfVjc z!*H(BoaeO{1ze@op0a9pN!ZV7ZP0YJT53arfTu9z=Q*q>6U3T6a*E?Wpuv8jj-qN> zZgqWoooU01k(x7A=1A?bGO?K4Gymy!W@N(uvt1g+OWJQ#Q4SK3zyec z78hpcW~Y(ioS&Tn&EwT3tM*;H9=XjtudO)fW`%t0h>soimqi2RZH>CF7IP#}9`F?V zTmrq08czTB84h-1DlC~yA`_#Fr6P$`45-@-l@Uh+W*C?XUtEmcUW(tHtGU`2m6uuR+L#@oXIN5WK&{1lT)6-Wo2^NnLKtTpOeYw0^*r8#52BuxF}OD z$yCZRRf)q~^TM>%bjZ%FdxnYK}i29$I;70q>YB@D*V%>a!_n&H zy2=ix$w${O$_2u5n@u4W{<`2iAf8oLoW&~5qzFzyJQENH!6}HdGX3G?0ec5C@0*=dN z*Do&7AHQivYgr@I&J98t7QHS_3)$Y*?yP1n7k6M4`iPK_l86GzZ7wq1$ZMcx}A5 zw;LmUpu5*sSC*G9Pgo5HtMwYAR3;V51OmK7Dv&885((d7Q>ztk6`bEuUX;Zu$!3>k zamundBo}5^`Fu%64v@kmZ zF-}2zZU&NkZgz5I>B4Ydw7FK(6qB_zX!|oW6)@XFu ziVWI(omPk}C2g39V0laABDq2iG`mdRT4!@_U~;DB@=D#Ei**kcVmF6_3(c->pQYNM zG2s?NDwpDTyq0oYknE)MrI_zlDivDHN`v-XVeZcIqHK1_4o+D%w>+E6LQgzh!V$o2I85zGI1GYAO~WmL#Ku0^Vh4-{uR(U; zo2YegkU}A}G2IB$$&vKSO@5zmXs{m{PVgEihZrXir#L=6xx9E`ef?tC$J2{X+ElOk zt^cb&R5;M>80vM!LjqVU@gTo043x7Q^IrR_z#x$ZXOwjaFsmP$0 zn@xp9dAnJ~5aZzZ4sQ7l9t%C2&(0QbvISg<<6?fcgzi#7HXtq+XUiqoO6d-@B1fmn zF=%s4hMgd|&AiiQ&at9@L-TA4CCn+5oAngRO?vF_vQ`|fbiV9#yi#F4rq}ILDs!Zg z%-#;=?WhHv4oHFN4)ECRSI zA08eGhpLI1CdGwhpE%%n223YXJ;C&Z{Q{EHOjKZp09~!oL?dBjI8kf3y1Ymdn;Jw5<}d_tb$P*U{EeEs&mukM(*Gpt{?}O5>EV7yZ-*`7XT_@dbrB&@UK{4OH<_z_ zBBk^lt+F&^4GjjSmuhd_Z2shC)2HyeC#shlTwN}+AHN*cgltI}Ps|a+JCRGF)~PEE zT`Ept`+JS%xLB(Z+bhb7^Y;-w&MVL1v2ysV905B=$k`#}?htWzh(eh6OV;5&@HB2wu-|p z=gXB8$B%>KDrJsLn%UVZzI|=_;(W{ER858Ar=))ablPJv$zMSS$0z&zBOO)u?_48p zc!JI?2Z(8pD3i)x5@np>V z>!$FV_2K-!E=NO+ye7b{iwNqY0=O%UadkL=weC;LCFk3H?H6J<7i;#8g4a%Ei@XjQo7?;K99{YYx>f zbiDmm#R;GJr*YqJnj?Rz3%=1>C+KW3M}yqju%IC-j8$`DVQD0&Qp?Usgr}`oJVIku zQ}vNDh;HO6rSMEBzx#)lmTyKnUWFl@;JDu_W0f3b7w15X1L73N**k@tonr1z2{%W= z%aQOm2o8wTVmwDB-Kml9)Twrww7adwJr2vBO50wib&u1!8#H%pra8rN3gtA-vw`vo zBjouWyY+~t@+Y3kS8Ww1z;TUgr(BxZQeSrW`rP`3ww2j>o93UNA;}f5nH13DKLN)F z+AU+9f%~_wFjn}M{Ngev%|u{R1TdbvufG@dDwqcggELVEj^?5p*{9Z&c-laD>|zVV zZw%<9cZhx`tgozeb#}H*O^#t6l_l6Hlpf!3RIXfJpPrtEe!RLiZIQmN;~%sspR2O` zQ*G66n<8&DhJIfk&h6{8p+==P#IKJEQG*!q3nD?aPMIeaoYty&5}A9kU>Tf`|n$|>0iF-{SjhPaTsOU&CT;q8?2sV)=b$Y~|65bvZQF59V7>@=u% zSqyvZmc5nMeJU znFwsL2tXb8_4R<`9VO`n zrct2>a4yVIl`2aY=C5421dihlV0B@@B>stBaM-SVK2Y(`^?~2FMBi$T{vqsrtFy&g zAC=Wd1PwJJa6IVYhN_fWWxk02woWZ1Q)O)!Bh>g#D&I;xdh#TldEMCH8SIhTo5W7y zA&h-ED;Qzqa`HK4$GD}t1gzac_HH3(w+ImD?vn6#NznznWP)9C;Vy-U>MF@DjdYh* zzRRH6ZPxE`nD@A>``q^ZZacPn(E)UqZBHeo&51mR)3TH5U^?+w0CdYcxQd=MBL>wATCy91ptQ=xDJt z)+k`AG}eewOYV2E10K0XktgK6t=EcR$Ln;|gaMly%4s$~Ozh)exIK8dxjr)SQ>_-| zm2$ma=B^a*%1?01b_>|MMV#GY?rsTpw-lXEb(vtdT)0~<+N~4=;=9$--5U9By>ho% zv&U}Q2Z(#@`$?x!PSc!5xywpuzS{|5Ua=G1ZXq5^4me(EJL+}4>T|#5v^{Sz9@MFK zE9F_S@F{To@>1u;`9`n#SJni_HwkkP94N=OIm#XH34-I_`;#(HFcDxPu*D*P>6Hct z1{&(?$oy7h8xB(|DPv1^$dh;m4bvH-VW*}B>$`0PT$F?y5AbIwj9<%wDqtkrqt%9Y+Wzr6GaIPOrt9JKwvao_K2e1E8R{d?G7 z)YFEN6>(Ec(hwDgeH^cYUFBA&W#ITbR*M=24%{2EC8mACtS6Q|JbGf&6U&}(|0(@J z{%@Mug7mD`V$lSBa$fmyUils&8xY?s;qI04_DU&;?^Ou*C;@TN9+h~nMzTjE-J_N7 zH7NI0X!kqJp!Pw(lj=Tn2Y|jG-Al>yeVzo$tuS8DcUM{|lshduVVXNDAlr}m-LF)6 zU$3;kXf+)+X!d9n+10*ZKe)4eb)|c4p(*J2BjNaWP)-}=6vv~Uvr~N`WQ@P}CuN>s zBEUpoi$wr+hr@$|9qnzPHicxmfz)91cUl7hcO7+9ye?i7haiteVifP|Y8u*NT?4h_ zbM=>(n{N%a;?mHKDnrzd&&^PCV}awCCu{xUGChmdTw8;Ko4ZfJI%Jl;=r;a~-}dW( zM)a-Wm$cPSL&vts_c9#;kK1BkH$6QB6_FzX4{6X{u! zq$Pzng!M?t63Ty*p2br(tEIx=bQpqu1+VP5fVEf5-6!RP;QM3(s>_A@6rz1f(O#8g zuUfiKBipN$?bR#ySv30{#)BT)A%ErJD%T;ZSEAEQ|AyxKyp%TI5aw>%Q<_)os-(2} zKDXnj-}7p~_cNE{C9C;}QM(s|`vcy8eF%=P_N-rM4!cfSRj*rBlq4sec;yx)#_OM~ zP`nm&yfxVuxqD-Ei+y03(`6#SMBsZ7z#L0hq^+mB3&sc`HSkS1PINcGj`>p1VVp#3 zBH?H#6rometBp3a$9jfpr)C<~R~qlEH$J@B@L)cEbtE>|QQzLz+l5LMdQd(l#-eA) zqEnsME?>riaIv74le8u8Mo}Hh_g?^+b5$TF5iIoex+!?O1w`k*{_l9)5`Yg75h!<12)4USH%&(^GLu& z`k}xE$`4gh^8A4RsW7KdZrfzDz+tH&7POzRJJFt#M3wQrUkbO$TVNBoXsLD#Wr&(WY8{YcPt7$^@=s+qn!;=y-D@9R`RP#OKy9! zeP+C&t=@p#CN0Kg*v10cPO>@dICn%>oYQ(-#r`2Pka!hQ3 z;=r0{xTmWFYb#^cTI4!0Q7v&-Aj#*aCz@+38zP#{mdf@ZVjfaYkJ?!39VnE)M3N5fqO zuuihI2@{6Eod6w7r}!QS_ht*zTwi+!~YCRw_;|ev!icW{|HJC9AgXYy5HLA9ed~9iI7#SK^ zzA%4rc?rJCh9sYvo}C=44I13$ynwST>f_f|!wOe4Miq@UvgR5&INn-IalEzO&|Ggb zX^VN~Z@DY=cW&RldiCn;>@3`T(0pKE01L?V_TomO8;co%=B;!C)1lKrbCRS@=yYHm zw;H5@>1c4){eDktbB)!MFDO4K;~!E84k^)vhg70NYVkphQE)8E-b5nQ9iP)RbD67wB`;ARV!lCWcFe@!HWLh_065tONrr6h<^K0Pr~)`F?vz z$jyocL=6#TV~vX9cnlm@wA4u2>eW5%uAo;c;hz$4-W}-g{OrjSEGT^Y_HCp|CnqPz z$HoD4XmbMeo}Qir(BYv2=>+J+Nhcy5emXH;Akt}_4*Mn8*-@vI{!Yv}Bo`b8$5q0^ zD$!xJ7@a`;FgR{h9pW|Sa>$#ABgX13S3A^#2S-Zz$KY91Y)a}b7SC`v6YXua?pNVq1 zh{bFE_o@D>xse8j<6G=2%bYF~f$v2C?&|H^w-%-sM(Ss4JPlRepuN&&aT+TeW}Cxi zci8EIY-$EX%!y?-Ti~An))*nFQELdnv4sf7I7y??gz{`mzJe?wDoCP{P(xk3yQ6)2 zYU1*xwZ(<`xoOHMpBx(ud*mK-L6xH{?BT=%l7jwl32l)@t_@e#H7h(@gF&xhTB_)GD? zi&U=y&0ioiukk;nxsReb5#}NHkq~9GP&5y^4hCG5Hiv1BN^^fDN?e```(KL&{w3&n z&1-wkVLW8f?eW@A-nl+;=gR1{m5$yMQ`943z~^M2Z>qnB;rRDH)XWo1 z1h!rT9zJ?FKQ~)fA48(j?zB0c&VmJ54TuBH@J}!j68MGyM}zK$04GaHz)k_v@g$A` z>rv8&nm?owqv2q4JlI?tMrBD)S0}aFGMsX-d}exlq(4w8@>mLKj&tKdX=7B?1dc~# zO*Qh4M*T>izqifqb8@8ocQlIfxtR$pC5&0iZ{50uEhZ9p@4feK-@3iJx(b_R8aSV% zfIc!ZLbN#nIt+B;p%ZxyniGW%*98q&hdgg?LWa~KV!x~q990UBszgU=h#%ERk7}hy z_29VTs9AN?raSJbcs}HMDdvB4&{_3qOBX_QjUt8(yZ&BLSKco9IQU1Ee^ly{B z-ihw&zkL1G*89vdXUs%^iNLobfQhT1m613!TPmno4C(pDfp2QGyTxKOY^)FjUQ;Ic zQx^rh(BObO5RZc~#D*Ga>Ghx>1jUN=u~19Q)gHArhFwTJLLg61jKe5jTU~-4ud?%8 z=6s*6IOJl-0+RZ$5*%-<*Y({O?FD+9vpPnXW3urz(JPe>C7fR$gp*gfUfQ|;sg)kikdRr^* zKloDK35D>OQglo$KB^HP)k==(WK`G7kD64+DzwL4=I5&`0r8*I24ATQ{sbK;uMN<` zyb36%X-=cO#(yH}JB}WqY?h;;4VoW@Ft2ul-IO**jd{RzxZ3kvwCbm^z%N4H*Zqzc zoF@41d%d<-Z(bg{du`(SYUgl=F2V6KGmusv4Sj3J|#bY%&Zh!_U7xd| zf+vg=$Z$X$V=7V0hwAe>4D^iqV&TeYz!LW$1QM-P>&-Ti-^`84TW^P>Un(VVWG(SV%L~{!08+N(+b(i6Pj&#|ET3rms zzx8Qm9xxHuvJrswJU=@duZh6-2Btx9qQN)0C|GxsB6z|`fpt#Ya6r7ODi8{XFlrwq zA+@!^ny@<(v_`8mH9m37!>w}`)Va#SemjQa#A`6H->Z|IwQBR+mXazbFYJ{@eA0kh z;I@`JO~p1tX_ZGiH97pj2af@6cs?*yaHWAN|LW_nD3pKr;d}4DcmMu<{F`swxDKG- zzx&|Pz4!0kd2r?O6|6TjH#djbxQNq2v^ks>QrQBtg=)S3AA4{8-sZKY`~O+rb6sa< z_HK8Z6w;*3kS1-~l#({ZFtZtCW)N7CEsL3KF*B28nITlzv(NRt*SlodN!%Wo{5G%W zxipUAXwpZXkMG>iy`E)&CP!pms~T&#_R6h`e*?$sF8{rraQttL*Z8XC zTV&n;`OiQ8+kW4&|KV&0*bZ!W0C2R;+LQ`8xtW;xpi#nFps;3zQyC6792-lvl=ukF zPYMKlkw_pCarwM~@v$!MNF#UX8gK9dum9Y5@1@b6t0O)2qk}!;qr(Gzoi{FibN#~S zw=N#7zxH+Wt?%0!enNG$oEaT#mQQnW;1i-7(G<)x;iZ7xaDE`k|JT2&1`GbSB)G!Z z<@sVBFrO=xmll>6=T}Pkaw47#`U75^Qe|ikc@CP}Y&IHe0nlN#z+9P~HA=;8w=O+@ z`_kV5aa6r5`MEcVcBm2bTuL*_^jP^X+PdNTR1~_}t5&2@tUrcEIwqeTg zZJKY5J*mgi)A*`c)of-tzWrUye#Um-zjp^f$#6I_J8NxhZn}02H(uTV%xM;d5*$to z2#$FsWH^O5aw%9!1w))bd_sVAEJ6{sXbp{x_l%9Uj*i|O8@f0)cy4sy!Z1>Xy^Xy+ ztv%iCSa8A{9~~L$>FI3jXt~DF6MbL#)m*ScrC_xZ_D;QN4FfZ9(A zDCh43&9{X4^OCACucDmN9HzNw`01+0G6+>ph53I7fbxNV% z9%~;Ots5G>GBkXCXz={tz?J^K+kL&QJw5GR-JHI@9{eexP$ZFJ>6J{aQWy<7SlK`= z)&nFG$qdYqOtw%cAew?i3SbRn1LeQ{_8U}r4dry~iQk2ChsT01#t#6{yp%64&OxZJ z7W3s~A{`6`eE}b)pm17%a+v3KyUl7bSuBQG%XG`F_itT#y8g;P>aRTAc#$^87SV&fQBK^RYdo zM#%_NJn|2eXk?4##Af;1#1KKbU;q&Rcfrs#E=XD9X1ymae)32H9Gkz>>aM^j zr!!Bg$|2I>p5u3GCOmbp4r@n}GPUJ^{5HuhB4{%&C_#YEP&xprfn&Q4G9DSAB z|NKzrQ@t(!bFkytsDEOm90tc@zRAJXx4OacdNS?YS!D9b&|E9IVU_p(@%yj;&A)Zo z|9rLsYzL|xz#tJ>Y-}yT-V|`WMsO;_G14S5oP-M*F9k9jR{#lxI87rG3%P=^5$?bM zx2uoa(!;&g&Ar?+cClyVV$a~Up1%6--nOppj?PX_Z%;2&Ja&fTSUlp}IGBS7AVPug ztl@Y7vcX^wr+bpgBvz>)kb+zaOmHN}Ywij~IsU5nfIP>~9!PbHa(pGM7-slc$mO#z z&F71Yi>1|aem)sbheMG-FyJRgN}X60;CJi$IA7FVdbZ&Tsiy1Cw%pv)UbnZq>G|Q# zeZrxa<^0#wqBk|-H#DNx)uPwb0Qv-_`GG3U8DTDm&BCCZ(wu1XEt)f?IYl|8`BNgG ze3(J`(BFi^&rFW*pW?kG9($cX@WM#<)BUagHpux$#KT>gkIbbExJqKU{XKB}Pf>pR zC5_~oO*L?LbA|mTW;?)kfbBrF1F$LlelIwS<2}&eaKkCY=|~fXI4Dfkz;eg25D~jd z$Yw#Ya7-{h#2p&o_Vn;tJ9!Np-gOT55@-Bk*YMS@!P{MZ&0W3ion1I6)IpAVVj=GM zI5>_!3y$M>4)&rT7YJ(w36nq|fD3~Xi3IL`gSdty2buwBkQ&k(UJ5ig3>F$+fhw<| z9D*HRgRi6>3l--0VNfc}EtXam^2_;D5kDc|n0q`x_SRk9*KlP|!__^FSNF8u z+|zb@Z&%X`Lmm4j249i!-%yL+)K0#oon%lh2FfYTq0nDZ3SqV|!kn1qRG34RzW|g= zdC%=cIT?YDJ~KJ`kIAYq2g;vZ(IKjQ>3LJDBYN+X1!%)egY5NF@^*9PDf*hwL%W zq*v#Fztl?s#K~%J+~x*11v*?T92anhc*6tS{w{t;o1m$cf3ul?wS{-Nb?i#}@Xd~a z#!g0zbGq8FcZI$PUI9M?s2&H$p~t~-~wEQ00PLbl)E(8XLE zIe!Dk1J0qfg?Kq_%tkf5-cPz4h#s%iBOZ%-@-nXIoX}rxy)2kI6>|VLdK9le58-p-^uT46|^=^)YS{G*9)#T@vgRv z-Dn%Cu;}nSbU=^SMefRm{Xl0oac+@o@@qAegaJ#DMq+7Z4xh2zr_)+UtakH^sMZh_2t7xK_`*-ZXlc+uqTQ z5hr0D9C{pwFrmk59H-U_TykVlfbyCohanD>!(FK*5o=*Y{NFDhZ<3Kmqx3z4`2v1;qj0!#88vm z!7LW@CIrL0(SF`ghoG-X*m-NR<=SNZ)yZ2|#5ZnC+^FN;Y8q~6>ucroz@5S3a)edL z0v5_~ybfLg>rJq)3Uf|GR={x_(!r<`=|IYHSS#3?Lah~mn7ZTu^iHE3l6)u1@k_Wa zHI!421wR1bu^?ccFXYmxWHJ>EcnrPmUpHOb*LL$IPTl^VrUOImuL}C!kn!HtO?_yV ze`J>9@k6uh1JK+gea|?J0?pqxNZta?8KA$RoqSz8`I;6q7rlaFXikK=Qh*|kIb*Xx zn*-?2%XrVhH<$AEPILF57@Gz1{P}6#EAokVrGj@vBQNv%pBw3XYN-8bx3zs^F;&T! zODT(F?7NjmhAxB0k#7VbpWiyVHuoWhob^71s_bl z5N9rGpxkGHNf0w(1CIrN9J)T6NvBgm<#b!it+(24?eC~N(A)gVNXP5K zfw$zm_w`c;EwV#a#UZQwW3&7qP;RQCoYMSVqvRc94dqjBXs3X3*epbtGbjhm4^W#0 zG~aT}_sMxL%6ZSD7@F^ua^bP;k&L0>q`#^VzAqKLH#zz$zyF2Nu73=3o_1MUHs9cV1ual+EnLxY3pfO<7sK#ImzvdqTAQ`^>w37&Hb(I-R+!C z4osDv?jD#bgF_^+NW&_4H7o(IaU3g8u%3|WaiqvYp%6}E?woc~YXw#bR5q35)Lo%Q zIaTEtd*W{nxYIBqO|Ssv_#xm+q1GaiSuxBc_Bn=f}Zywcb5+GyvS!ohcy{11(i zLoDryxa4b2*=&Tn1InIOfyiuwPzNi9V1|ygxPenqc6?v94!^I8QlDjhoAvO4d@& z&L}2+>1_nWX%U0v5mi3T{W0R2a_Gj{Z(6nkYzNp5JlX+x6yb0PUI)S{$OwwWm}?Rx zj?DPT_*g%8q?13`DD1l`={_UnoRqcvByap#R)0!TcR^Hto!eMH)Y8)1*51u&CmiqS z?e2lJulejWbVz-boq8M`M`Q&la?0^|JPvCG*+EP@Ymyu&2byarhbpJ;3RF2D4wT~) zJcF?(e(MfczPU+M`7-i|^X0jen0vYP*6ZDkuMM`oG1l{zc=&zQ#6hD3_&#D+p+2>% zKCy4nd{%zYLQwvZ1vHm}=0uoRX+F)+oIyF6e@-%vxd6G1df* zbiBpydsi~{p+gs*gBOl;*0#HpL;E;$xfqpcSvud?X6v$c3kR-31<&Us!(&BnkqCr4qpXx&Kk#QWQB4Z7C9t2JrGn2l2b_zlv7C# zqa0cr?g~EW;UKsxAUF+`;}iV-3Cfv0x0@U5mHDigU*FmI_E`73!od$@ypQ!$pUx^i zcWJ(GYrk}Bzi??kcWJj#?jXYauw7Y2Ikfo<73RcdVT3suffA?1Fb$M5Hp}E2I)ZY> zG_RukWzEC^H9#drLIDpWC}SR6(sX{I<$S4W`$pONy|m?&sO9o_Yux}5<82)r90u)#81Esb%1(|W zbVv^Y(Yy-Ib3%{P$O;{G(nTw<$ZL`u)(QrdbmI!mlGh|TI8IeLI8ISc$DRb`Fj(&2 zzjyb}y}O$pr>dWGl-K*=)aW7Q#HS|d=XN#l{gqcw%A+GFcN3I|msAyF2Mh!N&hn!lu) zfXxE09JOC1d`mZVSTl7Pp>^@d%l!Vmqa9CKHJ9(KWS0u|#e&lyyWZDCe3hNG(=O-s z9*%mab)pvb+m-DA+X1!%yLSL6guhY9=ha$m|LAZxcer_C@ap8iNk!i=P47`%_Yr;P z5gq5Kw*4z*+xL>zvx2s3!)*;c?X8_0a2y}Ctt>EA$bo+5L_U0WaGcILkvpUu$D9)( z89M4jihQRveILuXpX$U% zXXIbIw8y;qV?M(-r1W2Vbp+)e9Z-Ih2y>uZQ}tLFnp2d2Y$G)PXhu#@PG}ChoD@_! zs)};hEDX(G*NK7hSG6^i3lFG;M3t)qn18;gp5)bI%McPtm`oaYPR($LYc>s>cy#hqY3hcG8V2^rSveP6wVljdDhm zR}B{YlLE8Pdv{iJiq?t2&s4%M%+jx&>f>JBw|>J3zwtZ25ubqO$AEG|a|m<&mu~%0 zx9)SI%{8C7G)G+OPo3&d9IC?(-T=+@Q=s{) zI`J!@xt0oZf^vrD6ECa9ZyTmR(MygfC*GHgy($=ZVZ8HchT|!4e7WQ{E9)4J1LeEZ ze5n1Ms7IpV)v@2JYzNp5upRiT4#0*+c12@1-^f-Z{8-oV znY!cHH0PHI&gGHzy59EY&h}Og*|0?>oD9cn$#IEW(EJ<5X8F=XP=1uLSs0XSfO5uWQB_e+Y!(LPR)TWIW?_W6iSbx~ za--x;6liV$$|r$xhUVgzHDai8I{ZYqr}}C9fcZdz3nd0#9Pj#vMRjgtIk{4D zugrO@>V_R0-v#CUEw4vBlPdmg{FnaKTgd(%+X1!%YzG!A3qWeGY5Hqr*Js-9PYm4$ z4P6Hrjvvx>9#wXHH^n*2ZNEOy-q6|J!fD67LBv$)>c&o$TH+946>yvmIT1RIBNEMUMZYu*f0FYt{<%IL(s7C8xm^NOGE8fl&^WW4uWvIouUEDv5|q z!u!E0KjGH>7%=@Dvi=-KS$+yxehiu^&>55)j{6OS=3c`$UIT>rmtOrB9^Fw7Bh1|p z=ISFrIThv@ev)EPZc}_XEB}z8`TMY0%*e59qnyy3qFg`un!bi|EM_5g`KuZ+W~86! zrJt!qA54$GE*#v)>wd`Ow(_hB*bGePQ7Vl zRJj2tpL|t6`3h_noa5IBVV%FFmmJhd4ykaebNmg_;C_D39<%b~`ciDQ>_gdft>Ab+ zF;#ZfLnseA`37;z{k!Xb_5QKH$99120NVj{06I4tjT;mGQ`WJMjU68uJ3rKS9@KUm zQFR=f>Nq{lx!&L2*xA+sh?A@e2ODo|rV1T$Qd5N<4Xx>M%5lA3PxUz6LJp2&)JYHM zgX8pICq1K2Q!9|ta9s?%ZXnW+6-%yBm6ID?AX zPetujnn$cem;>b@;+<*cvFv)`p`2iOj<9r)jO02#h? zB(Cw>&RMunhlrX`MC1}Dc8BU>ulV~(A<6+G$+E`_H$(BCu*~733H&FIOcu^r}{9;0hFr_+LT0`6F|Pu@}s-&XS9kdD1NIkbPG_j!~2r}f3~dL^(n?{}Iy2X=CNH;=_TGh|crEYD~E z_wOJ36>JCC4zL|S2Y~WSETQ*1&YDI()U_T~a*j`NPH{O```hX}TbtWk0dd?SgzK1T z;t=LIAdavKHODdJq-$@HSAjncj?+0OIF40WKsk*bKF)EBI`L7H}t#R|mAT*{>CaOp0^otKiX%Sjg=FD6|V5;9uW}7iJ`YO!gmye|I-dUxc?v3+{BgQ@oGw?X%{i$*PC1UFK;Ss_RcMNwrdH^*6Bc>xOc1OU>XO4+ zfx&{{3ew`si#emZ!>zxN@?1@OuBJR!Qtrzs_obBkV#*Dap9jqoP82~oDcCHO<`CxA z9~qi|A2gpp1x(+PG9C*UzVREN%1Kd=g$i@VY5CNp1<)bP4}sWwgcz@yz)w>5DJGlM)4^g=WL}oDm zB*Hvw{yxN@9Kt+k`Zj1f&Y=8jzy2%K7Rre*2g*I#BLw9{o*#BrQGU=)Xbzi&2y>h4 zJ<#0BpxiG+?2xuqA=?Zdckv~4_q!u|n5JasNKpY>q>Id%1($ez%d-osQ-^?d0 zL0enWeLL$%-C|IFGwr*c_FjWFPr0w8Yr@=hp3t08f+JSOHbAs|&DQHd|bDA!H+c@=sVd_JT@LdJ> zP3h<>;=z3e$+4BPcXKHUUnS}laJ$|fYB^9t`9mHHW0%ip8p1YF+-LZ|d;i$4W;?)k zfb9S}fU}aYGm`N{JRTkAaT}YP8X6kt*&muzsU^n|I@~$rq=)kV%pb3D9H%;KqfSV2 zaGYA?IHOONtrYQ4fEeG{+$b00?%4^ap)TWV$OYB#Jp3IPn3FBdM}8tnz0Z-x*n0PhR~GUfl_g_Jmveom=~@OZ%-`d)%XAHnHfB`$@qouNFq2@K}7hFMYbBD4ZCg z9*bN1sax}jo6!6aDb>eLB{9t%iVy6H_aV%gC<|0M3g?DCGEE=Si$7E&dN}&})ZhV~ z_{-%v*WH!Gdc~ItO$&P8A8tD^+)8SY2=gs%PCOQ%{D59^Dd|-N?Xv&J_mBN!YzNp5 zupK}Lu%il8g+flH5@wST@f3I~y*=bYPHa^H#E~4Y>2W&etoh@$yb8>5_$oLG1dh`q zowd_IaLK7fo=6Z$p3mnn;l#}l^Tk-$Gi5h4MI8zMGXFx5~b;O24*Fe{GSXzOu@`nvs8H zS70m4H*U>0Ufnl79rQRsIUWhhw}XjCy+FARb~%li6O_AaC}-xM4n~;IAeBhGazGsW zwhozPpWsS4^~5`J?rT%S2eiV^mx_+NtAyjZh+NqB!3a1`Yo{=8At9E5<^yWc>2y%- zo0($271<839bh}~U+Mrn7A%h~&&{R5@>tYtHt~5pgjM>OYko(`o@t`JP8;Ckvvw^l^xV;c=Ws0J_DIeT{ zazFf*s=<Y~WA4*4sYFJYGad_2{)t=72y@lP zF4aLQ%!y+TRW1e1v25!Ti~I;~mD7mclXKsY3?EPn4lfjD?yjc5@j^l^9{30x-wovl zXoyA5{~;IAdD$yE|4ZM$>>p-3z;V7jCY@PaSX^GJ6mlV-ead6* zi@7^33B3CC}zy*HEYYjMZrh~yWmf)!Vd`70 z=-904g3sC*oNWs^I%1yQq<=6O7>c@ke3k}_{H%=onPlXkoO?(u{KPo*xlR71OO2zR z$B-@$8jq18C?~;0KZA0geuu}RVLTQ!5$0|+Q2w!#(EKAiLM$Ye_>oQisZH^@NqU%C zGgSUF{u>~9vo#jUPU=$u)r~|87$Ld#|m+i%fR1y6WIUFc7W{w z+kyXb2S9U-A8`mXlS$)pV>~)t4y8gdIW+}{i-e*HT=&VWu7xBA%9Sc5+!dWpi=#kR ziv`xotOJtVi8*ID62{Mi`EsdJiqGX;iIB{18;H3(O0k}~SU0I?cPZLcA~Yu`FGku5 zD5A{?%5ygLGwkA_OxB`i$(UcRe3fY9IfP(t7YTrJT1d&8Kp<9 zly%D`?LuCe36J}%%{J{7o%py)@QHr%Gn?Woj|S{M&O{Qw4Vh{*|2hDg8@}{InCp*{ zB8ypYl%Mff7@Nh-2y3$PtvJHU3};SL~}h{aWl3kyh<_ zo(9>&L4VK-L_23~Ggd2*ZL!VH+U$0l-R5xGyGr~kn_1*x{yoeGvRE~oeZnf zAznJzpN;evWBqe+RNq{@caEVs;W&fx5p{z9xAv@E zbv8KD3_33q)awWeHSvF z2$_L$Fda1iCTQ43IfOYuIk8#DRu<~9P+<;9?ob?bC=NLkN1UoJXQZDQCO=XO-cgLb zX_fzkIp_V295`Odnx=;j6OJ=A`UuTom$x3^b-!QEI32pthuhEoitPZ~0k#8Ar~_mJ z_#c1Zq~+4mB8HO=vrH;z)vNgS8D-Ev6Y|@mAxAvoNyh!@WH=f3#lp5|z!dUmLT-7; zEe^TH6W)rp6i{v=HD9Cowkofod}U5Mm!33D|D+Qgfl*F4Za#q% zLt#q|<&4w9pgaIoZur8lN0jAr2Ib_q5TQBau{f0V5uZC>?QR^YL0sq*=()F}N$E%H%Rg82N!kxKbd&b|I@;1es zb)nfC0n0V7;j%}6DeB~`lr0;J_I1<(EdYIHr!c1m3l-*DKsT(;6K%dSM`#Ya+@d(I z;C^D6{?em`ukwA=`a^W)2Rs7kVas=6^S5CWo~I+wZvsZxEMEo~Va{mt&%C-LUI=r7 zaukm8f8o*`hq|{+f95w|i~9#d_Kr%<3XZQ=yvuV=#rP3!$4lIf{h&FwM)QXp^Zn(F z-KiV>_5S9Qd#~76VmrWgfbGC;9r*p%`?Ko4;kHjEhkw#cUY}JpdClEnXJ6dYn+Xi$ zqa$+(UL`G9$O;#;!i9{WlIE3D+)`{L7amCadz0R-gtrrw^mV2KU7284Hq@O9cjr-| zu3V@y8{nkcTXmi*sRblQ! z#+;~fKpajBZgxKIR2}n~E+hkkabG_;KA$l%9LH4>ZYB3~UdKx)LUSU_UqV$K^DVo) zm@>HyWA`>!cI!I(9NPi518fJLTn8T9+c3*GBW*{fMo(&|ZqBM(wm9CG2@Vxvqva$c z#&e>@98f+{N%PA|ZXr6H4j^UN6_{!DTblirroc>d*xnL#wZ+}-aZh`~+n(^WB|NQh zS2GR-1+BMz#_LYaSaD2g!Raq+DQ9i@*EtJ2+t)aY)=2-UU zVrq|Jd}Fop(HK#!l-bw`Vora!=Sb5cdpZg2Tla zx13_ccuu?olxKyNj9@Oo%|}M&Qqv0sL(Ds3*VJ2-5c1cZ+FLF|o!3<7GuQhq^?q}` z&ve^syyenfv#BnbWaoY6_HstOx#Zbg_N*^BZJL{E(GNje$HtPA)FNu9FsDF&$Ya?# z{M;$b7xD^?@H?&Os9pJO!0-e1BgX8%#O*%=<%H%o;;}?6Cm_rtmTx0KIYaXhqAXOH zGc@<=KJ#Kxq6SfxuY86dQ^B50WHcQZjCp#(4o)F11;;lQgSb#aE%-vvxlhpX(hiz4 z9t#J;ygK|$ha_GTcV!{JTi4m=*bcBAU_0>SIsn0_6x>`$}vF*bcBA*sTMrizVskg|W^rq`dP6X}w+79+>TqxCaxy!AxkRnBbSw z!i5|lE?LS?E#<^8%Hg!+BV+S9&7IZIz4hq5wFqi$!ClFliz!VeI-LxPm=dN!qC!Hx zJU6qk1bqAMtoXojT2STL=#*;WXWi5(Bn}ylKZJ7Pm~VS52(j#Dmv4D2(B>g~yORI; zj0~sqe~efF@zZg~skq}LqspruOKj$cnDzUrFvswd2=ikh6I3}0CqKXN>Avt8jwQT} zg#;h@9Q-6p`pF^Hu&pf<;xil%;dH)E_zgJzXDFvMkGe+uW`3m*+pX*Db8H9L4zL|~ zavi`w{Kdnk#=E|h@h*Vl4jm_88;rV#6275qXsnbJl+&Vx+|*KGdbvPQzL*owrzi5! z(Oh(5W65`KJqA@yQGRzVa(6Av6kvx6-dRBfw#t8J1qGB7nnRTrlM1!ylv?<6E+X7q za-nun<=Y{aKSOzS@`+QRa_(p5>0@3k?hgXKPbVCw6HcJKMss4Yz%i#NkHTYNP#!h` z<%H%W#A5t9?z)jj6erHjMaR;ip`^bz>f(fETT=e9`y2VqrSQGAtX_Of*hM)07bp+f zdIK|pxor5!y;tlju^nJLz;j|Koq4{wLb3$|D*9phPLTs=Q8^M4#7ad851`^)xsH;6V+k}Au~4x5DX_|l*3?I%uUWE`PuN;Lczp9oTB_Mh52qMUz)Sd zY8$|Dhqi8c&O$g&P)=3(Lmtb+>2e73T~J=hDX>3FFaE}*`XOjK8MB>9IL;=WD1vfE zm;>d%5So)53+!^BoOmpR=H}zj<_X7zLTsQILrP~Tk6>kV2wMl@-ma*tH89f{b@nhE zkK)ldc}(2>!mcQ1>~cbLr}}!xCM+b`D>|RtH!J%}YzNp5?An1cXx;NIzxP|E@Ty7P z>@s$R9m7bWqywXcC~rPBxsV0B0de_qk)RyH9P%8dc`h4=on`#XBWIR;H`)CHgYp-4s`81>7X=+J@=5KpO3#EH;#}Od zYuni;*$%KBU_0={Ixv?F^16>t^qo)%ubJgd9wQC`jl_N9nc!FSj9zlCn3OR&7NESU${$1d zRwQw^6Z|BPIB$-)da&@;uK3<(ARNaPaVc`=XBFj)DkmsU0Og1z+J8pIoY36*1Fn}V z#Rf`=p<-+RlDrV@&qoHc;ek}3JK^O-98CdhJ=SA&&Wr z0)p}vV6f;#C!$VqHtKj{Zx#DOYzNp5upM~31K6)pNO^hP$AtYqs6{u-iWZNlC*m53 zd&e@t@nURZJ`42?8Ln6T!XP;p^z;=M` zz!U2LmSkn3v(V$h!JpLPn-(PwbM{8uqY3Eo5Vm58Dp~0w5#xZkiYcI60k3=^Cn+T- z(xLIqmCzQ)6EIj9kL53f`NJN|YM@du8fDis;?oi508R$c9LxU^%C}RAG{-_{UWkc| zlAq1e6J8xSevWY5eUT{uoeFb;@-2_$Bounqf4dBbCr7~XQf#mk?Jq=n3t=pl>CFav zQ@+l)t0iJ@2w2EQ0dO2wbZ#z39jen3aQtzUcfWwir=aV3a9lR}QPd?)hi9MIyT!f` z+X1!%YzH3iz`y?UpK+fK92XD$qM5v91;;IY5%*Xs0MCSv1js^GwnQO5r(T`gLU~EC zl$T-znhA3kOEdR3l1xFBKjyKJ5KGNtp{c~JNFt-kS1V4Zp-m+`4;%X}(KI8Gp*_UwXk5IpHRp9{B?Q^N$}N$Byxxj2TL zeT8UGKHQTFb!UU!DK7_m1;V!afa#`Ncj^9m9^vuL#js0rR?_nvP)=$7u*dR(pzAr% zT+;t$%srJ3TOV&b`wZIwwgYSjo>&L|`On{j_Gxa{vB_a9SGhH#YV%q9Bc8Ezke7>0 z%%vm?ImJ>@wK}I^s)lkE9P>(MDj(s`Wi@rF}%_WpYA-fDVd zA?VSbpYDBbx`y&CgN5-}o)>iO6?S0?x-a3GN(PMV3i2oR{mQ-&+X1!%k9XjYKYnwY z`P}YfQzNIek~+finSrQxJQd*QqC#+dF%L&Yvs%`!m33=n?J7~_q~Mq@Y<9C*-{EWZZ9M+~acIaRvW7{nRO^p)M612iEhk35W8e&v2IE_!R_E zGCNW3xq_=fVTjMC#&(tb|T(~5Pw;n`b$<2ASD!p0Kj zx8S(nufGD0qojo9RG3$3K1m4v9B7UlOVr7WxRhw}lXrW2Aj4cU_*GEp9xJAV&eG>5{KZpZf)MMJ`a@ZYbaltQ!f=1<+KD_N0!Tu zEsjH#@AOz0n`Jv)&K&z>ma*&%v8*k6?Yb6lJmwqQAUjwB8%v%-Lgq3w8>JUDqLVl% zq?-6iKXu-!yx}x7c`Y2@OsB`vX4f~Eq?gp9UjTIJ_}9vb?~T$kR>ip)`7d7m*~rYr zgp+doTE+*OLzQ1+yp*x|6wawKVw@=PA=u(favU7*DMY*S;f{QWlMS?|{q0FlOUzLh zp1I*ST=8fwt}O)bt!36L{-EKSoZ84u8I=_~3FX&}WHeF}Xj?keX6A~6BDdBob}ljITatcIhWasBiKueBW~gVq;4*zRJIT|%y0 zBRXZ8zT~rZK$v3+iWP|)i>T^>&$R{nQpq@DEZN;J{>e& zjN7lIJ%IRia6Ie31rr<>8_m=EjEF5xGAhvK;5fY@8m3Ai(wPr)@}c&uzdhq?#q}3a zM_tHr!)LhSR$o}1_fn3BjNtelpq$cNx@E91j`?#_-FpFX06jd@ADo@~_5PhF^KP-P z!ghe|0Na7bJMi0syJ}Ixc<0wL{w0H~#jfiL+DGHQiA+dbj7usR6ij`>PSy^xm|;-a~X7Af)vo0-Q@PPO^=@blr5pJYoS9e!5wMyu)u7TC_E6bb*B zS#jAYyJXWg#(liy@(in5Ye~2pV~*P)%XOdOvP*q_ zx#R%HH!A*!<(9I4kD?za-$8TOEDX>kJ$sR6K`Jp|>GWHK5AJR}-g)*JwgYSj*bY3I z4nQg@_&4FJ$OTxg(&EtfgdF2>Kc<)BQet``t6C|-69>f28w)#8Zh&LHI;UMKC@~8q zM=@6-l;c48Lp0xxBtGV`Y@Of-$~Tt%L3@weQ13C;JG3|5rj~R_ge6=L@71cIoF3nQ zg{+{G!3A~PN_uRI<4o2t0aJxuDB2B< zLyY4p(QL4l+$QR4iMtzO_FEzIb)Oy_Ket%0-doRt<56oJI8ITn*nx7`EX?q8uY?Rg zpYt19y++=>JF8FT-C|#b?Eu>WwgZoM;KBV(>G&0H_i=>)%T-!k#@?`toA6KIxO^!g zUC3dc2`|OGQL$_+P?T3`PCS;fZn>nH&&oErjE)`l$V8$a2l6zvxn*sbr0m zTbBc1zKYh9ew|)#aE|9^IBVbNx zzP%`MeZeuS#zmvoBd+djWTcef!WPH1qLmc4k{V|q4riQ-@qWT_YN`-(ydxiO&q0g_ zS~I@pq_;WdZiqT=1u^39e%=N@n~$j`LH&$y{u@lvXSjw5#*jKLvu@ zHWzFgJ5UbCoN&CXUoJwD%L(+0v+Ik2&6Vig^(0|BW3W8ru~efh37F}3R>I43_H=mK zrfab%ZX%lEF|{~#^-=dQJeD1oQ3RRQTD3)q4+-gCUB8bXdvToql4 zk3*8rr?I&44AKYbQhe; z({l+0(c=q&q?4l=+EYWhlF{a{%WEDB=AVcpy46>ly5Y^Wg~vP3KErl^?Eu?>C)0uT zm9lu~l%W4dmFOlo?lJdAJ%Utd3LKwHD;Ep8)p^T$WtMP!(GHYvF3d1AhsR>Z*b^v6 zDsdsFEGDK>p^2D}7x#;Dan*d@x-#!2OkX3^uGQvBcxB#QO6xI7b(uQMid#n64ZFT| zE~CT00BmX;M7oKc=G%)BnM;Kp*^*dQo9X z$C=S_YSKJBZg9L5?I;qCw}RtYKlFHG%H5D~-j3L=`3;vmnseZIE;32-Dht7kuSYjbI9{W9 z)nK8*yss+Eo$^yI-QdQ`{NtTxpJ6+|c7W}`lj%S)d;tU8N|H z=a$6XJQi}@Gc0(z7$A9XBfhfWbz6IIXejFL&V+I1esnIyj5n*Xal-L(yuTdpnlF(wsz=5gUwmgZ`s>|1YI7xC%32ZuY0xF` z&W<_F15Q()!`S1p4ESb81CH@jM7~n-;OlqhST>h~ID({?Uh~iN;e_X(Y)QoMbLUl` zK{)9!Z5V>rAWk^Gu@Vfq#_igMkh24KvlZj;QowOkb+uucoc-yai}ezYMLQH4-D z(c^)pjE`_U<*tu8ZiOsYi5^#<0mrkUiH(&Q^mxkEW*B`IrGEtF)#2w}Fdf6s+39ax z`l0pZxyL)tKErl^?Eu?>C)0t5Tg~tNUOaL}D`}ijcll><6A-RGkm4r$N?yNQwyrM% z->y5$9tP!<=2Vq421~`dK5t$s>gUq(g`)M>y9J7J@^~kQ_{!b2$ea)tA#!E4`Hj`tYf8wzO@2*GgA)HPQkAJT8YX$#T zV#$zXMqMA6ZAB>&2YSi@*Ggk6vBu!TK;$*v9^ze1kAHBrEdDVMR~iBR5KTT(ttTd`If=5 z7J`}1usefP3{wwr9Ipe8GowzmRbB5jHz&MZ`3UZ8gAyN^ub$z=S^Qe!5T**ziGAFyF(_e6M`fhfbGDO=zz<}AMZLQ89T3+w%9e@LECuJFUiFe*d>c? zu`Ba1$I1HdyDQ#1D5A>Uj|g+1e09!L$*PM<)o=HTzug1JX%UZwDbSojIepwpmoqG8 zw%t}2-X`a=CcX3~=AYS!^x+fyRG8y}MZWjG$I6s)t_X1BgE z=I+df`>~vsxi5mO8mEcFIUN6q!yNCyS{0b%#R&9xTRzm14K_iKCq4CX=dFnCdeD5? zt0x?v0mp;}Gc+z&=%750vBPiddIUMt0IOZ6B?nSAG_E?06{N}NRV*E+GSL|!B z9bh}ac3`&-*fpc09bZp#FY2YOc3n@<&P@g+`IvGptz9gdS1ZunV7K=!@_f6X+_Aaj z0LO7qXd$mFCKL}ga}?!UG~YrwBh0tpThrz{4+;@iWOc!3({YT_n@PV2qs|>D$2CJK z{PAD!n%>1@ zxx1c-dIkFF8~)kB^+g|ZOB~iHW*-n;&%DkZYP)Z7ocJnROBQP!hh}Fs<>Dtn#LcxT zZw9QbNgo!{4iJu$Tik}`9^yC^<2cDl)*O<raeqECv%ZCmo`_wh4mr8Ag~hG=Ii029!UmAKimgB0LtW=%avjG#7I`iT8?q z4YmVp2iOkm)&c!g`&h>}QXZCMwLA5FVV58kl;#tvaz?*g!jT_xHuCOjfGPjBDqo=n zOBLl%9fl4ZBl`6Y*j;1@P9FjB>iCqv zofPGGdMmHOY;hsSj;c3Tq$3ie^s3L?L@jcx8fPRqI8GPU(#}V=r+O7BOb8H9L4zL|~5*^Tp8ppei%gK_gc9#){@`dS;ypYh8v*0+6 zae~)?I4(~>;S)xcKP=4Qm?N9GQnr+{ntWXO;10w%P`*v`T|Jg<$9&5!XB?9B(ws*p zZLk@77m98`96u7aP+njlzNN<*h;MUz%N!?Rl?^iFWX7big~E(Ual@&vi#Rx$AeLdl zPGQV(aD4kjKKyYy%qo%~`^6=}*fQpDWU}QE^5L zpSz}Ba85oCn%jj0<+J=};g~~}qm0%0=QA_n_anBEs7L)I-YfPs*bcBAU_01Xz;Q?lulY+@ef`aC|;zT%JR69J9^9J)E*3DUsm4sxZgd_lG@}CD+>g zEOLsug#7+y{Dur!_oy%@HVd94>U(oFWma|0XuFE(nLp=vRg6Ex@vW_j zOzyCH#q-8;z(3n(*WL=*u)naU5P=NGeaa}}k29MNi9e3KO4T0^wlRnD5grG}Z^vxc z!Pw3_UKHtGn=^*>huzaJx+L2uhcJi7LWiGb-X3Q7`ONI(yD`UT z$S!-V_v{mF2iOj<9e5HQ`2DvBGTt>_@AnGf4U>Z7G2u`?IIb)vajwU_GKV22_QX<- zhpQ+js+^`L0mf9>c4oGOeAOan4s$Yk9KH(WIJUb)5&_|?=5}zlHR;C%%2+i{ zB{|XK;P@QLtB~9wxj};X;|#~iW|jK53n%ighs>9J`txq}X`B4#u)SlhZ1zU`R*Lel z;UkaiCAV~+OY)*~>UrnnbFj;aFsCTz@1es_+vK|m_qf+8dJ=CJ`x+Nm-&4^Dn+-$!r@Ph z0aq&iU!lkEgX6SzdMw-XPYCwkA5?ySut4g5<#z&crtX#VsTurbf=2$DIeC- z5{@HuIG-4-9?FmR5|o4EWZ5A-lutIRREL}-ta90>JCBXEv$9{ZAyG0n6-kUO=O=>t zcfE?2J@Wk?=|1=LKI*YJVV4t+WzURY4}>|&G4*cB%X6D}kM*8?g6#m?0k#8Aq64do zMak#|LI2Mxah+M&;W6V-J`Mq?N@>GF!Ma+(kP{pS!4UzB{0Yj5V~$)oZq8htpPkR? z=kqhfTDcF2{RqkdbntziQ2W6mQw+o(;y6@!d37;nRJOa!gKLYCD#z~?5I4NPncG;2 zF3vd$NmV8?nGEm}f$=1%u~d*2HyaU^(yGOh75mUPS8#kZipxKXNofS9^8?gZsd1d{ zS7A6Fqf2Y4Ki&+EC){;0Cx)EY0vK|VO^49qXXdkJceE>)ovNhz0@}BHs#krASG@8A zTf+PWS524`loO7-r0-_}LbrkYB;GFeHP{ZY9bh}~SO+SF_~g*piGh>gxJ88<=tpCI zNj9c|9$zZXtYHPpGSqkE!FufedbEb}En&_KKgr}1JHZLc*D8)m!8n&S-d)cSjzf}@ zV!(YL$OgNY{`i&FPL2cXH9bx^zP=ncsX7pXoG&;SF@YHt7K3v-_Lj~Ksn=>i>kvvKq9L** z%cAb~SV!XlX)dmV9$zZj*B3C%gjo@Nun`B!A5>AkQeqpC596`8WiPp=VV48tFOW#0aF0)UFc+4&jjXToB)(tS z*I+xqcHr?2q(d`;UMxF2qn&D+RrmO2#^V85KA|gTO-m&QZd|*&0!JnGU?V|LPG}BQ zzAen}RULCea|}O`G{+Ij#W~Nt&C(ygt^Sj#KYm+b>QRnAf2WWPtGu(r z*|-8S9QRJ-Vv<~RvY3?M0=Y^aw-l+Ci>l?4a=EBjF36V)vZaD_DL=iGmn`Nc7c!zs zT2M|3N^xE(K30m4V%cFSJ~Bu4tKbk2DS~p!@fh~jg5y2R4a=R`ASdl_OM04O&bsjI zji3qFxm|Lq&N`ImiZOYysCD=n@2=>hv!4V_?*|O;26S%+v~LoWt6udgU-rT-$MAES zIOcTt8PI%Mh-y40!Q;(mpJ6+|c7W}`6X-z9YZ&kTZgS+DcDi|1)8n7zCW7*OQeVzl zmP#&M(ndM{>t=Eb%?CEuvf%hu?Z)v({Bbhy zg#AKCon?$k7t5Zg57!cj@(EnxEQdofpH(g7vGPTYo1IsxrCKeiR!Rz_M^=i`<$`n> zD9=qT{{QWrhjSZOmaqTAxAoqJH}CD6o!uFabC&I~C0n*-S(dD1WlB^QgG7m9CP5N8 zXEYia-3X0FN94>T)jPKvq$Jy#ncbo%Y@MoGCvf1vyVh( zO1lQ=zQDje65|34t%dWPjP7v=%JtE;H^JjvVzd~$TA)W*>S6{w4r9k%C!*G4A>$FB z;c(b|vLQtxiR+^1QVN%1j{k_+enZ=S9ku>z)ch+7RKEVtVJ%|`tw3DRjQn7VvmQfUQf|CrrWk zK=3$OP3^J8!Vw-a#c+65p4-rlTtX)aj22t^WA=aFRr&v+Ouqt^N7f)N|6f|h@(;m9lCdNm z2MP&0_K*MEyAQvH1dzaf5Qut~?p=Coe&UFE;iAWQlXyIC&^+$0h~Z`hM#ZKE?c7EO zj`r}IWb0B}q}}_u_Hg~^yf(h7(_k8EqAJBU`U>PKyDEp0{6&wGaQvknSA<9|3GvRd zlwXI*=G8LX=4^#kEt_kCiLA1bNL=%HjW^UvdPxo{UjUV>;PE1Od`2luD}_gL?xCEU zl5-EF+eiLm+Gz}nY= zwQpgofa46A{A^90O#0tQ_+E>9e;;%IHs%18|6A1h|0uJraxG&q{NtX=*}yR-YGUJ# z{dl?XIgkJnKmtD@5VTLe!PZ<0ooy~c38xf=$j6nZ3DN!OHkzbk6{oO-BI-5S8sRj$IBQlROJsO7OHZ%rE?r2a{W{%w3G80(p1hTZ*%dRd1@pZx|s6)5O2{;gZI=hoboi`a1v*$X zl|L7e_uG6^O^ZcOA!R6LR?4|`nKM^;TU~_PLG5tg(4NN|qGea*P?E1#iN_7q@(M^? z^SBnRJm+y0N^&h-k@G{3LrD&|yJ@?fa5`VJdG;Rcf|gSE3NhmGbnrsLbC$NBjF^uH z){fHlb1m6hl^oIZ9a)%6M?Or2-%Ex-c?ugATw#yr1^x&DK;|0W7?x#eF;VGb%^ z|CjLUKZOkcQz@=c&PULvzaK9bJ_iy&0!ZLR0#Bblb*ul8eeaLt$WI7>arUw;QB6XK3PL|j+8S0}n^7b~QwAQ{G!1a&Mdr<8vKN@HkPq zr9SjH1mzH|KuHd{ib1c(tEDAf~+LMh<$zl$EQ;}zx#OE3M59#Q~q$-cRPgEX! zJK=vL?t3lf`91CW9Z|XcHx$I>q%i*#ZT)St!UfFZon~b}UNL+QB!C2vz>5S1{f>R* zy4!pYJf5bFxwO5Uhwg9U@n$vG9eNzZO?peV^r~DNgfgtkyX8&T{DcM5Wi^j)kU3V` zB*G@!Z?e5cwp-7%Yspq64ueo?Qlu({U>1s6_A9&(mdbl8+NuiPy69_2{-zvgDS@^E zkN&m_mkoJain~dcvmx6XGN|0zkaU$B>sm>!?RJ94AzE3fkcfP#LV6IPaYawbXGuz4 z7?$J`J0-DDl|KM|OYF3in~`#}))@=r6-Ptw#!smKS((0fGXfj8rjv3OsLc}Za&wf{S1{dH6I zWU19`)CTi`_v01A=Rg8T013QEprMvMrh7iiSkynCimtOs8+aV*@wx($NWRsE6`d-a zHqs}wz^rpvy2oME;?UzQmDJzf{gX<`NHbu{)XYXu^M)cK#5to(>wn=MxiKl?9kH)xWv{5I}+ zePd7!TgSL;_(kye84^GONMN4`sA9pre%EUri~8o%n#YAgMBnG!^|-XrleeK0Tr0-6 z`Vv_^5f+J7_Hq>{$vfcjA}pxKHIL^vTBIZ&v>0-Fs0qhGpPdNRPxf~k!-3`lau-j zT1u`3St+gx?0hLTm5+^O!?%)wt8veTi0y31e2R_S-c%NQ z^0YU4sw^)TbLVo*@m%&;E_0MkA7PSTF^R*P%0EkMae0b5kPN?{2)#>I;O!X1<=$7h z^!a9m^%?Irag%eO-m&;JNB{}^n1EDDJJ)V|%=ak&Tq?SjOWK7Zcs!}s2w^X{wk%n`chGpz@Ti^3OA|XDTO!IjPOx zB~`iqt(xM<(FVV1^2w8(AEU?5kpL1v0{cRsoR8ZKH{7OsQO)D|q)qpD19Fu*bPz&k zAv78e>v8b-HmS!okCVr}u9X*5P9pN%s$5UWNl8vTKCH)kFQ`1;Z9IP~#qK@M5Ur4O zh1BDk$BD|DMCE!)t~ahcQ#nb=1#-Mo^Z0OhmdY(D#YK2jNretWwZP!En&_$uE~R9a z@+*9HrkJ?TM(<{V*Aw0m+I}HyK1(~VHU#TN-9^QINU&42nz_VXD;6#kaz7N<(|P9m zT=qLQ^DSg7OzP__$yh+;u=5ES%O@mep*~55A!B)mi5;mcVZZTKhQb?`_vPJ+Pl5!H zz|RpVu~FN~sLOPZ^3JBHH8yD%xrizz8!FST!=WDH@vWY+J%C(=L@O_p={kv$Jxv=UFCXQo{2+T zelQz9oTfh|C3*Ngp?FU$c-J4E8T8se#~#0i1dsp{*bf4*|7Kpg;)Ptr2f4~Bn|25s zRgqG4@OT4mP=iq_u(t^wS7B)_D|*+8mXhm@OuKlx&mkS^>oFkMdWLh(pm*(X%T(Hw;XlJTbF~dYNB5)S*3!3&(0MR57{V*#S{L~ zsQnUUy%6`@>{KF8HUvRj3#V?hTT!w6pv>PZ^S62K23New6)qL?=L+i5yhr8BqBVCiP7|dlDYg zv4gPlS!6C&gs6LE6p#PB-D(i@uA8|y0TZ2gT(cvHLhqL9}MrKcs9qJYFk+9xWn6JNt9L{K>yh*&4pH=O2&yWIRu zHPTe+x)QC4A+_w53TA;Zz%_RH_!JYJNQZ7GeAj8m2xY&_(sSKfa%Zb4DK5TjZnd(F zx?7Q!BymO*r-kxVxja!W-Q!EQO5A8k%UBAzbD(m_SXdI5A1kmw6qvIh^i2HoO#EP7 z^)V4c)H9Deocr`v#iv06NZ=&|n1l;FPWn|yuCiXtc!|g5OtV^mAz8%ZWcDn0TwA0n zhm1vUB;VWc)N&Q@cps+P!umzY9)CqGgLV=u4uOl=^od6SKv}1$W=O3 zxKEB;_}L;Jhk6`5?$KLJ&*TkH4tDE26?x@vZRSj)#wi>lywc=0} zlOh{raZVJb1z}1r%=r=&<~K^ktHr|QLjHW7fw=r+fj!F=M)J%l@Hp&z7TL=Uh4HW7 zRt5GY;PJ~y00|(0{U89PVmfLCk3&AL^^Y41j887XI21SpRDhXQ8(ne&2qeCvt?do? zSlja)K#{&%lJ^AI?c5?`vxXjrvz?p6l3b5gASEXyIf=+Mo0FS^TF`)~^&pb#grNH{ z(XGL;pm>KI3j&Wv^+s|{;=!h>Ed?$o0!_o&eQyJBP+t?y@k{=O9Bh&kp;WUH zYgZF6)CD9Cm3U1GR?059sAnmQ`NRwpoyvs96aL$@8zg=$;Tx+8ft?Nc$xgpf3pcA# z7_M8ZdaD(8t?H>&oK@AT%4@Q;Knio=kx+gh@KBiF)iRb*$XLkcXZ`|Tg2?4MoB57O zAI)WscU!q^WI5(r+S(lK#|wqefdr5M5_k!L?XAs3XdUu#ADjd7&u3^O$HLeX7EKx0dz*HRCcJmK^h&qRKHcs<*>1I}6xhGt zDOFXss#q(kqgruQD;^MfwPI5hqarO!(kv9_VtGp7Ct>rG=Wc_$p$zBw+d_E)gr3WO z&t{IR;)+}hx>v5teD)>a@ykd62_S)eBCs*&MSaVrdGPo+%*o2e%q12kSS9Kz+pcra ztO8?Iv_xgkz?OwYIA97Ad+@VC{A-OI8*B2O`r{ zlMNZd{jgdFgFD2WiDy=esfAqZF+)F0hb9vKyD|4I+Ib^K&o-p+&SvB3c4w>0ck6In z2G?n_ifEApgCdz!*-}yM)ru3Ua?R$BifUGsRVd6w;jvhLDDbfPIaV&+0fR%S4i$PK zcOlQ70l7ESSjciO5nO+=v%OC*6g~|SKmthMB?S82R>(DLTDa)9jK_kD*|@pP2FYR0 zN)Ezt(yXF+Tr0-)dVH@W*XnVtBp<50uSY9dx&kw^v_|qlSHC2v*zb`0CHgQni>%?~ zEEt7IrXe=K&ZMZ3;)8ZZ?dt^kF_wrecWcLh$L z#%p4NX#KFFXk^-L@R7>+83|k_U238bogZ?fCToHK(}4@+ontlSA4d~cxahTz}?Cr zXdZ`6&R&z8$cK)@odFoUy0bYf$w_&>TaWK{t?b+%OzSc zms}rB&guio;kt=lgYE9FUL&V{43BwOy=DP!l^d=`vC}B%`fk;jW;N4LQZ+eN6=AY@ zP$~K3qD#zM%P`G6vsy?l=Hhcq^id}AAQ_m5`|c(Dzgvw zfqx9@Y$5ZAO^)U>cZ%#}DgUU<&58VyEUapUIbmrBTe7A+149p@o+;3<%FT*|egLbJ;7DybznPR^M=ZWA0 z@^KGVOJ7{C#r0smc?(vl-{N7GORrVhT|5LGU2u0D+?{Wcx;xvfq#H`2F2`$9v?4|n zJ}7fuspuB-_A+BBW!8$Rl|p^ zROn7E3sVPV-j$(86OkX%vCG-SwOsmEff+C5rpm<`p|l{CR}|5xWh}O;>eMzrLFHug zv!a+P@Ti(3aTd-B3H-P$F4vWG*#01&@;%wXX(}&y&*7Jm020_=0?nFiH{3EVUI{rK zCL)Gh$|08EyiB%J1Nmwv^7~rn_(pXoan0kq7fNV%1A)YezC{>QKIjVl4qV$-hP#sC zvQ1Dk9P1|^kVkz9kh#OXZgBr{za#eB`hqW(L8;Il1J@5h(>jQ|UCXtqOjFG?)Kpzb z)TDS7ViSS5TPgXaqDRO(%Q-7tB*bObi>cLoe2Jy!v(cG!csdn)knm5&z2giuQ!9Jn z{{VJ2>QA@ZJN+_rh&N?uNKe9#mP?*=_$FcYM z!nDB6N&K=btSge1v1o<4*2m(8#>9Hfrz-2jV^TA-$GQ8giiT*a8!sOH+@N!AA-I{kU&3 z8JLpuj?Fgnbf^7vXXEKke`mmVlu%s=G-VoopI%#pA>%>o7a{wX5$6%g^9@mX;6yxh zDn*^o#ICTZ(R>y%mWfjSp-`HIj75Ts1qyRzxcS+rhno!=+7qE9S7eA^3^gf4JMP;T zM|XC%UWyyPfdr5M64-YFb(M#3+`2Rpc2Dbv@+FQY&Eqv_9*2M%0uwS^MbkGJTw6VL zqo?R=&>h-Ycl4m63_9wdtF7S&%AgJ6*4*6^yUlW^!E53!wrcrim53X%2u<9Hsu-)3 zqiUH__^_nAJLeWyC(qbQSqqmo6;f;Y#A+^XU}H;6bUsbZrX#bN$V@gmpNlP&(l8av z+pDLa48*6~ttXpx__g7*5xHqdhAu|Z)>4ycCOYm}`#50!EMPelw0*9r{A;3e-?wz& zIH){Hoy*XdnB9zp%RS%=k4eTNKqkJfDz66GH9vT~R&~MVrz-do{&~OU{`S_! zzQ0EJgh&7hAb~$dpel35xl7jNYZ3Qj-Qz+rT9qLLEQCHyHqioD$q)qlKF_l zg`|RC%zK2KyG-0|=Q5TexI4L?kFVuo28LeBQVW^Ld?q{(9~Y7^BgHJ|&9#!Xt@t-v ziJe~l$)>!sA;M%XXklzAp_&+gRu;(F>v9bG$78-r?zKLyvFts~ceIevPbN zeWM4D+Ui!p-TjW*BjT32O#v$IcAan4ip^@VQOVU67OteI$?2+?tbn-7F{K=pN|eNf z#X?Zb`^$MRp966_xU8*^vJ{f$e8QNEud(zB6J5?yOBrerJ_ezeS-Vp7)yuAyu-=oF zHr17_x_PJR+37_4&0s~c@SLGkT!9WkI0rLsrbCP{Uu%_d`={Q1dzZVBT$j@>vQLa9*2F-qysK>tBC1F zCEsrHpyojrYH-kZovdDC(5nx+HCX*FxLfJAlx|b%G=z4IZ&f+yR)pzVaE1tynVOV_ zp^24pLgix$PfHvn7DGZlB;*2R)>mddCB{+A+6x(b9>kqAu?Zs^UuR>hOl%DvVL^~0 z<{Xt0oWc)wWJgb4=}V9L!p**Ly(ipkm2b<%(Mf$g%`>lOaU%WU#G$375C%VKG<%*_g=d9l2rO7@yW)6R#E#p|0Jy+1}7zlQ{n z0226x2tfTP!}Pz$XDrKC!%n?l#i{2i%_H92bCXr zLFM$Ne0r?NJ}5Hd#q1bIGM2{`*;Nr@v}>Aj&+lyG#^x{d4#lTM0!ZLb5de?#g}C9- zY1886pkqqwS8<7@SXE|0(Cvl<%7&609yNChtvcVVagA!RuI6hpTa_49%qZm)%+->) zm{g?2VuXmB4VIWdDeL1ht|C}F1>$z(6E;}Il%31Ec-AB4eM-?$Em`XPdW&D|mS_9o zbh~^{EnMO<$I|i7!r}J=p%25}0OxUHtp-HxX*hXbNIlL( zZbNe7H-Bzlc*8pTiskwBg34cms@(c~RjvmttGdcR4Vd>-{Lh_Wj-NsaS_Cwr^;Hz%`t&u#$Qak3MnVt)SOE| zT4FDzp-s>$<^u{Bs+L1d(c2b{J#n!wKH3z=H^jTG(g>eDo}@o<`d(SK{qI%BZ=8XT z>DcK^`fe$=s0f}q3@>ct`Y>~GvkQIYO39gvPeh&Hd)NQqUOnJke#gG>x^3?F*11>6 znjNlZDxY~)m0NbJa!|Q_K?_)x-X&SN;Y080N8U9ESU}|mgO<-pz+(TJ_Mc3K&!?#? z$?y;H;Hd;;EYWiu^RQXX=Hn*w?1f?`xQ&(gFZuq&=SBiZ;7=1ELu+aK^26`fX3lwF z-l1E6L1s^~$uBADfZg}{qV?aF9j`iqUr_N& zh5SNA^ue4HI3?e0z*&4a2rAdrxR6`Rgh#{HuN(`nY3p_8;u{XKUbip2W}AN%B(ATa z%AXVZGn;D}3yE1k<+HC^=3XOJ`NCT^vhzt)?uM+~KvWJ*EKrq)Y|v4Doc5ijeJ7*d z@1j0vEr-JViYmA|^>Wg`;99xSs!4yEFa8N6fCP}hFHK-)XPfq|EKMC>oB6@9dMjvu zmCl$OZ=c<<-Ez#DMEIrxS zmzR6uqekhLl0V01zXfF{V~3*j!7z2u7dqq&9P)<0qm$Q|+~acD-mIozf(lHzs>>0T zcS}V$;IopCPb32uDEkrb>Ic5n5BzHf{A(Wt);@wq-|7J`>`yMg>t24_x%3v;TvPdL zKcn)W7UmGP46||wUSQi(Q~CUxpmN93yN;FjUD~#%Z~e2N1=U+i+fAhVwW|$-$)`Gt|v=@N&`*R~w(A zUEflUBT=%xA%E142nis8zYGD0cirpba}!4m)2FSABcAm;5$8kNKc9}Q=V9<+&Qs-saP3Y< zT!l@@O=)6Fx(%zxUzOP7nfRyPz#B`}Up+Sc%c|>bcj#z5af^dcn}>5TVVF1DBkkMG zjX@ov5~*m(L`K5aLxJ@J5%8nqo4EJ;RN!1XbSV?Mlnz}?1uvum=ac>)623EW@2R-w z1nvAT>Nu*Y{Hw6}i;(FMs60Sa{t=Yw-j(+}%kQ{{Rr%{SlCk_m<-3Xbb2isiuJ46H zzykjUXdYjD4^-|n9B>&v@IckS_Hoesg;+3mn!LF z660qn+`jO(bLBw5dL-_@Eac6t z3dd#KVcUdz^>!*^#`f?(_br8g4hbNEzc7KVt&R2Bi*w^g)@RN{T$5bN2(byAliZLd zHpN?gaiS|cYVvc{(xO~il}l#1WP>Z`!SYgmt(=+X68Ce_+u7jd6co|!V^Q0e5zD6$ z>%pkwFzq^;fQmc#Lppp391W(@S8XukW8Yg&`!tDF6^*+R(iv*Cs zf1Ln$+_f?)WY;^S`D6+X>Fh}yJPu(um|8P9NL*WnH~ogU{X><%AJkP&>haG&<&^Dk zR8x7({cYTHJmLEuRGti+A?Zr+JjCDN=nM&1AQ1og!u-X!Tvs{S`Fs|a4|hJHi3N5( zNfQg~d_o^f06u`|9QHy@hXZE#=LG)NDBP;dQ1eW5ElU~G;Z;}({}Sb#i8vm|yvwqJnmh)DX}wMak{Gp>w;ge#L1%=;*t+vkoYr|zeQBO z`fhOj{owkCA)_9xfXWY1wl6^CwBtz31uFkeS9uCl9srf^W-Jki%YUSDJv1jfpL$ik zyYs23T#w6lcRry*k#-%AxlhJDP^w=@c(24gS7V-0+If?5+zwms2F-V&N04$&$9;?0 zh`Er4^GX3eM_0r=Tw(`XyMJ};_zNHbB!C3=jR2{~4OdI)2QA6oYZRVIT+3DDf)Rq0 zpHcY=ROO)Zw{?}1fQ6|16WHX`GL|nOV~G)!AJtTTLW|2ma#sXD2#N{7_G?l}iCuJonryXB|%442m3Ezo??_|VCLNfjU6Ud6ZSTscec{sj!?TX1>pt`SWXPxr?8cz`x5*ZN zDI^$<8M%OCN!4vkH@`}QRhV1b~gms zh@-esXY?-ry z%6m<&A%^#CUMu?~){qTef?ds*s9cN7NfXQap`pr$JD;HPxa(NTe%sLFJ(jJ99%k)s!Bz$HY7iPFEH`vN;)mLo}vj^Hk_G+O-OA1`zyQ;@JAv6B=Gl6U}vij?oRrqjkBi~7XM(hew9tl zG^(jVPi;5glD1gAlBmdGp=>YY7qglBRPeNO{ax4UTfVh-DeK{c`&2qG!i2{e>LC-E zOZpx{HUhzjfBlwgdDONr;##@ow@g8tEtOKB?7w$h`1>OPB!C3|770MWve8xLVu-R& z+LnJBuGBLrX9v9P#T*{EA7gPSpxaU6Q7!R56K*%04 zkB4jz;Li9&U^NvsL3cJ}BdxmpWM}7Z@jn=UCnSIbkidUG0uX3C*?|U@hRP=xYSp%U z-ne)o=(wH?J;;O}lPcRW5imiCeZ{qM)eDmm?GMvo6Q6^d@8OmSwyyG>W(8-u{`Y%h z;C~SkKmvb%1i Date: Wed, 5 Nov 2025 01:26:47 +0400 Subject: [PATCH 116/191] =?UTF-8?q?=D1=81=D0=BE=D1=80=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D1=82=D0=B8=D0=BF=D0=B0=20=D0=A2=D0=B8=D0=BF=20?= =?UTF-8?q?=20+=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B2?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Machine/GenericIValueComparer.cs | 11 +++++++--- tests/valuetable.os | 20 +++++++++++-------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/ScriptEngine/Machine/GenericIValueComparer.cs b/src/ScriptEngine/Machine/GenericIValueComparer.cs index 3609ceb6d..1a742e22b 100644 --- a/src/ScriptEngine/Machine/GenericIValueComparer.cs +++ b/src/ScriptEngine/Machine/GenericIValueComparer.cs @@ -21,7 +21,9 @@ public class GenericIValueComparer : IEqualityComparer, IComparerorderedTypes = new List { BasicTypes.Undefined, BasicTypes.Null, BasicTypes.Boolean, - BasicTypes.Number, BasicTypes.String, BasicTypes.Date, BasicTypes.Type }; + BasicTypes.Number, BasicTypes.String, BasicTypes.Date, BasicTypes.Type }; + + private const int INDEX_OF_TYPE = 6; public GenericIValueComparer() { @@ -73,9 +75,12 @@ private int CompareByTypes(IValue x, IValue y) var iy = orderedTypes.IndexOf(y.SystemType); if (ix >= 0) - return (iy >= 0) ? ix-iy : -1; + if (iy >= 0) + return ix - iy; + else + return ix == INDEX_OF_TYPE ? 1 : -1; else if (iy >= 0) - return 1; + return iy == INDEX_OF_TYPE ? -1 : 1; return _comparer(x,y); } diff --git a/tests/valuetable.os b/tests/valuetable.os index 6dc68f8ce..fed94d134 100644 --- a/tests/valuetable.os +++ b/tests/valuetable.os @@ -877,17 +877,21 @@ ТЗ.Добавить().Тест = "Стр2"; ТЗ.Добавить().Тест = "СтрЪ"; ТЗ.Добавить().Тест = Новый Структура; + ТЗ.Добавить().Тест = Новый Массив; ТЗ.Добавить().Тест = null; ТЗ.Добавить().Тест = Тип("Булево"); + ТЗ.Добавить().Тест = Тип("Массив"); ТЗ.Сортировать("Тест"); // не должно упасть юТест.ПроверитьРавенство(ТЗ[0].Тест, Null); - юТест.ПроверитьРавенство(ТЗ[1].Тест, Тип("Булево")); - юТест.ПроверитьРавенство(ТЗ[2].Тест, "Стр2"); - юТест.ПроверитьРавенство(ТЗ[3].Тест, Тип("Строка")); + юТест.ПроверитьРавенство(ТЗ[1].Тест, "Стр2"); + юТест.ПроверитьРавенство(ТЗ[2].Тест, "СтрЪ"); + юТест.ПроверитьРавенство(ТипЗнч(ТЗ[3].Тест), Тип("Массив")); юТест.ПроверитьРавенство(ТипЗнч(ТЗ[4].Тест), Тип("Структура")); - юТест.ПроверитьРавенство(ТЗ[5].Тест, "СтрЪ"); + юТест.ПроверитьРавенство(ТЗ[5].Тест, Тип("Булево")); + юТест.ПроверитьРавенство(ТЗ[6].Тест, Тип("Массив")); + юТест.ПроверитьРавенство(ТЗ[7].Тест, Тип("Строка")); КонецПроцедуры Процедура ТестДолжен_ПроверитьСортировкуПоПредставлению() Экспорт @@ -921,10 +925,10 @@ ТЗ.Добавить().Тест = КлассИзСтроки1; ТЗ.Сортировать("Тест"); - юТест.ПроверитьРавенство(Строка(ТЗ[0].Тест), "Представление0"); - юТест.ПроверитьРавенство(Строка(ТЗ[1].Тест), "Представление1"); - юТест.ПроверитьРавенство(ТЗ[2].Тест, "Представление2"); - юТест.ПроверитьРавенство(Строка(ТЗ[3].Тест), "Представление3"); + юТест.ПроверитьРавенство(ТЗ[0].Тест, "Представление2", "строка"); + юТест.ПроверитьРавенство(Строка(ТЗ[1].Тест), "Представление0", "сценарий 0"); + юТест.ПроверитьРавенство(Строка(ТЗ[2].Тест), "Представление1", "сценарий 1"); + юТест.ПроверитьРавенство(Строка(ТЗ[3].Тест), "Представление3", "сценарий 3"); КонецПроцедуры From cf166f2dd53a172c3ccf8d909ff7d7e5157ffd08 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Wed, 5 Nov 2025 12:05:34 +0300 Subject: [PATCH 117/191] Reverted copilot's Reconnectable Debugger task --- opm.ospx | Bin 412012 -> 0 bytes .../IDebugEventListener.cs | 4 +- .../DefaultDebugService.cs | 10 +- .../ReconnectableDebugController.cs | 217 ------------------ src/OneScript.DebugServices/TcpDebugServer.cs | 15 +- .../TcpEventCallbackChannel.cs | 2 +- .../ReconnectionTest.cs | 130 ----------- .../OscriptDebugEventsListener.cs | 5 - 8 files changed, 16 insertions(+), 367 deletions(-) delete mode 100644 opm.ospx delete mode 100644 src/OneScript.DebugServices/ReconnectableDebugController.cs delete mode 100644 src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs diff --git a/opm.ospx b/opm.ospx deleted file mode 100644 index 0e3e6dd33a11b2de21da2dfbaba6838738d7ce4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412012 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

    BY_P4SSB>y=i&?gg~#J71;5s5Q8iVU&PC zVdd$$Kzy$vYc%N2AZB5XR|YF(V2%RN&9sa^4)Jq@|Cr8 zdJrVLaHt4ModVNg)Rn7;mtZ0xws3-!6oyb8yal!_wR7x{M5=t7)iREk%1>9*Qam8Q zx6(;4y(uwuG@~*ANQ2!hL2C2PHOSvYEpbH7*$H#F^*K5@Q(`t5r{&VG`M(y zSS3cG36o+!qd}2K7I62^yb{s0^3S&%1CkjXWi)%hUj0gT{LF+OWt^~bs$3G|pGuq# zv~n~$iJIwFb_c80SgA#8E(!ayXeW6<&-2+r=QQI#s#ElFux9Yl&-4J0P&mpbP+iiT zf?!3g4tn_`CW?^W5Y+s*;=aWfq+IR0N)ei;S3*f>6Vf7>bK_hGTR?B?6dnb^ngywf z9hO1(614PZgXZ?Jlz)stX9+nK)Q|9{DAv>gGKuv|x*;Y}$r%^@no~%6TJ93!f;)z4 zv=v=eCqU48ipMIf<^+}&GsTrqmRDL=5uUY&d&?|W{-5{^UM+<@H}sb z>qzv}cbXyQEAKr?s?OTwZjzp^v}3DxqiG~#zypAz=qi@LK#ci2On&7h=0oYjoSrpL zB`!*#+ZICU=_L<~okZpF9-;fEIC#82A3Q=#NXusvp%egd5IGQw#UT_zdxPi<+#REz zr)8Aatkt?w?@_oJ+W9)~tXd6iib)M#T>2=v`UcUfS-X7qvtcSc-nQf(@c zeJ1q;AB#LkT3_{|C>#;9_J$a6wEH%Hl z)kzwCI?X-};&AT4#?glGzPCwR_vGrJNt2soN*STJ)>6_095*YZq+7)&MvisM^bi7B zjaCYUFSxetsw7NJkui<=qC^kQXPF%haTlos3)={6)xVo9ltJXB7P!UQ!}_aa8C*gatO-6SEv~6M#np7z;&yNy z6T6bP)0as9#SlISh$f+MT_7b#HWFM}&Pb^Q|&9jxv?YW*Fox zc298Ww&P^y+#A=2VQ#e(3{zG*!WjA$lU^0UkR{z-py?)+L_Qhk(ZJ=_EFUhQd=V>9 zzAqA2E9W&UT?N62*-v&g! z#yT!tN9OPQ2D5>a7L5uc1^GsLJDucsR#0GyL&7Q93kazlNkh-?W0`eU8cxf|$5qw2Y{RAT z@WmAD*2H#3NoVVvy(~MdnMU{N;IbDK3*#%~M*e#7csdp!(utiXl|`+_OxAqh#6UMK z;tx~dT&_M$DysN!?*Cm;^|I^VR>p=gIg9Enc1fp*hki<|a<+xU92z8%RjTArX0kU6 zY+O9)lyTJb*n;9BeBes)Nui5poJQT#p%`t2DuX1|=#bAl#ps-&0%bpV#j5_8 z6yY)D)16I2kCF}<-ZUsj$Jbc>AhcO0Uj&%2SnT`zT#48Je&$6IHNwymMMD1*DoLq` zTr8_mNS{v@TyAg&kE#fKKC3ek-xQg&H9hV*XD`JnSn{CUmDpQDr?*|Mx4>$WY6=Q) z8CJT}BPvN>2*$xZWh&2VL?6vd9)Fq^OtAuhTj%n5;YEqQ-Otm; zaX8nqrH}DPM^0kVV#Y@^+a)q?F?-qE4R!6q(4~DxlFVdJI<{y6PCrsoHs~H~dYvEl z*lp*Kt6qpGlb{vrgB42gVx+?F-6-h_YwoPfgg|bP46zO}6S3E?a!hCHktg8xTbM6& zw9};@sW*y}0l}XIBFXbTPSUG>n&aY5O>As99)=r8a9vJY`7R_N*dits`ZN`SN9x@*xq+wq$g>}DMKbtH0)=|5FaB@XRXQV%#W5%WAz5M zOFEycN3L2HpWE8D^VX#eqRGzwrP^(ZbdAuxSk|tqd4<$m7jO8s?5Vb=W1~d7XGOM4 zl>J)GyK76Yu>J~vd9Qwn{A#%*&G{{RJj8CdlhEufOLx;vN2|HZZcOi{^GDDq&&>{`!G2ej~Xr5No)XE^p}& z2*07;4dE)}-4+LBukRAZo$vumvsORh5yM`yj~?>TdS&b|M4WR5cs#DauqE%9meb;! zxrcS<9S+bH%l~joSY4h&<;zDV0!7Ny3jF5jL*pi^flH9Gag;bC^bwuQI|v5N4Z?^8 z_fWS5PcKeM0Ru)x1m);S;YL#D@C=KsaxU1YfSbS)cTiQISLe`N;eJ_QaR(W)FEY1o z-bFEsRYpeq-Y1pL*X_&eW=MK!xDT3R5RYVAUx%Rk6cAY3k1|e1SWiS1)Mq^+hPp8* zdhhBw8J+^Cd zz@-Ylz{KLr8vaYY1t*f6pkFX{pKX6B=6PFX@KbS8F`-Cp^5-vzmJcWA($_d*PJ>!* zvQSkXdLi-9w2-Zv!+qBUIx1Q3I8qR<8MESuaMh=fnD zLKCZ8pMz3k{)g&Hk~SRzhfgm4bUAn(jI0c&LHwO_IeZ{~37O4xTTGx2uzApfg^EH0 z%@ejIrHfN<@m%NE>U)@1!5ikygtq6`VHs^E;-m zg6>l;M~LpA!>~CyK?qNFnZ3<(RC?;6gl9pjkaJ~TVV(>HPj0%vWOVqNmWz}5@N}0P zfxtF1xlg3d5E1TbMWr`I!w$cI#3`fV?&wkQ!Q3C7v9#hnu?iCLLPOg+?P zx#(h=Ce02*KD5>A4`y1`&2AS|Tz=V{*JfCLh7axvumw0uJ?UqEq^MD zqH#p~JyA@y46lhj#u;&(2MT|T!p=Y|>p*JLh&289(I2s;5AeUUl83a3iqG@_09|^3 z|8G{(+``n!+R~2J=|3Cmf3UBltmH*p&X{8#rNG@hruh-(jl*lg zbGUR}%&-K4KpgDw2O`ZH6sZytawdz%u!IOGkvdap0+DT46Qm?b4+<_O1PFXO_o3dl zZ>YWAfP7Nj<`jExxU|e@?DOx*<7=;UA}?YT#l!w=IiI|d+_J4g^NF)k6G@q zb@|!8-`NTF^=k4x4#&&uNV>1LT_5|lvEN@=x0oKsPxL>+t_J*{W7YH5DP!}E%B8dQ zhh+1)T+WZr4`=eYX8k;#H#YmBGoPnpZl4H$KHt0^$7>YspU)0s@(=!Uhe6}B^{unn zpTqg->A8{Ro+b0$tb?K1dq{Jyc@q>Ffxn5rewus!>RT1~us>bcs@j9n;1#`A?HiS@ zq4?^t6|vTlsuwG7k6c)Kc=`vj@8*M-%!4o0J}(vC{h4=rn|HuJ=jP2*-nDo9A=F(P z>v!s1-}JxLv!D7$fA?^7#|YWiHU4ix?s2{I9?!$|jwf?DhU-w{8x>!Rq2JpZWb@yf zV@l9NKZ2u=vtIQbEWP0u;Qn|6R)E=iD(|yr?ee)%EF5m{*Wpa(1u_BS@?9=yWL5WS zK>h22O~aM5?ujALwXqG zZJE{tcDb59-a*{n4A|b1-gPfH`uPdb_r=UBF#H3=1i2U47Yy;9v9ryizMsT5KZqmq zxAvJtH%yA~zrIOA|NMU&RcuK=&JRep9Rt}fiM{R!=6B`;Kj3mtKzv;%=|%i_r3|MO zJR7urbAO)WXZz%d{v@Z}jNL&Fe#LR6%v58AJcWJ8)d#h9gAm`?o~s;gZ0}N^9%}4W z`s!EnnC{yBMCXP);5KHbx@tS3Av`G%y91>*Onh&~9B)H!ocQ}VMjnWW4t=L2Ilz&< z4WiwYd6k#F$K2K3kTmdYaqPBFs6+VaniZnqs`^J}*ML-E>3ROQ0xy(*$w$Bl;pcYY zTyO7hzJ3{ehyLC43Hq>H*Y`x$lxeF$vL{!^)6H{Zd;r-ah_s%7j}f%8RqOe!@7=&W z6?f7#6m3v_HvOHN(X!y_%SYaG9dHa+e~40w7j;l#;u znq1)&`gW>%lg@ia-=Sh5Ie3(vYwaeUadZCo26xTH0UEnJ=sv=#Ed>Yw%4^^|u=?y@ zZyyi?M+4+!cVx0#EPX6i$M0e9Y_<+dk;;+8|eFC%HiBlISjs} zzwkyRU5>&mef9-)5xW<&tlJ0qgK7_haN~!;jt+&S+`I85G8@PCj~ zD(oQuF2EWrcqtG)h7dh$BWNcy+4D)r2y{7BxE_PsIg(moW~^O&7Z)< zohrmU9!F3n+!7sgSAgqV1^`z3TQOZ3sl#H)oc*U7K^{%cS>T7T%OqdSw-ahzOY#d%S!6HXMY}4zj^1g&2JWZa;rf>2W84@|znDYC9H2(clnZI*eeTk|z5svivA>t_tFlk&ha;;2 z{5#t!JFV-2?PPHIuSSROGe1`N_@sp@)%ceDq-f$#=JH#V=xPEgvBK6VKV*WA-@QvK z#bTC91X4#;XX?!Tc2g)C!~Mk5Ni+e`C>5hfWjP`3tn4rh$0lDi&hQ|Rxcj*dJbB@; z=Y&N29SXC*&ER&};`1w}(XL381SI{N%^0VT9Ao{i@WK~+nj#1=$=QRJ`ILFn`n-1T zk`W7WEZHnh@J%{MunrMsG1R4f5mcQRN5eph%QH)#mB#Jn;Ee%ub3^MRR}|K|bTe_A1hr=n8XHV8!6QXHmyM}QW` z#eF%yB~Y~hYrG!xh%rY~DqZTcRV$zajSgp(8-k^ZG?nSduDBzf*yO#iY2?9v1ZjS= zSG}54cYlA-y$vpV7d?v+=pS%4-OhfSa>&$U9iwBE`uM|wk0s1qwIRcN;JMuW0}s^I z<}oQt{kLSZU2ktL=?u|HuOZ+s`G~Z&xl4p~lU6y2XY65B^}31f zgR-l-$c&{f(kj;W*a9MBl#qKfo@|GVNw%z8!fFYN!#NKFxBxT%1S2IGdZw4)8{+G< zt;iV~$CcgYbi8ueL5;He)^#tHT)^Dano-9Olz0=ou%`Z<4eA`Pz)MX{`WZV;D}QB3 zYV1d4f-W+qw`wPJAmt7Lh~|dHY)^Y9a5}?o7<+uo?L9&cjqsEcu=wRU*>7SA?h+}< zF?GTVSI&B%0zjKgssZ?InbGtU`QK2*acQsUoF11Jfq<#yv8!oNM+d zEE@ZzYAo*-psdBJwahInK$~@p5aq_k5!bFaM>rzQmjSL}ts2kfD5hH2dVBH&V{d;& zakNJfL4~RAx=O&KiwR`XL0t=j=2y6)bOlOqzxb=7`vI)|@Th$kgClJ;V8y?Zhxf*q zAjEG(8ajlGwmO&JdPU4F#P9?`2*7B%@=tx9(ya=!3+vgn_VUZBb3K#~H_auN9BerU zWD%LHRiyAW9gmT^^-q9V zdxjf&T_FvxLa8~;hoA(Hv`E-5lwjroGXUdrhff~Xf?O4zK1!Pg8pOh@cW`Z6)~u|) zV?^S74JBzYBYKtSlL*_ej_b13fe^y!jEV+K41s7MU6PdK#MLmgh{X{CQlm74A!wg? zn^2T+zJ|jBJQhn`v9iWst$Wq1Xh??4w{fR}TMqWAl785dwR5L>{C++$o0+_w@v<=p zsN$UQy__DL(z>D@-R9Le1{0kXabswsr~E=WdVomanmg?Dn}Z<~odmk|#Um;dZyurM ztuQmtGv7&bgP`07WKQt6S{5u?uRl{yK{jX+BHzPP^> z@d*$+->7;rCKMDMf@CzdtwDCDS`>$Z-YMNlkweA$;<|7Ilwp9e4^ zgVtIA2N=P!1Kj=4T~Gy96?7G5M=8IHA5VXi!SrLUX}v!ss#uBii}hp@g$X5y+60rv znKW>N`)T{4r-{2;hj@Y684i4iRr#KV8V{vlYoBEBPoY6>hyhyVSmYF{x284rc zaT~RhHpYO=#dopR&+AvQ|n@VNy4_CyNlBen_9aCV`JSz%_KDV&GKrL#x&Vj zo?4tR8|RwRpJ#2aJDFwZOGqQ|{xJjoQ>xYtNz*c7^gQbdH6j^^XBk~)mH}{vE8qj` z0iz>}M6`(Uf(6bfeS{26$8JYFo!FNgXqn&H6f{t-ku1hmBvw#>jEMLcy`Dx}B_q!^ zqYV?2AV{`1krN)~d%`_XD|RlyQ9YF=A(jyrJ<4fle#QlkCft54p$W4c+3}~bA-5nE zD2{flHw>`88jVYLiVFpo(wW+(47)uWBZ?vx|3UN$8MUW z1%Vmx#TMz94-c?#zd4z5zyJmmqGv!*xFQ_fZ?N*0{A_T;VG({N)#5ji=w|m(PM)wQ zSkjr`cWZBIB4PXu!$I^6Zmx`OnUVTXzcIbTf zIMT7m=)A`Ny;xCS0d0PN%nvD+CXkv1D;II*VULg%XXZ3H6Te{cMc)|Rt2>NRFu7&2 zeQ_*9F;GDpAE3FR5ugx3DORm-{O6-|_LkoCvx}%;-qbm(X$bq6) z5f=WKF)R()xa(n5muHZD^ljWqY2~MGU8P7QaIyi7H7jYr9vizqAdI>#lF>iYuPf$) zb+gzz6^M}tqev2dy&)o55WzAXN65CIB3BDVR3eL(hndFABj+{g>JF2nF934zSxtuA zpsns1Mz5$t7s6z|txfxM1;5)UdNW>w077nO^Q{i9&Ywp`h#}6&p`)izz2*DU*K!%` zRjo8J(jGpck}@+u*kT||fH|vB?C-Rh)s-+A2IKz2Y?8W|R9y(!&3gG@g6!YHSA~?g z6LB$})U91RX=kHd2;p9M9k|E2gbU@GK{v@h#1ffo+N=Ojnj2Bk4z33%`e^~5j*B3P z6Kdq@`i0iK)f)Th}R5Dj`c?AvYBM={l3T%*r6ZWeEV8E410D6i<_~y0>!y`T< zzmywFRpU`H@<%W#m5^X+2W9!9v?glak6IJYV-+yPe3Ga#K38F>5$S_R}{!2A6`h!nk81CFfUxkg9Nw@>n5^FOo>kf__dY? zR@oUGqz>~R>r97&hBQY>SHvIO+RJP9qwq1$%6oTmElJ-UT1Z^IZaI-0d#F^(9gU%_ z-u;lu_NR9O#M$38&Z%8Ot%C~wG2XIj zWrm86JdD(6nhRm7m|uu#&V&KyW@yuVw^VTh9xzveigWB*%ptF6zdOUMy)CHp)LpOj zT2U`pu%J~u&Z-96LZAyQm3K$JB+x4Ui1h~T5l1K@n;|2jfWBkLFf4ONgduY(p&Oct zSE}o`3iAD@m5W!Hb(IQY6)UBSLuY$BT5F(ktJY(@d+J>DK!1j*9ttM1j5zFM{r6J; z*_2_Jey*N9Zb8dqrrQ>Et3_$z7&o^mq?`MmNBxrF?-dON?c_GtHiDx^Lz8ukhB%43 zhlbT~9>`&NsGj^#OW_tN8F>d*F_Y&Pqn}^c9o11I%$`7h_7IR6_y2?reQbA7sJpI{;QV$fgkn+ zZv2E=Mh$XO=cbi$hz3yP+G(_8tntO%t-)=l*%qjqaNT(EfkaMKHKwYf<`g1QIn$gR z-z5m_P0j~15lT?nn|jU>#CIy{AVS6ngUhKPI-~aSgr+-}YuL)&p%j>gU=Lj*Z(4xE zNEO$mWl~I2;}qO=LiLzqU5P?P8Zu4g`*Pm3K$ruM=2A0H+_D11&hT>YhLf&qCVc1Z zd>wekW82*3u#nm%yN1uG`YuJbUdR#oVtDT=6h7px5ZBH}tVYsFxafxmFlUbYoEnU~98NAo`@tpP z;J!>U;w7;C$WD1<5OT{}YOkD*x3L^Wn)XH@W9P6wy1ZRfV@2p_pqCCWKSLh}Mw9KO zxM9l5^s{gH%^_l0Tp(p@T)-i5Ale+FAWp}<6OiOP)OCHszH?gT#WGRjWc?ti90J0f})71Kj4HFhqxTf zg?@U?&>W!&`?9dGt)bIAOlpzqgv3)2m`Q6fD7|X1q}X<4B(Q7Q2G@u-Y<}X8PiP~j zrX|Uc*6E|`rq_}yW(!n%9NYwqQNM2T?gpd`v3x#s7^mwC&7@c*v8%I1Qy$q01 zh0&s{;q1}lOp$iJIOtNJCPibNqjS6fga0X@tG!Kjw}mz3#ybwnHjP!G~US%4GgbqDFm_&b&AW%F)}EXAEd+>H)IuNH}9FHNVI# z<<&PrT%kK-108Z>O_6+PQ4HeTwE}w0*a1oe(|Gzw{0ATk*cMil3?m6Fx1*=NXhIf% zLFDG3Oplx0dFjP+^K+UGl_e>|V*N6Nb?wFoWbVIDP9Z zpO~0<+=yvGTfwa|?VLjNL{GPipht?%ICdSnM{HKR#TFQPBwXrYh&p=R(Ib-%QMntp zk0)wAv@yP#QiGQknmC-8d(_1a=S%e4ZO1@~J7#-s zSgKBS%wgZSU8L?)rWR&|tE85w=4n+93Ar!5le!;&CfKXhMmU;}3? zH{vkJrI+b_e3PK?H*2+_OO;WY-ZCLqt13c>oDn0|{=d^v7>aDwfmu+hGP5Gp3#~BDDqD~9D0Qf{rz&%9U0?6xp-?M%FlASwe9ni#Awzu z?Cs<673NJm{i+U}Ya;g;HClrf65@x%8t6W~7Rre{+b@?-9YsX^@S3r5b#ED z!JIlQ(RYq85g6q*NPG3sO;ySHn1T|Jhx=C?jgGl&_Vh?+)2@uw8KPIurW_~PHcC2h zr0y4y*GnMoRX$heGf)5GPxC1OE+wBwlXN(!$%wAU<3qS_p^xHZ@S}{OworuXG8G~O zs&4bHI`ES%2TkWEho8Qk5t}6p+64g3?l7qa2@&LM9fSuv#bW#sKA&42*e%($bfKw= zQ&finju;hK+iij0W9{yfR-Y5VkH__eH;dFnwqj%XwCi? zWA7LxTeM^gm#tH_ZQHhO+c;(0wr$(CZQFL8s(0?a-S2(f<9+?^kCii4W{$mg#LAH| z=hzWz`>gGT0!WLj!C+n=L~I-;-P*FC^5L4zCUP;1!3il^H;V zUlYC$JL`KAHMN}0ZvfI2?RuK6P?Bxw(~)*z^c)9h3$UNYI3Hw!Nt&Qik?j*3J01-o zSp?OHs|$4Xclz{zEr%4*ZYV4R0O!ldwB3_A4M3&c@zS&iY!lKziv&}N)!;GLlz1OX zzyo6p08-IvbQZkiR3)>=oQk6# zR)>r!W`zu1YLIBNV5r|}D*ptk9`bzeQXV+LTkvo5ctM!Udy2Xc*kO+i)Zf^D_#p=% zMPOluIy!0nswj6@-OiJM&8*r}1o>LHYM5!5j0+wy?*53~PcCjZY3PGiSS1LgF^UGK zbX*cJLmkr`Igyq|u@`@-jN|~h1{m315h^4IOp58i6YNgk!!cQrPPg8xXrV$F#Wzhs z+;xvtqf*C5lB#gonS%r2kLG|96Glf5MAO3)JN)t=Hd&`t6r?!J`56L{gWaUz9__${ z`l~qCD31hSn7(?K%ZF&T-AY^`uBa*~^y+{mg7gY@a zQ;!*PIJJb9`}n?^w8Y0%c`njpx|ze=yD;}IMWJI#?Azy0FW{Pl^5>A06e$vYN@cpX z^1OLw5rRj5O_t|^&q-TKM&M4Ym@T>pQ(SJ-7_rSJiqw~=F9vdBd~N)AgTTI%TdiJx zw0enrV%hXoSnTRKVCV06%+Xg;YC18y_lExBGOTr)+%$YX-BYo)#6`q7D%0`AdHm+g zLJbngSK>Fyz(PcD%^6=ebNmg$k%^O(bRI+lZ-Cu;^xKsx4(#(u{MpNkCC;4S-Q7(A zm6_>*fR|>g$LwOzZ8;PM>q#6_kXz8M(8GB2Ovjy5IlSxfOB&3_%2?k*-$)c@iG1n0 zzXs-+NaErb%^_$&`ha&1N*DRWa>CC5`E3c^9GlZ?{fxfvy=vds?2)NBiQz}s?gDOh zRipt3D>$0C*=ba$m?l2$n`}qB#+$}o6Io8Mf0Hxe!Cpf2C<_b)GRI9tLKAQ5GG~oG zxKJnEgo;hSI|&eSGI1`#Xmg63=QcLw801+v?tVd|k_Ua{qka@gcoef_^&gOa!pd; zKgklk^>@>AUHR6d>ic*M*gqsI3*K#`wZzz$*JWlSxkk{ugcF*ita3y4z?l0RFJqg? z_t|6QXgwA+(9T(r<5g|abJ0Ssae?;W40L!U?xA_p9)sDCDNor%iSp;kq$Rf&h_b9t z5?t%U2I~f}4DH$ID50&lJXMec2EUBeQi;-s2pfJK)v)GSrI6}|dKG8PS=YOpG!0`mmFz?8zGgqeA!P^iX{I;hxYIRP@1?9`~_zx4R@*CNKY8s2|`-@%|>Wl&bR-~b#a5lCyxlS03LrNj^D)`dt{pjt7O zg-(&W8*(q?s{`MOD=Vs-Mr1wKkIcf9k>D5|{7$zAgu%Eas>0qbWHtEvSQMClz zu_R>T*GVbTpqHjOsHaXNUavP=BslJ9h0bBHI+GR?XeN_3;5s%fBoTWyVuF;*Bj!X4 z7glzRkywWjEAvdcp!+mF)5cZt%N zvYS_+GTHeFB1tXJJizWFKS9zHOMugZl^tU0uCbkW2euZ^QL0=&Rn+DwWolZd7VNJ< zbs9LkdMw*n`fWBs>7D)Dbti(pdZ<-9Ym$oyR{UP6?kmpUWJkf4bdA%3DAL@h;mfLZ z2f-OCq12)ZUBTIDvtm=%eBsIB_X%OxXM&M|<u8=OG?zHyt{+8e;ocb1WRRxG64* z9(})0)(YQG9))!5KDiQHM@QBGgzwLomr$4awwSqZnOOT;aun~GL->czym-)bgUNLX@(=JPsIaw)U}M0 z;8y*Y)#7LkM(iYev#_wJagDVO9aRDsV|>)CU%lxbWGWRoKtB7Kh)R|taPgUl!{(78 zB3)?R%zlJYjiXyN7184s-CqA1&CqB}PmCmkST~K628Fr~=@dso;NCH#u2Q}O#Tl?s zg&xLEL;z!g`nsC^7jvo)#|IYH*`LDaufTJFneaky2g5mxIMp5v%uRRScD^%C4wbeA?S#H zW_ek&H02W@(&Uu6T^pwmNl1DXWVOwf6*V>Y309Dy+VgZpzgvvZscb@!7e$DwV{vCJ z_tOnO_fZerK=MJtfE`M%5N{ptGrP#Zm8FmBevdM7?j*cwm4zhnzJ%Le7aq~Z>>)@r zgY8fEEU6n2$mT>Sn8&J?#Mx%Ahz9DxusS={PgNO$hXhx89>uK**k#7WNxQoqhU!^( z;fD{n3}fk(VyT*g`a`yBRu*5zzw#V|z7HMVvC45DwwzkOK>$U%EFXniA=Fbj5x+sn zKIcAGpR9Rqu;F3N7pt3xo)X+_unqx>>j*21k%?;3nw?dKxriW7G*?@(NO2JXIV|=BuS6`<7>(Y=v^~ zhrdQ(`KdQfq1&`;U~SyZ-@jl>)G3Uz9k}`+Ci7@YZ(!YAQDcLAqtAN{d6Q0;aihcX z*@tNejch{n=}SX1WU_T20)m9Zv-)RN^2rD*8F@gCv6DY`Iw`jfy9-8$#|q_Pq^Fz; z#NbHkv{D#Zb@;$V^Y``)nU}(^96|smc8yeKumV;#_Fm{*@!W1(q7}La8@Rw2ZXs)6 zg6kr%7@80|8d_)O7`D6l!CAC@fk=^P^b+i@R@Tk>FZeE(OVM8bbv6s;gv z;hHy&e>{ZwIm=6(QTR8Tvlm&*{Xp`o@@*^MMK+`bGiL9yEgisU%{77(Vh6|QRFvo# zXqv+q#71L7Sb{&}wxGaOL(I3R1R|7ivnF3@*MxCBkYtZ(7Fmcy=_n8R+Gubo)L!I@ ztli1a>LSk^9#w_b-@99x7Ae-A;(jIBG50W{D}Ms1v)D31ZY4tLm5CQgVHQk zfPjmwleM{73gplATG#Ds8%F7xYGO)x6Z-v+B4xe23ld~Tgp3Bwp7-4 z<`hXfDFMfx3@}cU6d$u{7l%lM-;i3K_>KeSdrmO4{&jx1)4|jxUpJmg3b3QK^2r5~?PL|ww8OQnPH|45|DF7?z#5xM9=rGtR-mFx72nH|Y!-!r|!_9L= z$+RmaaHBN(DEwWW2_Sq&E1$pw92rTm$t%w9BEWvYqr-3QsR0`$zjCPq$_&2dGB(6} zaTZie+mj5)NL;^!3))}{@&_tq&zl5YRXJfl`LzG;5dpY#M0GJ|PeYa%Usk;rN*)SB zSwoi5;+ZU=&%9u465v%)T57hw`Hw%AE>DP;^gId=qpGP}{SI?+`{MPATv+w^djkv9A%t#eSIUVNz~m1fA}^GBvU62>eWGLEIxl|q z)Ux?ceL>$NZn3$ZSKf{6ve}Dv)Kl{4->(|_u81m^__^RzQo)8|%ncm1f1>q)fp8@5 zIYty=o)^3C*N4XzhbCc&wX@YhdJdc7>qN4c{6y|%t1xi*YU=pY9O?-4JxZZ^C`PSE zM)x(uD*qTkT>IV8lG+Se5&o{1D`ig4$3ww9VKDz)yI>)TTKmgS$S(~ga9Zoa*sa#P zayh^k?o8m575FmJZnbDL=|dIH05x%a@ze;vtInUcUSiRyMAl@)sKUnGxOwkalBoq` zhatod-y=?c#x~~AX5Nwg2$ZsZW!VKPq@9apHXt6#2Ds{RR`NUL(gP4(ht_TTWxb6A zCeMX3RMc`mbkNe5%8jNPnoi*^4Rrosw+CswTIz2kczYyg!5jCiKa=}c*=dWc?vR!5 z&jwy)!5Q0*W`1QWa{Y!w!3J65M*|~GI)B(Z-EE+!<_>;Tug&hf{7)z{U_^!#0Vu+saG2qMOd~0Aejx6v)kTHkw=&#enB0r z<#Y@>kz8SNO363jPqYzlfol4-Q%)(C;rqBIQshG=+%xKe15mjzupktEEy4@1Qz-SU7~&a}h1+|RbHJ*DYqnX*QS~y&N$f5xRRPwr zV9EDxYT55Gz>ko>7Dgf1Cki4_xO9#kQRx93x7fTe!VOVGTGYV&%?{IyD}2`uO`Xe@ z%xPo3$6U}^U#UHf^LcEvXnwTiX=YC{T^~9Ck3sCH?a_A@sQP2a0YcJX#+>vtz-tS6 z*VsB4Fl)F>bkHlLxICc5X+8%N5te&54n8Ski4)NGvQ;j$#f&KIDMpe5eNmirphD@8 z1sbUSFv}Y)@hkz4?1_No zL>o^Qz56UGJz`W2i5W``ZX|ZTFA)zo|!BiLGtY53{rJ0=X7pyXHmNzobneXzM90xISU zOJFSEt4#{Ze$V2vDgka6$mxv?O-+&iY^6Hh3ZoZ08&XyRiVmLf8DMfm9j+?9C=J>< zo^&~uAR9BGkn%N8cW}>-rB4B59{K$ewC<|_N*vyOA@_BrWuM2}6A#Ku)oU5g$Q768 z#0Oc^?&#)%{U~gP31L$1mNT1#nyo&bV#&4vQ_nGH zv~C^a>0arFA&SKnQRsLz$fFOf?g;e>6CbE@?RF_K9q4Nl%`4_Xr|@uDg3XP6s7c#)u?m`~kv;CQ+|; zhc#z}Y0wXeF{R%vdI>4V))XPDoJqfJE<&I1$Z-Ntdn585!Gk1p45Day-Bd#%59jwP zJe$_kayC4}*g|3(MwGUE^?@{08TxLgA_c=aQftgc)mq-vn0%?UvCcSh2BX=UpPXAy zIIU%LqH<&}oS^84jsnFK&cdEWhGts3`9?rxDJm7-Ww3nObj@^#xc;Lh(GdFwrfIi=o ze3)!;9SNga-cxdKR?)iSBm9Q8(FJVm55uzG%;R67>A1t0@A--hK*$X08{PauxoYxs zkCSB{a1O(h9*;(3Llr@6--yq)Hk09GucbTT zEF6VclVQg|OA|mla6C41b#n414KBOh0&?47kG3=$QqFklNDiJ5K~1@BOY`UI?Ed&% zmCRtGO=I5^WBSA#kLUa5%QHLY+3vOYm2=$Ul5O5Le^DZw4??H1chdr51(7?~-TN)G zuvgn>|Lor4adsy7rC;sM?D}T@FdL0C44;)rsnP-F1s7m$c#$FX#>By+Wo=UE&(_%F zJjuzh8?*Y(d?Q_0TU=pjOpbg0_D#26uX734M<($%Q$+|1@QuCaxmo1oV)n2h!U+BQ zJTx{iwqGGy3MgX&Jq(gTYxL~S`Z4M?Mix3e5v7kQQ?)bfRsCBG5!@f3P}@B&LthLK zh3=IIQAC98j_Ho(OqWaM%a*w+t=b#am3zI6=~un!jz1!ewtVI**Pee(lSW&mzfh&o z+H1LT9c;SYvs<+(-DoS8>B6;Cwb^gFUGmpjsM^fsd$Vbbsb#+W-KNnxY`UG2;i6@` za=mT3z0;^sl}U`0WDOeNZT)~g$HC zvJV)=kAX48f+kBzmx=>ox#e2Nw^{d+r9nd zcB0&I?{>X*778A&*Sbr=m-}~3xG5WM?qQ$pEqbP(98|wQxKdX5CVNigo6^Q&0Pf_orF9jPQtl*v#VO(Za+rcG z!A{C#8bhH{)r^5i4T60A3z!HW>@5a0>6@-^?FbL>_U;C@2|(2Sgu#ePKpP5z&Gk>% zu`W(hG?O*aCknFIk`>?9RY=zUU`GtRtzmZMjmoGHmHA{YADoI>!B?QqCblv83~?in zkC5ya02mRG&9SCdgpH(913U=@w6`nlHpszWYA;EAgLPP~r1@L|th;9W&hA4Y3xHLT zoDIA?~<^q}kg_IT-d#!5B{yX~I4yRipxR^@uqoy3%8F?RooZ z^dtBanLI{h@*XgmDQjBKa(!aqq(sG?^~d-kP>|uK>rux<)t!2FDp#I*Q#C>`y}w5v z8@r(m>{PfwZuord>sRM&7_CHtd0l%}4=W#=ELZ@WgTV#UR!2LRp2XhI7-dsZBW&D( zB``h$lP^H8W$CfaZIH8A$|)H8@1m_hmCmV!&M}@;PiJUlIPk~2D#$NSy6slO7Gu`j z*+hkga?9KDo?kwAO4trL1LIy$<-e~9Yf)4JQ7hhR022&$Yo+C8dEegr^U_X_n&7r? zDrzch@J^QJEGqjs)kyPqpgzbU$tP-{%{%ZL*|G~FrN{X8jrSs$g?oh{^X1H`J@ZxU zS~4nOzs7QOd`_l7q!jgvQBo=*p9LlKD_dKapqOGUn*|-TmsE)mS=KQRm55k`6C=ZV z>c_oQY^bYhmWU{dg{Rh-Gk2L&QZJjUh?&Ij(GSX)%nQp{GM2@lpEG8eUMb)}<^?6s z$@$P8K;=7~ak%2p(zSjXLY=gQzQNXWx)hyl>7funkZ8@}-pp8VxA!bqx(Tu)oe_{_(>h8aFosA?W`)L|JiU4~#ZF(6TI+gmKtQ8b<5UzI zRIA4c*cf-0+|}};NYmpSS@hR-bk)T#HikBVqyjBts`wr$> zwmYg)IOEBvz2{-_yHkuV>LSYO6Pet|FYknhH-{NbbO$1aon8bagqNRkTpV?xt5%mp zN7??$h9}l`*Lfi#Zno|5;<_S?&wC%=g5fSiH_e^{1T;GOTz+^f@6uuYT2fSoGD~RQiLF}G#Xd)Dpk4lEb#)@sgYVZaT32M z8bOyUn>~~M1sWrKqc~*U-SMVS_^cDaI>0OPXiWONglUNkqBavg7f@WRHihUu&QG<* z>-ZC9fCF7K@gk9mebaM@Z7V9WVJVNT|X1tz^@I_DujM-%W6#icR$b3YkKP zU)y2opRpdYA7zRLimntrQ^eeI>`sZK+t-)oSVV`YF#?w3p}i1dt)9ur?Q4t%?-?bL zT0!|R^E}7U3Q9(zWLw-s1y>%!%!S0B2IfB_=NA)OCj_ODLTEc*9k4oyj}eOPBf}2$ zJJzbbEo6A@6usqe^EO6yZG6(z#yRaIpcXq#Xwr1!pGdk7A}8Rn9gP57IE14(@Y-kD z4Vc}1J;_sUCYaI=jVX7Aq_@kZ#88vuLC+b!F?T=qh~lGr!zr$&o6Gn+>7MtW516a_ivjbIdJO;GR$l2x#}#XTFO>M{Uww&t zO#fmCo%BBgE0M5hExK!k_6CSy?)CQrF_C}JPJlsQb=Dl~-v??UWzbm3wbh}GnRVBE z4e;b85?Scb=u&x20E|I&sccY^V4h)MpJ0;wRsaG1Ym?;^s4%wk-_=-U1puJ`|8vsW z#L3x-&cw~ch{n{!z}dyogyx@b{ToiH?1=x<8Hv_^;e+PCoVwQ9mfKWC_O&hkhF9B> zA}j;8mJ{+`uaHU9bW!|dlu<(IL$*UGT&vp5d0UfYZj4XsA9qKm z{UgS8s=axyW=%F^)8Y>@wECJeyZheuB2(_%ew!~DYa}7>|HiZennK> z(Wfu1m+_&P&YG6bU?gi0qNp>M&Kil={noBD)UAcIb!C9^BY?9O8X3D3ZEWw6n`XZI+%>>9800??sL6B@qymRd;&s%DCYIO0JGL^ z&p#DGn&_xih#nvdX{ZY?osCx!YoyqN?UFEQeFd#&*5Hu>AAT`ZaY00P17+4iaUosn zov$$1-Km-P3;D+0)o_9+~v0k6w-JOe*5=cvD+pT`C8QWPaF9G z3FxOX>ol&$BiWY&o`T)k1sccLwzc&6675wneYX-Nd$s~{k4v)8R1+Th0=h5s>9(lF zp9ja}uO%x(5ubw2O$T*S(Kp8GdUdLRK2n>t^nC(IL}_-&}9%H^cUJ z_e0U`|8SyLh`y8?0YGxnkJi(ubBxFt|KZz?ON?kATRLGu*C54%6v_g))`_q}>Xvhr z!Nie;#RWWJ1$0Uw^On(Hir+Z=L2VN8#v52BxGS)p=qRTHy7=WaH03#qr`biI2s$C7 z(F(^9!m%E?!zr9JE@$8tjLdaUo*8ToqjN^HL?p1Fm2r2DywJCER-=XmA{zMd%m`kd zJf+tsj6@5v7U3O{;k!3_9-;C{kS2_;SLX>8nORo`=d^10_^s;SYrjB5Dn?1YmGp`J;WnWz(1?8L=K~4zYu{nYVw^zd=ozo2-o-SUINH0-&$P-v*bScifStHZY1T#@>cr>>2RzlEr91%I_RBm;fO?G& z`h&*$LDeB%Ica{JezE{@d#^NZxs@wuOSZ50kVMA!V=#?*Jc(us+Pss2*;Q0(tS4*t z&Fd<1{H8_bkn+=EF>_gD2ayWnc!Az;!3EAOoSAb#YDbd(hl#R`W~nBYJWgc7>Ah{I z{5{k6*HyaosRuznD8T|Gy{*F1lE|Znqy{7>cq$F1L3YP%NnKBFRq*jT{Im@*tf&T6 z*Je2Hd>3c*5j!OYA}xlr0nmE@8R3n*A4#W8j?%tW?)YwjTT9`{SWyGWaV{bb91h|i zo~ktnqAaY)KZW(|+S0`PgwptW+QLIPmfFHLOyb(YxSCNWAR|bWQ>ZUShM4tMQ2RW_ zVKLReK!+4gu1@37l~*2fR-Gq*BLS{MPR2ltx64S+qP53}3q`A~!U2nv-({quWSdv2 zviWUf3b@65>Tu^=9ArhN5G~wwy7hrhI616LAV1gEAqjI@TRAvEYC%z~@?2qgIU{y< z#@>hzKBya5Ttx%k$|xBUKva1BE+#n2u~XdLAbs}A%$Q|uF2(=EyAmJuTz7|Ium$Tz zI>#XUX^;_{>J+Na9=<|zhnn;y3UN)1<7>9lgZ)C_q# zp4;QZR`vz81wm=f0yDep0-R_C{Pv+?)+7VoLr;BY+qTKFqcowy6Fm4OE zo$ov{c?&9c2h9SM9ayAG%Dq(X%y*VI!^aL!Jufv^WOPdXy74r+-5M^v@qCdZmKv0@ z>+G{YDGym+fMxqZiO}Bx*!?AuqcSm~s1hGh&<@pY3!V~t7L*_X`iigZ_0_Co|CAjP zrlIQuq5f5NY3hvdd#o&k8iurk#~=fS^uWImpTL1k3C^!*kNBt#-6!0`Xx0-3jn6PG zWDs@IwhyMzISBR}Gs5=l%|P`Jn9A~?Tt1KoJ$G9ir5pX-3_wyp_zAy4B<%$z5l@b3 zd3@#NftNv?rGQ^-jAsy>XHYA~Ubu{?A7l^!kM22w@q&2QR=}?h+}&Od@cSeG2~=J5bbs*Z7iA=9h&G+B}S9Dji?+A5%SL+T0=cd0-0-)+pdPb zS0w)#$57Kk;Hk9>^w828jndP^L|_Zfa4RKZw|p*MW=SFy?3~wL2Po$UlgKx0q2{iE zkuj0Y185*O`2&_MYv|jAC3MKpolcRFpFSm|F33v6WN%FMOT>@UUK_8lk`+e@bt_Ll$=oV`lv_gWxtaG~O zCqp=lNF_7_97lpmO*sYWx3iE7OH)%O^F^Ni+uJnxoH<{|@z4@_LXZlQ-vbj^_X(dm zrL5{_=-1u1U7TzZejt~DK|lYE`4GNm9;QPB0EC77Kbg<}cY}$4oB70zN&J)XgnIl7 zWkmA+#e8)1?65|E`L+Q1h7LdXBU>hR6mEw?xmyIHf+8~We;^_YsQ)(GcCV%=S=&XI>b%k#8 zYE{)oOJ-LmSv_02TQurw8ssKlTFrrtXw%dJhsRQ8TDv<0s-#>*n!Gg%0Mo9lYj*qm zlm-v*FgW)p{%Ha*hNjmih?NnY2YJD}<--R2G5QK?ouYBdyhrjey~)J;n|aM z%GBG_duept?Y8k5&a}S|z+*E1A!)W8SZ4hl;FPPh>2$Gd*tQ&5n-!{Bdml zkCyx!=nvj)2ABN<=`LTKcR4e>$?YQUd)HGZAA*f#y^F~tN|nTNXxCOpPpz4m?|bu}%ZF6huR zk1N=RKY$O+NGHHfSm52P@@$@D2|)Mm(LcZ;n?Rg4ZH9+`dD1X2!due17ERF8#H06H z;ENA6$h5`EvE11L#u-BPDT4d24TKe|s{MVV2uWLZ;fk*rkJ;0~*tsXQ^&8~utVP0YVe6FT09BhFD`^X8Q z;<(7>N7UiD0-3C5E#c|nIlV&^Ga{G!sEY+y7Eb1sd1gyZdw{0?+E^Vfdv-$1TIl|X z+`gc&zumw!5<=PUUO{Aa^72*KK9OM3i{C-X_dsd^&b`xva0clzz?EwT(sFzV2!&(9 zv*0^&?q6t3d53!1EYDhpk8m-LYW-Qb;oVj)H@P)Yo5TPv*gF9?lkOA}S^2t$`=X|M zp+0o9neks-zsM$ME?Z?e^A}MmoOZzOuMt3<$0cNibGC>^gX4r)<&rSoF@wF!@&8f; zakxMc*;ea5*O^0xug&*Zl6oR%erqFW478zUV+G<7`XI2ixjK4ex98t;g5C?Eg|~ZT z2e#0_0%3?e9z@*(2}qg@pacG3O!f`zm&IOfEmL9!DaV5}7?ndU!pnPv+*z31Ynfed z#sT9{v=S9zRcAmcpBx8y5Zn7Rs0FZS)kXG03Vs4T=ojaLHD#Ho-|vUg^N3I2)Z=~U zW-mS`IWdTx=xA!Ei5^tbPC=N` zVSN71VMGxTeVCu*^RU5%w~Pt1#_ya+d6v>)981)qevpt{8VQbrnk-B8_>#*(#>6H& zaNFM01RrvEdclLO(>;aWbK>7|DfTZuau}|A%-+PV7Tx)BnRr#<7E2!`)_sV#hirCO z4A+`G)1^jMh|Wn(4~d|#Og85!)?4!SyNOt9iHk>a5hGgV@#mvLxR9n^BY^~uT2`wR z;F^V%6T~S2uXkZ!BpG4BZ;#>=K&g^p_L_`vO`0owr>i{E%M;0#z$qW*)`$>h}T-0!a z?~yAy6$&nuXg#7#43f%5mVY&~9~X?MLx_ZXm`#YNNU9VDb#WaFax#W8*k+~KN?|h#3 zbFz}Rx^Vs##FN@{HE8?byzg8dRg$E?Hz z$HNq-kerB|8&u7;uoAXWdHY(8uW`dxbu-)9hOK|$#(J3rTo(;oj?U(}1HLH)$6Tnj zJo3Z{NK>f0Dl%3yQq;dQb=rpP2)B&i#&9+ZL>@~B1r0(ULrkP8D1Rllz!F7G+5q9` z;H%uPCLZ++^PYbdJ+B6DvR-~w957+Y%Sn-=Cf;&SVVHvJh5fF@e00;0cn5VfsC8J_ zu8^beg3rb)!D#$)e0i^*$GRVsbXoHI-5$FaQH+sR6mUDVb3l=W&L*p;m+X=V;% zIu7FRZ9n^RNfSuBz^oU;_3gA*3|c9JD!f_=ABcWijc0o<1U9m~+>Dba<=Z)OL&x1> z7#rFeXQW+3+2{pE>AuffXpV4cmSsF&m?9zhep+-vXbshw4|7UylUhkzil z6>L*a{YIX;#xC&Retdug8moiRgu3D@WGGFF^pWhGX&!_0t@=E^GqcknwnYl-3f_9& zsvGIe3o$v#zZWR30dA(S+>LZ|XDzukqRA@nquMzgk$7x&=AJXvn%0O0pPxwJMN_z^ zEFbiZ$AvP+g;F?;%m4W@xGaey`URw&Vlt(fqA=AE<=haJ`NqrFz=zGhh+V^C&pify zcYn!COWwswIw{#uMLa1f>NQ|Rej4=*vqmyu!0m|{GHzr@3MtqA73RXH1AxQNmQFvl zFFePEJ%rJu=P>@0lxNz0R|Z#ObfaN(d@|Iv88Qj1_Qau?LH^#ZOIA8hSk^_# za^QJ%b0x-TYl41sVZ0W5#j(Wnz3~OTubJseLUKFqBl6Oz-@BPU@=sQ#M5-mW9-Qf0O)fdlR5>}FAS2$25Q?j?L6d@&yaGI?d0oWYtAODLjg?=*wV`ZvqrjJV19M zg@Y^vkP^hfN!AX8DrC*Cr7frdf8YgdC?Ru*i)1}5R7|{?%;w_c_fWp5V5 z0Q9lC=^7zT+BLp>o^(3I&uG-N8dwHP{OYlJ@55;b?6-x<^5Lo>?4z)iK%Ay$qxUrB zM0ALHuf4mU|055S+a#qWoX59KfdBxsVE%_E_5Mp9{OfM8wVfHQn~nAVOBUD{QDRjT zECSwKAJM=hFZ^%ZR+F;bq(|6BJHvsX=^~e}+(xNO#Lkb*;%~MPswSc!)iJhEgAE|$ zhe6hHL3#pF$%b&C_O0R1DN-B5TEH9s9SE?k{5*gScRGCsYi9o8+ERv>o$b6Pwu9n> zj?G?MS&KaqD7y9(_~O5qSePCiLa+@I&Dv@jKH^tcmXXWlw zx_UfNHVn=e;g)FZX7FasO@mWz#iEuT^BgR>EFG;fu~aRIKl4<~Yi8;H9DZZ;FkT~@ z=Qli2c#r8a80K0W`={NVN5sl4piy)b$q?h7O56B@63=03NnG#d0<8mnA8rvOa(u=1 z$-WzFubO*M5GoNcdM4sXt^{1Yi%7{^r2nHXBZGgh{01@$AfXKAH(L{t;F%LTA%=%| zneukodyn{7(~~j0L@a;eq4D=J^^j;Xx*Cx^&f#Y`M!LMS>BBvAdON`H%`$Fxa%G`- z^W!G82~8qlEe{)8vm^RZ?C=f2_}2#e-K9S4Qa;u7!_W?1_e7p z34nJp=avthS*Dm*#+ATqWekh1rW$8s8E?9#0T$^KQ{Xw3jfRtq($vj|Sz?|!?PsD@ z_1!+#wxKA5Jh^VO9aD~&W%(~xSd|@J#?@+fDzlcTJ*QRf_erUj+4i!|%U13`B5PAa z`@sKI0{5+LglB*Q0N7Ch05JZ~zi}sL6MLus{Y2`2TLjmjO8!&){wIpK{D%nE)R9A0 zL+=?W`q?-3Y{b%Ed8(i|m$9WCU%tfgH1*W&`CJ@lDV*`7*mQB`u?!jh9pt*4-eCtpPc}Rwt?tz4L1E~)G8N)lwVL9hg^0AeWU+4K6vs(%t0Bvx&+jye1sG9p z^U<(C744->sqwCK2F5BT?RQqYT*b1+@J1aLTP400=wO8a{;d(@0N*m5AwQpBPaKWi zd?(FO%+@O|L_3Yv1ArCu!n5t9&<7Q7r@g^aCz*~l?gS0s8yC#6VXKU|`e(2KSJX11 z+Qmt8cnHfW1Q5~#Y}~E^j(*Kn@~8A^q($R>w+g&5hf6Xa`)j`TE9&vDwp&js1PH~r zzMY7)db^EjZa>XN3)U=cgwd?*!aR$UMoJ9PaQq{%%yts4fljd9P3nHr0@TK8R81Kfv|9P3G7*ax~{oc)IsG__^0T3oluo!SSL z)nTKmQz|>iOiu_*xD?oy@dVdYw}1dcK)k1zXmN?(Q$d-{w#>VZ$yHE#1jA3tZK9^Sg7hWU0Z+EO275jn^4FX zn7Gfr4ZuA`$#?t7hvHoLBv@^yBC9c%vw51!tZsp*=ll)=Jwmfoscd8> zK{?ASWgBGjk6Jj7*9A)c}mvQp9GmtBiXiH*3FAPRcmN+Y!2|A{F0HzFK)N z&B7vCL$MC#<7&fII4BU<1$%eDs5b)049*-)Kyc4cT9g?O%xFI`s8>|9@?(mvw;GA9 zJ78wIN}VD;oZ5`nrt1cHO*cETTsIva#h_AW$yCx{%b*%h%j5cq3&eSawX+o$8BT4b zGn7=f9jQBaR8CmniMDbmUMaZ3D@vrnlsgYq~E6`kg&DxypY3-=%xZ7WBt+x zgK|b!0mf1E%aG5M1+?RjUt!?F4VH;DlDm^{LK6#2etX*kKfDR!zrXvIe}X@wmSnMv z4RFskOGV9v-*|w)=vW~^#uftNH1Lm*En%K+vz`EEF>#|h9pB>74Dg7ud}4Pjw@q0W zfNH}O$k}(OU+4$M@vx1JPa4lls z1T6KikV0G4!kx+rOn0Jpf-{}zpW;a40B1VYKf#{Lx@B=vtvvWhhE@Zq9%m~Gl5a$v z`z_ufA|NMlC&X5H^a>||u@fbfBl`rXS^73F*{`3%uv7eeZASlaORdf&t!%p`tYUWQ z>MW8dnl%K#V6u|+9->iEhFYM5A868*Yt?uP#{y}BoO>9VmhSu{lglr4W2%~*SSJ)~ zStJV@Oqx(%N|w=P1Uf4Xbs+4d4%MsOtuk5ckJ1b!f$Yu+6G=2|Xo|j1miKm@CQ~Yb zS5k#1p~4bsa!zo@*&~0)B-Mx%-G79S13Ac>+cG3q#Zd8%WcWZnauW;6?AlE$kb$Li ztQs|zD0UuN83enKNXT}j$Pr8IILHSaCiz95#hT0=HoJ2k^cBiH`~H5+qdI#FKNt`z zY9!(M(s#vPK`O^6sKHAI@qr{$8_Q$9;JSS!l~<>XDxo-zhwiCNe!7NRxS4Gp@Cofx zP9UHmtXrfIIA)l@D@Uaa7OeTI+9VLH_-12ox+3Y4@y?Xkv`cn9+Exs840&4#0HXXe z5)rwJsRpH+522{FA%!Vg@WH2WpXE7SXgGYT@{(y0lnq$!26jAwwDgcxG)(#C|DvmT zl#}qyrg_vQ?wq2DJbOTPFNh&WOg+@%>$Cy6LHu-_ZwPn{K(nhgC0XY3o9$TpN-#ZU z&!F~Z6Snw%e0)CB)LS`Py}o5PFx<0OZN{P1$07xGeBqe5UXF6ZSXSJRE?lmb#pfxKz z4}nyj0CjmG7Po!V1}RgN6C>gKxUn&$)lT0L_OwEt1z@&8&j zg1LVca{PC6iQ$17kVgoz0&X7+XuV@aO%SC9@swGD2zUv23tXWbAN)!?f@)-QRP7hF z`TctRY5IF(;TA4Hf$hx2nEiogcTj>zncO)BhNYBhB1XS7UY7ZY6fN6_sAqK`M2KLm zaoc6eL#R4`qzLM>7h+~>2oo~WecM@rErCN4i!pFmHs5~{wA)HRsBy!mY@gyp{WC{> z4HXV%pBg9~h9l8dj}|Umf{I;WLQSH0@Q`NX&UxTj#o1;G&%XwS*Jls!hzhe6DZ9QD zbzYVm@V^Fn?n#Jq`LFx#e*-Q5?*=;iZ=m!3j=FzT2mKBC-w^+!FlerOK60*ouI#Vf z`0s|C?e+g2a_=}9r~!K9pjA|lP`}nQn+^oF1Hm)h%D2F^04cTtH@^ke49XR%sm}Ps zCUXY@5)ya26VJq_WpZrzLVI?ICE|ZXUF5{=fL029Y0Jb71j=*$VE8c*W!fY!nOfiY zSek6Yh9i+e3k6ne>3`Aoj`5jg+rn>b+qP}nwr$%^Dpn<_*tTukwkoRFsicyd?mqjT z(|zA_cJF=O`ytOr@>?ICHU49aIWXs1Oa(gBKMXXrkuunooGx?TtWZjmD?MrA%Z3A# zjuJ z)N)7oJG(3U=#7*sD%z}<79s0gH2Ge^{#o@>>AGj1IshOB0RWKsyQ=@R?%Bpq3y+

    YpVg^Su4;Xy(_c$tUN}z*2DV9-a0qdp& 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

  • rC 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 Kke==V;sOA${>X6v diff --git a/src/OneScript.DebugProtocol/IDebugEventListener.cs b/src/OneScript.DebugProtocol/IDebugEventListener.cs index 1e2bc261a..215f2a33c 100644 --- a/src/OneScript.DebugProtocol/IDebugEventListener.cs +++ b/src/OneScript.DebugProtocol/IDebugEventListener.cs @@ -5,14 +5,12 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; - namespace OneScript.DebugProtocol { /// /// Интерфейс слушателя событий отладки (сообщений, инициируемых со стороны BSL) /// - public interface IDebugEventListener : IDisposable + public interface IDebugEventListener { void ThreadStopped(int threadId, ThreadStopReason reason); diff --git a/src/OneScript.DebugServices/DefaultDebugService.cs b/src/OneScript.DebugServices/DefaultDebugService.cs index 01ed84ff9..bd302f89b 100644 --- a/src/OneScript.DebugServices/DefaultDebugService.cs +++ b/src/OneScript.DebugServices/DefaultDebugService.cs @@ -28,8 +28,6 @@ public class DefaultDebugService : IDebuggerService private ManualResetEventSlim _awaiter = new ManualResetEventSlim(); - public event EventHandler Disconnected; - public DefaultDebugService(IBreakpointManager breakpointManager, ThreadManager threads, IVariableVisualizer visualizer) { _breakpointManager = breakpointManager; @@ -218,13 +216,7 @@ public void Disconnect(bool terminate) _breakpointManager.Clear(); _threadManager.ReleaseAllThreads(); - // Raise disconnected event for listeners (e.g., ReconnectableDebugController) - Disconnected?.Invoke(this, new DisconnectEventArgs { Terminate = terminate }); - - if (terminate) - { - throw new StopServiceException(); - } + throw new StopServiceException(); } public int[] GetThreads() diff --git a/src/OneScript.DebugServices/ReconnectableDebugController.cs b/src/OneScript.DebugServices/ReconnectableDebugController.cs deleted file mode 100644 index 85809a754..000000000 --- a/src/OneScript.DebugServices/ReconnectableDebugController.cs +++ /dev/null @@ -1,217 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.Net.Sockets; -using OneScript.DebugProtocol; -using OneScript.DebugProtocol.Abstractions; -using OneScript.DebugProtocol.TcpServer; -using OneScript.DebugServices.Internal; -using ScriptEngine.Machine; - -namespace OneScript.DebugServices -{ - /// - /// Контроллер отладки с поддержкой переподключения. Позволяет отключиться от сеанса отладки - /// и подключиться заново без перезапуска процесса. - /// - public class ReconnectableDebugController : IDebugController - { - private readonly int _port; - private readonly object _lock = new object(); - - private TcpListener _listener; - private ICommunicationServer _server; - private DefaultDebugService _debugger; - private IDebugEventListener _callbackService; - private ThreadManager _threadManager; - private DefaultBreakpointManager _breakpointManager; - private DispatchingService _dispatcher; - private DelayedConnectionChannel _channel; - - private bool _disposed; - private bool _initialized; - - public ReconnectableDebugController(int port) - { - _port = port; - _listener = TcpListener.Create(_port); - } - - public IBreakpointManager BreakpointManager => _breakpointManager; - public IThreadManager ThreadManager => _threadManager; - - public void Init() - { - lock (_lock) - { - if (_disposed) - throw new ObjectDisposedException(nameof(ReconnectableDebugController)); - - if (_initialized) - { - DisposeSession(); - } - - CreateSession(); - _initialized = true; - } - } - - private void CreateSession() - { - _channel = new DelayedConnectionChannel(_listener); - _server = new DefaultMessageServer(_channel) - { - ServerThreadName = "debug-server" - }; - _callbackService = new TcpEventCallbackChannel(_channel); - _threadManager = new ThreadManager(); - _breakpointManager = new DefaultBreakpointManager(); - _debugger = new DefaultDebugService(_breakpointManager, _threadManager, new DefaultVariableVisualizer()); - - // Subscribe to disconnect events - _debugger.Disconnected += OnDebuggerDisconnected; - - _threadManager.ThreadStopped += ThreadManagerOnThreadStopped; - _dispatcher = new DispatchingService(_server, _debugger); - _dispatcher.Start(); - } - - private void OnDebuggerDisconnected(object sender, DisconnectEventArgs e) - { - if (!e.Terminate) - { - // In attach mode, prepare for reconnection - lock (_lock) - { - if (!_disposed) - { - DisposeSession(); - // Recreate session for next connection - try - { - CreateSession(); - } - catch (Exception) - { - // Failed to recreate session, but we're in a background thread - // so we can't do much about it - } - } - } - } - } - - private void DisposeSession() - { - if (_debugger != null) - { - _debugger.Disconnected -= OnDebuggerDisconnected; - } - - if (_threadManager != null) - { - _threadManager.ThreadStopped -= ThreadManagerOnThreadStopped; - } - - _dispatcher?.Stop(); - _server?.Stop(); - _threadManager?.Dispose(); - _channel?.Dispose(); - _callbackService?.Dispose(); - - _channel = null; - _callbackService = null; - _server = null; - _dispatcher = null; - _debugger = null; - _threadManager = null; - _breakpointManager = null; - } - - private void ThreadManagerOnThreadStopped(object sender, ThreadStoppedEventArgs e) - { - MachineWaitToken token; - try - { - token = _threadManager.GetTokenForThread(e.ThreadId); - } - catch (ArgumentOutOfRangeException) - { - return; - } - - token.Reset(); - - _callbackService.ThreadStoppedEx(e.ThreadId, ConvertStopReason(e.StopReason), e.ErrorMessage); - token.Wait(); - } - - public void Wait() - { - lock (_lock) - { - if (_debugger == null) - throw new InvalidOperationException("Controller not initialized"); - - _debugger.WaitForExecution(); - } - } - - public void NotifyProcessExit(int exitCode) - { - lock (_lock) - { - if (_threadManager != null) - { - _threadManager.ReleaseAllThreads(); - } - - if (_callbackService != null) - { - _callbackService.ProcessExited(exitCode); - } - - DisposeSession(); - } - } - - public void Dispose() - { - lock (_lock) - { - if (_disposed) - return; - - DisposeSession(); - - _listener?.Stop(); - _listener = null; - - _disposed = true; - } - } - - private static ThreadStopReason ConvertStopReason(MachineStopReason reason) => reason switch - { - MachineStopReason.Breakpoint => ThreadStopReason.Breakpoint, - MachineStopReason.BreakpointConditionError => ThreadStopReason.Breakpoint, - MachineStopReason.Step => ThreadStopReason.Step, - MachineStopReason.Exception => ThreadStopReason.Exception, - _ => throw new NotImplementedException(), - }; - } - - /// - /// Event arguments for debugger disconnect events - /// - public class DisconnectEventArgs : EventArgs - { - public bool Terminate { get; set; } - } -} diff --git a/src/OneScript.DebugServices/TcpDebugServer.cs b/src/OneScript.DebugServices/TcpDebugServer.cs index eb25f79c7..767d3c721 100644 --- a/src/OneScript.DebugServices/TcpDebugServer.cs +++ b/src/OneScript.DebugServices/TcpDebugServer.cs @@ -23,8 +23,19 @@ public TcpDebugServer(int port) public IDebugController CreateDebugController() { - // Use reconnectable controller to support multiple attach/detach cycles - return new ReconnectableDebugController(_port); + var listener = TcpListener.Create(_port); + var channel = new DelayedConnectionChannel(listener); + var ipcServer = new DefaultMessageServer(channel) + { + ServerThreadName = "debug-server" + }; + var callback = new TcpEventCallbackChannel(channel); + var threadManager = new ThreadManager(); + var breakpoints = new DefaultBreakpointManager(); + var debuggerService = new DefaultDebugService(breakpoints, threadManager, new DefaultVariableVisualizer()); + var controller = new DefaultDebugController(ipcServer, debuggerService, callback, threadManager, breakpoints); + + return controller; } } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs index e0c6a1d30..3faacb25a 100644 --- a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs +++ b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs @@ -13,7 +13,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugServices { - public class TcpEventCallbackChannel : IDebugEventListener + public class TcpEventCallbackChannel : IDebugEventListener, IDisposable { private readonly ICommunicationChannel _channel; diff --git a/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs b/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs deleted file mode 100644 index fa5a2a64d..000000000 --- a/src/Tests/OneScript.DebugProtocol.Test/ReconnectionTest.cs +++ /dev/null @@ -1,130 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using FluentAssertions; -using OneScript.DebugProtocol.TcpServer; -using OneScript.DebugServices; -using Xunit; - -namespace OneScript.DebugProtocol.Test -{ - /// - /// Tests for debug adapter reconnection functionality - /// - public class ReconnectionTest - { - [Fact] - public void DefaultDebugService_ShouldNotStopOnDisconnectWithoutTerminate() - { - // Arrange - var breakpointManager = new DefaultBreakpointManager(); - var threadManager = new ThreadManager(); - var visualizer = new DefaultVariableVisualizer(); - var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); - - // Set up some breakpoints to verify cleanup - breakpointManager.SetBreakpoints("/test/file.os", new[] { (1, ""), (2, "") }); - - // Verify breakpoints were set - var hasBreakpointBefore = breakpointManager.FindBreakpoint("/test/file.os", 1); - hasBreakpointBefore.Should().BeTrue("breakpoint should exist before disconnect"); - - // Act - Disconnect without termination - Action act = () => service.Disconnect(terminate: false); - - // Assert - Should not throw StopServiceException - act.Should().NotThrow("disconnect without terminate should not throw"); - - // Verify cleanup happened - breakpoints should be cleared - var hasBreakpointAfter = breakpointManager.FindBreakpoint("/test/file.os", 1); - hasBreakpointAfter.Should().BeFalse("breakpoints should be cleared on disconnect"); - } - - [Fact] - public void DefaultDebugService_ShouldStopOnDisconnectWithTerminate() - { - // Arrange - var breakpointManager = new DefaultBreakpointManager(); - var threadManager = new ThreadManager(); - var visualizer = new DefaultVariableVisualizer(); - var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); - - // Act & Assert - Disconnect with termination should throw StopServiceException - Action act = () => service.Disconnect(terminate: true); - act.Should().Throw("disconnect with terminate should throw to stop the server"); - } - - [Fact] - public void DefaultDebugService_ShouldClearBreakpointsOnDisconnect() - { - // Arrange - var breakpointManager = new DefaultBreakpointManager(); - var threadManager = new ThreadManager(); - var visualizer = new DefaultVariableVisualizer(); - var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); - - // Set multiple breakpoints in different files - breakpointManager.SetBreakpoints("/path/to/file1.os", new[] { (1, "x > 0"), (5, "") }); - breakpointManager.SetBreakpoints("/path/to/file2.os", new[] { (10, ""), (20, "y < 100") }); - - // Verify breakpoints exist - breakpointManager.FindBreakpoint("/path/to/file1.os", 1).Should().BeTrue(); - breakpointManager.FindBreakpoint("/path/to/file2.os", 10).Should().BeTrue(); - - // Act - Disconnect without terminate - service.Disconnect(terminate: false); - - // Assert - All breakpoints should be cleared - breakpointManager.FindBreakpoint("/path/to/file1.os", 1).Should().BeFalse(); - breakpointManager.FindBreakpoint("/path/to/file1.os", 5).Should().BeFalse(); - breakpointManager.FindBreakpoint("/path/to/file2.os", 10).Should().BeFalse(); - breakpointManager.FindBreakpoint("/path/to/file2.os", 20).Should().BeFalse(); - } - - [Fact] - public void DefaultDebugService_ShouldRaiseDisconnectedEvent() - { - // Arrange - var breakpointManager = new DefaultBreakpointManager(); - var threadManager = new ThreadManager(); - var visualizer = new DefaultVariableVisualizer(); - var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); - - DisconnectEventArgs receivedArgs = null; - service.Disconnected += (sender, args) => receivedArgs = args; - - // Act - Disconnect without terminate - service.Disconnect(terminate: false); - - // Assert - Event should be raised with correct parameters - receivedArgs.Should().NotBeNull("event should be raised"); - receivedArgs.Terminate.Should().BeFalse("terminate flag should be false"); - } - - [Fact] - public void DefaultDebugService_ShouldRaiseDisconnectedEventWithTerminate() - { - // Arrange - var breakpointManager = new DefaultBreakpointManager(); - var threadManager = new ThreadManager(); - var visualizer = new DefaultVariableVisualizer(); - var service = new DefaultDebugService(breakpointManager, threadManager, visualizer); - - DisconnectEventArgs receivedArgs = null; - service.Disconnected += (sender, args) => receivedArgs = args; - - // Act & Assert - Disconnect with terminate - Action act = () => service.Disconnect(terminate: true); - act.Should().Throw(); - - // Event should still be raised before throwing - receivedArgs.Should().NotBeNull("event should be raised"); - receivedArgs.Terminate.Should().BeTrue("terminate flag should be true"); - } - } -} diff --git a/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs b/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs index 6112b6cf8..1fa55e419 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugEventsListener.cs @@ -47,11 +47,6 @@ public void ProcessExited(int exitCode) _session.SendEvent(new ExitedEvent(exitCode)); } - public void Dispose() - { - // No resources to dispose - } - private void SendOutput(string category, string data) { if (!string.IsNullOrEmpty(data)) From cb993623e939fb1817128b22e8ef33b08c406dc9 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Wed, 5 Nov 2025 15:50:54 +0400 Subject: [PATCH 118/191] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/IBslComparable.cs | 4 ++-- src/ScriptEngine/Machine/GenericIValueComparer.cs | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/OneScript.Core/Values/IBslComparable.cs b/src/OneScript.Core/Values/IBslComparable.cs index 3c577dc18..4075a214b 100644 --- a/src/OneScript.Core/Values/IBslComparable.cs +++ b/src/OneScript.Core/Values/IBslComparable.cs @@ -8,8 +8,8 @@ This Source Code Form is subject to the terms of the namespace OneScript.Values { /// - /// - , /. - /// GenericIValueComparer . + /// Интерфейс-маркер для примитивных типов, допускающих сравнение на больше/меньше. + /// Используется GenericIValueComparer для определения возможности сравнения. /// public interface IBslComparable { diff --git a/src/ScriptEngine/Machine/GenericIValueComparer.cs b/src/ScriptEngine/Machine/GenericIValueComparer.cs index 1a742e22b..5d913a5dd 100644 --- a/src/ScriptEngine/Machine/GenericIValueComparer.cs +++ b/src/ScriptEngine/Machine/GenericIValueComparer.cs @@ -67,8 +67,15 @@ private int CompareAsStrings(IValue x, IValue y) private int CompareByPresentations(IValue x, IValue y) { return ((BslValue)x).ToString(_process).CompareTo(((BslValue)y).ToString(_process)); - } - + } + + /// + /// Сравнение переменных разных типов. Правила сравнения соответствуют 1С v8.3.27: + /// Переменные типа "Тип" следуют за всеми прочими; + /// Другие примитивные типы предшествуют объектным типам; + /// Между собой примитивные типы упорядочиваются в последовательности, указанной в orderedTypes; + /// Объектные типы упорядочиваются по строковому представлению. + /// private int CompareByTypes(IValue x, IValue y) { var ix = orderedTypes.IndexOf(x.SystemType); From 71d16319e86f2ca3ccb5237110cef467b349be29 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Wed, 5 Nov 2025 16:13:54 +0400 Subject: [PATCH 119/191] =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D0=B0=20=D1=81=D0=BE=D1=80=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=B2=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=B2=20=D0=9A=D0=BE=D0=BB=D0=BB=D0=B5?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D1=8F=D0=A1=D1=82=D1=80=D0=BE=D0=BA=D0=94?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B2=D0=B0=D0=97=D0=BD=D0=B0=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ValueTree/ValueTreeRowCollection.cs | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs index a980670ba..d96864042 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs @@ -10,11 +10,11 @@ This Source Code Form is subject to the terms of the using System.Linq; using OneScript.Contexts; using OneScript.Exceptions; +using OneScript.Execution; using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.ValueTree { @@ -362,12 +362,12 @@ private List GetSortRules(string columns) { string[] description = column.Trim().Split(' '); if (description.Count() == 0) - throw PropertyAccessException.PropNotFoundException(""); // TODO: WrongColumnNameException + throw WrongColumnNameException(); ValueTreeSortRule desc = new ValueTreeSortRule(); desc.Column = this.Columns.FindColumnByName(description[0]); if (desc.Column == null) - throw PropertyAccessException.PropNotFoundException(description[0]); + throw WrongColumnNameException(description[0]); if (description.Count() > 1) { @@ -389,14 +389,15 @@ private class RowComparator : IComparer { readonly List _rules; - readonly GenericIValueComparer _comparer = new GenericIValueComparer(); + readonly GenericIValueComparer _comparer; - public RowComparator(List rules) + public RowComparator(IBslProcess process, List rules) { if (rules.Count() == 0) throw RuntimeException.InvalidArgumentValue(); this._rules = rules; + _comparer = new GenericIValueComparer(process); } private int OneCompare(ValueTreeRow x, ValueTreeRow y, ValueTreeSortRule rule) @@ -430,12 +431,12 @@ public int Compare(ValueTreeRow x, ValueTreeRow y) /// Булево. Если Истина, сортировка будет применена также к вложенным строкам. /// СравнениеЗначений. Не используется. [ContextMethod("Сортировать", "Sort")] - public void Sort(string columns, bool sortChildren = false, IValue comparator = null) + public void Sort(IBslProcess process, string columns, bool sortChildren = false, IValue comparator = null) { - Sort(new RowComparator(GetSortRules(columns)), sortChildren); + Sort(process, new RowComparator(process, GetSortRules(columns)), sortChildren); } - private void Sort(RowComparator comparator, bool sortChildren) + private void Sort(IBslProcess process, RowComparator comparator, bool sortChildren) { _rows.Sort(comparator); @@ -443,7 +444,7 @@ private void Sort(RowComparator comparator, bool sortChildren) { foreach (var row in _rows) { - row.Rows.Sort(comparator, sortChildren); + row.Rows.Sort(process, comparator, sortChildren); } } } @@ -486,6 +487,17 @@ public override IEnumerator GetEnumerator() public override IValue GetIndexedValue(IValue index) { return Get((int)index.AsNumber()); + } + + private static RuntimeException WrongColumnNameException() + { + return new RuntimeException("Неверное имя колонки"); } + + private static RuntimeException WrongColumnNameException(string columnName) + { + return new RuntimeException(string.Format("Неверное имя колонки '{0}'", columnName)); + } + } } From 25c0e3b6df42821571d9af9e5a21c49f002de575 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Wed, 5 Nov 2025 16:28:05 +0400 Subject: [PATCH 120/191] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=20=20Linq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Collections/ValueTable/ValueTable.cs | 10 +++++----- .../ValueTree/ValueTreeRowCollection.cs | 17 ++++++++--------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs index 0c3cdb7d3..ab577b0e1 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs @@ -374,7 +374,7 @@ public void GroupBy(IBslProcess process, string groupColumnNames, string aggrega } } - _rows.RemoveRange(new_idx, _rows.Count()-new_idx); + _rows.RemoveRange(new_idx, _rows.Count - new_idx); int i = 0; while (i < Columns.Count()) @@ -467,7 +467,7 @@ private int IndexByValue(BslValue item) throw RuntimeException.InvalidArgumentType(); } - if (index < 0 || index >= _rows.Count()) + if (index < 0 || index >= _rows.Count) throw new RuntimeException("Значение индекса выходит за пределы диапазона"); } @@ -489,7 +489,7 @@ public void Move(BslValue row, int offset) int index_dest = index_source + offset; - if (index_dest < 0 || index_dest >= _rows.Count()) + if (index_dest < 0 || index_dest >= _rows.Count) throw RuntimeException.InvalidNthArgumentValue(2); ValueTableRow tmp = _rows[index_source]; @@ -610,13 +610,13 @@ private List GetSortRules(string Columns) foreach (string column in a_columns) { string[] description = column.Trim().Split(' '); - if (description.Count() == 0) + if (description.Length == 0) throw WrongColumnNameException(); ValueTableSortRule Desc = new ValueTableSortRule(); Desc.Column = this.Columns.FindColumnByName(description[0]); - if (description.Count() > 1) + if (description.Length > 1) { if (String.Compare(description[1], "DESC", true) == 0 || String.Compare(description[1], "УБЫВ", true) == 0) Desc.direction = -1; diff --git a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs index d96864042..1ddda8165 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; -using System.Linq; using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; @@ -72,7 +71,7 @@ public ValueTree Owner() [ContextMethod("Количество", "Count")] public override int Count() { - return _rows.Count(); + return _rows.Count; } /// @@ -323,12 +322,12 @@ public void Move(BslValue row, int offset) else throw RuntimeException.InvalidArgumentType(); - if (indexSource < 0 || indexSource >= _rows.Count()) + if (indexSource < 0 || indexSource >= _rows.Count) throw RuntimeException.InvalidArgumentValue(); - int indexDestination = (indexSource + offset) % _rows.Count(); + int indexDestination = (indexSource + offset) % _rows.Count; while (indexDestination < 0) - indexDestination += _rows.Count(); + indexDestination += _rows.Count; ValueTreeRow tmp = _rows[indexSource]; @@ -361,7 +360,7 @@ private List GetSortRules(string columns) foreach (string column in aColumns) { string[] description = column.Trim().Split(' '); - if (description.Count() == 0) + if (description.Length == 0) throw WrongColumnNameException(); ValueTreeSortRule desc = new ValueTreeSortRule(); @@ -369,7 +368,7 @@ private List GetSortRules(string columns) if (desc.Column == null) throw WrongColumnNameException(description[0]); - if (description.Count() > 1) + if (description.Length > 1) { if (String.Compare(description[1], "DESC", true) == 0 || String.Compare(description[1], "УБЫВ", true) == 0) desc.direction = -1; @@ -393,7 +392,7 @@ private class RowComparator : IComparer public RowComparator(IBslProcess process, List rules) { - if (rules.Count() == 0) + if (rules.Count == 0) throw RuntimeException.InvalidArgumentValue(); this._rules = rules; @@ -415,7 +414,7 @@ public int Compare(ValueTreeRow x, ValueTreeRow y) int i = 0, r; while ((r = OneCompare(x, y, _rules[i])) == 0) { - if (++i >= _rules.Count()) + if (++i >= _rules.Count) return 0; } From a0efa72881579e6cf053de6937c8f159c3c4b815 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Wed, 5 Nov 2025 15:49:02 +0300 Subject: [PATCH 121/191] =?UTF-8?q?=D0=92=D1=8B=D0=B7=D0=BE=D0=B2=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B5=D1=80=D0=B0=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D0=B0=20?= =?UTF-8?q?=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Build.csproj | 34 +++++++++++++++++++++++++++++++--- README.md | 6 ++++++ docs/developer_docs.md | 4 +++- 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/Build.csproj b/Build.csproj index 9ce340219..6efa73314 100644 --- a/Build.csproj +++ b/Build.csproj @@ -164,11 +164,9 @@ - - @@ -227,7 +225,7 @@ - + @@ -375,5 +373,35 @@ Command="dotnet nuget push %(NugetAbleProject.Identity) -k $(NugetToken) -s https://api.nuget.org/v3/index.json" UseUtf8Encoding="Always"/> + + + + + + + $(ArtifactsRoot)/win-x64/bin + $(ArtifactsRoot)/docs + $(ArtifactsRoot)/tools/documenter + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index a72f14383..98fab370d 100644 --- a/README.md +++ b/README.md @@ -102,4 +102,10 @@ msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles /p:VersionPrefix=2.0.0 ```bat msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles;PackDistributions /p:VersionPrefix=2.0.0 /p:VersionSuffix=preview223 +``` + +### Генерация документации + +```bat +msbuild Build.csproj /t:BuildDocumentation ``` \ No newline at end of file diff --git a/docs/developer_docs.md b/docs/developer_docs.md index 652a5ef0b..3a2c9b42b 100644 --- a/docs/developer_docs.md +++ b/docs/developer_docs.md @@ -12,6 +12,7 @@ OneScript — реализация языка, совместимого с си - Рантайм: ScriptEngine, OneScript.Native (компиляция/исполнение, встроенные функции). - Ядро/язык/библиотека: OneScript.Core (типы/контексты), OneScript.Language (лексер/парсер/AST), OneScript.StandardLibrary. - Интеграции: ScriptEngine.NativeApi (C++ расширения). +- Инструмент генерации автодокументации OneScriptDocumenter ## 2 Быстрый старт для контрибьютора - Где собирать: решение src/1Script.sln. @@ -133,7 +134,8 @@ OneScript — реализация языка, совместимого с си - StandaloneRunner: сборка самодостаточных пакетов/запуск - Program.cs, StandaloneRunner.cs, ProcessLoader.cs. - OneScriptDocumenter: генерация документации по сборкам - - Primary/AssemblyDocsCollector.cs, Cli/MarkdownGenerator.cs. + - На вход получает список DLL (в каталоге с ними рядом должны лежать файлы xml-docs от этих dll) и файл оглавления (в репозитории уже лежит готовый файл оглавления OneScriptDocumenter\default_toc.json) + - На выходе формирует файл с документацией формата Json и/или каталог с документацией в формате markdown. - Примеры/демо: - Component — простая .NET‑библиотека/компонент и примеры использования. - TestApp — WPF‑приложение‑песочница (подсветка синтаксиса, запуск модулей). From ea739f8baf08173136b244b061af76fca365e513 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Wed, 5 Nov 2025 17:33:58 +0400 Subject: [PATCH 122/191] =?UTF-8?q?=D0=B2=D1=8B=D0=BD=D0=B5=D1=81=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20=D0=B8=D1=81=D0=BA?= =?UTF-8?q?=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B9,=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B2=D0=BE=D0=B4=20=D0=B8=20=20=D1=83=D1=82=D0=BE?= =?UTF-8?q?=D1=87=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Collections/Exceptions/ColumnException.cs | 54 +++++++++++++++++++ .../ValueTable/CollectionIndexes.cs | 4 +- .../ValueTable/ColumnNotFoundException.cs | 29 ---------- .../Collections/ValueTable/ValueTable.cs | 25 ++------- .../ValueTable/ValueTableColumn.cs | 4 +- .../ValueTable/ValueTableColumnCollection.cs | 6 +-- .../Collections/ValueTree/ValueTreeColumn.cs | 4 +- .../ValueTree/ValueTreeColumnCollection.cs | 6 +-- .../ValueTree/ValueTreeRowCollection.cs | 16 ++---- 9 files changed, 74 insertions(+), 74 deletions(-) create mode 100644 src/OneScript.StandardLibrary/Collections/Exceptions/ColumnException.cs delete mode 100644 src/OneScript.StandardLibrary/Collections/ValueTable/ColumnNotFoundException.cs diff --git a/src/OneScript.StandardLibrary/Collections/Exceptions/ColumnException.cs b/src/OneScript.StandardLibrary/Collections/Exceptions/ColumnException.cs new file mode 100644 index 000000000..63a1f3694 --- /dev/null +++ b/src/OneScript.StandardLibrary/Collections/Exceptions/ColumnException.cs @@ -0,0 +1,54 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ +using System; +using OneScript.Exceptions; +using OneScript.Localization; + +namespace OneScript.StandardLibrary.Collections.Exceptions +{ + public class ColumnException : RuntimeException + { + public ColumnException(BilingualString message, Exception innerException) : base(message, + innerException) + { + } + + public ColumnException(BilingualString message) : base(message) + { + } + + public static ColumnException WrongColumnName() + { + return new ColumnException(new BilingualString( + "Неверное имя колонки", + "Wrong column name")); + } + + public static ColumnException WrongColumnName(string columnName) + { + return new ColumnException(new BilingualString( + $"Неверное имя колонки '{columnName}'", + $"Wrong column name '{columnName}'")); + } + + public static ColumnException DuplicatedColumnName(string columnName) + { + return new ColumnException(new BilingualString( + $"Колонка '{columnName}' уже есть", + $"Column '{columnName}' already exists")); + } + + + public static ColumnException ColumnsMixed(string columnName) + { + return new ColumnException(new BilingualString( + $"Колонка '{columnName}' не может одновременно быть колонкой группировки и колонкой суммирования", + $"Column '{columnName}' cannot be both grouping column and summation column")); + } + + } +} \ No newline at end of file diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/CollectionIndexes.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/CollectionIndexes.cs index 1167a76ff..51913d45b 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/CollectionIndexes.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/CollectionIndexes.cs @@ -10,12 +10,12 @@ This Source Code Form is subject to the terms of the using System.Linq; using OneScript.Contexts; using OneScript.Exceptions; +using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.StandardLibrary.Collections.Indexes; using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.ValueTable { @@ -143,7 +143,7 @@ private static IList BuildFieldList(IIndexCollectionSource source, strin var field = source.GetField(fieldName.Trim()); if (field == null) { - throw new ColumnNotFoundException(fieldName); + throw ColumnException.WrongColumnName(fieldName); } fields.Add(field); } diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/ColumnNotFoundException.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/ColumnNotFoundException.cs deleted file mode 100644 index 84d11bffe..000000000 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/ColumnNotFoundException.cs +++ /dev/null @@ -1,29 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ -using System; -using OneScript.Exceptions; -using OneScript.Localization; - -namespace OneScript.StandardLibrary.Collections.ValueTable -{ - public class ColumnNotFoundException : RuntimeException - { - public ColumnNotFoundException(BilingualString message, Exception innerException) : base(message, - innerException) - { - } - - public ColumnNotFoundException(BilingualString message) : base(message) - { - } - - public ColumnNotFoundException(string columnName) : base($"Неверное имя колонки {columnName}") - { - } - - } -} \ No newline at end of file diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs index ab577b0e1..5c59332c9 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTable.cs @@ -16,6 +16,7 @@ This Source Code Form is subject to the terms of the using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; +using OneScript.StandardLibrary.Collections.Exceptions; namespace OneScript.StandardLibrary.Collections.ValueTable { @@ -166,7 +167,7 @@ private List GetProcessingColumnList(string ColumnNames, bool var Column = Columns.FindColumnByName(name); if (Column == null) - throw WrongColumnNameException(name); + throw ColumnException.WrongColumnName(name); if (processing_list.Find( x=> x.Name==name ) == null) processing_list.Add(Column); @@ -271,7 +272,7 @@ private bool CheckFilterCriteria(ValueTableRow Row, StructureImpl Filter) { var Column = Columns.FindColumnByName(kv.Key.ToString()); if (Column == null) - throw WrongColumnNameException(kv.Key.ToString()); + throw ColumnException.WrongColumnName(kv.Key.ToString()); IValue current = Row.Get(Column); if (!current.StrictEquals(kv.Value)) @@ -391,7 +392,7 @@ private static void CheckMixedColumns(List groupColumns, List< { foreach (var groupColumn in groupColumns ) if ( aggregateColumns.Find(x => x.Name==groupColumn.Name)!=null ) - throw ColumnsMixedException(groupColumn.Name); + throw ColumnException.ColumnsMixed(groupColumn.Name); } private static void CopyRowData(ValueTableRow source, ValueTableRow dest, IEnumerable columns) @@ -611,7 +612,7 @@ private List GetSortRules(string Columns) { string[] description = column.Trim().Split(' '); if (description.Length == 0) - throw WrongColumnNameException(); + throw ColumnException.WrongColumnName(); ValueTableSortRule Desc = new ValueTableSortRule(); Desc.Column = this.Columns.FindColumnByName(description[0]); @@ -719,22 +720,6 @@ public static ValueTable Constructor() return new ValueTable(); } - - private static RuntimeException WrongColumnNameException() - { - return new RuntimeException("Неверное имя колонки"); - } - - private static RuntimeException WrongColumnNameException(string columnName) - { - return new RuntimeException(string.Format("Неверное имя колонки '{0}'", columnName)); - } - - private static RuntimeException ColumnsMixedException(string columnName) - { - return new RuntimeException(string.Format("Колонка '{0}' не может одновременно быть колонкой группировки и колонкой суммирования", columnName)); - } - public string GetName(IValue field) { if (field is ValueTableColumn column) diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumn.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumn.cs index 7af592fd2..516a9e13b 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumn.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumn.cs @@ -7,7 +7,7 @@ This Source Code Form is subject to the terms of the using System; using OneScript.Contexts; -using OneScript.Exceptions; +using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.StandardLibrary.TypeDescriptions; using OneScript.Types; using ScriptEngine.Machine.Contexts; @@ -61,7 +61,7 @@ public string Name { ValueTableColumnCollection Owner = _owner.Target as ValueTableColumnCollection; if (Owner.FindColumnByName(value) != null) - throw new RuntimeException("Неверное имя колонки!"); + throw ColumnException.WrongColumnName(); if (_title == _name) _title = value; diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumnCollection.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumnCollection.cs index 8427df725..aaeb48e78 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumnCollection.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumnCollection.cs @@ -12,11 +12,11 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; +using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.StandardLibrary.TypeDescriptions; using OneScript.Types; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.ValueTable { @@ -48,7 +48,7 @@ public ValueTableColumnCollection(ValueTable owner) public ValueTableColumn Add(string name, TypeDescription type = null, string title = null, int width = 0) { if (FindColumnByName(name) != null) - throw new RuntimeException("Неверное имя колонки " + name); + throw ColumnException.DuplicatedColumnName(name); var column = new ValueTableColumn(this, ++maxColumnId, name, title, type, width); _columns.Add(column); @@ -69,7 +69,7 @@ public ValueTableColumn Add(string name, TypeDescription type = null, string tit public ValueTableColumn Insert(int index, string name, TypeDescription type = null, string title = null, int width = 0) { if (FindColumnByName(name) != null) - throw new RuntimeException("Неверное имя колонки " + name); + throw ColumnException.DuplicatedColumnName(name); ValueTableColumn column = new ValueTableColumn(this, ++maxColumnId, name, title, type, width); _columns.Insert(index, column); diff --git a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumn.cs b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumn.cs index 8e322af3d..494d423f3 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumn.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumn.cs @@ -6,7 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using OneScript.Contexts; -using OneScript.Exceptions; +using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.StandardLibrary.TypeDescriptions; using OneScript.Types; using ScriptEngine.Machine.Contexts; @@ -60,7 +60,7 @@ public string Name set { if (_owner.FindColumnByName(value) != null) - throw new RuntimeException("Неверное имя колонки!"); + throw ColumnException.WrongColumnName(); if (_title == _name) _title = value; diff --git a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumnCollection.cs b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumnCollection.cs index 6697844cf..fcb66fa3c 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumnCollection.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumnCollection.cs @@ -11,12 +11,12 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; +using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.StandardLibrary.TypeDescriptions; using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.ValueTree { @@ -40,7 +40,7 @@ public class ValueTreeColumnCollection : AutoContext, public ValueTreeColumn Add(string name, TypeDescription type = null, string title = null, int width = 0) { if (FindColumnByName(name) != null) - throw new RuntimeException("Неверное имя колонки " + name); + throw ColumnException.DuplicatedColumnName(name); ValueTreeColumn column = new ValueTreeColumn(this, name, title, type, width); _columns.Add(column); @@ -61,7 +61,7 @@ public ValueTreeColumn Add(string name, TypeDescription type = null, string titl public ValueTreeColumn Insert(int index, string name, TypeDescription type = null, string title = null, int width = 0) { if (FindColumnByName(name) != null) - throw new RuntimeException("Неверное имя колонки " + name); + throw ColumnException.DuplicatedColumnName(name); ValueTreeColumn column = new ValueTreeColumn(this, name, title, type, width); _columns.Insert(index, column); diff --git a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs index 1ddda8165..10a1c8259 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRowCollection.cs @@ -10,6 +10,7 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; +using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; @@ -361,12 +362,12 @@ private List GetSortRules(string columns) { string[] description = column.Trim().Split(' '); if (description.Length == 0) - throw WrongColumnNameException(); + throw ColumnException.WrongColumnName(); ValueTreeSortRule desc = new ValueTreeSortRule(); desc.Column = this.Columns.FindColumnByName(description[0]); if (desc.Column == null) - throw WrongColumnNameException(description[0]); + throw ColumnException.WrongColumnName(description[0]); if (description.Length > 1) { @@ -487,16 +488,5 @@ public override IValue GetIndexedValue(IValue index) { return Get((int)index.AsNumber()); } - - private static RuntimeException WrongColumnNameException() - { - return new RuntimeException("Неверное имя колонки"); - } - - private static RuntimeException WrongColumnNameException(string columnName) - { - return new RuntimeException(string.Format("Неверное имя колонки '{0}'", columnName)); - } - } } From 453425d74f22ecccb5a7f668b6293a36885591e8 Mon Sep 17 00:00:00 2001 From: Michael Rybakin <30874101+Mr-Rm@users.noreply.github.com> Date: Wed, 5 Nov 2025 22:59:04 +0400 Subject: [PATCH 123/191] Fix typo: extra space in error message Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../Collections/Exceptions/ColumnException.cs | 86 +++++++++---------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/src/OneScript.StandardLibrary/Collections/Exceptions/ColumnException.cs b/src/OneScript.StandardLibrary/Collections/Exceptions/ColumnException.cs index 63a1f3694..7867f1015 100644 --- a/src/OneScript.StandardLibrary/Collections/Exceptions/ColumnException.cs +++ b/src/OneScript.StandardLibrary/Collections/Exceptions/ColumnException.cs @@ -1,54 +1,54 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ -using System; -using OneScript.Exceptions; -using OneScript.Localization; - -namespace OneScript.StandardLibrary.Collections.Exceptions -{ - public class ColumnException : RuntimeException - { - public ColumnException(BilingualString message, Exception innerException) : base(message, - innerException) - { - } - - public ColumnException(BilingualString message) : base(message) - { - } - - public static ColumnException WrongColumnName() - { - return new ColumnException(new BilingualString( - "Неверное имя колонки", - "Wrong column name")); +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ +using System; +using OneScript.Exceptions; +using OneScript.Localization; + +namespace OneScript.StandardLibrary.Collections.Exceptions +{ + public class ColumnException : RuntimeException + { + public ColumnException(BilingualString message, Exception innerException) : base(message, + innerException) + { + } + + public ColumnException(BilingualString message) : base(message) + { } - public static ColumnException WrongColumnName(string columnName) - { - return new ColumnException(new BilingualString( - $"Неверное имя колонки '{columnName}'", + public static ColumnException WrongColumnName() + { + return new ColumnException(new BilingualString( + "Неверное имя колонки", + "Wrong column name")); + } + + public static ColumnException WrongColumnName(string columnName) + { + return new ColumnException(new BilingualString( + $"Неверное имя колонки '{columnName}'", $"Wrong column name '{columnName}'")); } - public static ColumnException DuplicatedColumnName(string columnName) - { - return new ColumnException(new BilingualString( - $"Колонка '{columnName}' уже есть", - $"Column '{columnName}' already exists")); + public static ColumnException DuplicatedColumnName(string columnName) + { + return new ColumnException(new BilingualString( + $"Колонка '{columnName}' уже есть", + $"Column '{columnName}' already exists")); } - public static ColumnException ColumnsMixed(string columnName) - { - return new ColumnException(new BilingualString( - $"Колонка '{columnName}' не может одновременно быть колонкой группировки и колонкой суммирования", + public static ColumnException ColumnsMixed(string columnName) + { + return new ColumnException(new BilingualString( + $"Колонка '{columnName}' не может одновременно быть колонкой группировки и колонкой суммирования", $"Column '{columnName}' cannot be both grouping column and summation column")); - } + } - } + } } \ No newline at end of file From 0173f7aab56e3ec657859c106fadcf46e84dfdee Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 6 Nov 2025 12:39:26 +0300 Subject: [PATCH 124/191] =?UTF-8?q?=D0=9F=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=20=D0=BE=D0=B6=D0=B8=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D1=87=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/oscript/DebugBehavior.cs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/oscript/DebugBehavior.cs b/src/oscript/DebugBehavior.cs index 1f0be074d..e04d2e080 100644 --- a/src/oscript/DebugBehavior.cs +++ b/src/oscript/DebugBehavior.cs @@ -12,16 +12,17 @@ namespace oscript { internal class DebugBehavior : ExecuteScriptBehavior { - private readonly int _port; - - public DebugBehavior(int port, string path, string[] args) : base(path, args) + public DebugBehavior(string path, string[] args) : base(path, args) { - _port = port; } + public int Port { get; set; } = 2801; + + public bool WaitOnStart { get; set; } = true; + public override int Execute() { - var tcpDebugServer = new TcpDebugServer(_port); + var tcpDebugServer = new TcpDebugServer(Port); DebugController = tcpDebugServer.CreateDebugController(); @@ -32,6 +33,7 @@ public static AppBehavior Create(CmdLineHelper helper) { int port = 2801; string path = null; + bool noWait = false; while (true) { @@ -54,6 +56,10 @@ public static AppBehavior Create(CmdLineHelper helper) return null; } } + else if (parsedArg.Name == "-noWait") + { + noWait = true; + } else if (parsedArg.Name == "-protocol") { // Обратная совместимость, не используется в реальности @@ -66,7 +72,10 @@ public static AppBehavior Create(CmdLineHelper helper) } } - return path == null ? null : new DebugBehavior(port, path, helper.Tail()); + return path == null ? null : new DebugBehavior(path, helper.Tail()) + { + Port = port, WaitOnStart = !noWait + }; } } } From 6137ceeba1b2143fbcd3bc10903928db5dcd694d Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 6 Nov 2025 14:16:20 +0300 Subject: [PATCH 125/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D1=8B=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B4=D1=8B=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB?= =?UTF-8?q?=D0=BB=D0=B5=D1=80=D0=B0=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DefaultDebugController.cs | 4 ++-- .../HostedScriptEngine.cs | 4 ++-- src/ScriptEngine/Machine/IDebugController.cs | 19 +++++++++++++++++-- src/ScriptEngine/Machine/IThreadManager.cs | 2 -- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/OneScript.DebugServices/DefaultDebugController.cs b/src/OneScript.DebugServices/DefaultDebugController.cs index d441c2292..78a643736 100644 --- a/src/OneScript.DebugServices/DefaultDebugController.cs +++ b/src/OneScript.DebugServices/DefaultDebugController.cs @@ -44,7 +44,7 @@ public void Dispose() _threadManager.Dispose(); } - public void Init() + public void ListenConnections() { _threadManager.ThreadStopped += ThreadManagerOnThreadStopped; var dispatcher = new DispatchingService(_server, _debugger); @@ -69,7 +69,7 @@ private void ThreadManagerOnThreadStopped(object sender, ThreadStoppedEventArgs token.Wait(); } - public void Wait() => _debugger.WaitForExecution(); + public void WaitForSession() => _debugger.WaitForExecution(); public void NotifyProcessExit(int exitCode) { diff --git a/src/ScriptEngine.HostedScript/HostedScriptEngine.cs b/src/ScriptEngine.HostedScript/HostedScriptEngine.cs index 1bf564859..6f26e74ec 100644 --- a/src/ScriptEngine.HostedScript/HostedScriptEngine.cs +++ b/src/ScriptEngine.HostedScript/HostedScriptEngine.cs @@ -96,8 +96,8 @@ public Process CreateProcess(IHostApplication host, SourceCode src) SetGlobalEnvironment(host, src); if (_engine.DebugController != null) { - _engine.DebugController.Init(); - _engine.DebugController.Wait(); + _engine.DebugController.ListenConnections(); + _engine.DebugController.WaitForSession(); } var compilerSvc = GetCompilerService(); diff --git a/src/ScriptEngine/Machine/IDebugController.cs b/src/ScriptEngine/Machine/IDebugController.cs index d0e6b28d9..c97411360 100644 --- a/src/ScriptEngine/Machine/IDebugController.cs +++ b/src/ScriptEngine/Machine/IDebugController.cs @@ -9,10 +9,25 @@ This Source Code Form is subject to the terms of the namespace ScriptEngine.Machine { + /// + /// Управляет возможностью отладки на уровне всего хост-процесса. + /// public interface IDebugController : IDisposable { - void Init(); - void Wait(); + /// + /// Начинает слушать входящие подключения со стороны IDE. + /// + void ListenConnections(); + + /// + /// Блокирует поток до момента подключения от IDE. + /// + void WaitForSession(); + + /// + /// Уведомляет IDE о завершении отлаживаемого процесса. + /// + /// код выхода приложения void NotifyProcessExit(int exitCode); IBreakpointManager BreakpointManager { get; } diff --git a/src/ScriptEngine/Machine/IThreadManager.cs b/src/ScriptEngine/Machine/IThreadManager.cs index a20c68354..e98f1cce5 100644 --- a/src/ScriptEngine/Machine/IThreadManager.cs +++ b/src/ScriptEngine/Machine/IThreadManager.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; -using System.Collections.Generic; namespace ScriptEngine.Machine { @@ -18,6 +17,5 @@ public interface IThreadManager : IDisposable void ThreadStarted(int threadId, MachineInstance machine); void ThreadStopped(int threadId, MachineStopReason reason, string errorMessage); void ThreadExited(int threadId); - IEnumerable GetThreadIds(); } } \ No newline at end of file From 241d438cf9b9ecc42efd3e47fa0e54176a12b330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A1=D0=BE?= =?UTF-8?q?=D1=81=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9?= Date: Fri, 7 Nov 2025 11:49:28 +0300 Subject: [PATCH 126/191] #1603 strReplace test --- tests/global-funcs.os | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/tests/global-funcs.os b/tests/global-funcs.os index 705e6c9bb..dc9ddf03f 100644 --- a/tests/global-funcs.os +++ b/tests/global-funcs.os @@ -1,4 +1,4 @@ -/////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////// // // Тест проверки поведения некоторых глобальных функций // @@ -102,6 +102,8 @@ ВсеТесты.Добавить("Тест_ДолженПроверитьНСтрВозвращаетПервуюСтроку"); ВсеТесты.Добавить("Тест_ДолженПроверитьПолучениеТекущейДатыВМиллисекундах"); ВсеТесты.Добавить("Тест_ДолженПроверитьОкруглениеТекущейДатыДоСекунд"); + + ВсеТесты.Добавить("Тест_ДолженПроверитьСтрЗаменить"); Возврат ВсеТесты; КонецФункции @@ -1185,4 +1187,29 @@ ДатаИсходная = ТекущаяДата(); ДатаСозданнаяВручную = Дата(Формат(ДатаИсходная, "ДФ=ггггММддЧЧммсс")); юТест.ПроверитьРавенство(ДатаИсходная, ДатаСозданнаяВручную); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры + +Процедура Тест_ДолженПроверитьСтрЗаменить() Экспорт + + Тест = СтрЗаменить("123", "1", "4"); + юТест.ПроверитьРавенство("423", Тест); + + Тест = СтрЗаменить("", "1", "4"); + юТест.ПроверитьРавенство("", Тест); + + Тест = СтрЗаменить("123", "", "4"); + юТест.ПроверитьРавенство("123", Тест); + + Тест = СтрЗаменить("123", "1", ""); + юТест.ПроверитьРавенство("23", Тест); + + Тест = СтрЗаменить("123", "", ""); + юТест.ПроверитьРавенство("123", Тест); + + Тест = СтрЗаменить("", "", "123"); + юТест.ПроверитьРавенство("", Тест); + + Тест = СтрЗаменить("", "", ""); + юТест.ПроверитьРавенство("", Тест); + +КонецПроцедуры From 6c323faff8029d9ab8037f9a4fb98c86062f7219 Mon Sep 17 00:00:00 2001 From: Alexey Sosnoviy Date: Fri, 7 Nov 2025 12:25:42 +0300 Subject: [PATCH 127/191] #1603 fix strReplase --- src/OneScript.Native/Runtime/BuiltInFunctions.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OneScript.Native/Runtime/BuiltInFunctions.cs b/src/OneScript.Native/Runtime/BuiltInFunctions.cs index 1e5d68769..1bb5c2e3f 100644 --- a/src/OneScript.Native/Runtime/BuiltInFunctions.cs +++ b/src/OneScript.Native/Runtime/BuiltInFunctions.cs @@ -1,4 +1,4 @@ -/*---------------------------------------------------------- +/*---------------------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v.2.0. If a copy of the MPL was not distributed with this file, You can obtain one @@ -178,7 +178,7 @@ public static int ChrCode(string strChar, int? position = null) [MethodImpl(MethodImplOptions.AggressiveInlining)] [ContextMethod("СтрЗаменить", "StrReplace")] public static string StrReplace(string sourceString, string searchVal, string newVal) => - sourceString.Replace(searchVal, newVal); + !string.IsNullOrEmpty(searchVal) ? sourceString.Replace(searchVal, newVal):sourceString; [ContextMethod("СтрПолучитьСтроку", "StrGetLine")] public static string StrGetLine(string strArg, int lineNumber) From e3d265d3f51bedef4598e26bfb524431596351e5 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 7 Nov 2025 14:58:52 +0300 Subject: [PATCH 128/191] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20IDebugController=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Abstractions/CommunicationEventArgs.cs | 2 +- ...unicationChannel.cs => IMessageChannel.cs} | 2 +- .../TcpServer/BinaryChannel.cs | 2 +- .../TcpServer/DefaultMessageServer.cs | 4 +- .../TcpServer/DispatchingServer.cs | 2 +- .../TcpServer/JsonDtoChannel.cs | 2 +- .../DefaultDebugger.cs | 77 +++++++++ .../DisabledDebugger.cs | 30 ++++ src/OneScript.DebugServices/IDebugServer.cs | 24 +++ .../IDebuggerClient.cs | 19 +++ .../Internal/DelayedConnectionChannel.cs | 6 +- .../Internal/NoOpDebugSession.cs | 59 +++++++ .../ListenerErrorEventArgs.cs | 25 +++ src/OneScript.DebugServices/TcpDebugServer.cs | 159 ++++++++++++++++-- .../TcpEventCallbackChannel.cs | 4 +- .../HostedScriptEngine.cs | 9 +- src/ScriptEngine.HostedScript/Process.cs | 2 +- .../Hosting/EngineBuilderExtensions.cs | 3 +- .../{ => Debugger}/IBreakpointManager.cs | 0 .../{ => Debugger}/IDebugController.cs | 0 .../IDebugPresentationAcceptor.cs | 0 .../Machine/Debugger/IDebugSession.cs | 33 ++++ .../{ => Debugger}/IDebugValueVisitor.cs | 0 .../Machine/Debugger/IDebugger.cs | 38 +++++ .../Machine/{ => Debugger}/IThreadManager.cs | 2 +- .../Machine/StackMachineExecutor.cs | 14 +- src/ScriptEngine/ScriptingEngine.cs | 26 ++- .../OneScriptDebuggerClient.cs | 6 +- .../Transport/DebugClientFactory.cs | 2 +- .../Transport/RpcProcessor.cs | 2 +- src/oscript/DebugBehavior.cs | 7 +- src/oscript/ExecuteScriptBehavior.cs | 6 +- 32 files changed, 501 insertions(+), 66 deletions(-) rename src/OneScript.DebugProtocol/Abstractions/{ICommunicationChannel.cs => IMessageChannel.cs} (90%) create mode 100644 src/OneScript.DebugServices/DefaultDebugger.cs create mode 100644 src/OneScript.DebugServices/DisabledDebugger.cs create mode 100644 src/OneScript.DebugServices/IDebugServer.cs create mode 100644 src/OneScript.DebugServices/IDebuggerClient.cs create mode 100644 src/OneScript.DebugServices/Internal/NoOpDebugSession.cs create mode 100644 src/OneScript.DebugServices/ListenerErrorEventArgs.cs rename src/ScriptEngine/Machine/{ => Debugger}/IBreakpointManager.cs (100%) rename src/ScriptEngine/Machine/{ => Debugger}/IDebugController.cs (100%) rename src/ScriptEngine/Machine/{ => Debugger}/IDebugPresentationAcceptor.cs (100%) create mode 100644 src/ScriptEngine/Machine/Debugger/IDebugSession.cs rename src/ScriptEngine/Machine/{ => Debugger}/IDebugValueVisitor.cs (100%) create mode 100644 src/ScriptEngine/Machine/Debugger/IDebugger.cs rename src/ScriptEngine/Machine/{ => Debugger}/IThreadManager.cs (93%) diff --git a/src/OneScript.DebugProtocol/Abstractions/CommunicationEventArgs.cs b/src/OneScript.DebugProtocol/Abstractions/CommunicationEventArgs.cs index 76874469e..c62fb169b 100644 --- a/src/OneScript.DebugProtocol/Abstractions/CommunicationEventArgs.cs +++ b/src/OneScript.DebugProtocol/Abstractions/CommunicationEventArgs.cs @@ -11,7 +11,7 @@ namespace OneScript.DebugProtocol.Abstractions { public class CommunicationEventArgs : EventArgs { - public ICommunicationChannel Channel { get; set; } + public IMessageChannel Channel { get; set; } public object Data { get; set; } diff --git a/src/OneScript.DebugProtocol/Abstractions/ICommunicationChannel.cs b/src/OneScript.DebugProtocol/Abstractions/IMessageChannel.cs similarity index 90% rename from src/OneScript.DebugProtocol/Abstractions/ICommunicationChannel.cs rename to src/OneScript.DebugProtocol/Abstractions/IMessageChannel.cs index c1927397d..6d8c2c816 100644 --- a/src/OneScript.DebugProtocol/Abstractions/ICommunicationChannel.cs +++ b/src/OneScript.DebugProtocol/Abstractions/IMessageChannel.cs @@ -9,7 +9,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugProtocol.Abstractions { - public interface ICommunicationChannel : IDisposable + public interface IMessageChannel : IDisposable { void Write(object data); diff --git a/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs b/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs index d806ef8e7..5b910121a 100644 --- a/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/BinaryChannel.cs @@ -20,7 +20,7 @@ namespace OneScript.DebugProtocol /// TCP-канал, использующий стандартную Binary-сериализацию .NET /// [Obsolete("Используется только со стороны адаптера, для работы со старыми версиями 1Script")] - public sealed class BinaryChannel : ICommunicationChannel + public sealed class BinaryChannel : IMessageChannel { private readonly TcpClient _client; private readonly NetworkStream _clientStream; diff --git a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs index 473a9f3d3..a5e53925e 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs @@ -13,11 +13,11 @@ namespace OneScript.DebugProtocol.TcpServer { public class DefaultMessageServer : ICommunicationServer { - private readonly ICommunicationChannel _protocolChannel; + private readonly IMessageChannel _protocolChannel; private Thread _messageThread; private volatile bool _serverStopped; - public DefaultMessageServer(ICommunicationChannel protocolChannel) + public DefaultMessageServer(IMessageChannel protocolChannel) { _protocolChannel = protocolChannel; } diff --git a/src/OneScript.DebugProtocol/TcpServer/DispatchingServer.cs b/src/OneScript.DebugProtocol/TcpServer/DispatchingServer.cs index 5d0ec7cd0..aa4cba47b 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DispatchingServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DispatchingServer.cs @@ -50,7 +50,7 @@ private void OnDataReceived(object sender, CommunicationEventArgs e) } } - private void ProcessSuccess(RpcCall message, ICommunicationChannel responseChannel) + private void ProcessSuccess(RpcCall message, IMessageChannel responseChannel) { RpcCallResult callResult = null; try diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index 5fcb17724..611b6106f 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -14,7 +14,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugProtocol.TcpServer { - public class JsonDtoChannel : ICommunicationChannel + public class JsonDtoChannel : IMessageChannel { private readonly TcpClient _tcpClient; private readonly Stream _dataStream; diff --git a/src/OneScript.DebugServices/DefaultDebugger.cs b/src/OneScript.DebugServices/DefaultDebugger.cs new file mode 100644 index 000000000..f3643ec16 --- /dev/null +++ b/src/OneScript.DebugServices/DefaultDebugger.cs @@ -0,0 +1,77 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using OneScript.DebugProtocol.TcpServer; +using ScriptEngine.Machine.Debugger; + +namespace OneScript.DebugServices +{ + /// + /// Простой отладчик, поддерживающий одновременно только одну сессию отладки. + /// + public class DefaultDebugger : IDebugger + { + // NB! должен быть согласован с перечислением TransportProtocols в адаптере + private const short JSON_FORMAT_MARKER = 2; + // NB! должен быть согласован с файлом ProtocolVersions в адаптере + private const short SUPPORTED_FORMAT_VERSION = 3; + + private readonly IDebugServer _transport; + private IDebugSession _session; + + public DefaultDebugger(IDebugServer transport) + { + _transport = transport; + } + + public bool IsEnabled => true; + public bool WaitForSession { get; set; } + + public void Start() + { + _transport.OnClientConnected += TransportOnOnClientConnected; + _transport.Listen(); + } + + private void TransportOnOnClientConnected(object sender, IDebuggerClient debuggerClient) + { + if (_session != null) + { + // Если есть активная сессия, то не начинаем новую + debuggerClient.Dispose(); + } + + var dataStream = debuggerClient.GetDataStream(); + if (FormatReconcileUtils.CheckReconcileRequest(dataStream)) + { + // Да, это наш фейковый заголовок + FormatReconcileUtils.WriteReconcileResponse(dataStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); + } + } + + public IDebugSession GetSession() + { + if (_session == null) + { + if (WaitForSession) + { + + } + } + + return _session; + } + + public void NotifyProcessExit(int exitCode) + { + _transport.OnClientConnected-=TransportOnOnClientConnected; + _transport.Stop(); + + throw new System.NotImplementedException("Implement notification to client"); + } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/DisabledDebugger.cs b/src/OneScript.DebugServices/DisabledDebugger.cs new file mode 100644 index 000000000..1d0eabdf2 --- /dev/null +++ b/src/OneScript.DebugServices/DisabledDebugger.cs @@ -0,0 +1,30 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using OneScript.DebugServices.Internal; +using ScriptEngine.Machine.Debugger; + +namespace OneScript.DebugServices +{ + /// + /// Отладчик, который ничего не делает. Заглушка для выключенного отладчика. + /// + public class DisabledDebugger : IDebugger + { + public bool IsEnabled => false; + + public void Start() + { + } + + public IDebugSession GetSession() => new NoOpDebugSession(); + + public void NotifyProcessExit(int exitCode) + { + } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/IDebugServer.cs b/src/OneScript.DebugServices/IDebugServer.cs new file mode 100644 index 000000000..6113ab008 --- /dev/null +++ b/src/OneScript.DebugServices/IDebugServer.cs @@ -0,0 +1,24 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; + +namespace OneScript.DebugServices +{ + /// + /// Сервер отладки, слушающий соединения от IDE и уведомляющий о подключении нового клиента. + /// + public interface IDebugServer + { + void Listen(); + void Stop(); + + event EventHandler OnClientConnected; + + event EventHandler OnListenException; + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/IDebuggerClient.cs b/src/OneScript.DebugServices/IDebuggerClient.cs new file mode 100644 index 000000000..3fe3db0b1 --- /dev/null +++ b/src/OneScript.DebugServices/IDebuggerClient.cs @@ -0,0 +1,19 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.IO; + +namespace OneScript.DebugServices +{ + public interface IDebuggerClient : IDisposable + { + bool Connected { get; } + + Stream GetDataStream(); + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs index 8905c594e..1a35effa4 100644 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs @@ -15,10 +15,10 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugServices.Internal { - internal class DelayedConnectionChannel : ICommunicationChannel + internal class DelayedConnectionChannel : IMessageChannel { private TcpListener _listener; - private ICommunicationChannel _connectedChannel; + private IMessageChannel _connectedChannel; // NB! должен быть согласован с перечислением TransportProtocols в адаптере private const short JSON_FORMAT_MARKER = 2; @@ -79,7 +79,5 @@ private void ReconcileFormat() _reconciled = true; _connectedChannel = new JsonDtoChannel(tcpClient); } - - public bool Connected => _connectedChannel?.Connected ?? false; } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs b/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs new file mode 100644 index 000000000..0dafeb190 --- /dev/null +++ b/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs @@ -0,0 +1,59 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using ScriptEngine.Machine; +using ScriptEngine.Machine.Debugger; + +namespace OneScript.DebugServices.Internal +{ + internal class NoOpDebugSession : IDebugSession + { + public IBreakpointManager BreakpointManager { get; } = new NoOpBreakpointManager(); + public IThreadManager ThreadManager { get; } = new NoOpThreadManager(); + public void WaitForStart() + { + } + + private class NoOpBreakpointManager : IBreakpointManager + { + public void SetExceptionBreakpoints((string Id, string Condition)[] filters) + { + } + + public void SetBreakpoints(string module, (int Line, string Condition)[] breakpoints) + { + } + + public bool StopOnAnyException(string message) => false; + + public bool StopOnUncaughtException(string message) => false; + + public bool FindBreakpoint(string module, int line) => false; + + public string GetCondition(string module, int line) => ""; + + public void Clear() + { + } + } + + private class NoOpThreadManager : IThreadManager + { + public void ThreadStarted(int threadId, MachineInstance machine) + { + } + + public void ThreadStopped(int threadId, MachineStopReason reason, string errorMessage) + { + } + + public void ThreadExited(int threadId) + { + } + } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/ListenerErrorEventArgs.cs b/src/OneScript.DebugServices/ListenerErrorEventArgs.cs new file mode 100644 index 000000000..7280ab14e --- /dev/null +++ b/src/OneScript.DebugServices/ListenerErrorEventArgs.cs @@ -0,0 +1,25 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.Net.Sockets; + +namespace OneScript.DebugServices +{ + public class ListenerErrorEventArgs : EventArgs + { + public ListenerErrorEventArgs(Exception exception) + { + this.Exception = exception; + StopServer = true; + } + + public Exception Exception { get; } + + public bool StopServer { get; set; } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/TcpDebugServer.cs b/src/OneScript.DebugServices/TcpDebugServer.cs index 767d3c721..b93e52aa3 100644 --- a/src/OneScript.DebugServices/TcpDebugServer.cs +++ b/src/OneScript.DebugServices/TcpDebugServer.cs @@ -5,37 +5,166 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; +using System.IO; using System.Net.Sockets; +using System.Threading; +using OneScript.DebugProtocol.Abstractions; using OneScript.DebugProtocol.TcpServer; using OneScript.DebugServices.Internal; using ScriptEngine.Machine; namespace OneScript.DebugServices { - public class TcpDebugServer + public class TcpDebugServer : IDebugServer { private readonly int _port; + private volatile bool _isListening; + private TcpListener _listener; public TcpDebugServer(int port) { _port = port; } - public IDebugController CreateDebugController() + public enum LogLevel { - var listener = TcpListener.Create(_port); - var channel = new DelayedConnectionChannel(listener); - var ipcServer = new DefaultMessageServer(channel) - { - ServerThreadName = "debug-server" - }; - var callback = new TcpEventCallbackChannel(channel); - var threadManager = new ThreadManager(); - var breakpoints = new DefaultBreakpointManager(); - var debuggerService = new DefaultDebugService(breakpoints, threadManager, new DefaultVariableVisualizer()); - var controller = new DefaultDebugController(ipcServer, debuggerService, callback, threadManager, breakpoints); - - return controller; + Debug, + Info, + Error } + + public delegate void LogHandler(LogLevel level, string message); + + public event LogHandler OnLogEvent; + + // public IDebugController CreateDebugController() + // { + // var listener = TcpListener.Create(_port); + // var channel = new DelayedConnectionChannel(listener); + // var ipcServer = new DefaultMessageServer(channel) + // { + // ServerThreadName = "debug-server" + // }; + // var callback = new TcpEventCallbackChannel(channel); + // var threadManager = new ThreadManager(); + // var breakpoints = new DefaultBreakpointManager(); + // var debuggerService = new DefaultDebugService(breakpoints, threadManager, new DefaultVariableVisualizer()); + // var controller = new DefaultDebugController(ipcServer, debuggerService, callback, threadManager, breakpoints); + // + // return controller; + // } + + public void Listen() + { + if (_isListening) + return; + + _listener = TcpListener.Create(_port); + + _listener.Start(); + _isListening = true; + + StartListenerThread(); + } + + private void StartListenerThread() + { + new Thread(() => + { + OnLogEvent?.Invoke(LogLevel.Info, "Starting listener thread"); + while (_isListening) + { + try + { + var client = _listener.AcceptTcpClient(); + OnLogEvent?.Invoke(LogLevel.Debug, "Client connected"); + OnClientConnected?.Invoke(this, new TcpDebuggerClient(client)); + } + catch (ObjectDisposedException) + { + _isListening = false; + OnLogEvent?.Invoke(LogLevel.Debug, "Listener interrupted"); + break; + } + catch (SocketException e) + { + OnLogEvent?.Invoke(LogLevel.Error, $"Socket exception: {e}"); + if (OnListenException == null) + { + Stop(); + break; + } + + var args = new ListenerErrorEventArgs(e); + try + { + OnLogEvent?.Invoke(LogLevel.Debug, $"Calling exception handler"); + OnListenException?.Invoke(this, args); + if (args.StopServer) + { + Stop(); + } + } + catch (Exception handlerException) + { + OnLogEvent?.Invoke(LogLevel.Error, $"Exception handler raised exception {handlerException}"); + Stop(); + throw; + } + } + } + OnLogEvent?.Invoke(LogLevel.Info, "Listener thread stopped"); + }) + { + IsBackground = true, + Name = "debug-server-listener", + }.Start(); + } + + private class TcpDebuggerClient : IDebuggerClient + { + private TcpClient Client { get; } + + public TcpDebuggerClient(TcpClient client) + { + Client = client; + } + + public void Dispose() + { + Client.Dispose(); + } + + public Stream GetDataStream() + { + return Client.GetStream(); + } + + public bool Connected => Client.Connected; + } + + public void Stop() + { + OnLogEvent?.Invoke(LogLevel.Info, "Stopping listener"); + _isListening = false; + try + { + _listener.Stop(); + } + catch (Exception e) + { + // тут нечего делать + OnLogEvent?.Invoke(LogLevel.Error, $"Exception while stopping listener: {e}"); + } + finally + { + _listener = null; + } + + } + + public event EventHandler OnClientConnected; + public event EventHandler OnListenException; } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs index 3faacb25a..c13112160 100644 --- a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs +++ b/src/OneScript.DebugServices/TcpEventCallbackChannel.cs @@ -15,9 +15,9 @@ namespace OneScript.DebugServices { public class TcpEventCallbackChannel : IDebugEventListener, IDisposable { - private readonly ICommunicationChannel _channel; + private readonly IMessageChannel _channel; - public TcpEventCallbackChannel(ICommunicationChannel channel) + public TcpEventCallbackChannel(IMessageChannel channel) { _channel = channel; } diff --git a/src/ScriptEngine.HostedScript/HostedScriptEngine.cs b/src/ScriptEngine.HostedScript/HostedScriptEngine.cs index 6f26e74ec..42e379324 100644 --- a/src/ScriptEngine.HostedScript/HostedScriptEngine.cs +++ b/src/ScriptEngine.HostedScript/HostedScriptEngine.cs @@ -94,10 +94,11 @@ public Process CreateProcess(IHostApplication host, SourceCode src) { Initialize(); SetGlobalEnvironment(host, src); - if (_engine.DebugController != null) + + if (_engine.Debugger.IsEnabled) { - _engine.DebugController.ListenConnections(); - _engine.DebugController.WaitForSession(); + _engine.Debugger.Start(); + _engine.Debugger.GetSession().WaitForStart(); } var compilerSvc = GetCompilerService(); @@ -110,7 +111,7 @@ public Process CreateProcess(IHostApplication host, SourceCode src) } catch (CompilerException) { - _engine.DebugController?.NotifyProcessExit(1); + _engine.Debugger.NotifyProcessExit(1); throw; } return InitProcess(bslProcess, host, module); diff --git a/src/ScriptEngine.HostedScript/Process.cs b/src/ScriptEngine.HostedScript/Process.cs index 841bb4273..39a36d266 100644 --- a/src/ScriptEngine.HostedScript/Process.cs +++ b/src/ScriptEngine.HostedScript/Process.cs @@ -50,7 +50,7 @@ public int Start() } finally { - _engine.DebugController?.NotifyProcessExit(exitCode); + _engine.Debugger.NotifyProcessExit(exitCode); _engine.Dispose(); _engine = null; } diff --git a/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs b/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs index 2bb6ed92a..82b12d6a4 100644 --- a/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs +++ b/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs @@ -17,6 +17,7 @@ This Source Code Form is subject to the terms of the using OneScript.Types; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine.Debugger; using ScriptEngine.Machine.Interfaces; namespace ScriptEngine.Hosting @@ -89,7 +90,7 @@ public static IEngineBuilder UseImports(this IEngineBuilder b) return b; } - public static IEngineBuilder WithDebugger(this IEngineBuilder b, IDebugController debugger) + public static IEngineBuilder WithDebugger(this IEngineBuilder b, IDebugger debugger) { b.Services.RegisterSingleton(debugger); return b; diff --git a/src/ScriptEngine/Machine/IBreakpointManager.cs b/src/ScriptEngine/Machine/Debugger/IBreakpointManager.cs similarity index 100% rename from src/ScriptEngine/Machine/IBreakpointManager.cs rename to src/ScriptEngine/Machine/Debugger/IBreakpointManager.cs diff --git a/src/ScriptEngine/Machine/IDebugController.cs b/src/ScriptEngine/Machine/Debugger/IDebugController.cs similarity index 100% rename from src/ScriptEngine/Machine/IDebugController.cs rename to src/ScriptEngine/Machine/Debugger/IDebugController.cs diff --git a/src/ScriptEngine/Machine/IDebugPresentationAcceptor.cs b/src/ScriptEngine/Machine/Debugger/IDebugPresentationAcceptor.cs similarity index 100% rename from src/ScriptEngine/Machine/IDebugPresentationAcceptor.cs rename to src/ScriptEngine/Machine/Debugger/IDebugPresentationAcceptor.cs diff --git a/src/ScriptEngine/Machine/Debugger/IDebugSession.cs b/src/ScriptEngine/Machine/Debugger/IDebugSession.cs new file mode 100644 index 000000000..706be5997 --- /dev/null +++ b/src/ScriptEngine/Machine/Debugger/IDebugSession.cs @@ -0,0 +1,33 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +namespace ScriptEngine.Machine.Debugger +{ + public interface IDebugSession + { + /// + /// Поставщик точек останова для машины. + /// + IBreakpointManager BreakpointManager { get; } + + /// + /// Уведомляет о создании или завершении потоков. + /// + IThreadManager ThreadManager { get; } + + /// + /// Ожидает явной команды Execute от IDE. + /// В процессе запуска IDE устанавливает точки останова и присылает команду Execute, + /// запускающую поток исполнения. К моменту исполнения самой первой строчки кода + /// все точки останова уже заданы и мы можем ожидать их срабатывания. + /// + /// Метод не блокируется, если сессия отладки запущена в режиме attach. + /// Метод блокируется в т.ч. если сессия отладки не начата вообще. + /// + void WaitForStart(); + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/IDebugValueVisitor.cs b/src/ScriptEngine/Machine/Debugger/IDebugValueVisitor.cs similarity index 100% rename from src/ScriptEngine/Machine/IDebugValueVisitor.cs rename to src/ScriptEngine/Machine/Debugger/IDebugValueVisitor.cs diff --git a/src/ScriptEngine/Machine/Debugger/IDebugger.cs b/src/ScriptEngine/Machine/Debugger/IDebugger.cs new file mode 100644 index 000000000..96f80f31e --- /dev/null +++ b/src/ScriptEngine/Machine/Debugger/IDebugger.cs @@ -0,0 +1,38 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +namespace ScriptEngine.Machine.Debugger +{ + /// + /// Основной фасад функциональности отладки. + /// Управляет стартом и остановкой отладки. + /// + public interface IDebugger + { + /// + /// Возвращает true, если отладка в процессе возможна. + /// + bool IsEnabled { get; } + + /// + /// Запускает отладчик. С этого момента к отладчику можно подключиться. + /// + void Start(); + + /// + /// Получает текущую сессию отладки. Если отладчик должен ожидать подключения, + /// то блокируется до тех пор, пока отладчик не подключится. + /// + IDebugSession GetSession(); + + /// + /// Уведомляет IDE о завершении отлаживаемого процесса. + /// + /// код выхода приложения + void NotifyProcessExit(int exitCode); + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/IThreadManager.cs b/src/ScriptEngine/Machine/Debugger/IThreadManager.cs similarity index 93% rename from src/ScriptEngine/Machine/IThreadManager.cs rename to src/ScriptEngine/Machine/Debugger/IThreadManager.cs index e98f1cce5..54adac442 100644 --- a/src/ScriptEngine/Machine/IThreadManager.cs +++ b/src/ScriptEngine/Machine/Debugger/IThreadManager.cs @@ -12,7 +12,7 @@ namespace ScriptEngine.Machine /// /// Менеджер состояния и количества потоков для отладчика /// - public interface IThreadManager : IDisposable + public interface IThreadManager { void ThreadStarted(int threadId, MachineInstance machine); void ThreadStopped(int threadId, MachineStopReason reason, string errorMessage); diff --git a/src/ScriptEngine/Machine/StackMachineExecutor.cs b/src/ScriptEngine/Machine/StackMachineExecutor.cs index 6934653f5..a7f79833e 100644 --- a/src/ScriptEngine/Machine/StackMachineExecutor.cs +++ b/src/ScriptEngine/Machine/StackMachineExecutor.cs @@ -9,6 +9,7 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.Execution; using OneScript.Values; +using ScriptEngine.Machine.Debugger; namespace ScriptEngine.Machine { @@ -28,11 +29,12 @@ public void BeforeProcessStart(IBslProcess process) _machine = new MachineInstance(); _machine.Setup(process); - var debugger = process.Services.TryResolve(); - if (debugger != default) + var debugger = process.Services.Resolve(); + if (debugger.IsEnabled) { - _machine.SetDebugMode(debugger.ThreadManager, debugger.BreakpointManager); - debugger.ThreadManager.ThreadStarted(process.VirtualThreadId, _machine); + var session = debugger.GetSession(); + _machine.SetDebugMode(session.ThreadManager, session.BreakpointManager); + session.ThreadManager.ThreadStarted(process.VirtualThreadId, _machine); } process.Services.Resolve().Machine = _machine; @@ -40,8 +42,8 @@ public void BeforeProcessStart(IBslProcess process) public void AfterProcessExit(IBslProcess process) { - var debugger = process.Services.TryResolve(); - debugger?.ThreadManager.ThreadExited(process.VirtualThreadId); + var debugger = process.Services.Resolve(); + debugger.GetSession().ThreadManager.ThreadExited(process.VirtualThreadId); } private BslValue Executor(IBslProcess process, BslObjectValue target, IExecutableModule module, BslScriptMethodInfo method, IValue[] arguments) diff --git a/src/ScriptEngine/ScriptingEngine.cs b/src/ScriptEngine/ScriptingEngine.cs index a2b63cd9c..30c9c153f 100644 --- a/src/ScriptEngine/ScriptingEngine.cs +++ b/src/ScriptEngine/ScriptingEngine.cs @@ -16,13 +16,13 @@ This Source Code Form is subject to the terms of the using ScriptEngine.Machine.Contexts; using ScriptEngine.Compiler; using ScriptEngine.Libraries; +using ScriptEngine.Machine.Debugger; namespace ScriptEngine { public class ScriptingEngine : IDisposable { private AttachedScriptsFactory _attachedScriptsFactory; - private IDebugController _debugController; private IRuntimeEnvironment _runtimeEnvironment; private readonly ILibraryManager _libraryManager; @@ -31,6 +31,7 @@ public ScriptingEngine(ITypeManager types, IGlobalsManager globals, RuntimeEnvironment env, OneScriptCoreOptions options, + IDebugger debugger, IServiceContainer services) { TypeManager = types; @@ -43,7 +44,14 @@ public ScriptingEngine(ITypeManager types, Loader = new ScriptSourceFactory(); Services = services; ContextDiscoverer = new ContextDiscoverer(types, globals, services); - DebugController = services.TryResolve(); + + Debugger = debugger; + + if (debugger.IsEnabled) + { + ProduceExtraCode |= CodeGenerationFlags.DebugCode; + } + Loader.ReaderEncoding = options.FileReaderEncoding; } @@ -168,18 +176,7 @@ public void InitializeSDO(ScriptDrivenObject sdo, IBslProcess process) public AttachedScriptsFactory AttachedScriptsFactory => _attachedScriptsFactory; - public IDebugController DebugController - { - get => _debugController; - private set - { - _debugController = value; - if (value != null) - { - ProduceExtraCode |= CodeGenerationFlags.DebugCode; - } - } - } + public IDebugger Debugger { get; } private void EnableCodeStatistics() { @@ -194,7 +191,6 @@ private void EnableCodeStatistics() public void Dispose() { - DebugController?.Dispose(); AttachedScriptsFactory.SetInstance(null); } diff --git a/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs b/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs index 722b8ad7a..c68343e25 100644 --- a/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs +++ b/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs @@ -17,13 +17,13 @@ namespace VSCode.DebugAdapter public class OneScriptDebuggerClient : IDebuggerService { private readonly IDebugEventListener _eventBackChannel; - private readonly ICommunicationChannel _commandsChannel; + private readonly IMessageChannel _commandsChannel; private RpcProcessor _processor; private readonly ILogger Log = Serilog.Log.ForContext(); public OneScriptDebuggerClient( - ICommunicationChannel commandsChannel, + IMessageChannel commandsChannel, IDebugEventListener eventBackChannel, int protocolVersion) { @@ -45,7 +45,7 @@ public void Stop() _commandsChannel.Dispose(); } - private void RunEventsListener(ICommunicationChannel channelToListen) + private void RunEventsListener(IMessageChannel channelToListen) { var server = new DefaultMessageServer(channelToListen); server.ServerThreadName = "dbg-client-event-listener"; diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index 94b6bdc39..03a41f45a 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -37,7 +37,7 @@ public OneScriptDebuggerClient CreateDebugClient() { ReconcileDataFormat(_tcpClient); - ICommunicationChannel commandsChannel; + IMessageChannel commandsChannel; switch (_transport) { diff --git a/src/VSCode.DebugAdapter/Transport/RpcProcessor.cs b/src/VSCode.DebugAdapter/Transport/RpcProcessor.cs index 8cb2a678f..c9d6768bf 100644 --- a/src/VSCode.DebugAdapter/Transport/RpcProcessor.cs +++ b/src/VSCode.DebugAdapter/Transport/RpcProcessor.cs @@ -72,7 +72,7 @@ private void ServerOnDataReceived(object sender, CommunicationEventArgs e) } } - private void DispatchMessage(TcpProtocolDtoBase data, ICommunicationChannel responseChannel) + private void DispatchMessage(TcpProtocolDtoBase data, IMessageChannel responseChannel) { if (!_dispatchers.TryGetValue(data.ServiceName, out var serviceRecord)) { diff --git a/src/oscript/DebugBehavior.cs b/src/oscript/DebugBehavior.cs index e04d2e080..6f77a42ff 100644 --- a/src/oscript/DebugBehavior.cs +++ b/src/oscript/DebugBehavior.cs @@ -23,8 +23,11 @@ public DebugBehavior(string path, string[] args) : base(path, args) public override int Execute() { var tcpDebugServer = new TcpDebugServer(Port); - - DebugController = tcpDebugServer.CreateDebugController(); + + DebugController = new DefaultDebugger(tcpDebugServer) + { + WaitForSession = WaitOnStart + }; return base.Execute(); } diff --git a/src/oscript/ExecuteScriptBehavior.cs b/src/oscript/ExecuteScriptBehavior.cs index 9e6069be2..4ba1589fa 100644 --- a/src/oscript/ExecuteScriptBehavior.cs +++ b/src/oscript/ExecuteScriptBehavior.cs @@ -5,11 +5,13 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; +using OneScript.DebugServices; using OneScript.StandardLibrary; using ScriptEngine; using ScriptEngine.HostedScript; using ScriptEngine.Hosting; using ScriptEngine.Machine; +using ScriptEngine.Machine.Debugger; namespace oscript { @@ -24,7 +26,7 @@ public ExecuteScriptBehavior(string path, string[] args) _path = path; } - public IDebugController DebugController { get; set; } + public IDebugger DebugController { get; set; } = new DisabledDebugger(); public string CodeStatFile { get; set; } @@ -50,8 +52,6 @@ public override int Execute() } var hostedScript = ConsoleHostBuilder.Build(builder); - - var source = hostedScript.Loader.FromFile(_path); Process process; From 9adbea0bf271bf518ce7238cadc897cb91377aed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A1=D0=BE?= =?UTF-8?q?=D1=81=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9?= Date: Fri, 7 Nov 2025 15:43:05 +0300 Subject: [PATCH 129/191] #1603 fix strReplase second --- src/ScriptEngine/Machine/MachineInstance.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ScriptEngine/Machine/MachineInstance.cs b/src/ScriptEngine/Machine/MachineInstance.cs index fd34b0bfb..730f8295e 100644 --- a/src/ScriptEngine/Machine/MachineInstance.cs +++ b/src/ScriptEngine/Machine/MachineInstance.cs @@ -1781,7 +1781,7 @@ private void StrReplace(int arg) var searchVal = PopRawBslValue().ToString(_process); var sourceString = PopRawBslValue().ToString(_process); - var result = sourceString.Replace(searchVal, newVal); + var result = !string.IsNullOrEmpty(searchVal) ? sourceString.Replace(searchVal, newVal) : sourceString; _operationStack.Push(ValueFactory.Create(result)); NextInstruction(); } From e5ff593ee4ae1e239ea64ac50cbd9f6d25de9afc Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Fri, 7 Nov 2025 17:39:01 +0400 Subject: [PATCH 130/191] =?UTF-8?q?fix=20#1602:=20=D0=BF=D1=80=D0=B5=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=AD=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=A1=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=D0=97=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=B2=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D1=83=20+?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Collections/ValueList/ValueListItem.cs | 3 + tests/value-list.os | 807 +++++++++--------- 2 files changed, 416 insertions(+), 394 deletions(-) diff --git a/src/OneScript.StandardLibrary/Collections/ValueList/ValueListItem.cs b/src/OneScript.StandardLibrary/Collections/ValueList/ValueListItem.cs index 7053978c1..aeb70eabe 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueList/ValueListItem.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueList/ValueListItem.cs @@ -76,5 +76,8 @@ public IValue Picture } } } + + public override string ToString() + => !String.IsNullOrEmpty(_presentationHolder) ? _presentationHolder : Value.ToString(); } } diff --git a/tests/value-list.os b/tests/value-list.os index 009df5801..2dbf03562 100644 --- a/tests/value-list.os +++ b/tests/value-list.os @@ -1,394 +1,413 @@ -Перем юТест; - -Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт - - юТест = ЮнитТестирование; - - ВсеТесты = Новый Массив; - ВсеТесты.Добавить("ТестДолжен_ПроверитьСозданиеСпискаЗначений"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьДобавлениеЭлементов"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьДоступКСвойствамЭлементаСписка"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьЗаписьСвойствЭлементаСписка"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьИтерациюПоСписку"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьДоступПоИндексу"); - - ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодИндексСпискаЗначений"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодВставитьСпискаЗначений"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодСдвинутьСпискаЗначений"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодСортироватьПоЗначениюСпискаЗначений"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодСортироватьПоПредставлениюСпискаЗначений"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодНайтиСпискаЗначений"); - ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодУдалитьСпискаЗначений"); - Возврат ВсеТесты; - -КонецФункции - -Процедура ТестДолжен_ПроверитьСозданиеСпискаЗначений() Экспорт - СЗ = Новый СписокЗначений; - юТест.ПроверитьРавенство(Тип("СписокЗначений"), ТипЗнч(СЗ)); -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьДобавлениеЭлементов() Экспорт - СЗ = Новый СписокЗначений; - СЗ.Добавить("Один"); - СЗ.Добавить("Два"); - юТест.ПроверитьРавенство(2, СЗ.Количество()); - юТест.ПроверитьРавенство(Тип("ЭлементСпискаЗначений"), ТипЗнч(СЗ.Получить(0))); -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьДоступКСвойствамЭлементаСписка() Экспорт - - СЗ = Новый СписокЗначений; - СЗ.Добавить(1,"Представление"); - СЗ.Добавить(2,"Представление2", Истина); - СЗ.Добавить(3,"Представление3", Истина, "Тут должна быть картинка, но сейчас может быть любое значение"); - СЗ.Добавить(1); - - Элемент = СЗ[0]; - юТест.ПроверитьРавенство(1, Элемент.Значение, "Значение элемента 0 должно быть установлено"); - юТест.ПроверитьРавенство("Представление", Элемент.Представление, "Представление элемента 0 должно быть установлено"); - юТест.ПроверитьРавенство(Ложь, Элемент.Пометка, "Пометка элемента 0 не должна быть установлена"); - юТест.ПроверитьРавенство(Неопределено, Элемент.Картинка, "Картинка элемента 0 не должна быть установлена"); - - Элемент = СЗ[1]; - юТест.ПроверитьРавенство(2, Элемент.Значение, "Значение элемента 1 должно быть установлено"); - юТест.ПроверитьРавенство("Представление2", Элемент.Представление, "Представление элемента 1 должно быть установлено"); - юТест.ПроверитьРавенство(Истина, Элемент.Пометка, "Пометка элемента 1 должна быть установлена"); - - Элемент = СЗ[2]; - юТест.ПроверитьРавенство(3, Элемент.Значение, "Значение элемента 2 должно быть установлено"); - юТест.ПроверитьРавенство("Представление3", Элемент.Представление, "Представление элемента 2 должно быть установлено"); - юТест.ПроверитьРавенство(Истина, Элемент.Пометка, "Пометка элемента 2 должна быть установлена"); - юТест.ПроверитьРавенство("Тут должна быть картинка, но сейчас может быть любое значение", Элемент.Картинка, "Картинка элемента 2 должна быть установлена"); - - юТест.ПроверитьРавенство("", СЗ[3].Представление, "Должно быть пустое представление по умолчанию"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьЗаписьСвойствЭлементаСписка() Экспорт - СЗ = Новый СписокЗначений; - Элемент = СЗ.Добавить(1); - - Элемент.Значение = 2; - Элемент.Представление = "Привет"; - Элемент.Пометка = Истина; - Элемент.Картинка = "---"; - - юТест.ПроверитьРавенство(2, Элемент.Значение, "Значение элемента должно быть установлено"); - юТест.ПроверитьРавенство("Привет", Элемент.Представление, "Представление элемента должно быть установлено"); - юТест.ПроверитьРавенство(Истина, Элемент.Пометка, "Пометка элемента должна быть установлена"); - юТест.ПроверитьРавенство("---", Элемент.Картинка, "Картинка элемента должна быть установлена"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьИтерациюПоСписку() Экспорт - СЗ = Новый СписокЗначений; - СЗ.Добавить(1); - СЗ.Добавить(2); - СЗ.Добавить(3); - СЗ.Добавить(4); - Сч = 0; - Для Каждого Элемент Из СЗ Цикл - Сч = Сч + 1; - КонецЦикла; - - юТест.ПроверитьРавенство(4, Сч); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьДоступПоИндексу() Экспорт - СЗ = Новый СписокЗначений; - СЗ.Добавить(1); - - юТест.ПроверитьРавенство(1, СЗ[0].Значение); - Попытка - СЗ[0] = СЗ[0]; - Исключение - юТест.ПроверитьРавенство("Индексированное значение доступно только для чтения", ИнформацияОбОшибке().Описание); - Возврат; - КонецПопытки; - - ВызватьИсключение "Должно было быть выброшено исключение, но это не произошло"; - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьМетодИндексСпискаЗначений() Экспорт - - СЗ = Новый СписокЗначений; - - СЗ.Добавить(1); - СЗ.Добавить(2); - СЗ.Добавить(3); - СЗ.Добавить(4); - - юТест.ПроверитьРавенство(СЗ.Индекс(СЗ[0]), 0, "Метод Индекс() списка значений"); - юТест.ПроверитьРавенство(СЗ.Индекс(СЗ[1]), 1, "Метод Индекс() списка значений"); - юТест.ПроверитьРавенство(СЗ.Индекс(СЗ[2]), 2, "Метод Индекс() списка значений"); - юТест.ПроверитьРавенство(СЗ.Индекс(СЗ[3]), 3, "Метод Индекс() списка значений"); - - ДругойСЗ = Новый СписокЗначений; - ДругойСЗ.Добавить(1); - - юТест.ПроверитьРавенство(СЗ.Индекс(ДругойСЗ[0]), -1, "Метод Индекс() списка значений: несуществующий элемент"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьМетодВставитьСпискаЗначений() Экспорт - - СЗ = Новый СписокЗначений; - - Э3 = СЗ.Вставить(0, 3); // Вставка в пустой список - Э1 = СЗ.Вставить(0, 1); // Вставка в начало - Э2 = СЗ.Вставить(1, 2); // Вставка в середину - Э4 = СЗ.Вставить(3, 4); // Вставка в конец - - юТест.ПроверитьРавенство(СЗ.Индекс(Э1), 0, "Метод Вставить() списка значений"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э2), 1, "Метод Вставить() списка значений"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э3), 2, "Метод Вставить() списка значений"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э4), 3, "Метод Вставить() списка значений"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьМетодУдалитьСпискаЗначений() Экспорт - - СЗ = Новый СписокЗначений; - Для Инд = 1 По 5 Цикл - СЗ.Добавить(Инд); - КонецЦикла; - Э1 = СЗ[0]; - Э2 = СЗ[1]; - Э3 = СЗ[2]; - Э4 = СЗ[3]; - Э5 = СЗ[4]; - - СЗ.Удалить(1); - юТест.ПроверитьРавенство(СЗ.Количество(),4, "Удаление по индексу"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э2),-1, "Удаление по индексу"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э4),2, "Удаление по индексу"); - - СЗ.Удалить(Э1); - юТест.ПроверитьРавенство(СЗ.Количество(),3, "Удаление элемента"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э1),-1, "Удаление элемента"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э4),1, "Удаление элемента"); - - СЗ.Удалить("1"); - юТест.ПроверитьРавенство(СЗ.Количество(),2, "Удаление по индексу типа строка"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э4),-1, "Удаление по индексу типа строка"); - юТест.ПроверитьРавенство(СЗ.Индекс(Э5),1, "Удаление по индексу типа строка"); - - // Проверим ошибки - Ошибка = "Удаление с неверным индексом"; - Попытка - СЗ.Удалить(10); - Исключение - Ошибка = ИнформацияОбОшибке().Описание; - КонецПопытки; - юТест.ПроверитьРавенство(Ошибка, "Значение индекса выходит за пределы диапазона"); - - Ошибка = "Удаление несуществующего элемента"; - ДругойСЗ = Новый СписокЗначений; - ДругойСЗ.Добавить(1); - Попытка - СЗ.Удалить(ДругойСЗ[0]); - Исключение - Ошибка = ИнформацияОбОшибке().Описание; - КонецПопытки; - юТест.ПроверитьРавенство(Ошибка, "Элемент не принадлежит списку значений"); - - Ошибка = "Удаление с неверным типом параметра"; - Попытка - СЗ.Удалить("ё"); - Исключение - Ошибка = ИнформацияОбОшибке().Описание; - КонецПопытки; - юТест.ПроверитьРавенство(Ошибка, "Неверный тип аргумента"); - -КонецПроцедуры - - -Функция ПроверитьПорядок(Знач СЗ, Знач П1, - Знач П2 = Неопределено, - Знач П3 = Неопределено, - Знач П4 = Неопределено, - Знач П5 = Неопределено) - - Массив = Новый Массив; - Массив.Добавить(П1); - - Если П2 <> Неопределено Тогда - Массив.Добавить(П2); - КонецЕсли; - Если П3 <> Неопределено Тогда - Массив.Добавить(П3); - КонецЕсли; - Если П4 <> Неопределено Тогда - Массив.Добавить(П4); - КонецЕсли; - Если П5 <> Неопределено Тогда - Массив.Добавить(П5); - КонецЕсли; - - Для Инд = 0 По Массив.ВГраница() Цикл - - Если СЗ[Инд].Значение <> Массив[Инд] Тогда - Возврат Ложь; - КонецЕсли; - - КонецЦикла; - - Возврат Истина; - -КонецФункции - -Процедура ТестДолжен_ПроверитьМетодСдвинутьСпискаЗначений() Экспорт - - СЗ = Новый СписокЗначений; - - Для Инд = 1 По 5 Цикл - СЗ.Добавить(Инд); - КонецЦикла; - - С1 = СЗ[0]; - С2 = СЗ[1]; - С3 = СЗ[2]; - С4 = СЗ[3]; - С5 = СЗ[4]; - - // Проверим обычное перемещение - СЗ.Сдвинуть(С2, -1); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 1, 3, 4, 5), "Сдвиг вверх"); - - СЗ.Сдвинуть(С1, 2); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 3, 4, 1, 5), "Сдвиг вниз"); - - СЗ.Сдвинуть(3, -2); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 1, 3, 4, 5), "Сдвиг по индексу вверх"); - - СЗ.Сдвинуть(1, 2); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 3, 4, 1, 5), "Сдвиг по индексу вниз"); - - // Проверим приведение типа - СЗ.Сдвинуть("2", 2); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 3, 1, 5, 4), "Сдвиг, индекс - строка"); - - СЗ.Сдвинуть("1", "2"); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 1, 5, 3, 4), "Сдвиг, индекс и смещение - строки"); - - // Проверим крайние случаи - СЗ.Сдвинуть(0, 4); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 5, 3, 4, 2), "Сдвиг по индексу вниз"); - - СЗ.Сдвинуть(4, -4); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 1, 5, 3, 4), "Сдвиг по индексу вниз"); - - // Проверим ошибки - Ошибка = "Сдвиг за пределы вниз"; - Попытка - СЗ.Сдвинуть(0, 5); - Исключение - Ошибка = ИнформацияОбОшибке().Описание; - КонецПопытки; - юТест.ПроверитьРавенство(Ошибка, "Неверное значение аргумента номер 2"); - - Ошибка = "Сдвиг за пределы вверх"; - Попытка - СЗ.Сдвинуть(1, -3); - Исключение - Ошибка = ИнформацияОбОшибке().Описание; - КонецПопытки; - юТест.ПроверитьРавенство(Ошибка, "Неверное значение аргумента номер 2"); - - Ошибка = "Сдвиг с неверным индексом"; - Попытка - СЗ.Сдвинуть(10, 2); - Исключение - Ошибка = ИнформацияОбОшибке().Описание; - КонецПопытки; - юТест.ПроверитьРавенство(Ошибка, "Значение индекса выходит за пределы диапазона"); - - Ошибка = "Сдвиг несуществующего элемента"; - ДругойСЗ = Новый СписокЗначений; - ДругойСЗ.Добавить(1); - Попытка - СЗ.Сдвинуть(ДругойСЗ[0], 2); - Исключение - Ошибка = ИнформацияОбОшибке().Описание; - КонецПопытки; - юТест.ПроверитьРавенство(Ошибка, "Элемент не принадлежит списку значений"); - - Ошибка = "Сдвиг с неверным типом параметра"; - Попытка - СЗ.Сдвинуть("ё", 2); - Исключение - Ошибка = ИнформацияОбОшибке().Описание; - КонецПопытки; - юТест.ПроверитьРавенство(Ошибка, "Неверный тип аргумента"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьМетодСортироватьПоЗначениюСпискаЗначений() Экспорт - - СЗ = Новый СписокЗначений; - СЗ.Добавить(4); - СЗ.Добавить(3); - СЗ.Добавить(2); - СЗ.Добавить(1); - - СЗ.СортироватьПоЗначению(); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 2, 3, 4), "Сортировка по-умолчанию"); - - СЗ.СортироватьПоЗначению(НаправлениеСортировки.Убыв); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 4, 3, 2, 1), "Сортировка по убыванию"); - - СЗ.СортироватьПоЗначению(НаправлениеСортировки.Возр); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 2, 3, 4), "Сортировка по возрастанию"); - - СЗ = Новый СписокЗначений; - СЗ.Добавить("аааааб"); - СЗ.Добавить("аааааа"); - СЗ.Добавить("Бааааа"); - - СЗ.СортироватьПоЗначению(); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, "аааааа", "аааааб", "Бааааа"), "Сортировка по регистру"); - -КонецПроцедуры - - -Процедура ТестДолжен_ПроверитьМетодСортироватьПоПредставлениюСпискаЗначений() Экспорт - - СЗ = Новый СписокЗначений; - СЗ.Добавить(4,"14"); - СЗ.Добавить(3,"3"); - СЗ.Добавить(2,"2"); - СЗ.Добавить(1,"1"); - - СЗ.СортироватьПоПредставлению(); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 4, 2, 3), "Сортировка по-умолчанию"); - - СЗ.СортироватьПоПредставлению(НаправлениеСортировки.Убыв); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 3, 2, 4, 1), "Сортировка по убыванию"); - - СЗ.СортироватьПоПредставлению(НаправлениеСортировки.Возр); - юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 4, 2, 3), "Сортировка по возрастанию"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьМетодНайтиСпискаЗначений() Экспорт - - СЗ = Новый СписокЗначений; - Э0 = СЗ.Добавить(1.2); - Э1 = СЗ.Добавить("абв"); - Э2 = СЗ.Добавить('20161009'); - Э3 = СЗ.Добавить(Истина); - Э4 = СЗ.Добавить(Null); - Э5 = СЗ.Добавить(Неопределено); - - юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению(1.2) , Э0, "Поиск числа"); - юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению("абв") , Э1, "Поиск строки"); - юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению("АБВ") , Неопределено, "Поиск строки в другом регистре"); - юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению('20161009') , Э2, "Поиск даты"); - юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению(Истина) , Э3, "Поиск Истины"); - юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению(Null) , Э4, "Поиск Null"); - юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению(Неопределено), Э5, "Поиск Неопределено"); - -КонецПроцедуры +Перем юТест; + +Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт + + юТест = ЮнитТестирование; + + ВсеТесты = Новый Массив; + ВсеТесты.Добавить("ТестДолжен_ПроверитьСозданиеСпискаЗначений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьДобавлениеЭлементов"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьДоступКСвойствамЭлементаСписка"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЗаписьСвойствЭлементаСписка"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьИтерациюПоСписку"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьДоступПоИндексу"); + + ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодИндексСпискаЗначений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодВставитьСпискаЗначений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодСдвинутьСпискаЗначений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодСортироватьПоЗначениюСпискаЗначений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодСортироватьПоПредставлениюСпискаЗначений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодНайтиСпискаЗначений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодУдалитьСпискаЗначений"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьПреобразованиеЭлементаСпискаВСтроку"); + Возврат ВсеТесты; + +КонецФункции + +Процедура ТестДолжен_ПроверитьСозданиеСпискаЗначений() Экспорт + СЗ = Новый СписокЗначений; + юТест.ПроверитьРавенство(Тип("СписокЗначений"), ТипЗнч(СЗ)); +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьДобавлениеЭлементов() Экспорт + СЗ = Новый СписокЗначений; + СЗ.Добавить("Один"); + СЗ.Добавить("Два"); + юТест.ПроверитьРавенство(2, СЗ.Количество()); + юТест.ПроверитьРавенство(Тип("ЭлементСпискаЗначений"), ТипЗнч(СЗ.Получить(0))); +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьДоступКСвойствамЭлементаСписка() Экспорт + + СЗ = Новый СписокЗначений; + СЗ.Добавить(1,"Представление"); + СЗ.Добавить(2,"Представление2", Истина); + СЗ.Добавить(3,"Представление3", Истина, "Тут должна быть картинка, но сейчас может быть любое значение"); + СЗ.Добавить(1); + + Элемент = СЗ[0]; + юТест.ПроверитьРавенство(1, Элемент.Значение, "Значение элемента 0 должно быть установлено"); + юТест.ПроверитьРавенство("Представление", Элемент.Представление, "Представление элемента 0 должно быть установлено"); + юТест.ПроверитьРавенство(Ложь, Элемент.Пометка, "Пометка элемента 0 не должна быть установлена"); + юТест.ПроверитьРавенство(Неопределено, Элемент.Картинка, "Картинка элемента 0 не должна быть установлена"); + + Элемент = СЗ[1]; + юТест.ПроверитьРавенство(2, Элемент.Значение, "Значение элемента 1 должно быть установлено"); + юТест.ПроверитьРавенство("Представление2", Элемент.Представление, "Представление элемента 1 должно быть установлено"); + юТест.ПроверитьРавенство(Истина, Элемент.Пометка, "Пометка элемента 1 должна быть установлена"); + + Элемент = СЗ[2]; + юТест.ПроверитьРавенство(3, Элемент.Значение, "Значение элемента 2 должно быть установлено"); + юТест.ПроверитьРавенство("Представление3", Элемент.Представление, "Представление элемента 2 должно быть установлено"); + юТест.ПроверитьРавенство(Истина, Элемент.Пометка, "Пометка элемента 2 должна быть установлена"); + юТест.ПроверитьРавенство("Тут должна быть картинка, но сейчас может быть любое значение", Элемент.Картинка, "Картинка элемента 2 должна быть установлена"); + + юТест.ПроверитьРавенство("", СЗ[3].Представление, "Должно быть пустое представление по умолчанию"); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЗаписьСвойствЭлементаСписка() Экспорт + СЗ = Новый СписокЗначений; + Элемент = СЗ.Добавить(1); + + Элемент.Значение = 2; + Элемент.Представление = "Привет"; + Элемент.Пометка = Истина; + Элемент.Картинка = "---"; + + юТест.ПроверитьРавенство(2, Элемент.Значение, "Значение элемента должно быть установлено"); + юТест.ПроверитьРавенство("Привет", Элемент.Представление, "Представление элемента должно быть установлено"); + юТест.ПроверитьРавенство(Истина, Элемент.Пометка, "Пометка элемента должна быть установлена"); + юТест.ПроверитьРавенство("---", Элемент.Картинка, "Картинка элемента должна быть установлена"); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьИтерациюПоСписку() Экспорт + СЗ = Новый СписокЗначений; + СЗ.Добавить(1); + СЗ.Добавить(2); + СЗ.Добавить(3); + СЗ.Добавить(4); + Сч = 0; + Для Каждого Элемент Из СЗ Цикл + Сч = Сч + 1; + КонецЦикла; + + юТест.ПроверитьРавенство(4, Сч); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьДоступПоИндексу() Экспорт + СЗ = Новый СписокЗначений; + СЗ.Добавить(1); + + юТест.ПроверитьРавенство(1, СЗ[0].Значение); + Попытка + СЗ[0] = СЗ[0]; + Исключение + юТест.ПроверитьРавенство("Индексированное значение доступно только для чтения", ИнформацияОбОшибке().Описание); + Возврат; + КонецПопытки; + + ВызватьИсключение "Должно было быть выброшено исключение, но это не произошло"; + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьМетодИндексСпискаЗначений() Экспорт + + СЗ = Новый СписокЗначений; + + СЗ.Добавить(1); + СЗ.Добавить(2); + СЗ.Добавить(3); + СЗ.Добавить(4); + + юТест.ПроверитьРавенство(СЗ.Индекс(СЗ[0]), 0, "Метод Индекс() списка значений"); + юТест.ПроверитьРавенство(СЗ.Индекс(СЗ[1]), 1, "Метод Индекс() списка значений"); + юТест.ПроверитьРавенство(СЗ.Индекс(СЗ[2]), 2, "Метод Индекс() списка значений"); + юТест.ПроверитьРавенство(СЗ.Индекс(СЗ[3]), 3, "Метод Индекс() списка значений"); + + ДругойСЗ = Новый СписокЗначений; + ДругойСЗ.Добавить(1); + + юТест.ПроверитьРавенство(СЗ.Индекс(ДругойСЗ[0]), -1, "Метод Индекс() списка значений: несуществующий элемент"); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьМетодВставитьСпискаЗначений() Экспорт + + СЗ = Новый СписокЗначений; + + Э3 = СЗ.Вставить(0, 3); // Вставка в пустой список + Э1 = СЗ.Вставить(0, 1); // Вставка в начало + Э2 = СЗ.Вставить(1, 2); // Вставка в середину + Э4 = СЗ.Вставить(3, 4); // Вставка в конец + + юТест.ПроверитьРавенство(СЗ.Индекс(Э1), 0, "Метод Вставить() списка значений"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э2), 1, "Метод Вставить() списка значений"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э3), 2, "Метод Вставить() списка значений"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э4), 3, "Метод Вставить() списка значений"); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьМетодУдалитьСпискаЗначений() Экспорт + + СЗ = Новый СписокЗначений; + Для Инд = 1 По 5 Цикл + СЗ.Добавить(Инд); + КонецЦикла; + Э1 = СЗ[0]; + Э2 = СЗ[1]; + Э3 = СЗ[2]; + Э4 = СЗ[3]; + Э5 = СЗ[4]; + + СЗ.Удалить(1); + юТест.ПроверитьРавенство(СЗ.Количество(),4, "Удаление по индексу"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э2),-1, "Удаление по индексу"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э4),2, "Удаление по индексу"); + + СЗ.Удалить(Э1); + юТест.ПроверитьРавенство(СЗ.Количество(),3, "Удаление элемента"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э1),-1, "Удаление элемента"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э4),1, "Удаление элемента"); + + СЗ.Удалить("1"); + юТест.ПроверитьРавенство(СЗ.Количество(),2, "Удаление по индексу типа строка"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э4),-1, "Удаление по индексу типа строка"); + юТест.ПроверитьРавенство(СЗ.Индекс(Э5),1, "Удаление по индексу типа строка"); + + // Проверим ошибки + Ошибка = "Удаление с неверным индексом"; + Попытка + СЗ.Удалить(10); + Исключение + Ошибка = ИнформацияОбОшибке().Описание; + КонецПопытки; + юТест.ПроверитьРавенство(Ошибка, "Значение индекса выходит за пределы диапазона"); + + Ошибка = "Удаление несуществующего элемента"; + ДругойСЗ = Новый СписокЗначений; + ДругойСЗ.Добавить(1); + Попытка + СЗ.Удалить(ДругойСЗ[0]); + Исключение + Ошибка = ИнформацияОбОшибке().Описание; + КонецПопытки; + юТест.ПроверитьРавенство(Ошибка, "Элемент не принадлежит списку значений"); + + Ошибка = "Удаление с неверным типом параметра"; + Попытка + СЗ.Удалить("ё"); + Исключение + Ошибка = ИнформацияОбОшибке().Описание; + КонецПопытки; + юТест.ПроверитьРавенство(Ошибка, "Неверный тип аргумента"); + +КонецПроцедуры + + +Функция ПроверитьПорядок(Знач СЗ, Знач П1, + Знач П2 = Неопределено, + Знач П3 = Неопределено, + Знач П4 = Неопределено, + Знач П5 = Неопределено) + + Массив = Новый Массив; + Массив.Добавить(П1); + + Если П2 <> Неопределено Тогда + Массив.Добавить(П2); + КонецЕсли; + Если П3 <> Неопределено Тогда + Массив.Добавить(П3); + КонецЕсли; + Если П4 <> Неопределено Тогда + Массив.Добавить(П4); + КонецЕсли; + Если П5 <> Неопределено Тогда + Массив.Добавить(П5); + КонецЕсли; + + Для Инд = 0 По Массив.ВГраница() Цикл + + Если СЗ[Инд].Значение <> Массив[Инд] Тогда + Возврат Ложь; + КонецЕсли; + + КонецЦикла; + + Возврат Истина; + +КонецФункции + +Процедура ТестДолжен_ПроверитьМетодСдвинутьСпискаЗначений() Экспорт + + СЗ = Новый СписокЗначений; + + Для Инд = 1 По 5 Цикл + СЗ.Добавить(Инд); + КонецЦикла; + + С1 = СЗ[0]; + С2 = СЗ[1]; + С3 = СЗ[2]; + С4 = СЗ[3]; + С5 = СЗ[4]; + + // Проверим обычное перемещение + СЗ.Сдвинуть(С2, -1); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 1, 3, 4, 5), "Сдвиг вверх"); + + СЗ.Сдвинуть(С1, 2); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 3, 4, 1, 5), "Сдвиг вниз"); + + СЗ.Сдвинуть(3, -2); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 1, 3, 4, 5), "Сдвиг по индексу вверх"); + + СЗ.Сдвинуть(1, 2); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 3, 4, 1, 5), "Сдвиг по индексу вниз"); + + // Проверим приведение типа + СЗ.Сдвинуть("2", 2); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 3, 1, 5, 4), "Сдвиг, индекс - строка"); + + СЗ.Сдвинуть("1", "2"); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 1, 5, 3, 4), "Сдвиг, индекс и смещение - строки"); + + // Проверим крайние случаи + СЗ.Сдвинуть(0, 4); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 5, 3, 4, 2), "Сдвиг по индексу вниз"); + + СЗ.Сдвинуть(4, -4); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 2, 1, 5, 3, 4), "Сдвиг по индексу вниз"); + + // Проверим ошибки + Ошибка = "Сдвиг за пределы вниз"; + Попытка + СЗ.Сдвинуть(0, 5); + Исключение + Ошибка = ИнформацияОбОшибке().Описание; + КонецПопытки; + юТест.ПроверитьРавенство(Ошибка, "Неверное значение аргумента номер 2"); + + Ошибка = "Сдвиг за пределы вверх"; + Попытка + СЗ.Сдвинуть(1, -3); + Исключение + Ошибка = ИнформацияОбОшибке().Описание; + КонецПопытки; + юТест.ПроверитьРавенство(Ошибка, "Неверное значение аргумента номер 2"); + + Ошибка = "Сдвиг с неверным индексом"; + Попытка + СЗ.Сдвинуть(10, 2); + Исключение + Ошибка = ИнформацияОбОшибке().Описание; + КонецПопытки; + юТест.ПроверитьРавенство(Ошибка, "Значение индекса выходит за пределы диапазона"); + + Ошибка = "Сдвиг несуществующего элемента"; + ДругойСЗ = Новый СписокЗначений; + ДругойСЗ.Добавить(1); + Попытка + СЗ.Сдвинуть(ДругойСЗ[0], 2); + Исключение + Ошибка = ИнформацияОбОшибке().Описание; + КонецПопытки; + юТест.ПроверитьРавенство(Ошибка, "Элемент не принадлежит списку значений"); + + Ошибка = "Сдвиг с неверным типом параметра"; + Попытка + СЗ.Сдвинуть("ё", 2); + Исключение + Ошибка = ИнформацияОбОшибке().Описание; + КонецПопытки; + юТест.ПроверитьРавенство(Ошибка, "Неверный тип аргумента"); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьМетодСортироватьПоЗначениюСпискаЗначений() Экспорт + + СЗ = Новый СписокЗначений; + СЗ.Добавить(4); + СЗ.Добавить(3); + СЗ.Добавить(2); + СЗ.Добавить(1); + + СЗ.СортироватьПоЗначению(); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 2, 3, 4), "Сортировка по-умолчанию"); + + СЗ.СортироватьПоЗначению(НаправлениеСортировки.Убыв); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 4, 3, 2, 1), "Сортировка по убыванию"); + + СЗ.СортироватьПоЗначению(НаправлениеСортировки.Возр); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 2, 3, 4), "Сортировка по возрастанию"); + + СЗ = Новый СписокЗначений; + СЗ.Добавить("аааааб"); + СЗ.Добавить("аааааа"); + СЗ.Добавить("Бааааа"); + + СЗ.СортироватьПоЗначению(); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, "аааааа", "аааааб", "Бааааа"), "Сортировка по регистру"); + +КонецПроцедуры + + +Процедура ТестДолжен_ПроверитьМетодСортироватьПоПредставлениюСпискаЗначений() Экспорт + + СЗ = Новый СписокЗначений; + СЗ.Добавить(4,"14"); + СЗ.Добавить(3,"3"); + СЗ.Добавить(2,"2"); + СЗ.Добавить(1,"1"); + + СЗ.СортироватьПоПредставлению(); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 4, 2, 3), "Сортировка по-умолчанию"); + + СЗ.СортироватьПоПредставлению(НаправлениеСортировки.Убыв); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 3, 2, 4, 1), "Сортировка по убыванию"); + + СЗ.СортироватьПоПредставлению(НаправлениеСортировки.Возр); + юТест.ПроверитьИстину(ПроверитьПорядок(СЗ, 1, 4, 2, 3), "Сортировка по возрастанию"); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьМетодНайтиСпискаЗначений() Экспорт + + СЗ = Новый СписокЗначений; + Э0 = СЗ.Добавить(1.2); + Э1 = СЗ.Добавить("абв"); + Э2 = СЗ.Добавить('20161009'); + Э3 = СЗ.Добавить(Истина); + Э4 = СЗ.Добавить(Null); + Э5 = СЗ.Добавить(Неопределено); + + юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению(1.2) , Э0, "Поиск числа"); + юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению("абв") , Э1, "Поиск строки"); + юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению("АБВ") , Неопределено, "Поиск строки в другом регистре"); + юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению('20161009') , Э2, "Поиск даты"); + юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению(Истина) , Э3, "Поиск Истины"); + юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению(Null) , Э4, "Поиск Null"); + юТест.ПроверитьРавенство(СЗ.НайтиПоЗначению(Неопределено), Э5, "Поиск Неопределено"); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьПреобразованиеЭлементаСпискаВСтроку() Экспорт + СЗ = Новый СписокЗначений; + СЗ.Добавить(0); + СЗ.Добавить(1, ""); + СЗ.Добавить(2, Неопределено); + СЗ.Добавить(3, " "); + + юТест.ПроверитьРавенство("0", Строка(СЗ[0]), "Строка, без указания"); + юТест.ПроверитьРавенство("", СЗ[0].Представление, "Представление, без указания"); + юТест.ПроверитьРавенство("1", Строка(СЗ[1]), "Строка, с пустой"); + юТест.ПроверитьРавенство("", СЗ[1].Представление, "Представление, с пустой"); + юТест.ПроверитьРавенство("2", Строка(СЗ[2]), "Строка, Неопределено"); + юТест.ПроверитьРавенство("", СЗ[2].Представление, "Представление, Неопределено"); + юТест.ПроверитьРавенство(" ", Строка(СЗ[3]), "Строка, пробел"); + юТест.ПроверитьРавенство(" ", СЗ[3].Представление, "Представление, пробел"); + +КонецПроцедуры \ No newline at end of file From e3fcb950de14aa7b57a45a686be592ed03e35885 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Fri, 7 Nov 2025 17:48:18 +0400 Subject: [PATCH 131/191] =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Collections/ValueList/ValueListItem.cs | 44 +++---------------- 1 file changed, 7 insertions(+), 37 deletions(-) diff --git a/src/OneScript.StandardLibrary/Collections/ValueList/ValueListItem.cs b/src/OneScript.StandardLibrary/Collections/ValueList/ValueListItem.cs index aeb70eabe..c015ee277 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueList/ValueListItem.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueList/ValueListItem.cs @@ -28,53 +28,23 @@ public ValueListItem() } [ContextProperty("Значение", "Value")] - public IValue Value - { - get; - set; - } + public IValue Value { get; set; } [ContextProperty("Представление", "Presentation")] public string Presentation { - get - { - return _presentationHolder; - } - set - { - if (value == null) - _presentationHolder = String.Empty; - else - _presentationHolder = value; - } + get => _presentationHolder; + set => _presentationHolder = value ?? String.Empty; } [ContextProperty("Пометка", "Check")] - public bool Check - { - get; - set; - } + public bool Check { get; set; } [ContextProperty("Картинка", "Picture")] public IValue Picture - { - get - { - return _pictureHolder; - } - set - { - if(value != null) - { - _pictureHolder = value; - } - else - { - _pictureHolder = ValueFactory.Create(); - } - } + { + get => _pictureHolder; + set => _pictureHolder = value ?? ValueFactory.Create(); } public override string ToString() From c7d503a940b2cdcd4f144cc15401e2cf532f91a1 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 7 Nov 2025 20:22:54 +0300 Subject: [PATCH 132/191] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D0=B0=D1=8F=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=81?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0=20=D0=BE=D1=82=D0=BB=D0=B0?= =?UTF-8?q?=D0=B4=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Abstractions}/IDebuggerClient.cs | 2 +- .../TcpServer/DefaultMessageServer.cs | 7 +- .../TcpServer/DispatchingServer.cs | 9 +- .../TcpServer/JsonDtoChannel.cs | 14 +-- .../TcpServer/StopServiceException.cs | 18 --- .../DefaultBreakpointManager.cs | 1 - .../DefaultDebugController.cs | 95 --------------- .../DefaultDebugger.cs | 34 +++++- .../DefaultVariableVisualizer.cs | 1 - src/OneScript.DebugServices/IDebugServer.cs | 1 + .../Internal/DebugSession.cs | 109 ++++++++++++++++++ .../DebuggerServiceImpl.cs} | 29 ++--- .../Internal/DelayedConnectionChannel.cs | 83 ------------- .../Internal/NoOpDebugSession.cs | 7 +- .../{ => Internal}/TcpEventCallbackChannel.cs | 10 +- .../ListenerErrorEventArgs.cs | 1 - src/OneScript.DebugServices/TcpDebugServer.cs | 20 ---- src/OneScript.DebugServices/ThreadManager.cs | 6 +- .../Machine/Debugger/IDebugController.cs | 3 +- .../Machine/Debugger/IDebugSession.cs | 6 +- ...eadManager.cs => IThreadEventsListener.cs} | 6 +- src/ScriptEngine/Machine/MachineInstance.cs | 3 +- .../Machine/MachineStopManager.cs | 5 +- .../Transport/DebugClientFactory.cs | 25 +++- 24 files changed, 212 insertions(+), 283 deletions(-) rename src/{OneScript.DebugServices => OneScript.DebugProtocol/Abstractions}/IDebuggerClient.cs (91%) delete mode 100644 src/OneScript.DebugProtocol/TcpServer/StopServiceException.cs delete mode 100644 src/OneScript.DebugServices/DefaultDebugController.cs create mode 100644 src/OneScript.DebugServices/Internal/DebugSession.cs rename src/OneScript.DebugServices/{DefaultDebugService.cs => Internal/DebuggerServiceImpl.cs} (91%) delete mode 100644 src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs rename src/OneScript.DebugServices/{ => Internal}/TcpEventCallbackChannel.cs (88%) rename src/ScriptEngine/Machine/Debugger/{IThreadManager.cs => IThreadEventsListener.cs} (89%) diff --git a/src/OneScript.DebugServices/IDebuggerClient.cs b/src/OneScript.DebugProtocol/Abstractions/IDebuggerClient.cs similarity index 91% rename from src/OneScript.DebugServices/IDebuggerClient.cs rename to src/OneScript.DebugProtocol/Abstractions/IDebuggerClient.cs index 3fe3db0b1..8e54657eb 100644 --- a/src/OneScript.DebugServices/IDebuggerClient.cs +++ b/src/OneScript.DebugProtocol/Abstractions/IDebuggerClient.cs @@ -8,7 +8,7 @@ This Source Code Form is subject to the terms of the using System; using System.IO; -namespace OneScript.DebugServices +namespace OneScript.DebugProtocol.Abstractions { public interface IDebuggerClient : IDisposable { diff --git a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs index a5e53925e..2776a57cc 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs @@ -11,6 +11,11 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugProtocol.TcpServer { + /// + /// Читает сообщения из канала и вызывает обработчики сообщений. + /// Не управляет жизненным циклом канала и оставляет его доступным при остановке сервера. + /// + /// public class DefaultMessageServer : ICommunicationServer { private readonly IMessageChannel _protocolChannel; @@ -103,7 +108,6 @@ private void RunCommandsLoop() } } - _protocolChannel.Dispose(); }); _messageThread.IsBackground = true; @@ -125,7 +129,6 @@ public void Stop() if (_messageThread?.IsAlive == true) { _messageThread.Interrupt(); - _protocolChannel.Dispose(); } } diff --git a/src/OneScript.DebugProtocol/TcpServer/DispatchingServer.cs b/src/OneScript.DebugProtocol/TcpServer/DispatchingServer.cs index aa4cba47b..6069d72f0 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DispatchingServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DispatchingServer.cs @@ -10,6 +10,10 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugProtocol.TcpServer { + /// + /// Диспетчер обработки сообщений. Получает сообщения от сервера и передает их в обработчик. + /// + /// public class DispatchingService { private readonly ICommunicationServer _server; @@ -59,11 +63,6 @@ private void ProcessSuccess(RpcCall message, IMessageChannel responseChannel) if (methodResult != null) callResult = RpcCallResult.Respond(message, methodResult); } - catch (StopServiceException) - { - Stop(); - return; - } catch (Exception e) { callResult = RpcCallResult.Exception(message, e); diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index 611b6106f..e8e18bd26 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -16,27 +16,27 @@ namespace OneScript.DebugProtocol.TcpServer { public class JsonDtoChannel : IMessageChannel { - private readonly TcpClient _tcpClient; + private readonly IDebuggerClient _client; private readonly Stream _dataStream; private bool _enabled = true; - public JsonDtoChannel(TcpClient tcpClient) + public JsonDtoChannel(IDebuggerClient client) { - _tcpClient = tcpClient; - _dataStream = tcpClient.GetStream(); + _client = client; + _dataStream = client.GetDataStream(); } public JsonDtoChannel(Stream dataStream) { - _tcpClient = null; + _client = null; _dataStream = dataStream; } public void Dispose() { _dataStream.Dispose(); - _tcpClient?.Close(); + _client?.Dispose(); _enabled = false; } @@ -100,6 +100,6 @@ private void ReadStream(BinaryReader reader, byte[] buffer, int length) } } - public bool Connected => _enabled && (_tcpClient?.Connected ?? true); + public bool Connected => _enabled && (_client?.Connected ?? true); } } \ No newline at end of file diff --git a/src/OneScript.DebugProtocol/TcpServer/StopServiceException.cs b/src/OneScript.DebugProtocol/TcpServer/StopServiceException.cs deleted file mode 100644 index 359e4427f..000000000 --- a/src/OneScript.DebugProtocol/TcpServer/StopServiceException.cs +++ /dev/null @@ -1,18 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; - -namespace OneScript.DebugProtocol.TcpServer -{ - /// - /// Прерывание сервера со стороны прикладного интерфейса. Кнопка "Выход" из диспетчера - /// - public class StopServiceException : ApplicationException - { - } -} \ No newline at end of file diff --git a/src/OneScript.DebugServices/DefaultBreakpointManager.cs b/src/OneScript.DebugServices/DefaultBreakpointManager.cs index 09441a8f1..e9661a655 100644 --- a/src/OneScript.DebugServices/DefaultBreakpointManager.cs +++ b/src/OneScript.DebugServices/DefaultBreakpointManager.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Collections.Generic; using System.Linq; using OneScript.Commons; diff --git a/src/OneScript.DebugServices/DefaultDebugController.cs b/src/OneScript.DebugServices/DefaultDebugController.cs deleted file mode 100644 index 78a643736..000000000 --- a/src/OneScript.DebugServices/DefaultDebugController.cs +++ /dev/null @@ -1,95 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using OneScript.DebugProtocol; -using OneScript.DebugProtocol.Abstractions; -using OneScript.DebugProtocol.TcpServer; -using ScriptEngine.Machine; - -namespace OneScript.DebugServices -{ - /// - /// Простой односессионный контроллер отладки. Поддерживает только один сеанс отладки на процесс. - /// Также поддерживает только один BSL-процесс на приложение. При получении NotifyProcessExited отключает отладчик - /// и к нему нельзя подключиться еще раз. - /// - public class DefaultDebugController : IDebugController - { - private readonly ICommunicationServer _server; - private readonly DefaultDebugService _debugger; - private readonly IDebugEventListener _callbackService; - private readonly ThreadManager _threadManager; - - public DefaultDebugController(ICommunicationServer ipcServer, - DefaultDebugService debugger, - IDebugEventListener callbackService, - ThreadManager threadManager, - IBreakpointManager breakpointManager) - { - _server = ipcServer; - _debugger = debugger; - _callbackService = callbackService; - _threadManager = threadManager; - BreakpointManager = breakpointManager; - } - - public void Dispose() - { - _server.Stop(); - _threadManager.Dispose(); - } - - public void ListenConnections() - { - _threadManager.ThreadStopped += ThreadManagerOnThreadStopped; - var dispatcher = new DispatchingService(_server, _debugger); - dispatcher.Start(); - } - - private void ThreadManagerOnThreadStopped(object sender, ThreadStoppedEventArgs e) - { - MachineWaitToken token; - try - { - token = _threadManager.GetTokenForThread(e.ThreadId); - } - catch (ArgumentOutOfRangeException) - { - return; - } - - token.Reset(); - - _callbackService.ThreadStoppedEx(e.ThreadId, ConvertStopReason(e.StopReason), e.ErrorMessage); - token.Wait(); - } - - public void WaitForSession() => _debugger.WaitForExecution(); - - public void NotifyProcessExit(int exitCode) - { - _threadManager.ReleaseAllThreads(); - _callbackService.ProcessExited(exitCode); - _server.Stop(); - - } - - public IBreakpointManager BreakpointManager { get; } - - public IThreadManager ThreadManager => _threadManager; - - private static ThreadStopReason ConvertStopReason(MachineStopReason reason) => reason switch - { - MachineStopReason.Breakpoint => ThreadStopReason.Breakpoint, - MachineStopReason.BreakpointConditionError => ThreadStopReason.Breakpoint, - MachineStopReason.Step => ThreadStopReason.Step, - MachineStopReason.Exception => ThreadStopReason.Exception, - _ => throw new NotImplementedException(), - }; - } -} \ No newline at end of file diff --git a/src/OneScript.DebugServices/DefaultDebugger.cs b/src/OneScript.DebugServices/DefaultDebugger.cs index f3643ec16..e88125749 100644 --- a/src/OneScript.DebugServices/DefaultDebugger.cs +++ b/src/OneScript.DebugServices/DefaultDebugger.cs @@ -5,7 +5,11 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System.Diagnostics; +using System.Threading; +using OneScript.DebugProtocol.Abstractions; using OneScript.DebugProtocol.TcpServer; +using OneScript.DebugServices.Internal; using ScriptEngine.Machine.Debugger; namespace OneScript.DebugServices @@ -22,6 +26,8 @@ public class DefaultDebugger : IDebugger private readonly IDebugServer _transport; private IDebugSession _session; + + private ManualResetEventSlim _connectionEvent = new ManualResetEventSlim(); public DefaultDebugger(IDebugServer transport) { @@ -39,7 +45,7 @@ public void Start() private void TransportOnOnClientConnected(object sender, IDebuggerClient debuggerClient) { - if (_session != null) + if (_session is DebugSession) { // Если есть активная сессия, то не начинаем новую debuggerClient.Dispose(); @@ -51,6 +57,21 @@ private void TransportOnOnClientConnected(object sender, IDebuggerClient debugge // Да, это наш фейковый заголовок FormatReconcileUtils.WriteReconcileResponse(dataStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); } + + var session = new DebugSession(debuggerClient, WaitForSession); + session.OnClose += OnSessionClose; + + _session = session; + _connectionEvent.Set(); + } + + private void OnSessionClose() + { + if (_session is DebugSession dbgSession) + { + dbgSession.OnClose -= OnSessionClose; + _session = null; + } } public IDebugSession GetSession() @@ -59,7 +80,12 @@ public IDebugSession GetSession() { if (WaitForSession) { - + _connectionEvent.Wait(); + Debug.Assert(_session != null); + } + else + { + _session = new NoOpDebugSession(); } } @@ -70,8 +96,8 @@ public void NotifyProcessExit(int exitCode) { _transport.OnClientConnected-=TransportOnOnClientConnected; _transport.Stop(); - - throw new System.NotImplementedException("Implement notification to client"); + + _session?.Dispose(); } } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/DefaultVariableVisualizer.cs b/src/OneScript.DebugServices/DefaultVariableVisualizer.cs index 9e47c96f7..03cb5f2cc 100644 --- a/src/OneScript.DebugServices/DefaultVariableVisualizer.cs +++ b/src/OneScript.DebugServices/DefaultVariableVisualizer.cs @@ -12,7 +12,6 @@ This Source Code Form is subject to the terms of the using OneScript.Execution; using ScriptEngine.Machine; using Variable = OneScript.DebugProtocol.Variable; -using MachineVariable = OneScript.Contexts.Variable; namespace OneScript.DebugServices { diff --git a/src/OneScript.DebugServices/IDebugServer.cs b/src/OneScript.DebugServices/IDebugServer.cs index 6113ab008..bc35feaec 100644 --- a/src/OneScript.DebugServices/IDebugServer.cs +++ b/src/OneScript.DebugServices/IDebugServer.cs @@ -6,6 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using OneScript.DebugProtocol.Abstractions; namespace OneScript.DebugServices { diff --git a/src/OneScript.DebugServices/Internal/DebugSession.cs b/src/OneScript.DebugServices/Internal/DebugSession.cs new file mode 100644 index 000000000..e2c1570da --- /dev/null +++ b/src/OneScript.DebugServices/Internal/DebugSession.cs @@ -0,0 +1,109 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.Threading; +using OneScript.DebugProtocol; +using OneScript.DebugProtocol.Abstractions; +using OneScript.DebugProtocol.TcpServer; +using ScriptEngine.Machine; +using ScriptEngine.Machine.Debugger; + +namespace OneScript.DebugServices.Internal +{ + internal class DebugSession : IDebugSession + { + private bool _isStarted; + private readonly ThreadManager _threadManager; + private readonly TcpEventCallbackChannel _callbackChannel; + private readonly DispatchingService _messageServer; + + private readonly ManualResetEventSlim _startEvent = new ManualResetEventSlim(); + private readonly IMessageChannel _channel; + + public DebugSession(IDebuggerClient connectedClient, bool waitForStart) + { + _isStarted = !waitForStart; + + _channel = new JsonDtoChannel(connectedClient); + var ipcServer = new DefaultMessageServer(_channel) + { + ServerThreadName = "debug-server" + }; + + BreakpointManager = new DefaultBreakpointManager(); + _threadManager = new ThreadManager(); + _callbackChannel = new TcpEventCallbackChannel(_channel); + + var commandsHandler = new DebuggerServiceImpl(this, new DefaultVariableVisualizer()); + + _messageServer = new DispatchingService(ipcServer, commandsHandler); + _messageServer.Start(); + + _threadManager.ThreadStopped += ThreadManagerOnThreadStopped; + } + + private void ThreadManagerOnThreadStopped(object sender, ThreadStoppedEventArgs e) + { + MachineWaitToken token; + try + { + token = _threadManager.GetTokenForThread(e.ThreadId); + } + catch (ArgumentOutOfRangeException) + { + return; + } + + token.Reset(); + + _callbackChannel.ThreadStoppedEx(e.ThreadId, ConvertStopReason(e.StopReason), e.ErrorMessage); + token.Wait(); + } + + public void Dispose() + { + _threadManager.ThreadStopped -= ThreadManagerOnThreadStopped; + _threadManager.Dispose(); + _messageServer.Stop(); + _channel.Dispose(); + + OnClose?.Invoke(); + } + + public IBreakpointManager BreakpointManager { get; } + public IThreadEventsListener ThreadManager => _threadManager; + + public void WaitForStart() + { + if (_isStarted) + return; + + _startEvent.Wait(); + _isStarted = true; + } + + internal void SetReadyToRun() + { + if (_isStarted) + return; + + _startEvent.Set(); + } + + public event Action OnClose; + + private static ThreadStopReason ConvertStopReason(MachineStopReason reason) => reason switch + { + MachineStopReason.Breakpoint => ThreadStopReason.Breakpoint, + MachineStopReason.BreakpointConditionError => ThreadStopReason.Breakpoint, + MachineStopReason.Step => ThreadStopReason.Step, + MachineStopReason.Exception => ThreadStopReason.Exception, + _ => throw new NotImplementedException(), + }; + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/DefaultDebugService.cs b/src/OneScript.DebugServices/Internal/DebuggerServiceImpl.cs similarity index 91% rename from src/OneScript.DebugServices/DefaultDebugService.cs rename to src/OneScript.DebugServices/Internal/DebuggerServiceImpl.cs index bd302f89b..7547ea4cd 100644 --- a/src/OneScript.DebugServices/DefaultDebugService.cs +++ b/src/OneScript.DebugServices/Internal/DebuggerServiceImpl.cs @@ -8,44 +8,34 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; using System.Linq; -using System.Threading; using OneScript.Contexts; using OneScript.DebugProtocol; -using OneScript.DebugProtocol.TcpServer; using OneScript.Language; using ScriptEngine.Machine; using StackFrame = OneScript.DebugProtocol.StackFrame; using Variable = OneScript.DebugProtocol.Variable; using MachineVariable = OneScript.Contexts.Variable; -namespace OneScript.DebugServices +namespace OneScript.DebugServices.Internal { - public class DefaultDebugService : IDebuggerService + internal class DebuggerServiceImpl : IDebuggerService { + private readonly DebugSession _debugSession; private readonly IBreakpointManager _breakpointManager; private readonly IVariableVisualizer _visualizer; private readonly ThreadManager _threadManager; - private ManualResetEventSlim _awaiter = new ManualResetEventSlim(); - - public DefaultDebugService(IBreakpointManager breakpointManager, ThreadManager threads, IVariableVisualizer visualizer) + public DebuggerServiceImpl(DebugSession debugSession, IVariableVisualizer visualizer) { - _breakpointManager = breakpointManager; + _debugSession = debugSession; + _breakpointManager = _debugSession.BreakpointManager; + _threadManager = (ThreadManager)_debugSession.ThreadManager; _visualizer = visualizer; - _threadManager = threads; - } - - public void WaitForExecution() - { - _awaiter.Wait(); } public void Execute(int threadId) { - if (!_awaiter.IsSet) - { - _awaiter.Set(); - } + _debugSession.SetReadyToRun(); if (threadId > 0) { @@ -215,8 +205,7 @@ public void Disconnect(bool terminate) { _breakpointManager.Clear(); _threadManager.ReleaseAllThreads(); - - throw new StopServiceException(); + _debugSession.Dispose(); } public int[] GetThreads() diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs deleted file mode 100644 index 1a35effa4..000000000 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ /dev/null @@ -1,83 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.IO; -using System.Net.Sockets; -using System.Text; -using OneScript.DebugProtocol; -using OneScript.DebugProtocol.Abstractions; -using OneScript.DebugProtocol.TcpServer; - -namespace OneScript.DebugServices.Internal -{ - internal class DelayedConnectionChannel : IMessageChannel - { - private TcpListener _listener; - private IMessageChannel _connectedChannel; - - // NB! должен быть согласован с перечислением TransportProtocols в адаптере - private const short JSON_FORMAT_MARKER = 2; - // NB! должен быть согласован с файлом ProtocolVersions в адаптере - private const short SUPPORTED_FORMAT_VERSION = 3; - - private bool _reconciled; - - public DelayedConnectionChannel(TcpListener listener) - { - _listener = listener; - } - - public void Dispose() - { - _listener?.Stop(); - _listener = null; - _connectedChannel?.Dispose(); - } - - public void Write(object data) - { - if(_connectedChannel == null) - throw new InvalidOperationException("No client connected"); - - _connectedChannel.Write(data); - } - - public T Read() - { - ReconcileFormat(); - return _connectedChannel.Read(); - } - - public object Read() - { - ReconcileFormat(); - return _connectedChannel.Read(); - } - - private void ReconcileFormat() - { - if (_reconciled) - return; - - _listener.Start(); - var tcpClient = _listener.AcceptTcpClient(); - _listener.Stop(); - _listener = null; - - var tcpStream = tcpClient.GetStream(); - - if (FormatReconcileUtils.CheckReconcileRequest(tcpStream)) - { - // Да, это наш фейковый заголовок - FormatReconcileUtils.WriteReconcileResponse(tcpStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); - } - _reconciled = true; - _connectedChannel = new JsonDtoChannel(tcpClient); - } - } -} \ No newline at end of file diff --git a/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs b/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs index 0dafeb190..225ccb89b 100644 --- a/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs +++ b/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs @@ -13,10 +13,13 @@ namespace OneScript.DebugServices.Internal internal class NoOpDebugSession : IDebugSession { public IBreakpointManager BreakpointManager { get; } = new NoOpBreakpointManager(); - public IThreadManager ThreadManager { get; } = new NoOpThreadManager(); + public IThreadEventsListener ThreadManager { get; } = new NoOpThreadEventsListener(); public void WaitForStart() { } + public void Dispose() + { + } private class NoOpBreakpointManager : IBreakpointManager { @@ -41,7 +44,7 @@ public void Clear() } } - private class NoOpThreadManager : IThreadManager + private class NoOpThreadEventsListener : IThreadEventsListener { public void ThreadStarted(int threadId, MachineInstance machine) { diff --git a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs b/src/OneScript.DebugServices/Internal/TcpEventCallbackChannel.cs similarity index 88% rename from src/OneScript.DebugServices/TcpEventCallbackChannel.cs rename to src/OneScript.DebugServices/Internal/TcpEventCallbackChannel.cs index c13112160..e1aafea2e 100644 --- a/src/OneScript.DebugServices/TcpEventCallbackChannel.cs +++ b/src/OneScript.DebugServices/Internal/TcpEventCallbackChannel.cs @@ -5,15 +5,14 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.IO; using OneScript.DebugProtocol; using OneScript.DebugProtocol.Abstractions; using OneScript.DebugProtocol.TcpServer; -namespace OneScript.DebugServices +namespace OneScript.DebugServices.Internal { - public class TcpEventCallbackChannel : IDebugEventListener, IDisposable + internal class TcpEventCallbackChannel : IDebugEventListener { private readonly IMessageChannel _channel; @@ -54,10 +53,5 @@ private void Write(RpcCall dto) // Ignore } } - - public void Dispose() - { - _channel.Dispose(); - } } } \ No newline at end of file diff --git a/src/OneScript.DebugServices/ListenerErrorEventArgs.cs b/src/OneScript.DebugServices/ListenerErrorEventArgs.cs index 7280ab14e..142733c2d 100644 --- a/src/OneScript.DebugServices/ListenerErrorEventArgs.cs +++ b/src/OneScript.DebugServices/ListenerErrorEventArgs.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; -using System.Net.Sockets; namespace OneScript.DebugServices { diff --git a/src/OneScript.DebugServices/TcpDebugServer.cs b/src/OneScript.DebugServices/TcpDebugServer.cs index b93e52aa3..c1a425c81 100644 --- a/src/OneScript.DebugServices/TcpDebugServer.cs +++ b/src/OneScript.DebugServices/TcpDebugServer.cs @@ -10,9 +10,6 @@ This Source Code Form is subject to the terms of the using System.Net.Sockets; using System.Threading; using OneScript.DebugProtocol.Abstractions; -using OneScript.DebugProtocol.TcpServer; -using OneScript.DebugServices.Internal; -using ScriptEngine.Machine; namespace OneScript.DebugServices { @@ -37,23 +34,6 @@ public enum LogLevel public delegate void LogHandler(LogLevel level, string message); public event LogHandler OnLogEvent; - - // public IDebugController CreateDebugController() - // { - // var listener = TcpListener.Create(_port); - // var channel = new DelayedConnectionChannel(listener); - // var ipcServer = new DefaultMessageServer(channel) - // { - // ServerThreadName = "debug-server" - // }; - // var callback = new TcpEventCallbackChannel(channel); - // var threadManager = new ThreadManager(); - // var breakpoints = new DefaultBreakpointManager(); - // var debuggerService = new DefaultDebugService(breakpoints, threadManager, new DefaultVariableVisualizer()); - // var controller = new DefaultDebugController(ipcServer, debuggerService, callback, threadManager, breakpoints); - // - // return controller; - // } public void Listen() { diff --git a/src/OneScript.DebugServices/ThreadManager.cs b/src/OneScript.DebugServices/ThreadManager.cs index 03401b6ae..f93cae0c0 100644 --- a/src/OneScript.DebugServices/ThreadManager.cs +++ b/src/OneScript.DebugServices/ThreadManager.cs @@ -9,12 +9,12 @@ This Source Code Form is subject to the terms of the using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; -using System.Threading; using ScriptEngine.Machine; +using ScriptEngine.Machine.Debugger; namespace OneScript.DebugServices { - public class ThreadManager : IThreadManager + public class ThreadManager : IThreadEventsListener { private readonly IDictionary _machinesOnThreads = new ConcurrentDictionary(); @@ -85,7 +85,7 @@ public void ThreadStarted(int threadId, MachineInstance machine) }; } - void IThreadManager.ThreadStopped(int threadId, MachineStopReason reason, string errorMessage) + void IThreadEventsListener.ThreadStopped(int threadId, MachineStopReason reason, string errorMessage) { EmitThreadStopped(threadId, reason, errorMessage); } diff --git a/src/ScriptEngine/Machine/Debugger/IDebugController.cs b/src/ScriptEngine/Machine/Debugger/IDebugController.cs index c97411360..471ab5c92 100644 --- a/src/ScriptEngine/Machine/Debugger/IDebugController.cs +++ b/src/ScriptEngine/Machine/Debugger/IDebugController.cs @@ -6,6 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using ScriptEngine.Machine.Debugger; namespace ScriptEngine.Machine { @@ -32,6 +33,6 @@ public interface IDebugController : IDisposable IBreakpointManager BreakpointManager { get; } - IThreadManager ThreadManager { get; } + IThreadEventsListener ThreadManager { get; } } } diff --git a/src/ScriptEngine/Machine/Debugger/IDebugSession.cs b/src/ScriptEngine/Machine/Debugger/IDebugSession.cs index 706be5997..1f20953cd 100644 --- a/src/ScriptEngine/Machine/Debugger/IDebugSession.cs +++ b/src/ScriptEngine/Machine/Debugger/IDebugSession.cs @@ -5,9 +5,11 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; + namespace ScriptEngine.Machine.Debugger { - public interface IDebugSession + public interface IDebugSession : IDisposable { /// /// Поставщик точек останова для машины. @@ -17,7 +19,7 @@ public interface IDebugSession /// /// Уведомляет о создании или завершении потоков. /// - IThreadManager ThreadManager { get; } + IThreadEventsListener ThreadManager { get; } /// /// Ожидает явной команды Execute от IDE. diff --git a/src/ScriptEngine/Machine/Debugger/IThreadManager.cs b/src/ScriptEngine/Machine/Debugger/IThreadEventsListener.cs similarity index 89% rename from src/ScriptEngine/Machine/Debugger/IThreadManager.cs rename to src/ScriptEngine/Machine/Debugger/IThreadEventsListener.cs index 54adac442..fe34468a9 100644 --- a/src/ScriptEngine/Machine/Debugger/IThreadManager.cs +++ b/src/ScriptEngine/Machine/Debugger/IThreadEventsListener.cs @@ -5,14 +5,12 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; - -namespace ScriptEngine.Machine +namespace ScriptEngine.Machine.Debugger { /// /// Менеджер состояния и количества потоков для отладчика /// - public interface IThreadManager + public interface IThreadEventsListener { void ThreadStarted(int threadId, MachineInstance machine); void ThreadStopped(int threadId, MachineStopReason reason, string errorMessage); diff --git a/src/ScriptEngine/Machine/MachineInstance.cs b/src/ScriptEngine/Machine/MachineInstance.cs index fd34b0bfb..67918b0d7 100644 --- a/src/ScriptEngine/Machine/MachineInstance.cs +++ b/src/ScriptEngine/Machine/MachineInstance.cs @@ -23,6 +23,7 @@ This Source Code Form is subject to the terms of the using OneScript.Types; using OneScript.Values; using ScriptEngine.Compiler; +using ScriptEngine.Machine.Debugger; namespace ScriptEngine.Machine { @@ -176,7 +177,7 @@ private void SetExecutionFrame(ExecutionFrame frame, MachineMethodInfo methodInf #region Debug protocol methods [MethodImpl(MethodImplOptions.Synchronized)] - public void SetDebugMode(IThreadManager threadManager, IBreakpointManager breakpointManager) + public void SetDebugMode(IThreadEventsListener threadManager, IBreakpointManager breakpointManager) { if (!_debugEnabled) { diff --git a/src/ScriptEngine/Machine/MachineStopManager.cs b/src/ScriptEngine/Machine/MachineStopManager.cs index 5462a4803..ea5b0f148 100644 --- a/src/ScriptEngine/Machine/MachineStopManager.cs +++ b/src/ScriptEngine/Machine/MachineStopManager.cs @@ -7,6 +7,7 @@ This Source Code Form is subject to the terms of the using System; using System.Linq; +using ScriptEngine.Machine.Debugger; namespace ScriptEngine.Machine { @@ -30,10 +31,10 @@ private struct StopPoint private DebugState _currentState = DebugState.Running; private readonly IBreakpointManager _breakpoints; private readonly MachineInstance _machine; - private readonly IThreadManager _threadManager; + private readonly IThreadEventsListener _threadManager; private ExecutionFrame[] _stopFrames; - public MachineStopManager(MachineInstance runner, IThreadManager threadManager, IBreakpointManager breakpoints) + public MachineStopManager(MachineInstance runner, IThreadEventsListener threadManager, IBreakpointManager breakpoints) { _machine = runner ?? throw new ArgumentNullException(nameof(runner)); _threadManager = threadManager; diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index 03a41f45a..6298c8db5 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; -using System.Diagnostics; using System.IO; using System.Net.Sockets; using System.Text; @@ -42,7 +41,7 @@ public OneScriptDebuggerClient CreateDebugClient() switch (_transport) { case TransportProtocols.Json: - commandsChannel = new JsonDtoChannel(_tcpClient); + commandsChannel = new JsonDtoChannel(new TcpDebuggerClient(_tcpClient)); break; case TransportProtocols.Binary: commandsChannel = new BinaryChannel(_tcpClient); @@ -181,5 +180,27 @@ private void SelectSafestFormat() _protocolVersion = ProtocolVersions.SafestVersion; _transport = TransportProtocols.Binary; } + + private class TcpDebuggerClient : IDebuggerClient + { + private TcpClient Client { get; } + + public TcpDebuggerClient(TcpClient client) + { + Client = client; + } + + public void Dispose() + { + Client.Dispose(); + } + + public Stream GetDataStream() + { + return Client.GetStream(); + } + + public bool Connected => Client.Connected; + } } } From e6f8137734ccf931e01a2a475299cb893c5c796c Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Mon, 10 Nov 2025 13:38:39 +0300 Subject: [PATCH 133/191] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D1=87=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/DefaultMessageServer.cs | 9 +- .../DefaultDebugger.cs | 5 +- .../Internal/DebugSession.cs | 14 +- src/OneScript.DebugServices/TcpDebugServer.cs | 14 +- .../DebuggerTests.cs | 132 ++++++++++++++++++ .../TcpServerTest.cs | 61 ++++++++ .../Tools/TestDebuggerTransport.cs | 25 ++++ 7 files changed, 251 insertions(+), 9 deletions(-) create mode 100644 src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs create mode 100644 src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs create mode 100644 src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerTransport.cs diff --git a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs index 2776a57cc..7d12405fb 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs @@ -97,17 +97,22 @@ private void RunCommandsLoop() } catch (Exception e) { + if (OnError == null) + { + _serverStopped = true; + break; + } + var eventData = new CommunicationEventArgs { Data = null, Channel = _protocolChannel, Exception = new ChannelException("Unhandled error in message handler", true, e) }; - + OnError?.Invoke(this, eventData); } } - }); _messageThread.IsBackground = true; diff --git a/src/OneScript.DebugServices/DefaultDebugger.cs b/src/OneScript.DebugServices/DefaultDebugger.cs index e88125749..14b84d318 100644 --- a/src/OneScript.DebugServices/DefaultDebugger.cs +++ b/src/OneScript.DebugServices/DefaultDebugger.cs @@ -25,7 +25,7 @@ public class DefaultDebugger : IDebugger private const short SUPPORTED_FORMAT_VERSION = 3; private readonly IDebugServer _transport; - private IDebugSession _session; + private volatile IDebugSession _session; private ManualResetEventSlim _connectionEvent = new ManualResetEventSlim(); @@ -58,7 +58,7 @@ private void TransportOnOnClientConnected(object sender, IDebuggerClient debugge FormatReconcileUtils.WriteReconcileResponse(dataStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); } - var session = new DebugSession(debuggerClient, WaitForSession); + var session = new DebugSession(debuggerClient); session.OnClose += OnSessionClose; _session = session; @@ -70,6 +70,7 @@ private void OnSessionClose() if (_session is DebugSession dbgSession) { dbgSession.OnClose -= OnSessionClose; + _connectionEvent.Reset(); _session = null; } } diff --git a/src/OneScript.DebugServices/Internal/DebugSession.cs b/src/OneScript.DebugServices/Internal/DebugSession.cs index e2c1570da..dd7174a0c 100644 --- a/src/OneScript.DebugServices/Internal/DebugSession.cs +++ b/src/OneScript.DebugServices/Internal/DebugSession.cs @@ -25,15 +25,17 @@ internal class DebugSession : IDebugSession private readonly ManualResetEventSlim _startEvent = new ManualResetEventSlim(); private readonly IMessageChannel _channel; - public DebugSession(IDebuggerClient connectedClient, bool waitForStart) + public DebugSession(IDebuggerClient connectedClient) { - _isStarted = !waitForStart; + _isStarted = false; _channel = new JsonDtoChannel(connectedClient); var ipcServer = new DefaultMessageServer(_channel) { ServerThreadName = "debug-server" }; + + ipcServer.OnError += CommunicationError; BreakpointManager = new DefaultBreakpointManager(); _threadManager = new ThreadManager(); @@ -46,7 +48,13 @@ public DebugSession(IDebuggerClient connectedClient, bool waitForStart) _threadManager.ThreadStopped += ThreadManagerOnThreadStopped; } - + + private void CommunicationError(object sender, CommunicationEventArgs e) + { + // Unexpected error in message loop + Dispose(); + } + private void ThreadManagerOnThreadStopped(object sender, ThreadStoppedEventArgs e) { MachineWaitToken token; diff --git a/src/OneScript.DebugServices/TcpDebugServer.cs b/src/OneScript.DebugServices/TcpDebugServer.cs index c1a425c81..9bd585ab0 100644 --- a/src/OneScript.DebugServices/TcpDebugServer.cs +++ b/src/OneScript.DebugServices/TcpDebugServer.cs @@ -7,6 +7,7 @@ This Source Code Form is subject to the terms of the using System; using System.IO; +using System.Net; using System.Net.Sockets; using System.Threading; using OneScript.DebugProtocol.Abstractions; @@ -30,6 +31,8 @@ public enum LogLevel Info, Error } + + public int ActualPort() => (_listener.LocalEndpoint as IPEndPoint)?.Port ?? 0; public delegate void LogHandler(LogLevel level, string message); @@ -69,6 +72,13 @@ private void StartListenerThread() } catch (SocketException e) { + if (_isListening == false) + { + // Сервер находится в процессе остановки внешним потоком + // и ошибка сокета не является ошибкой. + break; + } + OnLogEvent?.Invoke(LogLevel.Error, $"Socket exception: {e}"); if (OnListenException == null) { @@ -126,11 +136,11 @@ public Stream GetDataStream() public void Stop() { - OnLogEvent?.Invoke(LogLevel.Info, "Stopping listener"); + OnLogEvent?.Invoke(LogLevel.Debug, "Stopping listener"); _isListening = false; try { - _listener.Stop(); + _listener?.Stop(); } catch (Exception e) { diff --git a/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs b/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs new file mode 100644 index 000000000..7e2597eab --- /dev/null +++ b/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs @@ -0,0 +1,132 @@ +using System.IO; +using System.Threading; +using FluentAssertions; +using Moq; +using OneScript.DebugProtocol.Abstractions; +using OneScript.DebugProtocol.TcpServer; +using OneScript.DebugProtocol.Test.Tools; +using OneScript.DebugServices; +using ScriptEngine.Machine.Debugger; +using Xunit; + +namespace OneScript.DebugProtocol.Test +{ + public class DebuggerTests + { + [Fact(DisplayName = "Отладчик ждет входящего клиента и блокируется на получении сессии")] + public void TestBlockingOnIncomingClient() + { + var transport = new TestDebuggerTransport(); + var debugger = new DefaultDebugger(transport); + debugger.WaitForSession = true; + debugger.Start(); + + var syncEvent = new AutoResetEvent(false); + + IDebugSession session = null; + var waitingThread = new Thread(() => + { + syncEvent.Set(); + session = debugger.GetSession(); + syncEvent.Set(); + }) + { + IsBackground = true + }; + + waitingThread.Start(); + syncEvent.WaitOne(500).Should().BeTrue(); + Thread.Sleep(100); + waitingThread.ThreadState.Should().HaveFlag(ThreadState.WaitSleepJoin); + + var testStream = new MemoryStream(); + testStream.Write(FormatReconcileUtils.GetReconcileMagic()); + testStream.Position = 0; + + var clientMock = new Mock(); + clientMock.Setup(s => s.GetDataStream()) + .Returns(testStream); + + transport.RaiseConnect(clientMock.Object); + syncEvent.WaitOne(500).Should().BeTrue(); + + Assert.NotNull(session); + waitingThread.ThreadState.Should().Be(ThreadState.Stopped); + } + + [Fact(DisplayName = "Отладчик не ждет входящего клиента и не блокируется на получении сессии")] + public void TestNonBlockingOnIncomingClient() + { + var transport = new TestDebuggerTransport(); + var debugger = new DefaultDebugger(transport); + debugger.WaitForSession = false; + debugger.Start(); + + var syncEvent = new AutoResetEvent(false); + + IDebugSession session = null; + var waitingThread = new Thread(() => + { + syncEvent.Set(); + session = debugger.GetSession(); + syncEvent.WaitOne(); + }) + { + IsBackground = true + }; + + waitingThread.Start(); + syncEvent.WaitOne(500).Should().BeTrue(); + waitingThread.ThreadState.Should().HaveFlag(ThreadState.WaitSleepJoin); + + Assert.NotNull(session); + syncEvent.Set(); + } + + //[Fact(DisplayName = "Отладчик отладчик не ждет входящего клиента, но ждет начала сессии")] + public void TestNotBlockingAndWaitingForStart() + { + var transport = new TestDebuggerTransport(); + var debugger = new DefaultDebugger(transport); + debugger.WaitForSession = false; + debugger.Start(); + + var syncEvent = new AutoResetEvent(false); + transport.OnClientConnected += (sender, client) => + { + syncEvent.Set(); + }; + + var testStream = new MemoryStream(); + testStream.Write(FormatReconcileUtils.GetReconcileMagic()); + testStream.Position = 0; + + var clientMock = new Mock(); + clientMock.Setup(s => s.GetDataStream()) + .Returns(testStream); + + transport.RaiseConnect(clientMock.Object); + syncEvent.WaitOne(500).Should().BeTrue(); + + // Дождались соединения с сервером + var session = debugger.GetSession(); + var waitingThread = new Thread(() => + { + syncEvent.Set(); + session.WaitForStart(); + }) + { + IsBackground = true + }; + waitingThread.Start(); + syncEvent.WaitOne(500).Should().BeTrue(); + waitingThread.ThreadState.Should().HaveFlag(ThreadState.WaitSleepJoin); + + // Preparing start data + testStream.SetLength(0); + var rpcCall = RpcCall.Create(nameof(IDebuggerService), nameof(IDebuggerService.Execute), 0); + + } + + } +} \ No newline at end of file diff --git a/src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs b/src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs new file mode 100644 index 000000000..4b41e0dbd --- /dev/null +++ b/src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs @@ -0,0 +1,61 @@ +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using FluentAssertions; +using OneScript.DebugServices; +using Xunit; + +namespace OneScript.DebugProtocol.Test +{ + public class TcpServerTest + { + [Fact] + public void ServerCanStartAndStop() + { + var logMessages = new List(); + var syncEvent = new AutoResetEvent(false); + var server = new TcpDebugServer(0); + server.OnLogEvent += (level, message) => + { + if ((int)level >= (int)TcpDebugServer.LogLevel.Info) + { + logMessages.Add(message); + syncEvent.Set(); + } + }; + + server.Listen(); + syncEvent.WaitOne(500).Should().BeTrue(); + server.Stop(); + syncEvent.WaitOne(500).Should().BeTrue(); + + logMessages.Should() + .HaveCount(2) + .And.Contain("Starting listener thread") + .And.Contain("Listener thread stopped"); + } + + [Fact] + public void ServerCanAcceptClients() + { + var server = new TcpDebugServer(0); + var syncEvent = new AutoResetEvent(false); + server.OnClientConnected += (sender, client) => + { + client.Should().NotBeNull(); + client.Connected.Should().BeTrue(); + syncEvent.Set(); + }; + + server.Listen(); + var client = new TcpClient(); + client.Connect(new IPEndPoint(IPAddress.Loopback, server.ActualPort())); + syncEvent.WaitOne(500).Should().BeTrue(); + + client.Connected.Should().BeTrue(); + client.Dispose(); + server.Stop(); + } + } +} \ No newline at end of file diff --git a/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerTransport.cs b/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerTransport.cs new file mode 100644 index 000000000..63843d9de --- /dev/null +++ b/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerTransport.cs @@ -0,0 +1,25 @@ +using System; +using OneScript.DebugProtocol.Abstractions; +using OneScript.DebugServices; + +namespace OneScript.DebugProtocol.Test.Tools +{ + public class TestDebuggerTransport : IDebugServer + { + public void Listen() + { + } + + public void Stop() + { + } + + public void RaiseConnect(IDebuggerClient client) + { + OnClientConnected?.Invoke(this, client); + } + + public event EventHandler OnClientConnected; + public event EventHandler OnListenException; + } +} \ No newline at end of file From edb7e77a165fe6e8658fb8ecb2fdfa3eaaad4218 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 11 Nov 2025 15:04:13 +0300 Subject: [PATCH 134/191] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D1=8B=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D1=82=D0=B0=20=D1=81=D0=B5=D1=81=D1=81=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=BD=D0=B0=D0=B9=D0=B4=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5?= =?UTF-8?q?=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=B2=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=85=20=D0=B8=20=D0=BE=D1=82=D0=BB=D0=B0?= =?UTF-8?q?=D0=B4=D1=87=D0=B8=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/FormatReconcileUtils.cs | 18 +- .../TcpServer/JsonDtoChannel.cs | 34 ++-- .../TcpServer/StreamUtils.cs | 30 +++ .../DefaultDebugger.cs | 71 ++++--- .../Internal/ConnectableSessionProxy.cs | 60 ++++++ .../Internal/DebugSession.cs | 16 +- .../Internal/NoOpDebugSession.cs | 4 +- .../HostedScriptEngine.cs | 2 +- .../Machine/Debugger/IDebugSession.cs | 7 +- .../Machine/Debugger/IDebugger.cs | 3 +- .../Machine/StackMachineExecutor.cs | 13 +- .../DebuggerTests.cs | 192 ++++++++++-------- .../Tools/TestDebuggerClient.cs | 48 +++++ .../Tools/TestDebuggerTransport.cs | 25 --- .../ConsoleLaunchOptions.cs | 2 + src/VSCode.DebugAdapter/ConsoleProcess.cs | 6 + src/VSCode.DebugAdapter/DebugeeProcess.cs | 2 + src/VSCode.DebugAdapter/ServerProcess.cs | 2 - .../Transport/DebugClientFactory.cs | 17 +- src/VSCode.DebugAdapter/package.json | 5 + src/oscript/DebugBehavior.cs | 6 +- 21 files changed, 348 insertions(+), 215 deletions(-) create mode 100644 src/OneScript.DebugProtocol/TcpServer/StreamUtils.cs create mode 100644 src/OneScript.DebugServices/Internal/ConnectableSessionProxy.cs create mode 100644 src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerClient.cs delete mode 100644 src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerTransport.cs diff --git a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs index a84f42c42..99fa26ef3 100644 --- a/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs +++ b/src/OneScript.DebugProtocol/TcpServer/FormatReconcileUtils.cs @@ -63,7 +63,7 @@ public static bool CheckReconcileRequest(Stream stream) { var magic = GetReconcileMagic(); var buffer = new byte[magic.Length]; - ReadStream(stream, buffer, buffer.Length); + StreamUtils.ReadStream(stream, buffer, buffer.Length); for (int i = 0; i < magic.Length; i++) { if (buffer[i] != magic[i]) @@ -80,6 +80,7 @@ public static void WriteReconcileResponse(Stream target, short transport, short using var binaryWriter = new BinaryWriter(target, Encoding.UTF8, true); binaryWriter.Write(FORMAT_RECONCILE_RESPONSE_PREFIX); binaryWriter.Write(formatInfo); + binaryWriter.Flush(); } public static int EncodeFormatMarker(short transport, short dataVersion) @@ -95,20 +96,5 @@ public static (int, int) DecodeFormatMarker(int marker) return (transport, dataVersion); } - - private static void ReadStream(Stream stream, byte[] buffer, int length) - { - int readPosition = 0; - int bytesReceived = 0; - - while (bytesReceived < length) - { - bytesReceived = stream.Read(buffer, readPosition, length - bytesReceived); - if (bytesReceived == 0) - throw new IOException("Unexpected end of stream"); - - readPosition += bytesReceived; - } - } } } diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index e8e18bd26..67f6d9692 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -71,32 +71,24 @@ public object Read() if (!_enabled) throw new ObjectDisposedException(nameof(JsonDtoChannel)); - using (var socketReader = new BinaryReader(_dataStream, Encoding.UTF8, true)) + try { - var contentLength = socketReader.ReadInt32(); - var contentBuffer = new byte[contentLength]; - ReadStream(socketReader, contentBuffer, contentLength); - - using (var textReader = new StreamReader(new MemoryStream(contentBuffer), Encoding.UTF8, false)) + using (var socketReader = new BinaryReader(_dataStream, Encoding.UTF8, true)) { - using var reader = new JsonTextReader(textReader); - return JsonSerializer.CreateDefault().Deserialize(reader); + var contentLength = socketReader.ReadInt32(); + var contentBuffer = new byte[contentLength]; + StreamUtils.ReadStream(socketReader.BaseStream, contentBuffer, contentLength); + + using (var textReader = new StreamReader(new MemoryStream(contentBuffer), Encoding.UTF8, false)) + { + using var reader = new JsonTextReader(textReader); + return JsonSerializer.CreateDefault().Deserialize(reader); + } } } - } - - private void ReadStream(BinaryReader reader, byte[] buffer, int length) - { - int readPosition = 0; - int bytesReceived = 0; - - while (bytesReceived < length) + catch (Exception ex) { - bytesReceived = reader.Read(buffer, readPosition, length - bytesReceived); - if (bytesReceived == 0) - throw new IOException("Unexpected end of stream"); - - readPosition += bytesReceived; + throw new ChannelException("Channel read exception", ex); } } diff --git a/src/OneScript.DebugProtocol/TcpServer/StreamUtils.cs b/src/OneScript.DebugProtocol/TcpServer/StreamUtils.cs new file mode 100644 index 000000000..ef42f09b2 --- /dev/null +++ b/src/OneScript.DebugProtocol/TcpServer/StreamUtils.cs @@ -0,0 +1,30 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System.IO; + +namespace OneScript.DebugProtocol.TcpServer +{ + public class StreamUtils + { + public static void ReadStream(Stream stream, byte[] buffer, int length) + { + int readPosition = 0; + int bytesReceived = 0; + + while (bytesReceived < length) + { + var portionSize = stream.Read(buffer, readPosition, length - bytesReceived); + if (portionSize == 0) + throw new IOException("Unexpected end of stream"); + + readPosition += portionSize; + bytesReceived += portionSize; + } + } + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/DefaultDebugger.cs b/src/OneScript.DebugServices/DefaultDebugger.cs index 14b84d318..b01c1c4e6 100644 --- a/src/OneScript.DebugServices/DefaultDebugger.cs +++ b/src/OneScript.DebugServices/DefaultDebugger.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System.Diagnostics; -using System.Threading; using OneScript.DebugProtocol.Abstractions; using OneScript.DebugProtocol.TcpServer; using OneScript.DebugServices.Internal; @@ -25,9 +24,9 @@ public class DefaultDebugger : IDebugger private const short SUPPORTED_FORMAT_VERSION = 3; private readonly IDebugServer _transport; - private volatile IDebugSession _session; + private IDebugSession _session; - private ManualResetEventSlim _connectionEvent = new ManualResetEventSlim(); + private readonly object _sessionRecycleLock = new object(); public DefaultDebugger(IDebugServer transport) { @@ -35,20 +34,30 @@ public DefaultDebugger(IDebugServer transport) } public bool IsEnabled => true; - public bool WaitForSession { get; set; } + public bool AttachMode { get; set; } public void Start() { _transport.OnClientConnected += TransportOnOnClientConnected; + _transport.OnListenException += ListenerException; _transport.Listen(); } + private void ListenerException(object sender, ListenerErrorEventArgs e) + { + e.StopServer = true; + } + private void TransportOnOnClientConnected(object sender, IDebuggerClient debuggerClient) { - if (_session is DebugSession) + lock (_sessionRecycleLock) { - // Если есть активная сессия, то не начинаем новую - debuggerClient.Dispose(); + if (_session?.IsActive == true) + { + // Если есть активная сессия, то не начинаем новую + debuggerClient.Dispose(); + return; + } } var dataStream = debuggerClient.GetDataStream(); @@ -57,40 +66,44 @@ private void TransportOnOnClientConnected(object sender, IDebuggerClient debugge // Да, это наш фейковый заголовок FormatReconcileUtils.WriteReconcileResponse(dataStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); } - - var session = new DebugSession(debuggerClient); - session.OnClose += OnSessionClose; - - _session = session; - _connectionEvent.Set(); + else + { + // Не поддерживаем старый формат протокола отладки + debuggerClient.Dispose(); + return; + } + + lock (_sessionRecycleLock) + { + var session = new DebugSession(debuggerClient, AttachMode); + session.OnClose += OnSessionClose; + + if (_session is ConnectableSessionProxy proxy) + { + proxy.Connect(session); + } + else + { + _session = session; + } + } } - private void OnSessionClose() + private void OnSessionClose(DebugSession session) { - if (_session is DebugSession dbgSession) + lock (_sessionRecycleLock) { - dbgSession.OnClose -= OnSessionClose; - _connectionEvent.Reset(); + session.OnClose -= OnSessionClose; _session = null; } } public IDebugSession GetSession() { - if (_session == null) + lock (_sessionRecycleLock) { - if (WaitForSession) - { - _connectionEvent.Wait(); - Debug.Assert(_session != null); - } - else - { - _session = new NoOpDebugSession(); - } + return _session ??= new ConnectableSessionProxy(AttachMode); } - - return _session; } public void NotifyProcessExit(int exitCode) diff --git a/src/OneScript.DebugServices/Internal/ConnectableSessionProxy.cs b/src/OneScript.DebugServices/Internal/ConnectableSessionProxy.cs new file mode 100644 index 000000000..19f6b992b --- /dev/null +++ b/src/OneScript.DebugServices/Internal/ConnectableSessionProxy.cs @@ -0,0 +1,60 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System.Threading; +using ScriptEngine.Machine; +using ScriptEngine.Machine.Debugger; + +namespace OneScript.DebugServices.Internal +{ + internal class ConnectableSessionProxy : IDebugSession + { + private IDebugSession _session = new NoOpDebugSession(); + private bool _isConnected; + private readonly ManualResetEventSlim _connectionEvent = new ManualResetEventSlim(); + + public ConnectableSessionProxy(bool attachMode) + { + _isConnected = attachMode; + } + + public void Dispose() + { + var activeSession = _session; + + _connectionEvent.Reset(); + _isConnected = false; + _session = new NoOpDebugSession(); + + activeSession.Dispose(); + } + + public void Connect(IDebugSession session) + { + _session = session; + _isConnected = true; + _connectionEvent.Set(); + } + + public IBreakpointManager BreakpointManager => _session.BreakpointManager; + + public IThreadEventsListener ThreadManager => _session.ThreadManager; + + public void WaitReadyToRun() + { + if (_isConnected) + { + _session.WaitReadyToRun(); // просто делегируем + return; + } + + _connectionEvent.Wait(); + } + + public bool IsActive => _session.IsActive; + } +} \ No newline at end of file diff --git a/src/OneScript.DebugServices/Internal/DebugSession.cs b/src/OneScript.DebugServices/Internal/DebugSession.cs index dd7174a0c..f3778b106 100644 --- a/src/OneScript.DebugServices/Internal/DebugSession.cs +++ b/src/OneScript.DebugServices/Internal/DebugSession.cs @@ -24,10 +24,14 @@ internal class DebugSession : IDebugSession private readonly ManualResetEventSlim _startEvent = new ManualResetEventSlim(); private readonly IMessageChannel _channel; + + public bool IsActive { get; private set; } - public DebugSession(IDebuggerClient connectedClient) + public DebugSession(IDebuggerClient connectedClient, bool attachMode) { - _isStarted = false; + // Если это режим Attach, то не ждем готовности к запуску + // т.к. IDE не пришлет команду Execute и мы сразу считаем себя готовой сессией. + _isStarted = attachMode; _channel = new JsonDtoChannel(connectedClient); var ipcServer = new DefaultMessageServer(_channel) @@ -47,6 +51,7 @@ public DebugSession(IDebuggerClient connectedClient) _messageServer.Start(); _threadManager.ThreadStopped += ThreadManagerOnThreadStopped; + IsActive = true; } private void CommunicationError(object sender, CommunicationEventArgs e) @@ -79,14 +84,15 @@ public void Dispose() _threadManager.Dispose(); _messageServer.Stop(); _channel.Dispose(); + IsActive = false; - OnClose?.Invoke(); + OnClose?.Invoke(this); } public IBreakpointManager BreakpointManager { get; } public IThreadEventsListener ThreadManager => _threadManager; - public void WaitForStart() + public void WaitReadyToRun() { if (_isStarted) return; @@ -103,7 +109,7 @@ internal void SetReadyToRun() _startEvent.Set(); } - public event Action OnClose; + public event Action OnClose; private static ThreadStopReason ConvertStopReason(MachineStopReason reason) => reason switch { diff --git a/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs b/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs index 225ccb89b..b3677f268 100644 --- a/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs +++ b/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs @@ -14,7 +14,9 @@ internal class NoOpDebugSession : IDebugSession { public IBreakpointManager BreakpointManager { get; } = new NoOpBreakpointManager(); public IThreadEventsListener ThreadManager { get; } = new NoOpThreadEventsListener(); - public void WaitForStart() + public bool IsActive => false; + + public void WaitReadyToRun() { } public void Dispose() diff --git a/src/ScriptEngine.HostedScript/HostedScriptEngine.cs b/src/ScriptEngine.HostedScript/HostedScriptEngine.cs index 42e379324..6a26da3d6 100644 --- a/src/ScriptEngine.HostedScript/HostedScriptEngine.cs +++ b/src/ScriptEngine.HostedScript/HostedScriptEngine.cs @@ -98,7 +98,7 @@ public Process CreateProcess(IHostApplication host, SourceCode src) if (_engine.Debugger.IsEnabled) { _engine.Debugger.Start(); - _engine.Debugger.GetSession().WaitForStart(); + _engine.Debugger.GetSession().WaitReadyToRun(); } var compilerSvc = GetCompilerService(); diff --git a/src/ScriptEngine/Machine/Debugger/IDebugSession.cs b/src/ScriptEngine/Machine/Debugger/IDebugSession.cs index 1f20953cd..a1ffd1197 100644 --- a/src/ScriptEngine/Machine/Debugger/IDebugSession.cs +++ b/src/ScriptEngine/Machine/Debugger/IDebugSession.cs @@ -30,6 +30,11 @@ public interface IDebugSession : IDisposable /// Метод не блокируется, если сессия отладки запущена в режиме attach. /// Метод блокируется в т.ч. если сессия отладки не начата вообще. /// - void WaitForStart(); + void WaitReadyToRun(); + + /// + /// Указывает, что сессия отладки активна (инициирована со стороны IDE). + /// + bool IsActive { get; } } } \ No newline at end of file diff --git a/src/ScriptEngine/Machine/Debugger/IDebugger.cs b/src/ScriptEngine/Machine/Debugger/IDebugger.cs index 96f80f31e..685c41597 100644 --- a/src/ScriptEngine/Machine/Debugger/IDebugger.cs +++ b/src/ScriptEngine/Machine/Debugger/IDebugger.cs @@ -24,8 +24,7 @@ public interface IDebugger void Start(); /// - /// Получает текущую сессию отладки. Если отладчик должен ожидать подключения, - /// то блокируется до тех пор, пока отладчик не подключится. + /// Получает текущую сессию отладки. /// IDebugSession GetSession(); diff --git a/src/ScriptEngine/Machine/StackMachineExecutor.cs b/src/ScriptEngine/Machine/StackMachineExecutor.cs index a7f79833e..d80b82411 100644 --- a/src/ScriptEngine/Machine/StackMachineExecutor.cs +++ b/src/ScriptEngine/Machine/StackMachineExecutor.cs @@ -33,8 +33,11 @@ public void BeforeProcessStart(IBslProcess process) if (debugger.IsEnabled) { var session = debugger.GetSession(); - _machine.SetDebugMode(session.ThreadManager, session.BreakpointManager); - session.ThreadManager.ThreadStarted(process.VirtualThreadId, _machine); + if (session.IsActive) + { + _machine.SetDebugMode(session.ThreadManager, session.BreakpointManager); + session.ThreadManager.ThreadStarted(process.VirtualThreadId, _machine); + } } process.Services.Resolve().Machine = _machine; @@ -43,7 +46,11 @@ public void BeforeProcessStart(IBslProcess process) public void AfterProcessExit(IBslProcess process) { var debugger = process.Services.Resolve(); - debugger.GetSession().ThreadManager.ThreadExited(process.VirtualThreadId); + var session = debugger.GetSession(); + if (session.IsActive) + { + session.ThreadManager.ThreadExited(process.VirtualThreadId); + } } private BslValue Executor(IBslProcess process, BslObjectValue target, IExecutableModule module, BslScriptMethodInfo method, IValue[] arguments) diff --git a/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs b/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs index 7e2597eab..f1fc6604c 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs @@ -1,132 +1,144 @@ -using System.IO; +using System; using System.Threading; using FluentAssertions; -using Moq; -using OneScript.DebugProtocol.Abstractions; using OneScript.DebugProtocol.TcpServer; using OneScript.DebugProtocol.Test.Tools; using OneScript.DebugServices; -using ScriptEngine.Machine.Debugger; using Xunit; namespace OneScript.DebugProtocol.Test { public class DebuggerTests { - [Fact(DisplayName = "Отладчик ждет входящего клиента и блокируется на получении сессии")] - public void TestBlockingOnIncomingClient() + [Fact(DisplayName = "В режиме Launch сессия до соединения неактивна, после - активна.")] + public void TestActivatingOnIncomingClient() { - var transport = new TestDebuggerTransport(); + var transport = new TcpDebugServer(0); var debugger = new DefaultDebugger(transport); - debugger.WaitForSession = true; + debugger.AttachMode = false; debugger.Start(); - - var syncEvent = new AutoResetEvent(false); - - IDebugSession session = null; - var waitingThread = new Thread(() => - { - syncEvent.Set(); - session = debugger.GetSession(); - syncEvent.Set(); - }) - { - IsBackground = true - }; - - waitingThread.Start(); - syncEvent.WaitOne(500).Should().BeTrue(); - Thread.Sleep(100); - waitingThread.ThreadState.Should().HaveFlag(ThreadState.WaitSleepJoin); - - var testStream = new MemoryStream(); - testStream.Write(FormatReconcileUtils.GetReconcileMagic()); - testStream.Position = 0; - var clientMock = new Mock(); - clientMock.Setup(s => s.GetDataStream()) - .Returns(testStream); + debugger.GetSession().IsActive.Should().BeFalse(); - transport.RaiseConnect(clientMock.Object); - syncEvent.WaitOne(500).Should().BeTrue(); + var client = new TestDebuggerClient(); + client.Connect(transport.ActualPort()); - Assert.NotNull(session); - waitingThread.ThreadState.Should().Be(ThreadState.Stopped); + WaitEvent(() => debugger.GetSession().IsActive, 2000).Should().BeTrue(); } - [Fact(DisplayName = "Отладчик не ждет входящего клиента и не блокируется на получении сессии")] - public void TestNonBlockingOnIncomingClient() + [Theory(DisplayName = "В режиме Attach метод WaitReadyToRun не блокируется.")] + [InlineData(true)] + [InlineData(false)] + public void TestNonBlockingSessionWaitToRun(bool connectBeforeWait) { - var transport = new TestDebuggerTransport(); + var transport = new TcpDebugServer(0); var debugger = new DefaultDebugger(transport); - debugger.WaitForSession = false; + debugger.AttachMode = true; debugger.Start(); - - var syncEvent = new AutoResetEvent(false); - - IDebugSession session = null; - var waitingThread = new Thread(() => - { - syncEvent.Set(); - session = debugger.GetSession(); - syncEvent.WaitOne(); - }) + + debugger.GetSession().IsActive.Should().BeFalse(); + + var client = new TestDebuggerClient(); + if (connectBeforeWait) { - IsBackground = true - }; + client.Connect(transport.ActualPort()); + Thread.Sleep(100); + } + + var exitEvent = new ManualResetEventSlim(false); - waitingThread.Start(); - syncEvent.WaitOne(500).Should().BeTrue(); - waitingThread.ThreadState.Should().HaveFlag(ThreadState.WaitSleepJoin); + ThreadPool.QueueUserWorkItem(_ => + { + debugger.GetSession().WaitReadyToRun(); // не должно зависнуть + exitEvent.Set(); + }); - Assert.NotNull(session); - syncEvent.Set(); + exitEvent.Wait(2000).Should().BeTrue(); } - //[Fact(DisplayName = "Отладчик отладчик не ждет входящего клиента, но ждет начала сессии")] - public void TestNotBlockingAndWaitingForStart() + [Theory(DisplayName = "В режиме Launch метод WaitReadyToRun блокируется.")] + [InlineData(true)] + [InlineData(false)] + public void TestBlockingSessionWaitToRun(bool connectBeforeWait) { - var transport = new TestDebuggerTransport(); + var transport = new TcpDebugServer(0); var debugger = new DefaultDebugger(transport); - debugger.WaitForSession = false; + debugger.AttachMode = false; debugger.Start(); - - var syncEvent = new AutoResetEvent(false); - transport.OnClientConnected += (sender, client) => - { - syncEvent.Set(); - }; - var testStream = new MemoryStream(); - testStream.Write(FormatReconcileUtils.GetReconcileMagic()); - testStream.Position = 0; + debugger.GetSession().IsActive.Should().BeFalse(); - var clientMock = new Mock(); - clientMock.Setup(s => s.GetDataStream()) - .Returns(testStream); + var client = new TestDebuggerClient(); + if (connectBeforeWait) + { + client.Connect(transport.ActualPort()); + Thread.Sleep(100); + } - transport.RaiseConnect(clientMock.Object); - syncEvent.WaitOne(500).Should().BeTrue(); + var exitEvent = new ManualResetEventSlim(false); - // Дождались соединения с сервером - var session = debugger.GetSession(); - var waitingThread = new Thread(() => + ThreadPool.QueueUserWorkItem(_ => { - syncEvent.Set(); - session.WaitForStart(); - }) + debugger.GetSession().WaitReadyToRun(); // должно зависнуть до получения команды Execute + exitEvent.Set(); + }); + + if (!connectBeforeWait) { - IsBackground = true - }; - waitingThread.Start(); - syncEvent.WaitOne(500).Should().BeTrue(); - waitingThread.ThreadState.Should().HaveFlag(ThreadState.WaitSleepJoin); + client.Connect(transport.ActualPort()); + Thread.Sleep(100); + } - // Preparing start data - testStream.SetLength(0); - var rpcCall = RpcCall.Create(nameof(IDebuggerService), nameof(IDebuggerService.Execute), 0); + client.Send(RpcCall.Create(nameof(IDebuggerService), nameof(IDebuggerService.Execute), 0)); + exitEvent.Wait(2000).Should().BeTrue(); } + [Fact] + public void CanCreateAnotherSessionAfterDisconnect() + { + var transport = new TcpDebugServer(0); + var debugger = new DefaultDebugger(transport); + debugger.AttachMode = true; + debugger.Start(); + + debugger.GetSession().IsActive.Should().BeFalse(); + + var client = new TestDebuggerClient(); + client.Connect(transport.ActualPort()); + + var session = debugger.GetSession(); + + WaitEvent(() => session.IsActive, 2000).Should().BeTrue(); + + client.Send(RpcCall.Create(nameof(IDebuggerService), nameof(IDebuggerService.Disconnect), false)); + + WaitEvent(() => !session.IsActive, 2000).Should().BeTrue(); + + var client2 = new TestDebuggerClient(); + client2.Connect(transport.ActualPort()); + var session2 = debugger.GetSession(); + + WaitEvent(() => session2.IsActive, 2000).Should().BeTrue(); + + session2.Should().NotBe(session); + } + + private bool WaitEvent(Func predicate, int timeout) + { + var wait = new SpinWait(); + int start = Environment.TickCount; + while (!predicate()) + { + wait.SpinOnce(); + var elapsed = Environment.TickCount - start; + if (elapsed > timeout) + { + return false; + } + } + + return true; + } } } \ No newline at end of file diff --git a/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerClient.cs b/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerClient.cs new file mode 100644 index 000000000..9fddb999e --- /dev/null +++ b/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerClient.cs @@ -0,0 +1,48 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Text; +using Newtonsoft.Json; +using OneScript.DebugProtocol.TcpServer; + +namespace OneScript.DebugProtocol.Test.Tools +{ + public class TestDebuggerClient + { + private readonly TcpClient _client = new TcpClient(); + + public void Connect(int port) + { + _client.Connect(new IPEndPoint(IPAddress.Loopback, port)); + var handshake = FormatReconcileUtils.GetReconcileMagic(); + _client.GetStream().Write(handshake); + _client.GetStream().Flush(); + + var buffer = new byte[FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length + sizeof(int)]; + StreamUtils.ReadStream(_client.GetStream(), buffer, buffer.Length); + } + + public void Send(RpcCall message) + { + var content = JsonConvert.SerializeObject(message); + var contentBytes = Encoding.UTF8.GetBytes(content); + + using var bufferedStream = new MemoryStream(contentBytes.Length + sizeof(int)); + using var writer = new BinaryWriter(bufferedStream, Encoding.UTF8); + + writer.Write(contentBytes.Length); + writer.Write(contentBytes, 0, contentBytes.Length); + + bufferedStream.Position = 0; + bufferedStream.CopyTo(_client.GetStream()); + _client.GetStream().Flush(); + } + } +} \ No newline at end of file diff --git a/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerTransport.cs b/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerTransport.cs deleted file mode 100644 index 63843d9de..000000000 --- a/src/Tests/OneScript.DebugProtocol.Test/Tools/TestDebuggerTransport.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using OneScript.DebugProtocol.Abstractions; -using OneScript.DebugServices; - -namespace OneScript.DebugProtocol.Test.Tools -{ - public class TestDebuggerTransport : IDebugServer - { - public void Listen() - { - } - - public void Stop() - { - } - - public void RaiseConnect(IDebuggerClient client) - { - OnClientConnected?.Invoke(this, client); - } - - public event EventHandler OnClientConnected; - public event EventHandler OnListenException; - } -} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/ConsoleLaunchOptions.cs b/src/VSCode.DebugAdapter/ConsoleLaunchOptions.cs index ceca6bf1c..7345f3fac 100644 --- a/src/VSCode.DebugAdapter/ConsoleLaunchOptions.cs +++ b/src/VSCode.DebugAdapter/ConsoleLaunchOptions.cs @@ -14,5 +14,7 @@ public class ConsoleLaunchOptions : CommonLaunchOptions public string[] Args { get; set; } public string Cwd { get; set; } + + public bool? WaitOnStart { get; set; } } } \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/ConsoleProcess.cs b/src/VSCode.DebugAdapter/ConsoleProcess.cs index 58cf0c77a..b2690ad6f 100644 --- a/src/VSCode.DebugAdapter/ConsoleProcess.cs +++ b/src/VSCode.DebugAdapter/ConsoleProcess.cs @@ -99,6 +99,7 @@ protected override void InitInternal(JObject args) ScriptArguments = Utilities.ConcatArguments(options.Args); DebugPort = options.DebugPort; Environment = options.Env; + WaitOnStart = options.WaitOnStart ?? true; } protected override Process CreateProcess() @@ -108,6 +109,11 @@ protected override Process CreateProcess() { dbgArgs.Add($"-port={DebugPort}"); } + + if (!WaitOnStart) + { + dbgArgs.Add("-noWait"); + } var debugArguments = string.Join(" ", dbgArgs); var process = new Process(); diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index 1d0da524c..ef3cf9764 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -56,6 +56,8 @@ public int ProtocolVersion _activeProtocolVersion = value; } } + + public bool WaitOnStart { get; set; } public void Start() { diff --git a/src/VSCode.DebugAdapter/ServerProcess.cs b/src/VSCode.DebugAdapter/ServerProcess.cs index 68e6e7441..4f524ce58 100644 --- a/src/VSCode.DebugAdapter/ServerProcess.cs +++ b/src/VSCode.DebugAdapter/ServerProcess.cs @@ -27,8 +27,6 @@ public ServerProcess(PathHandlingStrategy pathHandling) : base(pathHandling) public IDictionary Environment { get; set; } = new Dictionary(); - public bool WaitOnStart { get; set; } - protected override Process CreateProcess() { var dbgArgs = new List(); diff --git a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs index 6298c8db5..ca4ea1082 100644 --- a/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs +++ b/src/VSCode.DebugAdapter/Transport/DebugClientFactory.cs @@ -87,7 +87,7 @@ private void ReconcileDataFormat(TcpClient client) var dataBuffer = new byte[requiredDataLength]; using (var binaryReader = new BinaryReader(stream, Encoding.ASCII, true)) { - ReadStream(binaryReader, dataBuffer,FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); + StreamUtils.ReadStream(binaryReader.BaseStream, dataBuffer,FormatReconcileUtils.FORMAT_RECONCILE_RESPONSE_PREFIX.Length); if (!FormatReconcileUtils.CheckReconcilePrefix(dataBuffer)) { @@ -160,21 +160,6 @@ private void EmptyIncomingBuffer(TcpClient client) Log.Verbose("Reading out completed"); } - private void ReadStream(BinaryReader reader, byte[] buffer, int length) - { - int readPosition = 0; - int bytesReceived = 0; - - while (bytesReceived < length) - { - bytesReceived = reader.Read(buffer, readPosition, length - bytesReceived); - if (bytesReceived == 0) - throw new IOException("Unexpected end of stream"); - - readPosition += bytesReceived; - } - } - private void SelectSafestFormat() { _protocolVersion = ProtocolVersions.SafestVersion; diff --git a/src/VSCode.DebugAdapter/package.json b/src/VSCode.DebugAdapter/package.json index 5a922ffba..7e7b63b76 100644 --- a/src/VSCode.DebugAdapter/package.json +++ b/src/VSCode.DebugAdapter/package.json @@ -113,6 +113,11 @@ "type": "string", "description": "Кодировка вывода отлаживаемого приложения. Отладчик будет интерпретировать вывод приложения в указанной кодировке", "default": "" + }, + "waitOnStart": { + "type": "boolean", + "description": "Ожидать подключения отладчика при старте приложения (не выполнять bsl до его подключения)", + "default": true } } }, diff --git a/src/oscript/DebugBehavior.cs b/src/oscript/DebugBehavior.cs index 6f77a42ff..2c4027bbd 100644 --- a/src/oscript/DebugBehavior.cs +++ b/src/oscript/DebugBehavior.cs @@ -18,7 +18,7 @@ public DebugBehavior(string path, string[] args) : base(path, args) public int Port { get; set; } = 2801; - public bool WaitOnStart { get; set; } = true; + public bool AttachMode { get; set; } = true; public override int Execute() { @@ -26,7 +26,7 @@ public override int Execute() DebugController = new DefaultDebugger(tcpDebugServer) { - WaitForSession = WaitOnStart + AttachMode = AttachMode }; return base.Execute(); @@ -77,7 +77,7 @@ public static AppBehavior Create(CmdLineHelper helper) return path == null ? null : new DebugBehavior(path, helper.Tail()) { - Port = port, WaitOnStart = !noWait + Port = port, AttachMode = noWait }; } } From 13bfc5be15f0d41aee6a3b79581f7f67c05b2185 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Wed, 12 Nov 2025 16:59:30 +0300 Subject: [PATCH 135/191] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D1=8B=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ScriptEngine/Machine/StackMachineExecutor.cs | 9 ++++++--- src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs | 7 +++++++ src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs | 7 +++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/ScriptEngine/Machine/StackMachineExecutor.cs b/src/ScriptEngine/Machine/StackMachineExecutor.cs index d80b82411..fb6aa2614 100644 --- a/src/ScriptEngine/Machine/StackMachineExecutor.cs +++ b/src/ScriptEngine/Machine/StackMachineExecutor.cs @@ -29,8 +29,8 @@ public void BeforeProcessStart(IBslProcess process) _machine = new MachineInstance(); _machine.Setup(process); - var debugger = process.Services.Resolve(); - if (debugger.IsEnabled) + var debugger = process.Services.TryResolve(); + if (debugger?.IsEnabled == true) { var session = debugger.GetSession(); if (session.IsActive) @@ -45,7 +45,10 @@ public void BeforeProcessStart(IBslProcess process) public void AfterProcessExit(IBslProcess process) { - var debugger = process.Services.Resolve(); + var debugger = process.Services.TryResolve(); + if (debugger?.IsEnabled != true) + return; + var session = debugger.GetSession(); if (session.IsActive) { diff --git a/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs b/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs index f1fc6604c..c6e3bb33d 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/DebuggerTests.cs @@ -1,3 +1,10 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + using System; using System.Threading; using FluentAssertions; diff --git a/src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs b/src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs index 4b41e0dbd..c2a210e51 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/TcpServerTest.cs @@ -1,3 +1,10 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + using System.Collections.Generic; using System.Net; using System.Net.Sockets; From f181da80b3653f10ce0274a5fe1ba187325cf1d4 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Wed, 12 Nov 2025 22:29:14 +0300 Subject: [PATCH 136/191] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Internal/ConnectableSessionProxy.cs | 4 ++-- src/ScriptEngine/Hosting/EngineBuilderExtensions.cs | 1 + .../Machine/Debugger/DisabledDebugSession.cs} | 7 ++----- .../Machine/Debugger}/DisabledDebugger.cs | 7 ++----- src/ScriptEngine/Machine/MachineStopManager.cs | 6 ------ src/oscript/CgiBehavior.cs | 1 + tests/cgi-output.os | 2 +- 7 files changed, 9 insertions(+), 19 deletions(-) rename src/{OneScript.DebugServices/Internal/NoOpDebugSession.cs => ScriptEngine/Machine/Debugger/DisabledDebugSession.cs} (91%) rename src/{OneScript.DebugServices => ScriptEngine/Machine/Debugger}/DisabledDebugger.cs (80%) diff --git a/src/OneScript.DebugServices/Internal/ConnectableSessionProxy.cs b/src/OneScript.DebugServices/Internal/ConnectableSessionProxy.cs index 19f6b992b..8af1bc24d 100644 --- a/src/OneScript.DebugServices/Internal/ConnectableSessionProxy.cs +++ b/src/OneScript.DebugServices/Internal/ConnectableSessionProxy.cs @@ -13,7 +13,7 @@ namespace OneScript.DebugServices.Internal { internal class ConnectableSessionProxy : IDebugSession { - private IDebugSession _session = new NoOpDebugSession(); + private IDebugSession _session = new DisabledDebugSession(); private bool _isConnected; private readonly ManualResetEventSlim _connectionEvent = new ManualResetEventSlim(); @@ -28,7 +28,7 @@ public void Dispose() _connectionEvent.Reset(); _isConnected = false; - _session = new NoOpDebugSession(); + _session = new DisabledDebugSession(); activeSession.Dispose(); } diff --git a/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs b/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs index 82b12d6a4..4f1b9a74d 100644 --- a/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs +++ b/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs @@ -56,6 +56,7 @@ public static IEngineBuilder SetDefaultOptions(this IEngineBuilder builder) services.RegisterSingleton(svc => new ThrowingErrorSink(CompilerException.FromCodeError)); services.RegisterSingleton(); services.RegisterSingleton(); + services.RegisterSingleton(); services.RegisterScoped(); diff --git a/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs b/src/ScriptEngine/Machine/Debugger/DisabledDebugSession.cs similarity index 91% rename from src/OneScript.DebugServices/Internal/NoOpDebugSession.cs rename to src/ScriptEngine/Machine/Debugger/DisabledDebugSession.cs index b3677f268..fb840dee7 100644 --- a/src/OneScript.DebugServices/Internal/NoOpDebugSession.cs +++ b/src/ScriptEngine/Machine/Debugger/DisabledDebugSession.cs @@ -5,12 +5,9 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using ScriptEngine.Machine; -using ScriptEngine.Machine.Debugger; - -namespace OneScript.DebugServices.Internal +namespace ScriptEngine.Machine.Debugger { - internal class NoOpDebugSession : IDebugSession + public class DisabledDebugSession : IDebugSession { public IBreakpointManager BreakpointManager { get; } = new NoOpBreakpointManager(); public IThreadEventsListener ThreadManager { get; } = new NoOpThreadEventsListener(); diff --git a/src/OneScript.DebugServices/DisabledDebugger.cs b/src/ScriptEngine/Machine/Debugger/DisabledDebugger.cs similarity index 80% rename from src/OneScript.DebugServices/DisabledDebugger.cs rename to src/ScriptEngine/Machine/Debugger/DisabledDebugger.cs index 1d0eabdf2..bea5f62f0 100644 --- a/src/OneScript.DebugServices/DisabledDebugger.cs +++ b/src/ScriptEngine/Machine/Debugger/DisabledDebugger.cs @@ -5,10 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using OneScript.DebugServices.Internal; -using ScriptEngine.Machine.Debugger; - -namespace OneScript.DebugServices +namespace ScriptEngine.Machine.Debugger { /// /// Отладчик, который ничего не делает. Заглушка для выключенного отладчика. @@ -21,7 +18,7 @@ public void Start() { } - public IDebugSession GetSession() => new NoOpDebugSession(); + public IDebugSession GetSession() => new DisabledDebugSession(); public void NotifyProcessExit(int exitCode) { diff --git a/src/ScriptEngine/Machine/MachineStopManager.cs b/src/ScriptEngine/Machine/MachineStopManager.cs index ea5b0f148..bfd2e7b88 100644 --- a/src/ScriptEngine/Machine/MachineStopManager.cs +++ b/src/ScriptEngine/Machine/MachineStopManager.cs @@ -22,12 +22,6 @@ internal enum DebugState internal class MachineStopManager { - private struct StopPoint - { - public ExecutionFrame frame; - public int line; - } - private DebugState _currentState = DebugState.Running; private readonly IBreakpointManager _breakpoints; private readonly MachineInstance _machine; diff --git a/src/oscript/CgiBehavior.cs b/src/oscript/CgiBehavior.cs index 848aa20e5..379f2650a 100644 --- a/src/oscript/CgiBehavior.cs +++ b/src/oscript/CgiBehavior.cs @@ -11,6 +11,7 @@ This Source Code Form is subject to the terms of the using System.Linq; using System.Text; using OneScript.Contexts; +using OneScript.DebugServices; using OneScript.Exceptions; using OneScript.Execution; using OneScript.StandardLibrary; diff --git a/tests/cgi-output.os b/tests/cgi-output.os index a35f6fdde..5c776ceba 100755 --- a/tests/cgi-output.os +++ b/tests/cgi-output.os @@ -370,7 +370,7 @@ Данные = СокрЛП(Данные); ПроверочнаяСтрока = СокрЛП(ПроверочнаяСтрока); - юТест.ПроверитьРавенство(Данные, ПроверочнаяСтрока); + юТест.ПроверитьРавенство(ПроверочнаяСтрока, Данные); КонецПроцедуры From 6a9379bf21da7cac001a65df1b02e1b28b50bae1 Mon Sep 17 00:00:00 2001 From: ShotgunPro Agent Date: Thu, 13 Nov 2025 06:53:23 +0000 Subject: [PATCH 137/191] Use ValueIsFilled and short timeout in HTTP tests | files:1 +9 -6 Squashed history from 'agent/use-valueisfilled-and-short-timeout-in-http-tests/69157f11' into a single commit. --- tests/http.os | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/tests/http.os b/tests/http.os index e430112e5..d6ca3f895 100644 --- a/tests/http.os +++ b/tests/http.os @@ -381,8 +381,57 @@ КонецФункции +Функция ПроверитьДоступность(АдресХоста) + + Попытка + // Короткие таймауты ~2 секунды для быстрой проверки доступности + Соединение = Новый HttpСоединение(АдресХоста); + Соединение.Таймаут = 2; + Запрос = Новый HttpЗапрос("/get"); + Запрос.Таймаут = 2; + Ответ = Соединение.Получить(Запрос); + Возврат Ответ.КодСостояния = 200; + Исключение + Сообщить("HTTP тесты: недоступен хост " + АдресХоста + " (" + ОписаниеОшибки() + ")"); + Возврат Ложь; + КонецПопытки; + +КонецФункции + +Функция ВыбратьДоступныйХост() + + // Если задана переменная окружения, используем ее при наличии значения + ЗначениеИзОкружения = ПеременныеСреды.Получить("OS_HTTP_TEST_HOST"); + Если ЗначениеЗаполнено(ЗначениеИзОкружения) Тогда + Если ПроверитьДоступность(ЗначениеИзОкружения) Тогда + Сообщить("HTTP тесты: выбран хост из переменной окружения OS_HTTP_TEST_HOST = " + ЗначениеИзОкружения); + Возврат ЗначениеИзОкружения; + Иначе + Сообщить("HTTP тесты: хост из переменной окружения недоступен: " + ЗначениеИзОкружения); + КонецЕсли; + КонецЕсли; + + // Пробуем типовые варианты httpbin + Кандидаты = Новый Массив; + Кандидаты.Добавить("https://httpbin.org"); + Кандидаты.Добавить("https://httpbingo.org"); + + Для Каждого Хост Из Кандидаты Цикл + Если ПроверитьДоступность(Хост) Тогда + Сообщить("HTTP тесты: автоматически выбран доступный хост " + Хост); + Возврат Хост; + КонецЕсли; + КонецЦикла; + + // По умолчанию сохраняем прежнее поведение + Сообщить("HTTP тесты: не удалось определить доступный хост, используется значение по умолчанию https://httpbin.org"); + Возврат "https://httpbin.org"; + +КонецФункции + /////////////////////////////////////////////////////////////////// /// ИНИЦИАЛИЗАЦИЯ /////////////////////////////////////////////////////////////////// -мАдресРесурса = "httpbin.org"; +мАдресРесурса = ВыбратьДоступныйХост(); +Сообщить("HTTP тесты: используется ресурс " + мАдресРесурса); From a12c7643f19c737ffeb706cd3406763625d21125 Mon Sep 17 00:00:00 2001 From: Andrei Ovsiankin Date: Thu, 13 Nov 2025 10:30:55 +0300 Subject: [PATCH 138/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/http.os | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/http.os b/tests/http.os index d6ca3f895..8b1e457cb 100644 --- a/tests/http.os +++ b/tests/http.os @@ -1,6 +1,6 @@ Перем юТест; -Перем мАдресРесурса; // URL ресурса (хоста) httpbin.org для тестирования запросов +Перем мАдресРесурса; // URL ресурса (хоста) для тестирования запросов Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт @@ -401,7 +401,7 @@ Функция ВыбратьДоступныйХост() // Если задана переменная окружения, используем ее при наличии значения - ЗначениеИзОкружения = ПеременныеСреды.Получить("OS_HTTP_TEST_HOST"); + ЗначениеИзОкружения = ПолучитьПеременнуюСреды("OS_HTTP_TEST_HOST"); Если ЗначениеЗаполнено(ЗначениеИзОкружения) Тогда Если ПроверитьДоступность(ЗначениеИзОкружения) Тогда Сообщить("HTTP тесты: выбран хост из переменной окружения OS_HTTP_TEST_HOST = " + ЗначениеИзОкружения); From fc8c6103873081dbdfd2f6cf8f52f8684517a29d Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 13 Nov 2025 12:16:37 +0300 Subject: [PATCH 139/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BE=D0=B1=20=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D0=B5=D0=BC=20=D0=B3=D0=BB=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC=20=D1=81=D0=B2=D0=BE?= =?UTF-8?q?=D0=B9=D1=81=D1=82=D0=B2=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contexts/ContextMethodInfo.cs | 2 +- .../Contexts/ContextPropertyInfo.cs | 2 +- .../Contexts/ISupportsDeprecation.cs | 14 +++++++++++ .../Compiler/StackMachineCodeGenerator.cs | 18 +++++++++++-- .../Machine/Contexts/SystemPropertyInfo.cs | 2 +- src/ScriptEngine/Machine/PropertyBag.cs | 16 ------------ .../ObsoleteMembersTest.cs | 25 +++++++++++-------- 7 files changed, 48 insertions(+), 31 deletions(-) create mode 100644 src/OneScript.Core/Contexts/ISupportsDeprecation.cs diff --git a/src/OneScript.Core/Contexts/ContextMethodInfo.cs b/src/OneScript.Core/Contexts/ContextMethodInfo.cs index fca7f5fe3..ced625fa2 100644 --- a/src/OneScript.Core/Contexts/ContextMethodInfo.cs +++ b/src/OneScript.Core/Contexts/ContextMethodInfo.cs @@ -18,7 +18,7 @@ namespace OneScript.Contexts /// /// Информация о методе, объявленном в классе .NET и помеченном атрибутом ContextMethod /// - public sealed class ContextMethodInfo : BslMethodInfo, IObjectWrapper + public sealed class ContextMethodInfo : BslMethodInfo, IObjectWrapper, ISupportsDeprecation { private readonly MethodInfo _realMethod; diff --git a/src/OneScript.Core/Contexts/ContextPropertyInfo.cs b/src/OneScript.Core/Contexts/ContextPropertyInfo.cs index b83f06447..15b6edb9d 100644 --- a/src/OneScript.Core/Contexts/ContextPropertyInfo.cs +++ b/src/OneScript.Core/Contexts/ContextPropertyInfo.cs @@ -16,7 +16,7 @@ namespace OneScript.Contexts /// /// Свойство, объявленое в CLR-классе через атрибут ContextProperty /// - public class ContextPropertyInfo : BslPropertyInfo, IObjectWrapper + public class ContextPropertyInfo : BslPropertyInfo, IObjectWrapper, ISupportsDeprecation { private readonly PropertyInfo _realProperty; private readonly ContextPropertyAttribute _scriptMark; diff --git a/src/OneScript.Core/Contexts/ISupportsDeprecation.cs b/src/OneScript.Core/Contexts/ISupportsDeprecation.cs new file mode 100644 index 000000000..0631834cc --- /dev/null +++ b/src/OneScript.Core/Contexts/ISupportsDeprecation.cs @@ -0,0 +1,14 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +namespace OneScript.Contexts +{ + public interface ISupportsDeprecation + { + bool IsDeprecated { get; } + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs index b9342f507..46de190d8 100644 --- a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs +++ b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs @@ -22,6 +22,7 @@ This Source Code Form is subject to the terms of the using OneScript.Language.LexicalAnalysis; using OneScript.Language.SyntaxAnalysis; using OneScript.Language.SyntaxAnalysis.AstNodes; +using OneScript.Localization; using OneScript.Sources; using OneScript.Values; using ScriptEngine.Machine; @@ -39,7 +40,9 @@ public partial class StackMachineCodeGenerator : BslSyntaxWalker private readonly List _forwardedMethods = new List(); private readonly Stack _nestedLoops = new Stack(); - private IBslProcess _compilerProcess; + private IBslProcess _compilerProcess; + + private HashSet _reportedOldProperties = new HashSet(); public StackMachineCodeGenerator(IErrorSink errorSink) { @@ -732,8 +735,19 @@ private int PushVariable(TerminalNode node) var symbol = _ctx.GetVariable(varNum); - if (symbol is IPropertySymbol) + if (symbol is IPropertySymbol propSymbol) { + if (propSymbol.Property is ISupportsDeprecation { IsDeprecated: true } && + !_reportedOldProperties.Contains(propSymbol.Property)) + { + var message = BilingualString.Localize( + $"Использование устаревшего свойства \"{identifier}\" в файле \"{_sourceCode.Location}\" ({node.Location})", + $"Usage of deprecated property \"{identifier}\" in \"{_sourceCode.Location}\" ({node.Location})" + ); + _reportedOldProperties.Add(propSymbol.Property); + SystemLogger.Write(message); + } + return PushPropertyReference(varNum); } else diff --git a/src/ScriptEngine/Machine/Contexts/SystemPropertyInfo.cs b/src/ScriptEngine/Machine/Contexts/SystemPropertyInfo.cs index b25e46668..bb5433404 100644 --- a/src/ScriptEngine/Machine/Contexts/SystemPropertyInfo.cs +++ b/src/ScriptEngine/Machine/Contexts/SystemPropertyInfo.cs @@ -13,7 +13,7 @@ This Source Code Form is subject to the terms of the namespace ScriptEngine.Machine.Contexts { - public class SystemPropertyInfo : BslPropertyInfo + public class SystemPropertyInfo : BslPropertyInfo, ISupportsDeprecation { private string _name; private string _alias; diff --git a/src/ScriptEngine/Machine/PropertyBag.cs b/src/ScriptEngine/Machine/PropertyBag.cs index d4d449fea..0a3ad548e 100644 --- a/src/ScriptEngine/Machine/PropertyBag.cs +++ b/src/ScriptEngine/Machine/PropertyBag.cs @@ -17,7 +17,6 @@ namespace ScriptEngine.Machine internal class PropertyBag : DynamicPropertiesAccessor, IAttachableContext { private readonly List _values = new List(); - private readonly HashSet _checkedDeprecatedProps = new HashSet(); public void Insert(IValue value, string identifier) { @@ -67,29 +66,14 @@ public override bool IsPropWritable(int propNum) public override IValue GetPropValue(int propNum) { - WarnDeprecation(propNum); return _values[propNum]; } public override void SetPropValue(int propNum, IValue newVal) { - WarnDeprecation(propNum); _values[propNum] = newVal; } - private void WarnDeprecation(int propNum) - { - if (_checkedDeprecatedProps.Contains(propNum)) - return; - - if (GetPropertyInfo(propNum) is SystemPropertyInfo { IsDeprecated: true }) - { - SystemLogger.Write($"Обращение к устаревшему свойству {GetPropertyInfo(propNum).Name}."); - } - - _checkedDeprecatedProps.Add(propNum); - } - public int Count => _values.Count; public override int GetMethodsCount() diff --git a/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs b/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs index 28fb20d59..d5c5e2ec7 100644 --- a/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs +++ b/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs @@ -10,6 +10,7 @@ This Source Code Form is subject to the terms of the using FluentAssertions; using Moq; using OneScript.Exceptions; +using OneScript.Execution; using OneScript.Values; using ScriptEngine; using ScriptEngine.Hosting; @@ -114,13 +115,14 @@ public void TestICallDeprecatedAliasAndHaveException() [Fact] public void DeprecatedEnumClassHasWarning() { - var env = new RuntimeEnvironment(); - var discoverer = new ContextDiscoverer(new DefaultTypeManager(), Mock.Of(), new TinyIocImplementation()); - discoverer.DiscoverGlobalContexts(env, GetType().Assembly, t => t == typeof(DeprecatedEnum)); + var host = DefaultEngineBuilder.Create() + .SetDefaultOptions() + .SetupEnvironment(e => e.AddAssembly(typeof(DeprecatedEnum).Assembly)) + .Build(); - env.GetGlobalProperty("СтароеИмя").Should().BeAssignableTo(); - env.GetGlobalProperty("СтароеИмя"); - + var source = host.Loader.FromString("А = СтароеИмя.Значение1"); + host.GetCompilerService().Compile(source, ForbiddenBslProcess.Instance); + _messages.Should().HaveCount(1) .And.Contain(x => x.Contains("СтароеИмя", StringComparison.InvariantCultureIgnoreCase)); } @@ -128,11 +130,14 @@ public void DeprecatedEnumClassHasWarning() [Fact] public void DeprecatedEnumClassHasNoWarningOnNewName() { - var env = new RuntimeEnvironment(); - var discoverer = new ContextDiscoverer(new DefaultTypeManager(), Mock.Of(), new TinyIocImplementation()); - discoverer.DiscoverGlobalContexts(env, GetType().Assembly, t => t == typeof(DeprecatedEnum)); + var host = DefaultEngineBuilder.Create() + .SetDefaultOptions() + .SetupEnvironment(e => e.AddAssembly(typeof(DeprecatedEnum).Assembly)) + .Build(); - env.GetGlobalProperty("НовоеПеречисление").Should().BeAssignableTo(); + var source = host.Loader.FromString("А = НовоеПеречисление.Значение1"); + host.GetCompilerService().Compile(source, ForbiddenBslProcess.Instance); + _messages.Should().HaveCount(0); } From 05db705113feb2eb43b4a200362bf5752010b3f5 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 13 Nov 2025 14:57:11 +0300 Subject: [PATCH 140/191] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D1=81=D1=8B=20=D0=B2=D0=B5=D0=B1=D1=81=D0=B5=D1=80=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=20=D0=B2=D1=8B=D0=BD=D0=B5=D1=81=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=B2=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScriptDocumenter/default_toc.json | 27 ++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/OneScriptDocumenter/default_toc.json b/src/OneScriptDocumenter/default_toc.json index 64e0f1724..a6981843c 100644 --- a/src/OneScriptDocumenter/default_toc.json +++ b/src/OneScriptDocumenter/default_toc.json @@ -224,10 +224,29 @@ { "text": "Веб-сервер Kestrel", "items": [ - {"text": "ВебСервер"}, - {"text": "HTTPКонтекст"}, - {"text": "HTTPСервисЗапрос"}, - {"text": "HTTPСервисОтвет"} + {"text": "ВебСервер"}, + {"text": "HTTPКонтекст"}, + {"text": "HTTPСервисЗапрос"}, + {"text": "HTTPСервисОтвет"}, + {"text": "ВебСокет"}, + {"text": "ДелегатЗапроса"}, + {"text": "ИнформацияОСоединении"}, + {"text": "КонтекстПодключенияВебСокета"}, + {"text": "КукиЗапроса"}, + {"text": "КукиОтвета"}, + {"text": "МенеджерВебСокетов"}, + {"text": "ПараметрыCookie"}, + {"text": "РежимSameSite"}, + {"text": "РезультатВебСокетПолучения"}, + {"text": "СловарьЗаголовков"}, + {"text": "СостояниеВебСокета"}, + {"text": "СтатусЗакрытияВебСокета"}, + {"text": "СтроковыеЗначения"}, + {"text": "ТипСообщенияВебСокета"}, + {"text": "ФайлФормы"}, + {"text": "ФайлыФормы"}, + {"text": "ФлагиСообщенияВебСокета"}, + {"text": "Форма"} ] } ] From 3614a2ddd9be707f3843ac36430634589d32c84a Mon Sep 17 00:00:00 2001 From: ShotgunPro Agent Date: Thu, 13 Nov 2025 14:19:53 +0000 Subject: [PATCH 141/191] Fix DST handling in UniversalTime for EET | files:1 +43 -0 Squashed history from 'agent/fix-dst-handling-in-universaltime-for-eet/6915e51c' into a single commit. --- .../Timezones/TimeZoneConverter.cs | 103 +++++++++++------- .../TimeZoneConverterTests.cs | 43 ++++++++ 2 files changed, 109 insertions(+), 37 deletions(-) create mode 100644 src/Tests/OneScript.StandardLibrary.Tests/TimeZoneConverterTests.cs diff --git a/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs b/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs index a2e499341..b62395dfa 100644 --- a/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs +++ b/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs @@ -18,51 +18,33 @@ public class TimeZoneConverter public static TimeSpan GetTimespan(string timezone) { - TimeSpan span; - - if (string.IsNullOrEmpty(timezone)) - span = TimeZoneInfo.Local.BaseUtcOffset; - else if (timezone.StartsWith("GMT", StringComparison.InvariantCultureIgnoreCase)) - span = TimeSpanByGMTString(timezone); - else - span = TimeZoneById(timezone).BaseUtcOffset; - - return span; + var tz = ResolveTimeZone(timezone); + return tz.BaseUtcOffset; } public static TimeZoneInfo TimeZoneById(string id) { - return TimeZoneInfo.FindSystemTimeZoneById(id); + return ResolveTimeZone(id); } public static DateTime ToUniversalTime(DateTime dt, string timeZone = null) { - var src = GetTimespan(timeZone); - var dest = TimeZoneInfo.Utc.BaseUtcOffset; - var span = dest.Subtract(src); - return dt.Add(span); + var tz = ResolveTimeZone(timeZone); + var unspecified = DateTime.SpecifyKind(dt, DateTimeKind.Unspecified); + return TimeZoneInfo.ConvertTimeToUtc(unspecified, tz); } public static DateTime ToLocalTime(DateTime dt, string timeZone = null) { - var dest = GetTimespan(timeZone); - var src = TimeZoneInfo.Utc.BaseUtcOffset; - var span = dest.Subtract(src); - return dt.Add(span); + var tz = ResolveTimeZone(timeZone); + var utc = DateTime.SpecifyKind(dt, DateTimeKind.Utc); + return TimeZoneInfo.ConvertTimeFromUtc(utc, tz); } public static int StandardTimeOffset(string timeZone = null, DateTime? dt = null) { - var dest = GetTimespan(timeZone); - - if (dt == null) - dt = DateTime.UtcNow; - - var local = dt.Value.Add(dest); - - var offset = local - dt.Value; - - return (int)offset.TotalSeconds; + var tz = ResolveTimeZone(timeZone); + return (int)tz.BaseUtcOffset.TotalSeconds; } public static IEnumerable GetAvailableTimeZones() @@ -79,15 +61,16 @@ public static string TimeZone() public static string TimeZonePresentation(string timeZone) { TimeSpan offset; - - if(IsGmtString(timeZone)) + if (IsGmtString(timeZone)) + { offset = TimeSpanByGMTString(timeZone); + } else - offset = TimeZoneById(timeZone).BaseUtcOffset; - - var oprt = offset.Hours >= 0 ? "+" : "-"; - var result = $"GMT{oprt}{offset.ToString(@"hh\:mm")}"; - return result; + { + var tz = ResolveTimeZone(timeZone); + offset = tz.BaseUtcOffset; + } + return FormatGmtOffset(offset); } private static TimeSpan TimeSpanByGMTString(string gmtString) @@ -124,9 +107,55 @@ private static TimeSpan TimeSpanByGMTString(string gmtString) private static bool IsGmtString(string zone) { - return zone.StartsWith("GMT", StringComparison.InvariantCultureIgnoreCase); + return !string.IsNullOrEmpty(zone) && zone.StartsWith("GMT", StringComparison.InvariantCultureIgnoreCase); } + private static string FormatGmtOffset(TimeSpan offset) + { + var sign = offset >= TimeSpan.Zero ? "+" : "-"; + var d = offset.Duration(); + return $"GMT{sign}{d.ToString(@"hh\:mm")}"; + } + + private static TimeZoneInfo ResolveTimeZone(string id) + { + if (string.IsNullOrWhiteSpace(id)) + return TimeZoneInfo.Local; + + if (IsGmtString(id)) + { + var offset = TimeSpanByGMTString(id); + var display = FormatGmtOffset(offset); + return TimeZoneInfo.CreateCustomTimeZone(id, offset, display, display); + } + + // Special handling for "EET" alias → Kyiv time zone + if (string.Equals(id, "EET", StringComparison.OrdinalIgnoreCase)) + { + var candidates = new[] + { + "E. Europe Standard Time", // Windows + "Europe/Kyiv", // IANA (modern) + "Europe/Kiev" // IANA (legacy) + }; + foreach (var cand in candidates) + { + try + { + return TimeZoneInfo.FindSystemTimeZoneById(cand); + } + catch (TimeZoneNotFoundException) + { + } + catch (InvalidTimeZoneException) + { + } + } + throw new TimeZoneNotFoundException(); + } + + return TimeZoneInfo.FindSystemTimeZoneById(id); + } } } diff --git a/src/Tests/OneScript.StandardLibrary.Tests/TimeZoneConverterTests.cs b/src/Tests/OneScript.StandardLibrary.Tests/TimeZoneConverterTests.cs new file mode 100644 index 000000000..8c03fc86f --- /dev/null +++ b/src/Tests/OneScript.StandardLibrary.Tests/TimeZoneConverterTests.cs @@ -0,0 +1,43 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using FluentAssertions; +using OneScript.StandardLibrary.Timezones; +using Xunit; + +namespace OneScript.StandardLibrary.Tests +{ + public class TimeZoneConverterTests + { + [Fact] + public void Kiev_EET_Summer_Dst_ToUtc_And_Back() + { + var dtLocal = new DateTime(2025, 6, 24, 10, 0, 0); + var utc = TimeZoneConverter.ToUniversalTime(dtLocal, "EET"); + utc.Should().Be(new DateTime(2025, 6, 24, 7, 0, 0, DateTimeKind.Utc)); + + var backLocal = TimeZoneConverter.ToLocalTime(utc, "EET"); + backLocal.Should().Be(dtLocal); + } + + [Fact] + public void Kiev_EET_StandardTimeOffset_Is_BaseUtcOffset_2h() + { + var dtLocal = new DateTime(2025, 6, 24, 10, 0, 0); + var offsetSeconds = TimeZoneConverter.StandardTimeOffset("EET", dtLocal); + offsetSeconds.Should().Be(7200); + } + + [Fact] + public void Kiev_EET_TimeZonePresentation_Is_GmtPlus02() + { + var presentation = TimeZoneConverter.TimeZonePresentation("EET"); + presentation.Should().Be("GMT+02:00"); + } + } +} \ No newline at end of file From b71e7a0dd9264529e9e5b6d0e101415c99e2d241 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Thu, 13 Nov 2025 21:48:44 +0300 Subject: [PATCH 142/191] =?UTF-8?q?fixes=20#1611=20=D0=92=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B7=D0=BE=D0=BD=D1=8B?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D0=BE=D1=81=D1=82=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=BE-=D0=B5=D0=B2=D1=80=D0=BE=D0=BF=D0=B5=D0=B9=D1=81?= =?UTF-8?q?=D0=BA=D0=BE=D0=B3=D0=BE=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=20=D0=B8=20=D0=BF=D0=BE=D1=87=D0=B8=D0=BD=D0=BA=D0=B0=20?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D1=87=D0=B5=D1=82=D0=B0=20=D0=BB=D0=B5=D1=82?= =?UTF-8?q?=D0=BD=D0=B5=D0=B3=D0=BE=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Timezones/TimeZoneConverter.cs | 37 ++++++++++--------- .../TimeZoneConverterTests.cs | 6 +-- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs b/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs index b62395dfa..d59b8a3d0 100644 --- a/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs +++ b/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs @@ -129,27 +129,28 @@ private static TimeZoneInfo ResolveTimeZone(string id) return TimeZoneInfo.CreateCustomTimeZone(id, offset, display, display); } - // Special handling for "EET" alias → Kyiv time zone - if (string.Equals(id, "EET", StringComparison.OrdinalIgnoreCase)) + // Имена таймзон в Windows отличаются от IANA и будут не совпадать + // с поведением 1С, работающей с ICU + // Надо заводить отдельную карту для коротких имен таймзон. + // Как минимум, для EET, CET, WET и может еще чего-то. + // Например, зона "E. Europe Standard Time" работает в .net только на Windows. + + // TODO: Переписать на нормальное решение + var tzFixes = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + tzFixes.Add("EET", "GMT+02:00"); + tzFixes.Add("СET", "GMT+01:00"); + + if (tzFixes.TryGetValue(id, out var gmtString)) { - var candidates = new[] + try { - "E. Europe Standard Time", // Windows - "Europe/Kyiv", // IANA (modern) - "Europe/Kiev" // IANA (legacy) - }; - foreach (var cand in candidates) + return ResolveTimeZone(gmtString); + } + catch (TimeZoneNotFoundException) + { + } + catch (InvalidTimeZoneException) { - try - { - return TimeZoneInfo.FindSystemTimeZoneById(cand); - } - catch (TimeZoneNotFoundException) - { - } - catch (InvalidTimeZoneException) - { - } } throw new TimeZoneNotFoundException(); } diff --git a/src/Tests/OneScript.StandardLibrary.Tests/TimeZoneConverterTests.cs b/src/Tests/OneScript.StandardLibrary.Tests/TimeZoneConverterTests.cs index 8c03fc86f..332adae69 100644 --- a/src/Tests/OneScript.StandardLibrary.Tests/TimeZoneConverterTests.cs +++ b/src/Tests/OneScript.StandardLibrary.Tests/TimeZoneConverterTests.cs @@ -15,13 +15,13 @@ namespace OneScript.StandardLibrary.Tests public class TimeZoneConverterTests { [Fact] - public void Kiev_EET_Summer_Dst_ToUtc_And_Back() + public void Kiev_Summer_Dst_ToUtc_And_Back() { var dtLocal = new DateTime(2025, 6, 24, 10, 0, 0); - var utc = TimeZoneConverter.ToUniversalTime(dtLocal, "EET"); + var utc = TimeZoneConverter.ToUniversalTime(dtLocal, "Europe/Kiev"); utc.Should().Be(new DateTime(2025, 6, 24, 7, 0, 0, DateTimeKind.Utc)); - var backLocal = TimeZoneConverter.ToLocalTime(utc, "EET"); + var backLocal = TimeZoneConverter.ToLocalTime(utc, "Europe/Kiev"); backLocal.Should().Be(dtLocal); } From 50e1f14186bde81af25e4dc1eb3053a2926aa3d4 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 09:23:20 +0300 Subject: [PATCH 143/191] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D0=BB=D1=83=D1=88?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B8=20=D0=BE=D1=82=D1=81=D1=83?= =?UTF-8?q?=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B8=20=D0=BF=D1=80=D0=BE=D1=86?= =?UTF-8?q?=D0=B5=D1=81=D1=81=D0=B0=20=D0=BD=D0=B0=20attach?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index ef3cf9764..0457841ca 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -87,7 +87,16 @@ public void Start() public void InitAttached() { var pid = _debugger.GetProcessId(); - _process = Process.GetProcessById(pid); + + try + { + _process = Process.GetProcessById(pid); + } + catch (ArgumentException ex) when (ex.Message.Contains("is not running")) + { + _process = Process.GetCurrentProcess(); + } + _attachMode = true; _process.EnableRaisingEvents = true; _process.Exited += Process_Exited; From 3ce09b72b95afdbb0f2d260e26989c75d113ae55 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 14 Nov 2025 10:07:54 +0300 Subject: [PATCH 144/191] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=80=D1=83=D1=81=D1=81=D0=BA=D1=83=D1=8E=20?= =?UTF-8?q?=D0=B1=D1=83=D0=BA=D0=B2=D1=83=20=D0=B8=20=D0=B4=D0=BE=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=B8=D0=BB=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D1=80=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs b/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs index d59b8a3d0..d603d3ecc 100644 --- a/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs +++ b/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs @@ -134,11 +134,13 @@ private static TimeZoneInfo ResolveTimeZone(string id) // Надо заводить отдельную карту для коротких имен таймзон. // Как минимум, для EET, CET, WET и может еще чего-то. // Например, зона "E. Europe Standard Time" работает в .net только на Windows. + // База данных IANA (https://www.iana.org/time-zones) в принципе не содержит этих таймзон, но вероятно + // имеет смысл их поддержать, т.к. в 1С они используются, и GetAvailableTimeZones() их возвращает. // TODO: Переписать на нормальное решение var tzFixes = new Dictionary(StringComparer.InvariantCultureIgnoreCase); tzFixes.Add("EET", "GMT+02:00"); - tzFixes.Add("СET", "GMT+01:00"); + tzFixes.Add("CET", "GMT+01:00"); if (tzFixes.TryGetValue(id, out var gmtString)) { From bb8d1c66c754a970df605f7320a60790c549cc7b Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 14 Nov 2025 10:10:53 +0300 Subject: [PATCH 145/191] =?UTF-8?q?=D0=A3=D0=BF=D1=80=D0=BE=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D1=81=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=82=D1=83=20=D0=BA=D1=80=D0=BE=D0=BB=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Timezones/TimeZoneConverter.cs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs b/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs index d603d3ecc..f5fd0bb58 100644 --- a/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs +++ b/src/OneScript.StandardLibrary/Timezones/TimeZoneConverter.cs @@ -144,17 +144,7 @@ private static TimeZoneInfo ResolveTimeZone(string id) if (tzFixes.TryGetValue(id, out var gmtString)) { - try - { - return ResolveTimeZone(gmtString); - } - catch (TimeZoneNotFoundException) - { - } - catch (InvalidTimeZoneException) - { - } - throw new TimeZoneNotFoundException(); + return ResolveTimeZone(gmtString); } return TimeZoneInfo.FindSystemTimeZoneById(id); From 5897c421b180e9ded08103c7d24b7f48a754f1ec Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 10:57:03 +0300 Subject: [PATCH 146/191] =?UTF-8?q?=D0=92=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20fullpath=20=D0=B4=D0=BB=D1=8F=20breakpoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/OscriptDebugSession.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 0b06ae403..3649a9e0b 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -221,12 +221,12 @@ public override void SetBreakpoints(Response response, dynamic arguments) } var path = (string) arguments.source.path; - path = ConvertClientPathToDebugger(path); - if (Environment.OSVersion.Platform == PlatformID.Win32NT) - { + //path = ConvertClientPathToDebugger(path); + //if (Environment.OSVersion.Platform == PlatformID.Win32NT) + //{ // vscode иногда передает путь, где диск - маленькая буква - path = NormalizeDriveLetter(path); - } + // path = NormalizeDriveLetter(path); + //} var breaks = new List(); From ed6cdaea100059bab9ef9862231c6c6c5afe0299 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 12:08:51 +0300 Subject: [PATCH 147/191] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?path=20=D0=B2=20source=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=BC=20=D0=BE=D0=BA=D1=80=D1=83=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PathHandlingStrategy.cs | 77 ++++++++++++------- src/VSCode.DebugAdapter/package.json | 5 +- 2 files changed, 53 insertions(+), 29 deletions(-) diff --git a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs index 53b66f4c1..0e5b90fe3 100644 --- a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs +++ b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs @@ -63,34 +63,55 @@ public string ConvertDebuggerPathToClient(string path) } } - public string ConvertClientPathToDebugger(string clientPath) - { - if (clientPath == null) { - return null; - } + public string ConvertClientPathToDebugger(string clientPath) + { + if (clientPath == null) { + return null; + } - if (DebuggerPathsAreUri) { - if (ClientPathsAreUri) { - return clientPath; - } - else { - var uri = new System.Uri(clientPath); - return uri.AbsoluteUri; - } - } - else { - if (ClientPathsAreUri) { - if (Uri.IsWellFormedUriString(clientPath, UriKind.Absolute)) { - Uri uri = new Uri(clientPath); - return uri.LocalPath; - } - Console.Error.WriteLine("path not well formed: '{0}'", clientPath); - return null; - } - else { - return clientPath; - } - } - } + string hostWorkspace = Environment.GetEnvironmentVariable("OSCRIPT_DEBUGWORKSPACE_HOST"); + string remoteWorkspace = Environment.GetEnvironmentVariable("OSCRIPT_DEBUGWORKSPACE_REMOTE"); + + if (!string.IsNullOrEmpty(hostWorkspace) && !string.IsNullOrEmpty(remoteWorkspace)) + { + string normalizedClientPath = clientPath.Replace('/', '\\'); + string normalizedHostWorkspace = hostWorkspace.Replace('/', '\\'); + + if (normalizedClientPath.StartsWith(normalizedHostWorkspace, StringComparison.OrdinalIgnoreCase)) + { + string relativePath = normalizedClientPath.Substring(normalizedHostWorkspace.Length); + + string normalizedRemote = remoteWorkspace.Replace('\\', '/'); + string normalizedRelative = relativePath.Replace('\\', '/'); + + string result = normalizedRemote.TrimEnd('/') + "/" + normalizedRelative.TrimStart('/'); + + return result; + } + } + + if (DebuggerPathsAreUri) { + if (ClientPathsAreUri) { + return clientPath; + } + else { + var uri = new System.Uri(clientPath); + return uri.AbsoluteUri; + } + } + else { + if (ClientPathsAreUri) { + if (Uri.IsWellFormedUriString(clientPath, UriKind.Absolute)) { + Uri uri = new Uri(clientPath); + return uri.LocalPath; + } + Console.Error.WriteLine("path not well formed: '{0}'", clientPath); + return null; + } + else { + return clientPath; + } + } + } } } \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/package.json b/src/VSCode.DebugAdapter/package.json index 7e7b63b76..6741d7aae 100644 --- a/src/VSCode.DebugAdapter/package.json +++ b/src/VSCode.DebugAdapter/package.json @@ -86,7 +86,10 @@ "type": "string" } }, - "default": null + "default": { + "OSCRIPT_DEBUGWORKSPACE_HOST": "", + "OSCRIPT_DEBUGWORKSPACE_REMOTE": "" + } }, "runtimeExecutable": { "type": [ From b71749d65ec24dbc5a87195af29e05cb03eb3603 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 12:26:30 +0300 Subject: [PATCH 148/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=B2=20attach,=20=D0=B4=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20=D0=BD=D0=BE=D1=80=D0=BC=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PathHandlingStrategy.cs | 39 +++++++++++++++---- src/VSCode.DebugAdapter/package.json | 18 +++++++-- 2 files changed, 46 insertions(+), 11 deletions(-) diff --git a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs index 0e5b90fe3..ab468e464 100644 --- a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs +++ b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs @@ -72,22 +72,47 @@ public string ConvertClientPathToDebugger(string clientPath) string hostWorkspace = Environment.GetEnvironmentVariable("OSCRIPT_DEBUGWORKSPACE_HOST"); string remoteWorkspace = Environment.GetEnvironmentVariable("OSCRIPT_DEBUGWORKSPACE_REMOTE"); - if (!string.IsNullOrEmpty(hostWorkspace) && !string.IsNullOrEmpty(remoteWorkspace)) + if (!string.IsNullOrWhiteSpace(hostWorkspace) && !string.IsNullOrWhiteSpace(remoteWorkspace)) { - string normalizedClientPath = clientPath.Replace('/', '\\'); - string normalizedHostWorkspace = hostWorkspace.Replace('/', '\\'); + + string normalizedClientPath = clientPath.Replace('/', '\\').Trim(); + string normalizedHostWorkspace = hostWorkspace.Replace('/', '\\').Trim(); + if (!normalizedHostWorkspace.EndsWith("\\")) + normalizedHostWorkspace += "\\"; + + if (!normalizedClientPath.EndsWith("\\")) + normalizedClientPath += "\\"; + if (normalizedClientPath.StartsWith(normalizedHostWorkspace, StringComparison.OrdinalIgnoreCase)) { + string relativePath = normalizedClientPath.Substring(normalizedHostWorkspace.Length); + relativePath = relativePath.TrimStart('\\'); - string normalizedRemote = remoteWorkspace.Replace('\\', '/'); - string normalizedRelative = relativePath.Replace('\\', '/'); + string normalizedRemote = remoteWorkspace.Trim().Replace('\\', '/'); + normalizedRemote = normalizedRemote.TrimEnd('/'); - string result = normalizedRemote.TrimEnd('/') + "/" + normalizedRelative.TrimStart('/'); - + string result = string.IsNullOrEmpty(relativePath) + ? normalizedRemote + : normalizedRemote + "/" + relativePath.Replace('\\', '/'); + + Console.Error.WriteLine($"Path mapped: '{clientPath}' -> '{result}'"); return result; } + else + { + Console.Error.WriteLine($"Path mapping skipped: '{clientPath}' doesn't start with '{hostWorkspace}'"); + } + } + else + { + if (string.IsNullOrWhiteSpace(hostWorkspace) && string.IsNullOrWhiteSpace(remoteWorkspace)) + Console.Error.WriteLine("Path mapping: both OSCRIPT_DEBUGWORKSPACE_HOST and OSCRIPT_DEBUGWORKSPACE_REMOTE are not set"); + else if (string.IsNullOrWhiteSpace(hostWorkspace)) + Console.Error.WriteLine("Path mapping: OSCRIPT_DEBUGWORKSPACE_HOST is not set or empty"); + else if (string.IsNullOrWhiteSpace(remoteWorkspace)) + Console.Error.WriteLine("Path mapping: OSCRIPT_DEBUGWORKSPACE_REMOTE is not set or empty"); } if (DebuggerPathsAreUri) { diff --git a/src/VSCode.DebugAdapter/package.json b/src/VSCode.DebugAdapter/package.json index 6741d7aae..18cfb1bcc 100644 --- a/src/VSCode.DebugAdapter/package.json +++ b/src/VSCode.DebugAdapter/package.json @@ -86,10 +86,7 @@ "type": "string" } }, - "default": { - "OSCRIPT_DEBUGWORKSPACE_HOST": "", - "OSCRIPT_DEBUGWORKSPACE_REMOTE": "" - } + "default": null }, "runtimeExecutable": { "type": [ @@ -135,6 +132,19 @@ "type": "string", "description": "Кодировка вывода отлаживаемого приложения. Отладчик будет интерпретировать вывод приложения в указанной кодировке", "default": "" + }, + "env": { + "type": "object", + "description": "Переменные окружения для debug adapter", + "patternProperties": { + "[a-zA-Z_][0-9a-zA-Z_]+": { + "type": "string" + } + }, + "default": { + "OSCRIPT_DEBUGWORKSPACE_HOST": "", + "OSCRIPT_DEBUGWORKSPACE_REMOTE": "" + } } } } From 9f4d14845c7c0f603ecff3534c48feeb605d6a54 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 12:42:53 +0300 Subject: [PATCH 149/191] =?UTF-8?q?=D0=92=D0=BA=D0=BB=D1=8E=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=BE=D1=80=D0=BC=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B2=20OscriptDebugSession?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/OscriptDebugSession.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 3649a9e0b..0b06ae403 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -221,12 +221,12 @@ public override void SetBreakpoints(Response response, dynamic arguments) } var path = (string) arguments.source.path; - //path = ConvertClientPathToDebugger(path); - //if (Environment.OSVersion.Platform == PlatformID.Win32NT) - //{ + path = ConvertClientPathToDebugger(path); + if (Environment.OSVersion.Platform == PlatformID.Win32NT) + { // vscode иногда передает путь, где диск - маленькая буква - // path = NormalizeDriveLetter(path); - //} + path = NormalizeDriveLetter(path); + } var breaks = new List(); From 716451b668d57b76aaafe9df0db60cdbc2959baf Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 13:52:45 +0300 Subject: [PATCH 150/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20wor?= =?UTF-8?q?kspace=20=D0=B2=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 5 ++ .../OscriptDebugSession.cs | 48 +++++++++++++++++-- .../PathHandlingStrategy.cs | 46 ------------------ src/VSCode.DebugAdapter/package.json | 22 ++++----- 4 files changed, 60 insertions(+), 61 deletions(-) diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index 0457841ca..c4b44b25d 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -59,6 +59,10 @@ public int ProtocolVersion public bool WaitOnStart { get; set; } + public string HostWorkspace { get; set; } + + public string RemoteWorkspace { get; set; } + public void Start() { _process = CreateProcess(); @@ -100,6 +104,7 @@ public void InitAttached() _attachMode = true; _process.EnableRaisingEvents = true; _process.Exited += Process_Exited; + } public void Init(JObject args) diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 0b06ae403..8df978f5a 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -137,7 +137,10 @@ public override void Attach(Response response, dynamic arguments) { LogCommandReceived(); SubscribeForDebuggeeProcessEvents(); + _debuggee.DebugPort = GetFromContainer(arguments, "debugPort", 2801); + _debuggee.HostWorkspace = GetFromContainer(arguments, "hostWorkspace", ""); + _debuggee.RemoteWorkspace = GetFromContainer(arguments, "remoteWorkspace", ""); DebugClientFactory debugClientFactory; try @@ -265,10 +268,49 @@ public override void SetBreakpoints(Response response, dynamic arguments) private string NormalizeDriveLetter(string path) { + var clientPath = path; + if (Path.IsPathRooted(path)) - return path[0].ToString().ToUpperInvariant() + path.Substring(1); - else - return path; + clientPath = path[0].ToString().ToUpperInvariant() + path.Substring(1); + + if (!string.IsNullOrWhiteSpace(_debuggee.HostWorkspace) && !string.IsNullOrWhiteSpace(_debuggee.RemoteWorkspace)) + { + + var hostWorkspace = _debuggee.HostWorkspace; + var remoteWorkspace = _debuggee.RemoteWorkspace; + + string normalizedClientPath = clientPath.Replace('/', '\\').Trim(); + string normalizedHostWorkspace = hostWorkspace.Replace('/', '\\').Trim(); + + if (!normalizedHostWorkspace.EndsWith("\\")) + normalizedHostWorkspace += "\\"; + + if (!normalizedClientPath.EndsWith("\\")) + normalizedClientPath += "\\"; + + if (normalizedClientPath.StartsWith(normalizedHostWorkspace, StringComparison.OrdinalIgnoreCase)) + { + + string relativePath = normalizedClientPath.Substring(normalizedHostWorkspace.Length); + relativePath = relativePath.TrimStart('\\'); + + string normalizedRemote = remoteWorkspace.Trim().Replace('\\', '/'); + normalizedRemote = normalizedRemote.TrimEnd('/'); + + string result = string.IsNullOrEmpty(relativePath) + ? normalizedRemote + : normalizedRemote + "/" + relativePath.Replace('\\', '/'); + + Console.Error.WriteLine($"Path mapped: '{clientPath}' -> '{result}'"); + return result; + } + else + { + Console.Error.WriteLine($"Path mapping skipped: '{clientPath}' doesn't start with '{hostWorkspace}'"); + } + } + + return clientPath; } diff --git a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs index ab468e464..3ab411c52 100644 --- a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs +++ b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs @@ -69,52 +69,6 @@ public string ConvertClientPathToDebugger(string clientPath) return null; } - string hostWorkspace = Environment.GetEnvironmentVariable("OSCRIPT_DEBUGWORKSPACE_HOST"); - string remoteWorkspace = Environment.GetEnvironmentVariable("OSCRIPT_DEBUGWORKSPACE_REMOTE"); - - if (!string.IsNullOrWhiteSpace(hostWorkspace) && !string.IsNullOrWhiteSpace(remoteWorkspace)) - { - - string normalizedClientPath = clientPath.Replace('/', '\\').Trim(); - string normalizedHostWorkspace = hostWorkspace.Replace('/', '\\').Trim(); - - if (!normalizedHostWorkspace.EndsWith("\\")) - normalizedHostWorkspace += "\\"; - - if (!normalizedClientPath.EndsWith("\\")) - normalizedClientPath += "\\"; - - if (normalizedClientPath.StartsWith(normalizedHostWorkspace, StringComparison.OrdinalIgnoreCase)) - { - - string relativePath = normalizedClientPath.Substring(normalizedHostWorkspace.Length); - relativePath = relativePath.TrimStart('\\'); - - string normalizedRemote = remoteWorkspace.Trim().Replace('\\', '/'); - normalizedRemote = normalizedRemote.TrimEnd('/'); - - string result = string.IsNullOrEmpty(relativePath) - ? normalizedRemote - : normalizedRemote + "/" + relativePath.Replace('\\', '/'); - - Console.Error.WriteLine($"Path mapped: '{clientPath}' -> '{result}'"); - return result; - } - else - { - Console.Error.WriteLine($"Path mapping skipped: '{clientPath}' doesn't start with '{hostWorkspace}'"); - } - } - else - { - if (string.IsNullOrWhiteSpace(hostWorkspace) && string.IsNullOrWhiteSpace(remoteWorkspace)) - Console.Error.WriteLine("Path mapping: both OSCRIPT_DEBUGWORKSPACE_HOST and OSCRIPT_DEBUGWORKSPACE_REMOTE are not set"); - else if (string.IsNullOrWhiteSpace(hostWorkspace)) - Console.Error.WriteLine("Path mapping: OSCRIPT_DEBUGWORKSPACE_HOST is not set or empty"); - else if (string.IsNullOrWhiteSpace(remoteWorkspace)) - Console.Error.WriteLine("Path mapping: OSCRIPT_DEBUGWORKSPACE_REMOTE is not set or empty"); - } - if (DebuggerPathsAreUri) { if (ClientPathsAreUri) { return clientPath; diff --git a/src/VSCode.DebugAdapter/package.json b/src/VSCode.DebugAdapter/package.json index 18cfb1bcc..ed6fdb26e 100644 --- a/src/VSCode.DebugAdapter/package.json +++ b/src/VSCode.DebugAdapter/package.json @@ -133,19 +133,17 @@ "description": "Кодировка вывода отлаживаемого приложения. Отладчик будет интерпретировать вывод приложения в указанной кодировке", "default": "" }, - "env": { - "type": "object", - "description": "Переменные окружения для debug adapter", - "patternProperties": { - "[a-zA-Z_][0-9a-zA-Z_]+": { - "type": "string" - } - }, - "default": { - "OSCRIPT_DEBUGWORKSPACE_HOST": "", - "OSCRIPT_DEBUGWORKSPACE_REMOTE": "" - } + "hostWorkspace": { + "type": "string", + "description": "Путь к каталогу проекта на локальной машине (при отладке удаленного процесса)", + "default": "" + }, + "remoteWorkspace": { + "type": "string", + "description": "Путь к каталогу проекта на удаленной машине (при отладке удаленного процесса)", + "default": "" } + } } } From 46d1f63f0e1344ca63c0270ffca948cfe13c8980 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 14:05:25 +0300 Subject: [PATCH 151/191] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=BE=D1=80=D0=BC=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=BF=D1=83=D1=82=D0=B5=D0=B9,=20=D1=83=D0=B4?= =?UTF-8?q?=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BA=D0=BE=D0=BD=D1=81=D0=BE?= =?UTF-8?q?=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/OscriptDebugSession.cs | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 8df978f5a..024190b98 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -285,14 +285,10 @@ private string NormalizeDriveLetter(string path) if (!normalizedHostWorkspace.EndsWith("\\")) normalizedHostWorkspace += "\\"; - if (!normalizedClientPath.EndsWith("\\")) - normalizedClientPath += "\\"; - if (normalizedClientPath.StartsWith(normalizedHostWorkspace, StringComparison.OrdinalIgnoreCase)) { string relativePath = normalizedClientPath.Substring(normalizedHostWorkspace.Length); - relativePath = relativePath.TrimStart('\\'); string normalizedRemote = remoteWorkspace.Trim().Replace('\\', '/'); normalizedRemote = normalizedRemote.TrimEnd('/'); @@ -301,13 +297,8 @@ private string NormalizeDriveLetter(string path) ? normalizedRemote : normalizedRemote + "/" + relativePath.Replace('\\', '/'); - Console.Error.WriteLine($"Path mapped: '{clientPath}' -> '{result}'"); return result; } - else - { - Console.Error.WriteLine($"Path mapping skipped: '{clientPath}' doesn't start with '{hostWorkspace}'"); - } } return clientPath; From c12dc8d8e3067e26b6df04c1c327199176c3fda1 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 14:49:17 +0300 Subject: [PATCH 152/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D1=8B=20=D0=BF=D1=83?= =?UTF-8?q?=D1=82=D0=B8=20=D0=B2=20DebugeeProcess,=20=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B8=D0=B5?= =?UTF-8?q?=D0=BC=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 45 ++++++++++++++++++- .../OscriptDebugSession.cs | 36 ++------------- 2 files changed, 47 insertions(+), 34 deletions(-) diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index c4b44b25d..c90906538 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -198,6 +198,41 @@ private void RaiseOutputReceivedEvent(string category, string data) OutputReceived?.Invoke(this, new DebugeeOutputEventArgs(category, data)); } + private string ApplyRemoteWorkspaceString(string path) + { + var clientPath = path; + + if (!string.IsNullOrWhiteSpace(HostWorkspace) && !string.IsNullOrWhiteSpace(RemoteWorkspace)) + { + + var hostWorkspace = HostWorkspace; + var remoteWorkspace = RemoteWorkspace; + + string normalizedClientPath = clientPath.Replace('/', '\\').Trim(); + string normalizedHostWorkspace = hostWorkspace.Replace('/', '\\').Trim(); + + if (!normalizedHostWorkspace.EndsWith("\\")) + normalizedHostWorkspace += "\\"; + + if (normalizedClientPath.StartsWith(normalizedHostWorkspace, StringComparison.OrdinalIgnoreCase)) + { + + string relativePath = normalizedClientPath.Substring(normalizedHostWorkspace.Length); + + string normalizedRemote = remoteWorkspace.Trim().Replace('\\', '/'); + normalizedRemote = normalizedRemote.TrimEnd('/'); + + clientPath = string.IsNullOrEmpty(relativePath) + ? normalizedRemote + : normalizedRemote + "/" + relativePath.Replace('\\', '/'); + + } + } + + return clientPath; + + } + private void Terminate() { if (!_terminated) @@ -273,7 +308,14 @@ public void SetExceptionsBreakpoints((string Id, string Condition)[] filters) public Breakpoint[] SetBreakpoints(IEnumerable breakpoints) { - var confirmedBreaks = _debugger.SetMachineBreakpoints(breakpoints.ToArray()); + var breakpointsArray = breakpoints.ToArray(); + + for (int i = 0; i < breakpointsArray.Length; i++) + { + breakpointsArray[i].Source = ApplyRemoteWorkspaceString(breakpointsArray[i].Source); + } + + var confirmedBreaks = _debugger.SetMachineBreakpoints(breakpointsArray); return confirmedBreaks; } @@ -297,6 +339,7 @@ public StackFrame[] GetStackTrace(int threadId, int firstFrameIdx, int limit) for (int i = firstFrameIdx; i < limit && i < allFrames.Length; i++) { allFrames[i].ThreadId = threadId; + allFrames[i].Source = ApplyRemoteWorkspaceString(allFrames[i].Source); result.Add(allFrames[i]); } diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 024190b98..39289502d 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -268,40 +268,10 @@ public override void SetBreakpoints(Response response, dynamic arguments) private string NormalizeDriveLetter(string path) { - var clientPath = path; - if (Path.IsPathRooted(path)) - clientPath = path[0].ToString().ToUpperInvariant() + path.Substring(1); - - if (!string.IsNullOrWhiteSpace(_debuggee.HostWorkspace) && !string.IsNullOrWhiteSpace(_debuggee.RemoteWorkspace)) - { - - var hostWorkspace = _debuggee.HostWorkspace; - var remoteWorkspace = _debuggee.RemoteWorkspace; - - string normalizedClientPath = clientPath.Replace('/', '\\').Trim(); - string normalizedHostWorkspace = hostWorkspace.Replace('/', '\\').Trim(); - - if (!normalizedHostWorkspace.EndsWith("\\")) - normalizedHostWorkspace += "\\"; - - if (normalizedClientPath.StartsWith(normalizedHostWorkspace, StringComparison.OrdinalIgnoreCase)) - { - - string relativePath = normalizedClientPath.Substring(normalizedHostWorkspace.Length); - - string normalizedRemote = remoteWorkspace.Trim().Replace('\\', '/'); - normalizedRemote = normalizedRemote.TrimEnd('/'); - - string result = string.IsNullOrEmpty(relativePath) - ? normalizedRemote - : normalizedRemote + "/" + relativePath.Replace('\\', '/'); - - return result; - } - } - - return clientPath; + return path[0].ToString().ToUpperInvariant() + path.Substring(1); + else + return path; } From 158c55d609661fc96e9767a5ea7747c5e93fb6b0 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 14 Nov 2025 15:47:06 +0300 Subject: [PATCH 153/191] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B0=D0=BD=D0=B3=D0=BB=D0=B8=D0=B9=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B9=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-EN.md | 112 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 100 insertions(+), 12 deletions(-) diff --git a/README-EN.md b/README-EN.md index aee550534..5b1dac8a4 100644 --- a/README-EN.md +++ b/README-EN.md @@ -1,23 +1,111 @@ -# README # +# OneScript # -### The project is an independent cross-platform open-source implementation of a virtual machine that executes scripts written in BSL (1C:Enterprise scripting language). +[![Join telegram chat](https://img.shields.io/badge/chat-telegram-blue?style=flat&logo=telegram)](https://t.me/oscript_library) [![DEV Build Status](https://build.oscript.io/buildStatus/icon?job=1Script%2Fdevelop&style=flat-square&subject=dev)](https://build.oscript.io/job/1Script/job/develop/) [![STABLE Build Status](https://build.oscript.io/buildStatus/icon?job=1Script%2Fmaster&style=flat-square&subject=stable)](https://build.oscript.io/job/1Script/job/master/) -![Logo](.github/logo-small.png) +## The project is an independent cross-platform implementation of a virtual machine that executes scripts written in the 1C:Enterprise language ## -Script execution doesn't use any 1C:Enterprise system libraries and doesn't require installation of 1C:Enterprise system on the target machine. +![Logo](.github/logo-small-2.png) ![Logo](.github/logo-small.png) -In other words, this is a possibility to write programs in the 1C (BSL) language without using the 1C:Enterprise platform. +The 1C:Enterprise system libraries are not used and installation of the 1C:Enterprise system on the target machine is not required. -## Name and pronunciation +In other words, this is a tool for writing and executing programs in the 1C language without using the 1C:Enterprise platform. -The project is called OneScript, can be abbreviated to the title 1Script on writing. +## Name and pronunciation ## -## Project site +The project is called OneScript, can be abbreviated to the title 1Script when writing. Pronounced as `[uanskript]`. -Basic information about the project, releases and technical documentation are located on the official website. +OneScript allows you to create and execute text scripts written in a language familiar to any specialist working with the 1C:Enterprise system. Using a familiar language for script automation significantly increases a specialist's productivity by simplifying the automation of manual operations. -http://oscript.io +## Project site ## -## Library of useful scripts +Main information about the project, releases and technical documentation are located on the official website -The OneScript package already includes a set of commonly used packages. +[https://oscript.io](https://oscript.io) + +## Library of useful scripts ## + +The OneScript distribution already includes a set of the most commonly used packages. These, as well as other packages, are located in the [oscript-library](https://github.com/oscript-library) repository and are available to everyone. There is a package manager [opm](https://github.com/oscript-library/opm). + +## Installation ## + +### Windows ### + +- (interactively) download from the [official website](https://oscript.io) or installer from the [Releases](https://github.com/EvilBeaver/OneScript/releases) section and run it. Then, Next, Done. + +### Linux ### + +- (interactively) download the required package from the [official website](https://oscript.io) or installer from the [Releases](https://github.com/EvilBeaver/OneScript/releases) section and install it. + +### MacOS ### + +There is no interactive installer, but the engine can be installed from the command line: + +- install [homebrew](https://brew.sh/index_ru) +- install mono with the command `brew install mono` +- download [ovm](https://github.com/oscript-library/ovm/releases). Download the `ovm.exe` file (despite the .exe extension it will work on MacOS) +- run the command `mono path/to/ovm.exe install stable` + + *Tip: To correctly specify the path to `ovm.exe`, drag the `ovm.exe` file into the terminal. Example of a full command: `mono Users/username/Downloads/ovm.exe install stable`* +- run the command `mono path/to/ovm.exe use stable` +- restart the terminal + +#### Additional configuration for Self-Contained distribution (does not require dotnet installation) + +``` +chmod +x ./oscript +xattr -d com.apple.quarantine *.dylib oscript +codesign -s - ./oscript +``` + + +# Manual local build + +## Preparation + +Links to distributions are provided below, however, please note that links may change over time and their relevance is not guaranteed. You need dotnet SDK and C++ compiler, which can be downloaded from anywhere you can find. + +* Install [MS BuildTools](https://visualstudio.microsoft.com/ru/thank-you-downloading-visual-studio/?sku=buildtools&rel=16), when installing enable targeting for .net6, .net4.8, install C++ compiler. + +## Build + +Launch Developer Command Prompt (will appear in the Start menu after installing MSBuildTools or Visual Studio). Navigate to the OneScript repository directory. The following are commands in the Developer Command Prompt console. +Build is performed using msbuild. Targets: + +* CleanAll - clean previous build results +* BuildAll - prepare files for distribution +* MakeCPP;MakeFDD;MakeSCD;BuildDebugger - separate build targets for preparing different types of distributions +* PrepareDistributionFiles - build full distribution packages (including libraries) +* PackDistributions - prepare ZIP archives for distribution +* CreateNuget - create packages for publishing to NuGet + +**Build parameters** + +* VersionPrefix - release number prefix, its main part, for example, 2.0.0 +* VersionSuffix - version suffix, which usually acts as an arbitrary versioning suffix according to semver, for example, beta-786 (optional) +* NoCppCompiler - if True - C++ compiler is not installed, C++ components (NativeApi support) will not be added to the build + +All distribution files will be placed in the `built` directory at the root of the 1Script repository + +### Building distribution contents in a separate directory + +```bat +msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles +``` + +### Building with manual version specification + +```bat +msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles /p:VersionPrefix=2.0.0 +``` + +### Building ZIP distributions + +```bat +msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles;PackDistributions /p:VersionPrefix=2.0.0 /p:VersionSuffix=preview223 +``` + +### Documentation generation + +```bat +msbuild Build.csproj /t:BuildDocumentation +``` From 37c237d591032daf87858d6a4084b79ab7ea8a50 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 16:13:30 +0300 Subject: [PATCH 154/191] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B5=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=83=D1=82?= =?UTF-8?q?=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 104 ++++++++++------------ 1 file changed, 47 insertions(+), 57 deletions(-) diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index c90906538..b1ec0afff 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -26,7 +26,7 @@ internal abstract class DebugeeProcess private bool _stdoutEOF; private bool _stderrEOF; private bool _attachMode; - + private Encoding _dapEncoding; private OneScriptDebuggerClient _debugger; @@ -41,7 +41,7 @@ public DebugeeProcess(PathHandlingStrategy pathHandling) { _strategy = pathHandling; } - + public bool HasExited => _process?.HasExited ?? true; public int ExitCode => _process.ExitCode; @@ -56,7 +56,7 @@ public int ProtocolVersion _activeProtocolVersion = value; } } - + public bool WaitOnStart { get; set; } public string HostWorkspace { get; set; } @@ -67,7 +67,7 @@ public void Start() { _process = CreateProcess(); var psi = _process.StartInfo; - + psi.RedirectStandardError = true; psi.RedirectStandardOutput = true; @@ -87,31 +87,31 @@ public void Start() _process.BeginOutputReadLine(); _process.BeginErrorReadLine(); } - + public void InitAttached() { var pid = _debugger.GetProcessId(); - + try { _process = Process.GetProcessById(pid); } - catch (ArgumentException ex) when (ex.Message.Contains("is not running")) + catch { _process = Process.GetCurrentProcess(); } - + _attachMode = true; _process.EnableRaisingEvents = true; _process.Exited += Process_Exited; } - + public void Init(JObject args) { InitInternal(args); } - + protected abstract Process CreateProcess(); protected abstract void InitInternal(JObject args); @@ -120,12 +120,12 @@ protected string ConvertClientPathToDebugger(string clientPath) { return _strategy.ConvertClientPathToDebugger(clientPath); } - + protected void LoadEnvironment(ProcessStartInfo psi, IDictionary variables) { if (variables == null || variables.Count <= 0) return; - + foreach (var pair in variables) { psi.EnvironmentVariables[pair.Key] = pair.Value; @@ -142,7 +142,7 @@ protected void SetEncoding(string encodingFromOptions) { _dapEncoding = Utilities.GetEncodingFromOptions(encodingFromOptions); } - + Log.Information("Encoding for debuggee output is {Encoding}", _dapEncoding); } @@ -156,10 +156,10 @@ public void SetClient(OneScriptDebuggerClient service) _debugger = service; ProtocolVersion = service.ProtocolVersion; } - + public event EventHandler OutputReceived; public event EventHandler ProcessExited; - + private void Process_Exited(object sender, EventArgs e) { _debugger?.Stop(); @@ -198,39 +198,29 @@ private void RaiseOutputReceivedEvent(string category, string data) OutputReceived?.Invoke(this, new DebugeeOutputEventArgs(category, data)); } - private string ApplyRemoteWorkspaceString(string path) + private string ConvertRemotePath(string path, string fromPrefix, string toPrefix) { - var clientPath = path; - - if (!string.IsNullOrWhiteSpace(HostWorkspace) && !string.IsNullOrWhiteSpace(RemoteWorkspace)) - { - - var hostWorkspace = HostWorkspace; - var remoteWorkspace = RemoteWorkspace; - - string normalizedClientPath = clientPath.Replace('/', '\\').Trim(); - string normalizedHostWorkspace = hostWorkspace.Replace('/', '\\').Trim(); - - if (!normalizedHostWorkspace.EndsWith("\\")) - normalizedHostWorkspace += "\\"; - - if (normalizedClientPath.StartsWith(normalizedHostWorkspace, StringComparison.OrdinalIgnoreCase)) - { - - string relativePath = normalizedClientPath.Substring(normalizedHostWorkspace.Length); - - string normalizedRemote = remoteWorkspace.Trim().Replace('\\', '/'); - normalizedRemote = normalizedRemote.TrimEnd('/'); - - clientPath = string.IsNullOrEmpty(relativePath) - ? normalizedRemote - : normalizedRemote + "/" + relativePath.Replace('\\', '/'); - - } - } - - return clientPath; + if (string.IsNullOrWhiteSpace(path) || + string.IsNullOrWhiteSpace(fromPrefix) || + string.IsNullOrWhiteSpace(toPrefix)) + return path; + var normalizedPath = path.Replace('\\', '/'); + var normalizedFrom = fromPrefix.Replace('\\', '/').TrimEnd('/'); + + var comparison = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) + ? StringComparison.OrdinalIgnoreCase + : StringComparison.Ordinal; + + if (normalizedPath.StartsWith(toPrefix.Replace('\\', '/'), comparison) || + !normalizedPath.StartsWith(normalizedFrom, comparison)) + return path; + + var relativePath = normalizedPath.Substring(normalizedFrom.Length).TrimStart('/'); + + var result = toPrefix.TrimEnd('/', '\\') + "/" + relativePath; + + return result; } private void Terminate() @@ -243,7 +233,7 @@ private void Terminate() { System.Threading.Thread.Sleep(100); } - + _terminated = true; _process = null; _debugger = null; @@ -260,7 +250,7 @@ public void HandleDisconnect(bool terminate) _debugger.Disconnect(terminate); var mustKill = terminate && !_attachMode; - + if (mustKill && _process != null && !_process.HasExited) { Log.Debug("Stopping child process..."); @@ -274,7 +264,7 @@ public void HandleDisconnect(bool terminate) Log.Debug("Process killed"); } } - + Log.Debug("Debuggee disconnected"); } @@ -309,14 +299,14 @@ public void SetExceptionsBreakpoints((string Id, string Condition)[] filters) public Breakpoint[] SetBreakpoints(IEnumerable breakpoints) { var breakpointsArray = breakpoints.ToArray(); - + for (int i = 0; i < breakpointsArray.Length; i++) { - breakpointsArray[i].Source = ApplyRemoteWorkspaceString(breakpointsArray[i].Source); + breakpointsArray[i].Source = ConvertRemotePath(breakpointsArray[i].Source, HostWorkspace, RemoteWorkspace); } - + var confirmedBreaks = _debugger.SetMachineBreakpoints(breakpointsArray); - + return confirmedBreaks; } @@ -324,22 +314,22 @@ public void BeginExecution(int threadId) { _debugger.Execute(threadId); } - + public StackFrame[] GetStackTrace(int threadId, int firstFrameIdx, int limit) { var allFrames = _debugger.GetStackFrames(threadId); - + if (limit == 0) limit = allFrames.Length; - if(allFrames.Length < firstFrameIdx) + if (allFrames.Length < firstFrameIdx) return new StackFrame[0]; var result = new List(); for (int i = firstFrameIdx; i < limit && i < allFrames.Length; i++) { allFrames[i].ThreadId = threadId; - allFrames[i].Source = ApplyRemoteWorkspaceString(allFrames[i].Source); + allFrames[i].Source = ConvertRemotePath(allFrames[i].Source, RemoteWorkspace, HostWorkspace); result.Add(allFrames[i]); } From 87f7e43d4192f6d471bc8a4e8e6973d04fe5033b Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 14 Nov 2025 16:49:34 +0300 Subject: [PATCH 155/191] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D1=81=D0=B2=D0=BE=D0=B9=D1=81=D1=82=D0=B2?= =?UTF-8?q?=D0=B0=20=D0=B2=D0=BE=D1=80=D0=BA=D1=81=D0=BF=D0=B5=D0=B9=D1=81?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..1c5256771 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "dotnet.defaultSolution": "src/1Script.sln" +} \ No newline at end of file From c1da60ae31a463ceada1e8ad53e0fccfc819a136 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 14 Nov 2025 16:50:04 +0300 Subject: [PATCH 156/191] =?UTF-8?q?fixed=20#1567=20-=20=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D0=BA=D0=B5=20=D0=BF=D0=B0=D1=80?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Contexts/Variable.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/OneScript.Core/Contexts/Variable.cs b/src/OneScript.Core/Contexts/Variable.cs index fa1914d9a..0b071ce4a 100644 --- a/src/OneScript.Core/Contexts/Variable.cs +++ b/src/OneScript.Core/Contexts/Variable.cs @@ -146,6 +146,11 @@ public bool Equals(IValueReference other) { return _reference.Equals(other); } + + public override string ToString() + { + return Value.ToString(); + } } #endregion From 4561a11d9fbe69c16dc30d82ed8496f14fac7a25 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 14 Nov 2025 20:49:16 +0300 Subject: [PATCH 157/191] =?UTF-8?q?=D0=A0=D0=B0=D1=81=D1=88=D0=B8=D1=80?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20ai-=D0=B0?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contexts.md | 174 +++++++++++++++++++++++++++++++++++++++++ docs/developer_docs.md | 149 +++++++++++++++++++---------------- 2 files changed, 256 insertions(+), 67 deletions(-) create mode 100644 docs/contexts.md diff --git a/docs/contexts.md b/docs/contexts.md new file mode 100644 index 000000000..69b55c98f --- /dev/null +++ b/docs/contexts.md @@ -0,0 +1,174 @@ +# BSL-контексты и глобальные методы: руководство разработчика + +Этот документ — практическая инструкция по добавлению в OneScript новых BSL‑контекстов (классов), методов и свойств, а также глобальных методов. Здесь собраны готовые сниппеты, чек‑лист и ссылки на ключевые места в исходниках. + +См. также «Архитектурный обзор»: docs/arhitecture_overview.md (карта компонентов и «куда лезть»). + +Содержание + +- Что такое BSL‑контекст +- Добавление нового BSL‑класса (контекста) +- Добавление свойства +- Добавление метода +- Создание глобального контекста и глобальных методов +- Регистрация библиотек и package‑loader.os +- i18n для API (двуязычные имена) +- Депрекейшен и предупреждения +- Тестирование (C# и BSL) +- Документация (OneScriptDocumenter) +- Безопасность +- Чек‑лист готовности + +1. Что такое BSL‑контекст + +- Контекст — это .NET‑класс, методы/свойства которого доступны из BSL. Экземпляр контекста может создаваться оператором Новый (класс‑контекст) или предоставляться глобально (глобальный контекст). +- Отражение и метаданные описываются атрибутами: + - [ContextClass("РусИмя", "EngName")] + - [ContextMethod("РусИмя", "EngName")] + - [ContextProperty("РусИмя", "EngName", CanRead = true, CanWrite = false, ...)] + - [GlobalContext(...)] для глобального контекста + - [ScriptConstructor] для создания объектов через Новый +- Двуязычные имена обязательны: все элементы публичного API должны иметь пару имен Рус/Eng. + +Где в коде смотреть + +- Атрибуты и метаданные: src/OneScript.Core/Contexts/* +- Базовые помощники контекстов: src/ScriptEngine/Machine/Contexts/* +- Глобальные контексты (база): GlobalContextBase — src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs + +2. Добавление нового BSL‑класса (контекста) + +Минимальный шаблон + +```csharp +using OneScript.Core.Contexts; +using OneScript.Core.Types; +using OneScript.Core.Values; +using ScriptEngine; +using ScriptEngine.Machine.Contexts; // AutoContext +using OneScript.Core.Execution; // IBslProcess + +[ContextClass("ПримерКласс", "SampleClass")] +public class SampleClass : AutoContext +{ + // Конструктор для BSL: Новый ПримерКласс() + [ScriptConstructor(Name = "Без параметров")] + public static SampleClass Ctor(TypeActivationContext ctx) + => new SampleClass(); + + // Свойство только для чтения + [ContextProperty("Версия", "Version", CanWrite = false)] + public IValue Version => ValueFactory.Create("1.0"); + + // Процедура с доступом к bsl-процессу (возможность запускать свой код bsl из кода c#) + [ContextMethod("Сообщить", "Message")] + public void Message(IBslProcess process, IValue text) + { + // вызов bsl-метода в том же стеке вызовов, что и у переданного процесса + process.Run(/*...*/); + } + + // Функция с возвратом значения + [ContextMethod("Сложить", "Add")] + public IValue Add(IValue a, IValue b) + { + var sum = a.AsNumber() + b.AsNumber(); + return ValueFactory.Create(sum); + } +} +``` + +Комментарии к шаблону + +- Наследуемся от AutoContext — это стандартная база для классов‑контекстов. +- [ScriptConstructor] — статический фабричный метод, возможно, принимающий TypeActivationContext. Можно объявить несколько перегрузок. +- IBslProcess можно внедрять первым параметром метода, чтобы получить доступ к сервисам/окружению выполнения. +- Возвраты: + - Процедура — метод без возвращаемого значения (void). + - Функция — возвращает IValue или конвертируемый тип C# (см. ContextValuesMarshaller). + +Регистрация в движке + +- При старте ContextDiscoverer просканирует сборку и автоматически зарегистрирует в движке все классы, помеченные атрибутами ContextClass, GlobalContext, EnumerationType + +3. Добавление свойства + +Шаблон + +```csharp +[ContextProperty("Порог", "Threshold", CanRead = true, CanWrite = true)] +public IValue Threshold +{ + get => ValueFactory.Create(_threshold); + set => _threshold = value.AsNumber(); +} +private decimal _threshold = 0m; +``` + +Заметки + +- CanRead/CanWrite управляют доступностью геттера/сеттера из BSL, если не указаны, берутся наличия стандартных get/set у свойства. +- Маршаллинг значений свойства автоматический. + + +4. Добавление метода + +Шаблон процедуры и функции + +```csharp +// Процедура, изменяющая параметр по ссылке +[ContextMethod("УдвоитьЧисло", "DoubleNumber")] +public int DoubleNumber(int number) +{ + var doubled = number * 2; + return doubled; +} +``` + +Значения параметров и результат метода будут автоматически сконвертированы из типов C# в тиаы bsl. + +Заметки + +- Для передачи аргумента по ссылке: используйте тип IVariable — в него можно присвоить новое значение через .Value. +- По значению: используйте типы C# напрямую, если они поддерживаются маршаллером, или IValue. + +5. Создание глобального контекста и глобальных методов + +Глобальный контекст + +```csharp +using OneScript.Core.Contexts; +using OneScript.Core.Values; +using ScriptEngine.Machine.Contexts; + +[GlobalContext(Category = "Мои функции")] +public class MyGlobals : GlobalContextBase +{ + // Фабрика экземпляра для внедрения в глобальную область + public static IAttachableContext CreateInstance() => new MyGlobals(); + + [ContextMethod("МояФункция", "MyFunc")] + public IValue MyFunc(IValue x) + { + return ValueFactory.Create(x.ToString().Length); + } +} +``` + +Заметки + +- По умолчанию глобальные контексты регистрируются автоматически (ManualRegistration = false). Достаточно, чтобы сборка была добавлена в окружение. +- Вручную можно внедрить через HostedScriptEngine.InjectObject или IRuntimeEnvironment.InjectObject. + +Добавление метода в существующий глобальный контекст + +- Например, StandardGlobalContext: добавьте [ContextMethod] в соответствующий класс и реализуйте логику. +- Внимание: изменение публичного API стандартной библиотеки требует обсуждения с мэйнтейнерами. + +6. Регистрация библиотек и package‑loader.os + +- HostedScript ищет библиотеку и вызывает package‑loader.os (дефолтный или кастомный). +- Основные операции загрузчика (см. src/ScriptEngine.HostedScript/LibraryLoader.cs): + - ДобавитьКласс/AddClass("path", "ИмяКласса") — регистрирует новый BSL‑тип; + - ДобавитьМодуль/AddModule("path", "ИмяМодуля") — подключает модуль как глобальный; + - ДобавитьМакет/AddTemplate — регистрирует шаблон. \ No newline at end of file diff --git a/docs/developer_docs.md b/docs/developer_docs.md index 3a2c9b42b..1541add6e 100644 --- a/docs/developer_docs.md +++ b/docs/developer_docs.md @@ -6,12 +6,24 @@ OneScript — реализация языка, совместимого с синтаксисом 1С/BSL. В основе - стековая виртуальная машина. Проект включает реализацию компилятора, исполняющей среды, системы типов и стандартной библиотеки BSL. Поверх этого — инструменты (CLI, раннер), отладка (DAP), веб-обёртки и API для нативных расширений. +OneScript — открытая реализация языка 1С/BSL поверх .NET, со стековой ВМ и стандартной библиотекой. Сценарии исполняются CLI oscript либо внедряются в приложения через HostedScript. + Слои (сверху вниз): -- Приложения и инструменты: oscript (CLI), StandaloneRunner, VSCode.DebugAdapter, OneScriptDocumenter, примеры (TestApp, Component). -- Хостинг и сервисы: ScriptEngine.HostedScript, DebugServices, Web.Server. -- Рантайм: ScriptEngine, OneScript.Native (компиляция/исполнение, встроенные функции). -- Ядро/язык/библиотека: OneScript.Core (типы/контексты), OneScript.Language (лексер/парсер/AST), OneScript.StandardLibrary. -- Интеграции: ScriptEngine.NativeApi (C++ расширения). +- Приложения и инструменты: + - src/oscript — консольный хост, основное приложение; + - src/VSCode.DebugAdapter — адаптер DAP; + - src/OneScriptDocumenter — генерация документации; + - src/TestApp, src/Component — примеры использования. +- Хостинг и сервисы: src/ScriptEngine.HostedScript, src/OneScript.DebugServices, src/OneScript.Web.Server. +- Рантайм (компиляция/исполнение, встроенные функции): + - src/ScriptEngine (стековая ВМ) + - src/OneScript.Native (нативный бэкенд). +- Ядро/язык: + - OneScript.Core (типы/контексты) — основные инфраструктурные компоненты для обоих рантаймов + - OneScript.Language (лексер/парсер/AST) +- Стандартная библиотека языка BSL: + - OneScript.StandardLibrary — реализация стандартных прикладных классов (массивы, работа с файлами, сетью и пр.) +- Интеграции: ScriptEngine.NativeApi (Мост к внешним компонентам на C++, совместимым с NativeApi 1С). - Инструмент генерации автодокументации OneScriptDocumenter ## 2 Быстрый старт для контрибьютора @@ -20,58 +32,68 @@ OneScript — реализация языка, совместимого с си - Запуск тестов: проекты src/Tests/* (C#) и папка tests/* (скрипты .os). - Если добавляете новый контекст/тип — обычно правки в OneScript.Core/ScriptEngine/StandardLibrary, плюс модульные тесты. +Псевдонимы API приняты двуязычные: РусИмя/EngName (см. атрибуты ContextClass/Method/Property). + +Соглашение по ссылкам: указываются относительные пути репозитория. + ## 3 Обзор проектов (назначение, ключевые узлы) Ниже по каждому проекту — зачем он нужен, где искать основную логику и какие классы отвечают за ключевые задачи. -### 3.1 OneScript.Language — лексер, парсер, AST +### 3.1 OneScript.Language — лексер/препроцессор/парсер/AST Назначение: преобразует исходный BSL‑код в токены и синтаксическое дерево, обрабатывает директивы препроцессора. Проект сделан максимально независимым и отчуждаемым, и должен иметь возможность использоваться в других решениях, не связанных с 1Script, как просто парсер BSL. -- Лексер: LexicalAnalysis/ - - DefaultLexer.cs — основной лексер. - - Token.cs, Lexem.cs, LexemType.cs — токены/лексемы. - - LexerBuilder.cs, LexerDetectorBuilder.cs — сборка/конфигурация лексера. - - Разные состояния: StringLexerState.cs, NumberLexerState.cs, CommentLexerState.cs, PreprocessorDirectiveLexerState.cs и др. -- Парсер и AST: SyntaxAnalysis/ - - DefaultBslParser.cs — основной парсер. - - Узлы AST: AstNodes/* (ModuleNode.cs, MethodNode.cs, CallNode.cs, BinaryOperationNode.cs, VariableDefinitionNode.cs, TryExceptNode.cs, If/While/For‑узлы и др.). - - ParserContext.cs, NodeBuilder.cs — контекст и построение дерева. -- Диагностика: SyntaxErrorException.cs, CodeError.cs, ErrorPositionInfo.cs, LocalizedErrors.cs. +- Где в коде: + - LexicalAnalysis/* — лексер. DefaultLexer.cs, различные состояния (String/Number/Comment/PreprocessorDirective/etc). + - SyntaxAnalysis/* — парсер и AST: DefaultBslParser.cs, BslSyntaxWalker.cs, AstNodes/* (ModuleNode, MethodNode, CallNode, TryExceptNode, *LoopNode, Binary/UnaryOperationNode и др.). + - Препроцессор: PreprocessingLexer.cs, PreprocessorHandlers.cs, RegionDirectiveHandler.cs, ImportDirectivesHandler.cs, ModuleAnnotationDirectiveHandler.cs. + - Диагностика: CodeError.cs, ErrorPositionInfo.cs, SyntaxErrorException.cs, LocalizedErrors.cs. +- Жизненный цикл: + 1) Лексер производит Lexem с типом/токеном. + 2) Препроцессор обрабатывает директивы (#Если/#Область/#Использовать). + 3) Парсер строит AST (BslSyntaxNode), восстанавливается после ошибок (IErrorRecoveryStrategy). + 4) AST передаётся компилятору (CompilerFrontend) рантайма. +- Точки расширения: + - собственные директивы препроцессора (IDirectiveHandler -> зарегистрировать в DI); + - обход AST через BslSyntaxWalker. На выходе вы получаете ModuleNode/AST, пригодный для компиляции рантаймом/бэкендом или обработки статическим анализатором. ### 3.2 OneScript.Core — система типов, значения, отражение контекстов Назначение: общий объектный каркас значений BSL, контекстов (объекты/методы/свойства), аннотаций и исключений. -- Модель значений: Values/ - - IValue, BslValue (база), конкретные типы: BslStringValue.cs, BslNumericValue.cs, BslBooleanValue.cs, BslDateValue.cs, BslNullValue.cs, BslUndefinedValue.cs, BslTypeValue.cs, BslObjectValue.cs. - - Ссылки на значения: IValueReference, ValueReference.cs, PropertyValueReference.cs, IndexedValueReference.cs. -- Контексты и отражение: Contexts/ - - ContextClassAttribute.cs, ContextMethodAttribute.cs, ContextPropertyAttribute.cs — аннотации контекстов/членов. - - BslMethodInfo.cs, BslPropertyInfo.cs, BslFieldInfo.cs — метаданные членов. - - ReflectedClassType.cs, ClassBuilder.cs — построение и отражение классов контекстов. - - PredefinedInterfaceRegistration.cs, PredefinedInterfaceResolver.cs — предопределённые интерфейсы. -- Символы/связывание (для компиляции): Compilation/Binding/* (ISymbol, SymbolTable, SymbolBinding и др.). -- Исключения: Exceptions/* (RuntimeException.cs, TypeConversionException.cs, PropertyAccessException.cs и др.). - -### 3.3 ScriptEngine — движок выполнения (стек‑машина, окружение) + +OneScript.Core — система типов и контекстная модель +- Назначение: базовые IValue/BslValue, ссылки на значения, метаданные контекстов (классов/методов/свойств), атрибуты, исключения, символы компилятора. +- Где в коде: + - Values/* — BslValue и производные: строки/числа/дата/Null/Undefined/Type/Object, сравнения/преобразования; ссылки: IValueReference/Variable/PropertyValueReference/IndexedValueReference. + - Contexts/* — атрибуты ContextClass/ContextMethod/ContextProperty, GlobalContextAttribute, ScriptConstructorAttribute; построители Bsl*Info, отражение классов, поддержка устаревания (ISupportsDeprecation, DeprecatedNameAttribute). + - Compilation/Binding/* — SymbolTable, SymbolScope, SymbolBinding, *Symbol интерфейсы. + - Exceptions/* — RuntimeException, TypeConversionException, PropertyAccessException и др. +- Жизненный цикл контекстов: + 1) ContextDiscoverer (ScriptEngine.Machine.Contexts) сканирует сборки, находит [ContextClass]/[GlobalContext]/[EnumerationType]/[SystemEnum]. + 2) Регистрирует типы/глобальные контексты в IRuntimeEnvironment/IGlobalsManager. + 3) Отражение формирует Bsl*Info для рантайма/документации. + +### 3.3 ScriptEngine — движок выполнения (стековая ВМ и бэкенд компилятора для стековой машины) Основная среда исполнения на базе стековой виртуальной машины. Назначение: организует выполнение скриптов, стек вызовов, области видимости, глобальные функции и интеграцию с отладкой. -- Исполнитель: Machine/ - - StackMachineExecutor.cs — стек‑машина. - - ExecutionContext.cs, ExecutionFrame.cs — контекст и кадры исполнения. - - ValueFactory.cs, TypeFactory.cs, GlobalInstancesManager.cs — фабрики и реестр глобалей. - - BuiltinFunctions.cs (Machine) — глобальные функции рантайма. -- Компиляция/бэкенды: Compiler/ - - CompilerBackendSelector.cs, DefaultCompilerBackend.cs, NativeCompilerBackend.cs — выбор и адаптация бэкенда. -- Хостинг/DI: Hosting/ - - DefaultEngineBuilder.cs, ServiceRegistrationExtensions.cs — построение движка/регистрация зависимостей. -- Входные точки API: ScriptEngine.cs, ScriptingEngine.cs — фасады для запуска. - -### 3.4 OneScript.Native — компилятор/исполнитель, встроенные функции + +- Где в коде: + - Compiler/* — CompilerFrontend, BackendSelector; StackMachineCodeGenerator (байткод), EvalCompiler; CodeGenerationFlags. + - Machine/* — StackMachineExecutor, MachineInstance (командный цикл, стек/кадры/исключения/итераторы), ExecutionContext/Frame, BuiltinFunctions, ValueFactory, GlobalInstancesManager. CodeStat/* — статистика покрытия кода. + - Hosting/* — DefaultEngineBuilder, DI (TinyIoC), EngineBuilderExtensions (регистрация сервисов, предобработчики). + - ScriptingEngine.cs — фасад движка: загрузка сборок, Initialize, NewProcess, компиляция. + - ContextValuesMarhaller — маршаллер (преобразователь) типов C# в типы BSL и обратно. +- Точки расширения: + - дополнительные IExecutorProvider (альтернативные рантаймы); + - предопределённые интерфейсы/итераторы (Interfaces/Iterables handlers); + - сбор кода-статистики (ICodeStatCollector) + +### 3.4 OneScript.Native — нативный бэкенд (Expression Trees) компилятор/исполнитель, встроенные функции Альтернативная среда исполнения (не основная). Предоставляет компиляцию BSL в ExpressionTrees фреймворка .NET. Данная среда исполнения имеет ряд ограничений и в целом является экспериментом. В какой именно среде будет исполнен скрипт решает директива в начале скрипта: @@ -89,12 +111,18 @@ OneScript — реализация языка, совместимого с си - BuiltInFunctions.cs — реализации встроенных функций. - DynamicOperations.cs — динамические операции. +- Ограничения: может не поддерживать полный паритет со стековой машиной; выбор режима делает CompilerBackendSelector по соответствующим директивам в начале файла. -### 3.5 ScriptEngine.HostedScript — хостинг и загрузка библиотек -Назначение: встраивание движка в приложения, управление конфигурациями и библиотеками. -- HostedScriptEngine.cs, Process.cs — процесс выполнения/хостинг. -- LibraryLoader.cs, ComponentLoadingContext.cs — загрузка библиотек/компонент. -- EngineConfigProvider.cs, SystemConfigAccessor.cs — конфигурации. +7. ScriptEngine.HostedScript — хостинг, загрузка библиотек, конфигурация +- Назначение: безопасная обвязка движка для встраивания, инициализация стандартного глобального контекста, загрузка библиотек, конфигурирование. +- Где в коде: + - HostedScriptEngine.cs — инициализация, глобальные контексты (SystemGlobalContext, DynamicLoadingFunctions), создание процессов. + - LibraryLoader.cs — package-loader.os, подключение .os модулей/классов/макетов; FileSystemDependencyResolver.cs — поиск библиотек, цикл обработки, защита от циклических зависимостей. + - Extensions/EngineBuilderExtensions.cs — UseSystemConfigFile/UseEnvironmentVariableConfig/UseEntrypointConfigFile; UseImports/UseFileSystemLibraries/UseNativeRuntime/UseEventHandlers. +- Жизненный цикл: + 1) Читает настройки из системного `oscript.cfg`, env, и файла `oscript.cfg` рядом с entrypoint. + 2) Инициализация HostedScriptEngine → глобальные объекты → процесс → компиляция/исполнение модуля. + 3) Загрузка библиотек: default или кастомный package-loader.os, последующая регистрация символов и компиляция задержанных модулей. ### 3.6 OneScript.StandardLibrary — стандартная библиотека Назначение: коллекции, файлы/потоки, текст и кодировки, сеть/HTTP, JSON/XML, ZIP, процессы, таймзоны и др. @@ -107,6 +135,7 @@ OneScript — реализация языка, совместимого с си - XML/XSLT: Xml/* (XmlReaderImpl.cs, XmlWriterImpl.cs, XSLTransform.cs). - ZIP: Zip/* (ZipReader.cs, ZipWriter.cs и перечисления параметров). - Процессы: Processes/* (ProcessContext.cs, GlobalProcessesFunctions.cs). + - StandardGlobalContext.cs — набор полезных глобальных функций/свойств (например, Символы, Приостановить/Sleep, ЗначениеЗаполнено и т.п.). - Разное: RandomNumberGenerator.cs, StringOperations.cs, Timezones/*. ### 3.7 OneScript.Web.Server — веб-обёртки для BSL (ASP.NET Core) @@ -157,30 +186,16 @@ OneScript — реализация языка, совместимого с си - NativeApi ↔ ScriptEngine/Core — нативные расширения. ## 5 Типичные сценарии доработок (куда лезть) -- Добавить новый тип/значение BSL: OneScript.Core/Values/*, регистрации в фабриках (ScriptEngine/Machine/ValueFactory.cs и/или TypeFactory.cs). -- Добавить объект/контекст с методами: OneScript.Core/Contexts/* (аннотации Context*Attribute), затем регистрация в ScriptEngine/Hosting (DefaultEngineBuilder/ServiceRegistrationExtensions) или через HostedScript. +- Добавить объект/контекст с методами: OneScript.Core/Contexts/* (аннотации Context*Attribute). - Добавить функцию в стандартную библиотеку: соответствующий раздел OneScript.StandardLibrary (например, Json/ или Collections/), плюс экспорт в общий контекст (StandardGlobalContext.cs или SymbolsContext.cs, если нужно). - Встроенная функция языка/операция: OneScript.Native/Runtime/BuiltInFunctions.cs и/или Compiler/*, при необходимости — поддержка в ScriptEngine/Machine. -- Хостинг/конфигурации: ScriptEngine.HostedScript (HostedScriptEngine, Process, EngineConfigProvider). - Отладка: DebugServices/DebugProtocol — добавление/изменение событий или представления переменных; VSCode.DebugAdapter — проксирование. ## 6 Навигация по тестам -- C#‑тесты: src/Tests/* (например, OneScript.Core.Tests, OneScript.Language.Tests и др.) — проверка корректности ядра, парсинга, компиляции, стандартной библиотеки. -- Скриптовые тесты: папка tests/* — проверка сценариев языка и библиотек. -- Где искать примеры по областям: - - Язык/лексер/парсер: src/Tests/OneScript.Language.Tests/*. - - Типы/контексты/ядро: src/Tests/OneScript.Core.Tests/*. - - Динамика/встроенные/компиляция: src/Tests/OneScript.Dynamic.Tests/*. - - Стандартная библиотека: src/Tests/OneScript.StandardLibrary.Tests/* и tests/*.os. - -## 7 Локальная сборка и запуск (кратко) -- Сборка: открыть src/1Script.sln и собрать все проекты (или использовать make/скрипты из корня — по желанию). -- CLI‑запуск: после сборки из src/oscript запускать .os‑скрипты (см. tests/* для примеров). -- Отладка: поднять DebugServices, запустить VSCode.DebugAdapter и подключиться из VS Code (см. проекты OneScript.DebugServices и VSCode.DebugAdapter). - -## 8 Советы по чтению кода -- Язык/AST: начните с OneScript.Language/DefaultBslParser.cs и AstNodes/ModuleNode.cs. -- Типы/контексты: OneScript.Core/Values/*, Contexts/* и Bsl*Info‑классы. -- Исполнение: ScriptEngine/Machine/StackMachineExecutor.cs и ExecutionContext.cs, затем OneScript.Native/Compiler/*. -- Библиотека: OneScript.StandardLibrary — по подкаталогам доменов (Collections, Json, Xml, Http, Zip и др.). -- Отладка: OneScript.DebugServices/DefaultDebugService.cs и VSCode.DebugAdapter/OscriptDebugSession.cs. \ No newline at end of file +- C#-тесты: src/Tests/*: + - Язык: src/Tests/OneScript.Language.Tests/* (лексер/парсер/препроцессор). + - Ядро/типы/контексты: src/Tests/OneScript.Core.Tests/*. + - Динамика/нативный рантайм: src/Tests/OneScript.Dynamic.Tests/*. + - Стандартная библиотека: src/Tests/OneScript.StandardLibrary.Tests/*. + - Отладчик: src/Tests/VSCode.DebugAdapter.Tests/, src/Tests/OneScript.DebugProtocol.Test/. +- Скриптовые тесты: tests/*.os (поведенческие сценарии языка/библиотек). \ No newline at end of file From 5f1c1b55fe33e85788c5d736a2770fb8203cbba2 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 14 Nov 2025 22:39:34 +0300 Subject: [PATCH 158/191] =?UTF-8?q?=D0=A1=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B2=20=D0=BF=D0=B0=D0=B9=D0=BF=D0=BB=D0=B0=D0=B9?= =?UTF-8?q?=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Build.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build.csproj b/Build.csproj index 6efa73314..76f6f506b 100644 --- a/Build.csproj +++ b/Build.csproj @@ -261,7 +261,7 @@ - + From 1bc5e29403ab25e8700c58b77b76ef510337d208 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 23:03:37 +0300 Subject: [PATCH 159/191] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B8=20=D0=BF=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Добавлен новый класс WorkspaceMapper для обработки путей 2. Убрана установка текущего процесса в _process при отсутствии настоящего 3. Обновлен package.json для использования объекта вместо отдельных путей маппинга 4. Вызов создания маппера помещен в Initialize --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 44 +++-------- .../OscriptDebugSession.cs | 16 +++- .../PathHandlingStrategy.cs | 58 +++++++-------- src/VSCode.DebugAdapter/WorkspaceMapper.cs | 74 +++++++++++++++++++ src/VSCode.DebugAdapter/package.json | 25 ++++--- 5 files changed, 143 insertions(+), 74 deletions(-) create mode 100644 src/VSCode.DebugAdapter/WorkspaceMapper.cs diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index b1ec0afff..dcb0ebef1 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -43,7 +43,7 @@ public DebugeeProcess(PathHandlingStrategy pathHandling) } public bool HasExited => _process?.HasExited ?? true; - public int ExitCode => _process.ExitCode; + public int ExitCode => _process?.ExitCode ?? 0; public int DebugPort { get; set; } @@ -59,9 +59,7 @@ public int ProtocolVersion public bool WaitOnStart { get; set; } - public string HostWorkspace { get; set; } - - public string RemoteWorkspace { get; set; } + public WorkspaceMapper PathsMapper { get; set; } public void Start() { @@ -95,15 +93,15 @@ public void InitAttached() try { _process = Process.GetProcessById(pid); + _process.EnableRaisingEvents = true; + _process.Exited += Process_Exited; } catch { - _process = Process.GetCurrentProcess(); + _process = null; } _attachMode = true; - _process.EnableRaisingEvents = true; - _process.Exited += Process_Exited; } @@ -198,31 +196,6 @@ private void RaiseOutputReceivedEvent(string category, string data) OutputReceived?.Invoke(this, new DebugeeOutputEventArgs(category, data)); } - private string ConvertRemotePath(string path, string fromPrefix, string toPrefix) - { - if (string.IsNullOrWhiteSpace(path) || - string.IsNullOrWhiteSpace(fromPrefix) || - string.IsNullOrWhiteSpace(toPrefix)) - return path; - - var normalizedPath = path.Replace('\\', '/'); - var normalizedFrom = fromPrefix.Replace('\\', '/').TrimEnd('/'); - - var comparison = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) - ? StringComparison.OrdinalIgnoreCase - : StringComparison.Ordinal; - - if (normalizedPath.StartsWith(toPrefix.Replace('\\', '/'), comparison) || - !normalizedPath.StartsWith(normalizedFrom, comparison)) - return path; - - var relativePath = normalizedPath.Substring(normalizedFrom.Length).TrimStart('/'); - - var result = toPrefix.TrimEnd('/', '\\') + "/" + relativePath; - - return result; - } - private void Terminate() { if (!_terminated) @@ -270,6 +243,9 @@ public void HandleDisconnect(bool terminate) public void Kill() { + if (_process == null) + return; + _process.Kill(); _process.WaitForExit(1500); } @@ -302,7 +278,7 @@ public Breakpoint[] SetBreakpoints(IEnumerable breakpoints) for (int i = 0; i < breakpointsArray.Length; i++) { - breakpointsArray[i].Source = ConvertRemotePath(breakpointsArray[i].Source, HostWorkspace, RemoteWorkspace); + breakpointsArray[i].Source = PathsMapper.LocalToRemote(breakpointsArray[i].Source); } var confirmedBreaks = _debugger.SetMachineBreakpoints(breakpointsArray); @@ -329,7 +305,7 @@ public StackFrame[] GetStackTrace(int threadId, int firstFrameIdx, int limit) for (int i = firstFrameIdx; i < limit && i < allFrames.Length; i++) { allFrames[i].ThreadId = threadId; - allFrames[i].Source = ConvertRemotePath(allFrames[i].Source, RemoteWorkspace, HostWorkspace); + allFrames[i].Source = PathsMapper.RemoteToLocal(allFrames[i].Source); result.Add(allFrames[i]); } diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 39289502d..3e0b2abdb 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -37,6 +37,20 @@ public override void Initialize(Response response, dynamic args) _debuggee = DebugeeFactory.CreateProcess(AdapterID, PathStrategy); + dynamic pathsMappingObj = GetFromContainer(args, "pathsMapping", null); + + if (pathsMappingObj != null) + { + string localPath = GetFromContainer(pathsMappingObj, "localPath", ""); + string remotePath = GetFromContainer(pathsMappingObj, "remotePath", ""); + + _debuggee.PathsMapper = new WorkspaceMapper(localPath, remotePath); + } + else + { + _debuggee.PathsMapper = new WorkspaceMapper("", ""); + } + SendResponse(response, new Capabilities { supportsConditionalBreakpoints = true, @@ -139,8 +153,6 @@ public override void Attach(Response response, dynamic arguments) SubscribeForDebuggeeProcessEvents(); _debuggee.DebugPort = GetFromContainer(arguments, "debugPort", 2801); - _debuggee.HostWorkspace = GetFromContainer(arguments, "hostWorkspace", ""); - _debuggee.RemoteWorkspace = GetFromContainer(arguments, "remoteWorkspace", ""); DebugClientFactory debugClientFactory; try diff --git a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs index 3ab411c52..dfd140dfd 100644 --- a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs +++ b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs @@ -63,34 +63,34 @@ public string ConvertDebuggerPathToClient(string path) } } - public string ConvertClientPathToDebugger(string clientPath) - { - if (clientPath == null) { - return null; - } + public string ConvertClientPathToDebugger(string clientPath) + { + if (clientPath == null) { + return null; + } - if (DebuggerPathsAreUri) { - if (ClientPathsAreUri) { - return clientPath; - } - else { - var uri = new System.Uri(clientPath); - return uri.AbsoluteUri; - } - } - else { - if (ClientPathsAreUri) { - if (Uri.IsWellFormedUriString(clientPath, UriKind.Absolute)) { - Uri uri = new Uri(clientPath); - return uri.LocalPath; - } - Console.Error.WriteLine("path not well formed: '{0}'", clientPath); - return null; - } - else { - return clientPath; - } - } - } - } + if (DebuggerPathsAreUri) { + if (ClientPathsAreUri) { + return clientPath; + } + else { + var uri = new System.Uri(clientPath); + return uri.AbsoluteUri; + } + } + else { + if (ClientPathsAreUri) { + if (Uri.IsWellFormedUriString(clientPath, UriKind.Absolute)) { + Uri uri = new Uri(clientPath); + return uri.LocalPath; + } + Console.Error.WriteLine("path not well formed: '{0}'", clientPath); + return null; + } + else { + return clientPath; + } + } + } + } } \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/WorkspaceMapper.cs b/src/VSCode.DebugAdapter/WorkspaceMapper.cs new file mode 100644 index 000000000..7034aa8b9 --- /dev/null +++ b/src/VSCode.DebugAdapter/WorkspaceMapper.cs @@ -0,0 +1,74 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ +using System; +using System.Runtime.InteropServices; + +namespace VSCode.DebugAdapter +{ + public class WorkspaceMapper + { + + private Workspace _localWorkspace; + private Workspace _remoteWorkspace; + + public WorkspaceMapper(string localPath, string remotePath) { + + this._localWorkspace = new Workspace(localPath); + this._remoteWorkspace = new Workspace(remotePath); + } + + public string LocalToRemote(string path) + { + return ConvertPath(path, _localWorkspace, _remoteWorkspace); + } + + public string RemoteToLocal(string path) + { + return ConvertPath(path, _remoteWorkspace, _localWorkspace); + } + + private string ConvertPath(string path, Workspace fromPrefix, Workspace toPrefix) + { + if (string.IsNullOrWhiteSpace(path) || + string.IsNullOrWhiteSpace(fromPrefix.Original) || + string.IsNullOrWhiteSpace(toPrefix.Original)) + return path; + + var normalizedPath = path.Replace('\\', '/'); + var normalizedFrom = fromPrefix.Normalized.TrimEnd('/'); + + var comparison = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) + ? StringComparison.OrdinalIgnoreCase + : StringComparison.Ordinal; + + if (normalizedPath.StartsWith(toPrefix.Normalized, comparison) || + !normalizedPath.StartsWith(normalizedFrom, comparison)) + return path; + + var relativePath = normalizedPath.Substring(normalizedFrom.Length).TrimStart('/'); + + var result = toPrefix.Original.TrimEnd('/', '\\') + "/" + relativePath; + + return result; + } + + } + + internal class Workspace + { + public string Original; + public string Normalized; + + internal Workspace(string path) + { + this.Original = path; + this.Normalized = path.Replace('\\', '/'); + } + + } + +} \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/package.json b/src/VSCode.DebugAdapter/package.json index ed6fdb26e..fc4e0ea92 100644 --- a/src/VSCode.DebugAdapter/package.json +++ b/src/VSCode.DebugAdapter/package.json @@ -133,15 +133,22 @@ "description": "Кодировка вывода отлаживаемого приложения. Отладчик будет интерпретировать вывод приложения в указанной кодировке", "default": "" }, - "hostWorkspace": { - "type": "string", - "description": "Путь к каталогу проекта на локальной машине (при отладке удаленного процесса)", - "default": "" - }, - "remoteWorkspace": { - "type": "string", - "description": "Путь к каталогу проекта на удаленной машине (при отладке удаленного процесса)", - "default": "" + "pathsMapper": { + "type": "object", + "description": "Сопоставление путей между локальной и удаленной машиной (для удаленной отладки)", + "properties": { + "localPath": { + "type": "string", + "description": "Путь к каталогу проекта на локальной машине.", + "default": "" + }, + "remotePath": { + "type": "string", + "description": "Путь к каталогу проекта на удаленной машине.", + "default": "" + } + }, + "required": ["localPath", "remotePath"] } } From 7f659e912d579b90e9cc5c4843865118a8158b59 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 23:24:53 +0300 Subject: [PATCH 160/191] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BE=D0=BF=D0=B5=D1=87?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/PathHandlingStrategy.cs | 2 +- src/VSCode.DebugAdapter/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs index dfd140dfd..53b66f4c1 100644 --- a/src/VSCode.DebugAdapter/PathHandlingStrategy.cs +++ b/src/VSCode.DebugAdapter/PathHandlingStrategy.cs @@ -92,5 +92,5 @@ public string ConvertClientPathToDebugger(string clientPath) } } } - } + } } \ No newline at end of file diff --git a/src/VSCode.DebugAdapter/package.json b/src/VSCode.DebugAdapter/package.json index fc4e0ea92..041520a14 100644 --- a/src/VSCode.DebugAdapter/package.json +++ b/src/VSCode.DebugAdapter/package.json @@ -133,7 +133,7 @@ "description": "Кодировка вывода отлаживаемого приложения. Отладчик будет интерпретировать вывод приложения в указанной кодировке", "default": "" }, - "pathsMapper": { + "pathsMapping": { "type": "object", "description": "Сопоставление путей между локальной и удаленной машиной (для удаленной отладки)", "properties": { From fc7e71747495922e85ca95690c130bf74f7cef79 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Fri, 14 Nov 2025 23:51:29 +0300 Subject: [PATCH 161/191] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=B1=D0=BE=D1=80=D0=B0=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B0=20pathsMapper=20=D0=B8=D0=B7=20launch.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 14 ++++++++++++++ src/VSCode.DebugAdapter/OscriptDebugSession.cs | 15 +-------------- src/VSCode.DebugAdapter/WorkspaceMapper.cs | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index dcb0ebef1..b990bac60 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -110,6 +110,20 @@ public void Init(JObject args) InitInternal(args); } + public void InitPathsMapper(JObject args) + { + + try + { + PathsMapper = args.ToObject(); + } + catch + { + PathsMapper = new WorkspaceMapper("", ""); + } + + } + protected abstract Process CreateProcess(); protected abstract void InitInternal(JObject args); diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 3e0b2abdb..58dd5ad50 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -36,20 +36,7 @@ public override void Initialize(Response response, dynamic args) AdapterID = (string) args.adapterID; _debuggee = DebugeeFactory.CreateProcess(AdapterID, PathStrategy); - - dynamic pathsMappingObj = GetFromContainer(args, "pathsMapping", null); - - if (pathsMappingObj != null) - { - string localPath = GetFromContainer(pathsMappingObj, "localPath", ""); - string remotePath = GetFromContainer(pathsMappingObj, "remotePath", ""); - - _debuggee.PathsMapper = new WorkspaceMapper(localPath, remotePath); - } - else - { - _debuggee.PathsMapper = new WorkspaceMapper("", ""); - } + _debuggee.InitPathsMapper(args); SendResponse(response, new Capabilities { diff --git a/src/VSCode.DebugAdapter/WorkspaceMapper.cs b/src/VSCode.DebugAdapter/WorkspaceMapper.cs index 7034aa8b9..660055024 100644 --- a/src/VSCode.DebugAdapter/WorkspaceMapper.cs +++ b/src/VSCode.DebugAdapter/WorkspaceMapper.cs @@ -6,6 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; using System.Runtime.InteropServices; +using Newtonsoft.Json; namespace VSCode.DebugAdapter { @@ -15,6 +16,20 @@ public class WorkspaceMapper private Workspace _localWorkspace; private Workspace _remoteWorkspace; + [JsonProperty("localPath")] + private string LocalPathForDeserialization + { + set { _localWorkspace = new Workspace(value ?? ""); } + } + + [JsonProperty("remotePath")] + private string RemotePathForDeserialization + { + set { _remoteWorkspace = new Workspace(value ?? ""); } + } + + public WorkspaceMapper(){} + public WorkspaceMapper(string localPath, string remotePath) { this._localWorkspace = new Workspace(localPath); From 00a373d907c7de68a366e6e6ec2cec3547dfba58 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Sat, 15 Nov 2025 00:01:37 +0300 Subject: [PATCH 162/191] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20Pat?= =?UTF-8?q?hsMapper=20=D0=B2=20Attach,=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BA=D0=B8=20=D0=BD=D0=B0=20null?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 16 ++++++++++++---- src/VSCode.DebugAdapter/OscriptDebugSession.cs | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index b990bac60..e1108a158 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -290,9 +290,11 @@ public Breakpoint[] SetBreakpoints(IEnumerable breakpoints) { var breakpointsArray = breakpoints.ToArray(); - for (int i = 0; i < breakpointsArray.Length; i++) - { - breakpointsArray[i].Source = PathsMapper.LocalToRemote(breakpointsArray[i].Source); + if (PathsMapper != null) { + for (int i = 0; i < breakpointsArray.Length; i++) + { + breakpointsArray[i].Source = PathsMapper.LocalToRemote(breakpointsArray[i].Source); + } } var confirmedBreaks = _debugger.SetMachineBreakpoints(breakpointsArray); @@ -308,6 +310,7 @@ public void BeginExecution(int threadId) public StackFrame[] GetStackTrace(int threadId, int firstFrameIdx, int limit) { var allFrames = _debugger.GetStackFrames(threadId); + var pathsMapperInit = PathsMapper != null; if (limit == 0) limit = allFrames.Length; @@ -318,8 +321,13 @@ public StackFrame[] GetStackTrace(int threadId, int firstFrameIdx, int limit) var result = new List(); for (int i = firstFrameIdx; i < limit && i < allFrames.Length; i++) { + allFrames[i].ThreadId = threadId; - allFrames[i].Source = PathsMapper.RemoteToLocal(allFrames[i].Source); + + if (pathsMapperInit) { + allFrames[i].Source = PathsMapper.RemoteToLocal(allFrames[i].Source); + } + result.Add(allFrames[i]); } diff --git a/src/VSCode.DebugAdapter/OscriptDebugSession.cs b/src/VSCode.DebugAdapter/OscriptDebugSession.cs index 58dd5ad50..eb691ef81 100644 --- a/src/VSCode.DebugAdapter/OscriptDebugSession.cs +++ b/src/VSCode.DebugAdapter/OscriptDebugSession.cs @@ -35,8 +35,7 @@ public override void Initialize(Response response, dynamic args) LogCommandReceived(); AdapterID = (string) args.adapterID; - _debuggee = DebugeeFactory.CreateProcess(AdapterID, PathStrategy); - _debuggee.InitPathsMapper(args); + _debuggee = DebugeeFactory.CreateProcess(AdapterID, PathStrategy); SendResponse(response, new Capabilities { @@ -140,6 +139,7 @@ public override void Attach(Response response, dynamic arguments) SubscribeForDebuggeeProcessEvents(); _debuggee.DebugPort = GetFromContainer(arguments, "debugPort", 2801); + _debuggee.InitPathsMapper(arguments); DebugClientFactory debugClientFactory; try From 1f0fcc55587c6e18436bdddfc5077147eb210af8 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Sat, 15 Nov 2025 00:16:18 +0300 Subject: [PATCH 163/191] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20HasExited=20?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20PathsMapper=20=D0=B8=D0=B7=20json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/DebugeeProcess.cs | 41 +++++++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/src/VSCode.DebugAdapter/DebugeeProcess.cs b/src/VSCode.DebugAdapter/DebugeeProcess.cs index e1108a158..67f75d047 100644 --- a/src/VSCode.DebugAdapter/DebugeeProcess.cs +++ b/src/VSCode.DebugAdapter/DebugeeProcess.cs @@ -42,7 +42,20 @@ public DebugeeProcess(PathHandlingStrategy pathHandling) _strategy = pathHandling; } - public bool HasExited => _process?.HasExited ?? true; + public bool HasExited + { + get + { + if (_process != null) + return _process.HasExited; + + if (_attachMode && _debugger != null) + return false; + + return true; + } + } + public int ExitCode => _process?.ExitCode ?? 0; public int DebugPort { get; set; } @@ -112,16 +125,28 @@ public void Init(JObject args) public void InitPathsMapper(JObject args) { + if (args == null) + { + PathsMapper = null; + return; + } try { - PathsMapper = args.ToObject(); + var mappingToken = args["pathsMapping"]; + if (mappingToken == null || mappingToken.Type == JTokenType.Null) + { + PathsMapper = null; + return; + } + + PathsMapper = mappingToken.ToObject(); } - catch + catch (Exception ex) { - PathsMapper = new WorkspaceMapper("", ""); + Log.Warning(ex, "Failed to initialize paths mapper; path mapping will be disabled"); + PathsMapper = null; } - } protected abstract Process CreateProcess(); @@ -290,7 +315,8 @@ public Breakpoint[] SetBreakpoints(IEnumerable breakpoints) { var breakpointsArray = breakpoints.ToArray(); - if (PathsMapper != null) { + if (PathsMapper != null) + { for (int i = 0; i < breakpointsArray.Length; i++) { breakpointsArray[i].Source = PathsMapper.LocalToRemote(breakpointsArray[i].Source); @@ -324,7 +350,8 @@ public StackFrame[] GetStackTrace(int threadId, int firstFrameIdx, int limit) allFrames[i].ThreadId = threadId; - if (pathsMapperInit) { + if (pathsMapperInit) + { allFrames[i].Source = PathsMapper.RemoteToLocal(allFrames[i].Source); } From ec54e2585aa38f0e616c025a4f47c4d5fe798521 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Sat, 15 Nov 2025 11:37:22 +0300 Subject: [PATCH 164/191] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=82=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BF=D1=83=D1=82=D0=B5?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VSCode.DebugAdapter/WorkspaceMapper.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/VSCode.DebugAdapter/WorkspaceMapper.cs b/src/VSCode.DebugAdapter/WorkspaceMapper.cs index 660055024..e9d60018a 100644 --- a/src/VSCode.DebugAdapter/WorkspaceMapper.cs +++ b/src/VSCode.DebugAdapter/WorkspaceMapper.cs @@ -54,7 +54,7 @@ private string ConvertPath(string path, Workspace fromPrefix, Workspace toPrefix return path; var normalizedPath = path.Replace('\\', '/'); - var normalizedFrom = fromPrefix.Normalized.TrimEnd('/'); + var normalizedFrom = fromPrefix.Normalized; var comparison = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? StringComparison.OrdinalIgnoreCase @@ -64,9 +64,8 @@ private string ConvertPath(string path, Workspace fromPrefix, Workspace toPrefix !normalizedPath.StartsWith(normalizedFrom, comparison)) return path; - var relativePath = normalizedPath.Substring(normalizedFrom.Length).TrimStart('/'); - - var result = toPrefix.Original.TrimEnd('/', '\\') + "/" + relativePath; + var relativePath = normalizedPath.Substring(normalizedFrom.Length).TrimStart('/'); + var result = toPrefix.Normalized + "/" + relativePath; return result; } @@ -81,7 +80,7 @@ internal class Workspace internal Workspace(string path) { this.Original = path; - this.Normalized = path.Replace('\\', '/'); + this.Normalized = path.Replace('\\', '/').TrimEnd('/'); } } From 349cdbb77fee7b5f0a981599a3e92d2e7ab8edbf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 21:07:46 +0000 Subject: [PATCH 165/191] Bump actions/checkout from 5 to 6 Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/copilot-setup-steps.yml | 2 +- .github/workflows/rebase.yml | 2 +- .github/workflows/sonar.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index d2571c4b6..666f63c5d 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -17,7 +17,7 @@ jobs: # Setup steps for OneScript development environment steps: - name: Checkout code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - run: git config --global core.quotepath false diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml index bee4a270f..2902fe38c 100644 --- a/.github/workflows/rebase.yml +++ b/.github/workflows/rebase.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the latest code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: token: ${{ secrets.GITHUB_TOKEN }} fetch-depth: 0 # otherwise, you will fail to push refs to dest repo diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 9c3d64d41..3599cd7cb 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -15,7 +15,7 @@ jobs: with: java-version: 17 distribution: temurin - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - name: Cache SonarQube packages From 5e8ad5d109a653c1f5a5a52d9b26c365352bd9f4 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Fri, 21 Nov 2025 14:12:05 +0100 Subject: [PATCH 166/191] Apply suggestions from code review --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ddd71e23c..50d823d27 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -266,7 +266,7 @@ pipeline { agent { label 'linux' } when { anyOf { - branch 'latest' + branch 'release/latest' expression { return env.TAG_NAME && env.TAG_NAME.startsWith('v1.') } From 5ca7d6b82a3ce9f09240aac89adc94762a01dbf1 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sat, 22 Nov 2025 00:02:38 +0300 Subject: [PATCH 167/191] =?UTF-8?q?=D0=9E=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B2=20=D1=82=D0=B5=D1=81=D1=82=D0=B5=20http?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/http.os | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/tests/http.os b/tests/http.os index 8b1e457cb..d2f89a6d5 100644 --- a/tests/http.os +++ b/tests/http.os @@ -40,6 +40,13 @@ Возврат ВсеТесты; КонецФункции +Процедура ПередЗапускомТеста() Экспорт + Если мАдресРесурса = Неопределено Тогда + мАдресРесурса = ВыбратьДоступныйХост(); + Сообщить("HTTP тесты: используется ресурс " + мАдресРесурса); + КонецЕсли; +КонецПроцедуры + Процедура ТестДолжен_ПроверитьАвтоматическуюРаспаковкуGZip() Экспорт Запрос = Новый HttpЗапрос("/gzip"); @@ -384,11 +391,9 @@ Функция ПроверитьДоступность(АдресХоста) Попытка - // Короткие таймауты ~2 секунды для быстрой проверки доступности - Соединение = Новый HttpСоединение(АдресХоста); - Соединение.Таймаут = 2; + // Короткие таймауты для быстрой проверки доступности + Соединение = Новый HttpСоединение(АдресХоста,,,,,5); Запрос = Новый HttpЗапрос("/get"); - Запрос.Таймаут = 2; Ответ = Соединение.Получить(Запрос); Возврат Ответ.КодСостояния = 200; Исключение @@ -427,11 +432,4 @@ Сообщить("HTTP тесты: не удалось определить доступный хост, используется значение по умолчанию https://httpbin.org"); Возврат "https://httpbin.org"; -КонецФункции - -/////////////////////////////////////////////////////////////////// -/// ИНИЦИАЛИЗАЦИЯ -/////////////////////////////////////////////////////////////////// - -мАдресРесурса = ВыбратьДоступныйХост(); -Сообщить("HTTP тесты: используется ресурс " + мАдресРесурса); +КонецФункции \ No newline at end of file From 55cb65e8561f0f30fa65302f80a415462ed9d693 Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Sat, 22 Nov 2025 00:32:26 +0100 Subject: [PATCH 168/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=81=D0=B8=D0=BD=D1=82=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 50d823d27..33c9d1dec 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -295,6 +295,7 @@ pipeline { def codename = env.TAG_NAME ? env.TAG_NAME : 'dev' publishDockerImage('v2', codename) } + } } } } From 6d38d8c227abb0c2ac1fad877b3743ffc5f16f45 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sat, 22 Nov 2025 18:32:36 +0300 Subject: [PATCH 169/191] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=BA=D1=83=D1=80=D1=81=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursor/rules/runbsltests.mdc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .cursor/rules/runbsltests.mdc diff --git a/.cursor/rules/runbsltests.mdc b/.cursor/rules/runbsltests.mdc new file mode 100644 index 000000000..9580ef871 --- /dev/null +++ b/.cursor/rules/runbsltests.mdc @@ -0,0 +1,14 @@ +--- +description: When you need to run main tests +alwaysApply: false +--- + +Когда тебе потребуется запустить приемочные тесты всего проекта, убедиться что ничего не сломано, тебе потребуется запустить bsl тесты. Запускаются они так: + +1. Собери консольное приложение oscript.exe или убедись, что оно уже собрано с последними изменениями +2. Установи переменную окружения OSCRIPT_CONFIG=lib.system=C:\Users\ovsia\AppData\Local\ovm\current\lib +3. Перейди в каталог tests, который в корне репозитория +4. Запусти <собранный oscript.exe> testrunner.os -runAll . + +Для запуска одного теста используй <собранный oscript.exe> testrunner.os -run <имя файла теста.os> +Всегда используй для запуска тестов новую консоль, не переиспользуй консоль от предыдущих запусков. \ No newline at end of file From 0bef9be8c880daf0df757e4b9d324adf1a34901d Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sat, 22 Nov 2025 23:53:17 +0300 Subject: [PATCH 170/191] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B0=20=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D0=B9=D0=BC=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C?= =?UTF-8?q?=20=D0=B8=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=20=D0=BC=D0=BE=D0=B4?= =?UTF-8?q?=D1=83=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ScriptEngine/Compiler/ModuleDumpWriter.cs | 6 +- .../Compiler/StackMachineCodeGenerator.cs | 8 +-- .../Libraries/ExternalLibraryDef.cs | 4 +- src/ScriptEngine/Machine/StackModuleImage.cs | 65 +++++++++++++++++++ .../CodeGenerationTests.cs | 2 +- 5 files changed, 75 insertions(+), 10 deletions(-) create mode 100644 src/ScriptEngine/Machine/StackModuleImage.cs diff --git a/src/ScriptEngine/Compiler/ModuleDumpWriter.cs b/src/ScriptEngine/Compiler/ModuleDumpWriter.cs index 6a70fa167..a86a97b71 100644 --- a/src/ScriptEngine/Compiler/ModuleDumpWriter.cs +++ b/src/ScriptEngine/Compiler/ModuleDumpWriter.cs @@ -36,7 +36,7 @@ public ModuleDumpWriter(ICompilerFrontend compilerService, IBslProcess process) public void Write(TextWriter output, SourceCode source) { var compilerResult = _compiler.Compile(source, _process); - if (compilerResult is StackRuntimeModule stackModule) + if (compilerResult is StackModuleImage stackModule) { var module = stackModule; WriteImage(output, module); @@ -109,12 +109,12 @@ private void PrintField(TextWriter output, BslFieldInfo field) output.WriteLine($"{field.FieldType} {field.Name}"); } - public void Write(TextWriter output, StackRuntimeModule module) + public void Write(TextWriter output, StackModuleImage module) { WriteImage(output, module); } - private void WriteImage(TextWriter output, StackRuntimeModule module) + private void WriteImage(TextWriter output, StackModuleImage module) { output.WriteLine(".variableFrame:"); module.Fields diff --git a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs index 46de190d8..58a88f579 100644 --- a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs +++ b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs @@ -32,7 +32,7 @@ namespace ScriptEngine.Compiler public partial class StackMachineCodeGenerator : BslSyntaxWalker { private readonly IErrorSink _errorSink; - private readonly StackRuntimeModule _module; + private readonly StackModuleImage _module; private SourceCode _sourceCode; private SymbolTable _ctx; private List _constMap = new List(); @@ -47,14 +47,14 @@ public partial class StackMachineCodeGenerator : BslSyntaxWalker public StackMachineCodeGenerator(IErrorSink errorSink) { _errorSink = errorSink; - _module = new StackRuntimeModule(typeof(IRuntimeContextInstance)); + _module = new StackModuleImage(typeof(IRuntimeContextInstance)); } public CodeGenerationFlags ProduceExtraCode { get; set; } public IDependencyResolver DependencyResolver { get; set; } - public StackRuntimeModule CreateModule(ModuleNode moduleNode, SourceCode source, SymbolTable context, + public StackModuleImage CreateModule(ModuleNode moduleNode, SourceCode source, SymbolTable context, IBslProcess process) { if (moduleNode.Kind != NodeKind.Module) @@ -69,7 +69,7 @@ public StackRuntimeModule CreateModule(ModuleNode moduleNode, SourceCode source, return CreateImageInternal(moduleNode); } - private StackRuntimeModule CreateImageInternal(ModuleNode moduleNode) + private StackModuleImage CreateImageInternal(ModuleNode moduleNode) { VisitModule(moduleNode); CheckForwardedDeclarations(); diff --git a/src/ScriptEngine/Libraries/ExternalLibraryDef.cs b/src/ScriptEngine/Libraries/ExternalLibraryDef.cs index 30bc701a8..a962aa49a 100644 --- a/src/ScriptEngine/Libraries/ExternalLibraryDef.cs +++ b/src/ScriptEngine/Libraries/ExternalLibraryDef.cs @@ -24,7 +24,7 @@ public ExternalLibraryDef(string name) public IList Classes { get; } = new List(); public IList Modules { get; } = new List(); - public UserAddedScript AddClass(string identifier, string filePath, StackRuntimeModule module = null) + public UserAddedScript AddClass(string identifier, string filePath, IExecutableModule module = null) { var item = new UserAddedScript { @@ -39,7 +39,7 @@ public UserAddedScript AddClass(string identifier, string filePath, StackRuntime return item; } - public UserAddedScript AddModule(string identifier, string filePath, StackRuntimeModule module = null) + public UserAddedScript AddModule(string identifier, string filePath, IExecutableModule module = null) { var item = new UserAddedScript { diff --git a/src/ScriptEngine/Machine/StackModuleImage.cs b/src/ScriptEngine/Machine/StackModuleImage.cs new file mode 100644 index 000000000..3ce1636b2 --- /dev/null +++ b/src/ScriptEngine/Machine/StackModuleImage.cs @@ -0,0 +1,65 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.Collections.Generic; +using OneScript.Compilation.Binding; +using OneScript.Contexts; +using OneScript.Execution; +using OneScript.Sources; +using OneScript.Values; + +namespace ScriptEngine.Machine +{ + public class StackModuleImage : IExecutableModule + { + public StackModuleImage(Type ownerType) + { + ClassType = ownerType; + } + + public Type ClassType { get; } + + public int EntryMethodIndex { get; set; } = -1; + + public List Constants { get; } = new List(); + + internal IList VariableRefs { get; } = new List(); + + internal IList MethodRefs { get; } = new List(); + + #region IExecutableModule members + + public BslScriptMethodInfo ModuleBody + { + get + { + if (EntryMethodIndex == -1) + return null; + + return Methods[MethodRefs[EntryMethodIndex].MemberNumber]; + } + } + + public IList ModuleAttributes { get; } = new List(); + + public IList Fields { get; } = new List(); + + public IList Properties { get; } = new List(); + + public IList Methods { get; } = new List(); + + public IList Code { get; } = new List(512); + + public SourceCode Source { get; set; } + + public IDictionary Interfaces { get; } = new Dictionary(); + + #endregion + } +} + diff --git a/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs b/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs index ca65c5291..016ef677a 100644 --- a/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs +++ b/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs @@ -54,7 +54,7 @@ public void Variables_Are_Registered_In_Image() image.Fields.Should().HaveCount(2); } - private static StackRuntimeModule BuildModule(string code, IBslProcess process) + private static StackModuleImage BuildModule(string code, IBslProcess process) { var lexer = new DefaultLexer(); lexer.Iterator = SourceCodeBuilder.Create().FromString(code).Build().CreateIterator(); From 9e7349285a90df9b4e8f5c61a5c5ea8ff9943057 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 23 Nov 2025 00:20:35 +0300 Subject: [PATCH 171/191] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=82=D0=B8=D0=BF=20=D0=B1=D0=B8=D0=BD=D0=B4=D0=B8?= =?UTF-8?q?=D0=BD=D0=B3=D0=B0=20=D0=B2=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7?= =?UTF-8?q?=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Compiler/DefaultCompilerBackend.cs | 9 +++- src/ScriptEngine/Compiler/ModuleDumpWriter.cs | 5 ++- .../Compiler/StackMachineCodeGenerator.cs | 43 +++++++++++++++---- src/ScriptEngine/Machine/StackModuleImage.cs | 31 ++++++++++--- 4 files changed, 70 insertions(+), 18 deletions(-) diff --git a/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs b/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs index 5f0a61a49..62fc4cef6 100644 --- a/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs +++ b/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs @@ -10,6 +10,7 @@ This Source Code Form is subject to the terms of the using OneScript.Execution; using OneScript.Language; using OneScript.Language.SyntaxAnalysis.AstNodes; +using ScriptEngine.Machine; namespace ScriptEngine.Compiler { @@ -34,7 +35,13 @@ public IExecutableModule Compile(ModuleNode parsedModule, Type classType, IBslPr { _codeGen.ProduceExtraCode = GetCodeFlags(); _codeGen.DependencyResolver = DependencyResolver; - return _codeGen.CreateModule(parsedModule, parsedModule.Source, Symbols, process); + var module = _codeGen.CreateModule(parsedModule, parsedModule.Source, Symbols, process); + return LoadModuleImage(module); + } + + public IExecutableModule LoadModuleImage(StackModuleImage module) + { + throw new NotImplementedException(); } private CodeGenerationFlags GetCodeFlags() diff --git a/src/ScriptEngine/Compiler/ModuleDumpWriter.cs b/src/ScriptEngine/Compiler/ModuleDumpWriter.cs index a86a97b71..9e7629d57 100644 --- a/src/ScriptEngine/Compiler/ModuleDumpWriter.cs +++ b/src/ScriptEngine/Compiler/ModuleDumpWriter.cs @@ -149,12 +149,13 @@ private void WriteImage(TextWriter output, StackModuleImage module) output.WriteLine(module.EntryMethodIndex.ToString()); } - private void WriteSymbolMap(TextWriter output, IList map) + private void WriteSymbolMap(TextWriter output, IList map) { for (int i = 0; i < map.Count; i++) { var item = map[i]; - output.Write(string.Format("{0,-3}:({1},{2})\n", i, item.ScopeNumber, item.MemberNumber)); + var typeName = item.Target?.GetType().Name ?? "null"; + output.Write(string.Format("{0,-3}:({1},{2})\n", i, typeName, item.MemberNumber)); } } diff --git a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs index 58a88f579..4dfdc70e8 100644 --- a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs +++ b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs @@ -177,7 +177,13 @@ protected override void VisitModuleVariable(VariableDefinitionNode varNode) var field = fieldBuilder.Build(); _module.Fields.Add(field); var binding = _ctx.DefineVariable(field.ToSymbol()); - _module.VariableRefs.Add(binding); + var target = _ctx.GetBinding(binding.ScopeNumber); + var imageBinding = new ModuleImageBinding + { + Target = target, + MemberNumber = binding.MemberNumber + }; + _module.VariableRefs.Add(imageBinding); } protected override void VisitModuleBody(BslSyntaxNode child) @@ -214,9 +220,10 @@ protected override void VisitModuleBody(BslSyntaxNode child) methodInfo.SetRuntimeParameters(entry, GetVariableNames(localCtx)); var entryRefNumber = _module.MethodRefs.Count; - var bodyBinding = new SymbolBinding + var target = _ctx.GetBinding(topIdx); + var bodyBinding = new ModuleImageBinding { - ScopeNumber = topIdx, + Target = target, MemberNumber = _module.Methods.Count }; @@ -303,7 +310,13 @@ protected override void VisitMethod(MethodNode methodNode) AddError(LocalizedErrors.DuplicateMethodDefinition(signature.MethodName), signature.Location); binding = default; } - _module.MethodRefs.Add(binding); + var target = _ctx.GetBinding(binding.ScopeNumber); + var imageBinding = new ModuleImageBinding + { + Target = target, + MemberNumber = binding.MemberNumber + }; + _module.MethodRefs.Add(imageBinding); _module.Methods.Add(methodInfo); } @@ -1264,22 +1277,36 @@ private int GetConstNumber(in ConstDefinition cDef) private int GetMethodRefNumber(in SymbolBinding methodBinding) { - var idx = _module.MethodRefs.IndexOf(methodBinding); + var target = _ctx.GetBinding(methodBinding.ScopeNumber); + var imageBinding = new ModuleImageBinding + { + Target = target, + MemberNumber = methodBinding.MemberNumber + }; + + var idx = _module.MethodRefs.IndexOf(imageBinding); if (idx < 0) { idx = _module.MethodRefs.Count; - _module.MethodRefs.Add(methodBinding); + _module.MethodRefs.Add(imageBinding); } return idx; } private int GetVariableRefNumber(in SymbolBinding binding) { - var idx = _module.VariableRefs.IndexOf(binding); + var target = _ctx.GetBinding(binding.ScopeNumber); + var imageBinding = new ModuleImageBinding + { + Target = target, + MemberNumber = binding.MemberNumber + }; + + var idx = _module.VariableRefs.IndexOf(imageBinding); if (idx < 0) { idx = _module.VariableRefs.Count; - _module.VariableRefs.Add(binding); + _module.VariableRefs.Add(imageBinding); } return idx; diff --git a/src/ScriptEngine/Machine/StackModuleImage.cs b/src/ScriptEngine/Machine/StackModuleImage.cs index 3ce1636b2..e21e73a98 100644 --- a/src/ScriptEngine/Machine/StackModuleImage.cs +++ b/src/ScriptEngine/Machine/StackModuleImage.cs @@ -15,7 +15,28 @@ This Source Code Form is subject to the terms of the namespace ScriptEngine.Machine { - public class StackModuleImage : IExecutableModule + public struct ModuleImageBinding : IEquatable + { + public IAttachableContext Target { get; set; } + + public int MemberNumber { get; set; } + + public bool Equals(ModuleImageBinding other) + { + return ReferenceEquals(Target, other.Target) && MemberNumber == other.MemberNumber; + } + + public override bool Equals(object obj) + { + return obj is ModuleImageBinding other && Equals(other); + } + + public override int GetHashCode() + { + return HashCode.Combine(Target, MemberNumber); + } + } + public class StackModuleImage { public StackModuleImage(Type ownerType) { @@ -28,11 +49,9 @@ public StackModuleImage(Type ownerType) public List Constants { get; } = new List(); - internal IList VariableRefs { get; } = new List(); - - internal IList MethodRefs { get; } = new List(); + internal IList VariableRefs { get; } = new List(); - #region IExecutableModule members + internal IList MethodRefs { get; } = new List(); public BslScriptMethodInfo ModuleBody { @@ -58,8 +77,6 @@ public BslScriptMethodInfo ModuleBody public SourceCode Source { get; set; } public IDictionary Interfaces { get; } = new Dictionary(); - - #endregion } } From cb25ba5e735204ed71f20710ea62bec004000a1a Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 23 Nov 2025 00:31:19 +0300 Subject: [PATCH 172/191] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BF=D0=BE=D0=B4=D1=85=D0=BE=D0=B4=20=D0=BA=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8E=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=BE=D0=B2?= =?UTF-8?q?,=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20IAttachableContext.cs=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=B8=D1=81=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D1=82=D1=81=D1=8F=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D0=BF=D0=BE=20=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=D1=83,=20?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=20=D0=BC=D0=B0=D1=81=D1=81=D0=B8=D0=B2?= =?UTF-8?q?=D0=BE=D0=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Compilation/Binding/SymbolTable.cs | 14 ++- .../Contexts/AttachedContext.cs | 45 ------- .../Contexts/IAttachableContext.cs | 10 +- .../Contexts/IRuntimeEnvironment.cs | 2 +- .../Compiler/ExpressionHelpers.cs | 13 +- .../Runtime/CallableMethod.cs | 6 +- .../Runtime/NativeClassInstanceWrapper.cs | 9 +- .../Text/ConsoleProvider.cs | 8 +- .../LibraryLoader.cs | 1 - .../SystemGlobalContext.cs | 10 +- .../Compiler/DefaultCompilerBackend.cs | 8 +- src/ScriptEngine/Compiler/ModuleDumpWriter.cs | 8 +- .../Compiler/StackMachineCodeGenerator.cs | 18 +-- src/ScriptEngine/Compiler/SymbolScope.cs | 24 ---- .../Contexts/AutoScriptDrivenObject.cs | 4 - .../Machine/Contexts/GlobalContextBase.cs | 16 ++- .../Machine/Contexts/ScriptDrivenObject.cs | 46 +++---- .../Contexts/UserScriptContextInstance.cs | 4 - .../Machine/EvalExecLocalContext.cs | 41 ++++++ .../Machine/EvalExecLocalScope.cs | 35 ------ src/ScriptEngine/Machine/ExecutionFrame.cs | 4 +- .../{RuntimeScopes.cs => JoinedScopes.cs} | 32 +++-- src/ScriptEngine/Machine/MachineInstance.cs | 117 ++++++++++++------ .../Machine/ModuleSymbolBinding.cs | 34 +++++ src/ScriptEngine/Machine/PropertyBag.cs | 11 +- src/ScriptEngine/Machine/StackModuleImage.cs | 82 ------------ .../Machine/StackRuntimeModule.cs | 4 +- src/ScriptEngine/RuntimeEnvironment.cs | 2 +- .../CodeGenerationTests.cs | 2 +- src/oscript/CgiBehavior.cs | 17 ++- 30 files changed, 294 insertions(+), 333 deletions(-) delete mode 100644 src/OneScript.Core/Contexts/AttachedContext.cs delete mode 100644 src/ScriptEngine/Compiler/SymbolScope.cs create mode 100644 src/ScriptEngine/Machine/EvalExecLocalContext.cs delete mode 100644 src/ScriptEngine/Machine/EvalExecLocalScope.cs rename src/ScriptEngine/Machine/{RuntimeScopes.cs => JoinedScopes.cs} (58%) create mode 100644 src/ScriptEngine/Machine/ModuleSymbolBinding.cs delete mode 100644 src/ScriptEngine/Machine/StackModuleImage.cs diff --git a/src/OneScript.Core/Compilation/Binding/SymbolTable.cs b/src/OneScript.Core/Compilation/Binding/SymbolTable.cs index a3dcfb757..8d91261cd 100644 --- a/src/OneScript.Core/Compilation/Binding/SymbolTable.cs +++ b/src/OneScript.Core/Compilation/Binding/SymbolTable.cs @@ -5,12 +5,13 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System.Collections; using System.Collections.Generic; using OneScript.Contexts; namespace OneScript.Compilation.Binding { - public class SymbolTable + public class SymbolTable : IEnumerable { private class BindingRecord { @@ -126,5 +127,16 @@ public IMethodSymbol GetMethod(SymbolBinding binding) { return GetScope(binding.ScopeNumber).Methods[binding.MemberNumber]; } + + public IEnumerator GetEnumerator() + { + for (int i = 0; i < ScopeCount; i++) + yield return _bindings[i].scope; + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } } } diff --git a/src/OneScript.Core/Contexts/AttachedContext.cs b/src/OneScript.Core/Contexts/AttachedContext.cs deleted file mode 100644 index 0b5c4fc97..000000000 --- a/src/OneScript.Core/Contexts/AttachedContext.cs +++ /dev/null @@ -1,45 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.Collections.Generic; - -namespace OneScript.Contexts -{ - /// - /// Класс контекста, который подключен в память машины. - /// - public sealed class AttachedContext - { - private IVariable[] _variables; - private BslMethodInfo[] _methods; - - public AttachedContext(IAttachableContext source) - { - Instance = source; - Attach(); - } - - public void Attach() - { - Instance.OnAttach(out _variables, out _methods); - } - - public AttachedContext(IAttachableContext target, IVariable[] vars) - { - Instance = target; - _variables = vars; - _methods = Array.Empty(); - } - - public IReadOnlyList Variables => _variables; - - public IReadOnlyList Methods => _methods; - - public IAttachableContext Instance { get; } - } -} \ No newline at end of file diff --git a/src/OneScript.Core/Contexts/IAttachableContext.cs b/src/OneScript.Core/Contexts/IAttachableContext.cs index a8ed173ef..aab710074 100644 --- a/src/OneScript.Core/Contexts/IAttachableContext.cs +++ b/src/OneScript.Core/Contexts/IAttachableContext.cs @@ -5,18 +5,26 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; using OneScript.Execution; namespace OneScript.Contexts { /// /// Присоединяемый контекст. Методы и свойства этого контекста становятся глобальными методами и свойствами. - /// Каждый модуль также является присоединяемым, за счет чего его методы и свойства доступны в модуле, как глобальные. + /// Каждый скрипт также является присоединяемым, за счет чего его методы и свойства доступны в модуле, как глобальные. /// public interface IAttachableContext : IRuntimeContextInstance { + [Obsolete] void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods); + + IVariable GetVariable(int index); + BslMethodInfo GetMethod(int index); + + int VariablesCount { get; } + int MethodsCount { get; } } /// diff --git a/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs b/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs index e85b40c5d..40c5436d4 100644 --- a/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs +++ b/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs @@ -69,6 +69,6 @@ public interface IRuntimeEnvironment /// /// Список подключенных внешних контекстов (слоев), доступных всегда в рамках данного окружения /// - IReadOnlyCollection AttachedContexts { get; } + IReadOnlyList AttachedContexts { get; } } } \ No newline at end of file diff --git a/src/OneScript.Native/Compiler/ExpressionHelpers.cs b/src/OneScript.Native/Compiler/ExpressionHelpers.cs index 545656748..5e9afcae9 100644 --- a/src/OneScript.Native/Compiler/ExpressionHelpers.cs +++ b/src/OneScript.Native/Compiler/ExpressionHelpers.cs @@ -597,13 +597,18 @@ public static Expression CallOfInstanceMethod(Expression instance, string name, public static Expression AccessModuleVariable(ParameterExpression thisArg, int variableIndex) { - var stateProperty = PropertiesCache.GetOrAdd( + var contextProperty = PropertiesCache.GetOrAdd( typeof(NativeClassInstanceWrapper), - nameof(NativeClassInstanceWrapper.State), + nameof(NativeClassInstanceWrapper.Context), BindingFlags.Instance | BindingFlags.Public); - var propertyAccess = Expression.Property(thisArg, stateProperty); - var iVariable = Expression.ArrayIndex(propertyAccess, Expression.Constant(variableIndex)); + var contextAccess = Expression.Property(thisArg, contextProperty); + var getVariableMethod = OperationsCache.GetOrAdd( + typeof(IAttachableContext), + nameof(IAttachableContext.GetVariable), + BindingFlags.Instance | BindingFlags.Public); + + var iVariable = Expression.Call(contextAccess, getVariableMethod, Expression.Constant(variableIndex)); var valueProperty = PropertiesCache.GetOrAdd( typeof(IValueReference), nameof(IValueReference.BslValue), diff --git a/src/OneScript.Native/Runtime/CallableMethod.cs b/src/OneScript.Native/Runtime/CallableMethod.cs index ce0bb1f7e..f61237aad 100644 --- a/src/OneScript.Native/Runtime/CallableMethod.cs +++ b/src/OneScript.Native/Runtime/CallableMethod.cs @@ -60,13 +60,9 @@ private NativeClassInstanceWrapper GetCallableWrapper(object obj) } else if (obj is IAttachableContext context) { - context.OnAttach(out var state, out var methods); - callableWrapper = new NativeClassInstanceWrapper { - Context = context, - State = state, - Methods = methods + Context = context }; } else diff --git a/src/OneScript.Native/Runtime/NativeClassInstanceWrapper.cs b/src/OneScript.Native/Runtime/NativeClassInstanceWrapper.cs index ab1ad2657..4a69fef6e 100644 --- a/src/OneScript.Native/Runtime/NativeClassInstanceWrapper.cs +++ b/src/OneScript.Native/Runtime/NativeClassInstanceWrapper.cs @@ -4,16 +4,17 @@ This Source Code Form is subject to the terms of the was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; using OneScript.Contexts; namespace OneScript.Native.Runtime { + /// + /// Этот класс можно удалить, заменив все обращения к нему на IAttachableContext + /// + [Obsolete("This class can be removed, replace all usages with IAttachableContext")] internal class NativeClassInstanceWrapper { public IAttachableContext Context { get; set; } - - public IVariable[] State { get; set; } - - public BslMethodInfo[] Methods { get; set; } } } diff --git a/src/OneScript.StandardLibrary/Text/ConsoleProvider.cs b/src/OneScript.StandardLibrary/Text/ConsoleProvider.cs index 4a6503f4a..aed3adadf 100644 --- a/src/OneScript.StandardLibrary/Text/ConsoleProvider.cs +++ b/src/OneScript.StandardLibrary/Text/ConsoleProvider.cs @@ -23,13 +23,7 @@ private ConsoleProvider(ExecutionContext executionContext) { _console = new ConsoleContext(executionContext); } - - public override void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) - { - variables = new [] {Variable.CreateContextPropertyReference(this, 0, GetPropName(0))}; - methods = Array.Empty(); - } - + [ContextProperty("Консоль", "Console")] public ConsoleContext Console => _console; diff --git a/src/ScriptEngine.HostedScript/LibraryLoader.cs b/src/ScriptEngine.HostedScript/LibraryLoader.cs index 2b6bc7491..2402830dc 100644 --- a/src/ScriptEngine.HostedScript/LibraryLoader.cs +++ b/src/ScriptEngine.HostedScript/LibraryLoader.cs @@ -113,7 +113,6 @@ public void AddModule(IBslProcess process, string file, string moduleName) $"en = 'Load module ={moduleName}= in to context from file {file}'") ); _env.InjectGlobalProperty(null, moduleName, true); - process.Services.TryResolve()?.Machine?.UpdateGlobals(); } catch (InvalidOperationException e) { diff --git a/src/ScriptEngine.HostedScript/SystemGlobalContext.cs b/src/ScriptEngine.HostedScript/SystemGlobalContext.cs index 3dc6bebb8..59f776f88 100644 --- a/src/ScriptEngine.HostedScript/SystemGlobalContext.cs +++ b/src/ScriptEngine.HostedScript/SystemGlobalContext.cs @@ -47,6 +47,10 @@ private void InitContextVariables() _state[i] = Variable.CreateContextPropertyReference(this, i, _properties.GetProperty(i).Name); } } + + IVariable IAttachableContext.GetVariable(int index) => _state[index]; + + BslMethodInfo IAttachableContext.GetMethod(int index) => _methods.GetRuntimeMethod(index); public IHostApplication ApplicationHost { get; set; } public SourceCode CodeSource { get; set; } @@ -172,7 +176,7 @@ public string ProgramDirectory() #region IAttachableContext Members - public void OnAttach(out IVariable[] variables, + void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) { if (_state == null) @@ -186,6 +190,10 @@ public void OnAttach(out IVariable[] variables, } } + int IAttachableContext.VariablesCount => _properties.Count; + + int IAttachableContext.MethodsCount => _methods.Count; + #endregion #region IRuntimeContextInstance Members diff --git a/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs b/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs index 62fc4cef6..7470af728 100644 --- a/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs +++ b/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs @@ -35,13 +35,7 @@ public IExecutableModule Compile(ModuleNode parsedModule, Type classType, IBslPr { _codeGen.ProduceExtraCode = GetCodeFlags(); _codeGen.DependencyResolver = DependencyResolver; - var module = _codeGen.CreateModule(parsedModule, parsedModule.Source, Symbols, process); - return LoadModuleImage(module); - } - - public IExecutableModule LoadModuleImage(StackModuleImage module) - { - throw new NotImplementedException(); + return _codeGen.CreateModule(parsedModule, parsedModule.Source, Symbols, process); } private CodeGenerationFlags GetCodeFlags() diff --git a/src/ScriptEngine/Compiler/ModuleDumpWriter.cs b/src/ScriptEngine/Compiler/ModuleDumpWriter.cs index 9e7629d57..906df5e5d 100644 --- a/src/ScriptEngine/Compiler/ModuleDumpWriter.cs +++ b/src/ScriptEngine/Compiler/ModuleDumpWriter.cs @@ -36,7 +36,7 @@ public ModuleDumpWriter(ICompilerFrontend compilerService, IBslProcess process) public void Write(TextWriter output, SourceCode source) { var compilerResult = _compiler.Compile(source, _process); - if (compilerResult is StackModuleImage stackModule) + if (compilerResult is StackRuntimeModule stackModule) { var module = stackModule; WriteImage(output, module); @@ -109,12 +109,12 @@ private void PrintField(TextWriter output, BslFieldInfo field) output.WriteLine($"{field.FieldType} {field.Name}"); } - public void Write(TextWriter output, StackModuleImage module) + public void Write(TextWriter output, StackRuntimeModule module) { WriteImage(output, module); } - private void WriteImage(TextWriter output, StackModuleImage module) + private void WriteImage(TextWriter output, StackRuntimeModule module) { output.WriteLine(".variableFrame:"); module.Fields @@ -149,7 +149,7 @@ private void WriteImage(TextWriter output, StackModuleImage module) output.WriteLine(module.EntryMethodIndex.ToString()); } - private void WriteSymbolMap(TextWriter output, IList map) + private void WriteSymbolMap(TextWriter output, IList map) { for (int i = 0; i < map.Count; i++) { diff --git a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs index 4dfdc70e8..1ec5c8571 100644 --- a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs +++ b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs @@ -32,7 +32,7 @@ namespace ScriptEngine.Compiler public partial class StackMachineCodeGenerator : BslSyntaxWalker { private readonly IErrorSink _errorSink; - private readonly StackModuleImage _module; + private readonly StackRuntimeModule _module; private SourceCode _sourceCode; private SymbolTable _ctx; private List _constMap = new List(); @@ -47,14 +47,14 @@ public partial class StackMachineCodeGenerator : BslSyntaxWalker public StackMachineCodeGenerator(IErrorSink errorSink) { _errorSink = errorSink; - _module = new StackModuleImage(typeof(IRuntimeContextInstance)); + _module = new StackRuntimeModule(typeof(IRuntimeContextInstance)); } public CodeGenerationFlags ProduceExtraCode { get; set; } public IDependencyResolver DependencyResolver { get; set; } - public StackModuleImage CreateModule(ModuleNode moduleNode, SourceCode source, SymbolTable context, + public StackRuntimeModule CreateModule(ModuleNode moduleNode, SourceCode source, SymbolTable context, IBslProcess process) { if (moduleNode.Kind != NodeKind.Module) @@ -69,7 +69,7 @@ public StackModuleImage CreateModule(ModuleNode moduleNode, SourceCode source, S return CreateImageInternal(moduleNode); } - private StackModuleImage CreateImageInternal(ModuleNode moduleNode) + private StackRuntimeModule CreateImageInternal(ModuleNode moduleNode) { VisitModule(moduleNode); CheckForwardedDeclarations(); @@ -178,7 +178,7 @@ protected override void VisitModuleVariable(VariableDefinitionNode varNode) _module.Fields.Add(field); var binding = _ctx.DefineVariable(field.ToSymbol()); var target = _ctx.GetBinding(binding.ScopeNumber); - var imageBinding = new ModuleImageBinding + var imageBinding = new ModuleSymbolBinding { Target = target, MemberNumber = binding.MemberNumber @@ -221,7 +221,7 @@ protected override void VisitModuleBody(BslSyntaxNode child) var entryRefNumber = _module.MethodRefs.Count; var target = _ctx.GetBinding(topIdx); - var bodyBinding = new ModuleImageBinding + var bodyBinding = new ModuleSymbolBinding { Target = target, MemberNumber = _module.Methods.Count @@ -311,7 +311,7 @@ protected override void VisitMethod(MethodNode methodNode) binding = default; } var target = _ctx.GetBinding(binding.ScopeNumber); - var imageBinding = new ModuleImageBinding + var imageBinding = new ModuleSymbolBinding { Target = target, MemberNumber = binding.MemberNumber @@ -1278,7 +1278,7 @@ private int GetConstNumber(in ConstDefinition cDef) private int GetMethodRefNumber(in SymbolBinding methodBinding) { var target = _ctx.GetBinding(methodBinding.ScopeNumber); - var imageBinding = new ModuleImageBinding + var imageBinding = new ModuleSymbolBinding { Target = target, MemberNumber = methodBinding.MemberNumber @@ -1296,7 +1296,7 @@ private int GetMethodRefNumber(in SymbolBinding methodBinding) private int GetVariableRefNumber(in SymbolBinding binding) { var target = _ctx.GetBinding(binding.ScopeNumber); - var imageBinding = new ModuleImageBinding + var imageBinding = new ModuleSymbolBinding { Target = target, MemberNumber = binding.MemberNumber diff --git a/src/ScriptEngine/Compiler/SymbolScope.cs b/src/ScriptEngine/Compiler/SymbolScope.cs deleted file mode 100644 index 54c7caae1..000000000 --- a/src/ScriptEngine/Compiler/SymbolScope.cs +++ /dev/null @@ -1,24 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using OneScript.Compilation; -using OneScript.Localization; - -namespace ScriptEngine.Compiler -{ - class SymbolNotFoundException : CompilerException - { - public SymbolNotFoundException(string symbol) - : base(BilingualString.Localize($"Неизвестный символ: {symbol}", $"Unknown symbol {symbol}")) - { - Symbol = symbol; - } - - public string Symbol { get; } - } - -} diff --git a/src/ScriptEngine/Machine/Contexts/AutoScriptDrivenObject.cs b/src/ScriptEngine/Machine/Contexts/AutoScriptDrivenObject.cs index 485bdb12c..cbd910a61 100644 --- a/src/ScriptEngine/Machine/Contexts/AutoScriptDrivenObject.cs +++ b/src/ScriptEngine/Machine/Contexts/AutoScriptDrivenObject.cs @@ -59,10 +59,6 @@ protected override int GetOwnMethodCount() return _ownMethods.Count; } - protected override void UpdateState() - { - } - protected override int FindOwnProperty(string name) { var baseIndex = base.FindOwnProperty(name); diff --git a/src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs b/src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs index 5d777f868..9ba09651d 100644 --- a/src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs +++ b/src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs @@ -126,7 +126,7 @@ public void CallAsFunction(int methodNumber, IValue[] arguments, out IValue retV #region IAttachableContext members - public virtual void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) + void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) { variables = new IVariable[GetPropCount()]; for (int i = 0; i < variables.Length; i++) @@ -136,7 +136,21 @@ public virtual void OnAttach(out IVariable[] variables, out BslMethodInfo[] meth methods = this.GetMethods().ToArray(); } + + IVariable IAttachableContext.GetVariable(int index) + { + return Variable.CreateContextPropertyReference(this, index, GetPropName(index)); + } + + BslMethodInfo IAttachableContext.GetMethod(int index) + { + return GetMethodInfo(index); + } + + int IAttachableContext.VariablesCount => GetPropCount(); + int IAttachableContext.MethodsCount => GetMethodsCount(); + public virtual int GetMethodsCount() { return Methods.Count; diff --git a/src/ScriptEngine/Machine/Contexts/ScriptDrivenObject.cs b/src/ScriptEngine/Machine/Contexts/ScriptDrivenObject.cs index 82e2a0e8a..c08fb15b0 100644 --- a/src/ScriptEngine/Machine/Contexts/ScriptDrivenObject.cs +++ b/src/ScriptEngine/Machine/Contexts/ScriptDrivenObject.cs @@ -98,8 +98,7 @@ private void ClearSearchCaches() protected abstract int GetOwnVariableCount(); protected abstract int GetOwnMethodCount(); - protected abstract void UpdateState(); - + public bool MethodDefinedInScript(int index) { return index >= METHOD_COUNT; @@ -223,39 +222,30 @@ protected virtual IValue CallOwnFunction(int index, IValue[] arguments, IBslProc #region IAttachableContext Members - public void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) + void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) { - UpdateState(); - variables = _state; - methods = AttachMethods(); - } - - private BslMethodInfo[] AttachMethods() - { - if (_attachableMethods != null) - return _attachableMethods; - - int totalMethods = METHOD_COUNT + _module.Methods.Count; - _attachableMethods = new BslMethodInfo[totalMethods]; - - var moduleMethods = _module.Methods; - - for (int i = 0; i < totalMethods; i++) + methods = new BslMethodInfo[GetMethodsCount()]; + for (int i = 0; i < methods.Length; i++) { - if (MethodDefinedInScript(i)) - { - _attachableMethods[i] = moduleMethods[i - METHOD_COUNT]; - } - else - { - _attachableMethods[i] = GetOwnMethod(i); - } + methods[i] = GetMethodInfo(i); } + } + + IVariable IAttachableContext.GetVariable(int index) + { + return _state[index]; + } - return _attachableMethods; + BslMethodInfo IAttachableContext.GetMethod(int index) + { + return GetMethodInfo(index); } + int IAttachableContext.VariablesCount => _state.Length; + + int IAttachableContext.MethodsCount => GetMethodsCount(); + #endregion #region IRuntimeContextInstance Members diff --git a/src/ScriptEngine/Machine/Contexts/UserScriptContextInstance.cs b/src/ScriptEngine/Machine/Contexts/UserScriptContextInstance.cs index 69681922c..ed5171fd2 100644 --- a/src/ScriptEngine/Machine/Contexts/UserScriptContextInstance.cs +++ b/src/ScriptEngine/Machine/Contexts/UserScriptContextInstance.cs @@ -280,10 +280,6 @@ protected override int GetOwnVariableCount() return base.GetOwnVariableCount() + (_ownProperties?.Count ?? 0); } - protected override void UpdateState() - { - } - protected override bool IsOwnPropReadable(int index) { if (_ownProperties == null) diff --git a/src/ScriptEngine/Machine/EvalExecLocalContext.cs b/src/ScriptEngine/Machine/EvalExecLocalContext.cs new file mode 100644 index 000000000..ff7a1fbc6 --- /dev/null +++ b/src/ScriptEngine/Machine/EvalExecLocalContext.cs @@ -0,0 +1,41 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using OneScript.Compilation.Binding; +using OneScript.Contexts; +using OneScript.Execution; +using ScriptEngine.Machine.Contexts; + +namespace ScriptEngine.Machine +{ + internal class EvalExecLocalContext : ContextIValueImpl, IAttachableContext + { + private readonly IVariable[] _locals; + + public EvalExecLocalContext(IVariable[] locals) + { + _locals = locals; + } + + public void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) + { + throw new NotImplementedException(); + } + + public IVariable GetVariable(int index) => _locals[index]; + + public BslMethodInfo GetMethod(int index) + { + throw new ArgumentOutOfRangeException(); + } + + int IAttachableContext.VariablesCount => _locals.Length; + + int IAttachableContext.MethodsCount => 0; + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/EvalExecLocalScope.cs b/src/ScriptEngine/Machine/EvalExecLocalScope.cs deleted file mode 100644 index 7d6e70dc9..000000000 --- a/src/ScriptEngine/Machine/EvalExecLocalScope.cs +++ /dev/null @@ -1,35 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using OneScript.Contexts; -using OneScript.Execution; -using ScriptEngine.Machine.Contexts; - -namespace ScriptEngine.Machine -{ - internal class EvalExecLocalScope : ScriptDrivenObject, IAttachableContext - { - public EvalExecLocalScope(IExecutableModule module) : base(module, false) - { - } - - void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) - { - variables = Array.Empty(); - methods = Array.Empty(); - } - - protected override int GetOwnVariableCount() => 0; - - protected override int GetOwnMethodCount() => 0; - - protected override void UpdateState() - { - } - } -} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/ExecutionFrame.cs b/src/ScriptEngine/Machine/ExecutionFrame.cs index 72f4e7f4a..7949493e7 100644 --- a/src/ScriptEngine/Machine/ExecutionFrame.cs +++ b/src/ScriptEngine/Machine/ExecutionFrame.cs @@ -24,9 +24,9 @@ internal class ExecutionFrame public readonly Stack LocalFrameStack = new Stack(); - public AttachedContext ThisScope { get; set; } + public IAttachableContext ThisScope { get; set; } - public IReadOnlyList Scopes { get; set; } + public IReadOnlyList Scopes { get; set; } public override string ToString() { diff --git a/src/ScriptEngine/Machine/RuntimeScopes.cs b/src/ScriptEngine/Machine/JoinedScopes.cs similarity index 58% rename from src/ScriptEngine/Machine/RuntimeScopes.cs rename to src/ScriptEngine/Machine/JoinedScopes.cs index da19966ad..60fb56c5d 100644 --- a/src/ScriptEngine/Machine/RuntimeScopes.cs +++ b/src/ScriptEngine/Machine/JoinedScopes.cs @@ -1,14 +1,13 @@ /*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; using System.Collections; using System.Collections.Generic; -using System.Linq; using OneScript.Contexts; namespace ScriptEngine.Machine @@ -16,22 +15,18 @@ namespace ScriptEngine.Machine /// /// Оборачивающий контейнер. Хранит внешние области видимости и одну локальную, как единый плоский список. /// - public class RuntimeScopes : IReadOnlyList + public class JoinedScopes : IReadOnlyList { - private readonly IReadOnlyList _outerScopes; - private readonly AttachedContext _innerScope; + private readonly IReadOnlyList _outerScopes; + private readonly IAttachableContext _innerScope; - private readonly int _outerScopeLast; - - public RuntimeScopes(IReadOnlyList outerScopes, AttachedContext innerScope) + public JoinedScopes(IReadOnlyList outerScopes, IAttachableContext innerScope) { - _outerScopes = outerScopes; - _innerScope = innerScope; - - _outerScopeLast = _outerScopes.Count - 1; + _outerScopes = outerScopes ?? throw new ArgumentNullException(nameof(outerScopes)); + _innerScope = innerScope ?? throw new ArgumentNullException(nameof(innerScope)); } - public IEnumerator GetEnumerator() + public IEnumerator GetEnumerator() { foreach (var scope in _outerScopes) { @@ -48,18 +43,19 @@ IEnumerator IEnumerable.GetEnumerator() public int Count => _outerScopes.Count + 1; - public AttachedContext this[int index] + public IAttachableContext this[int index] { get { if (index < 0 || index >= Count) throw new IndexOutOfRangeException(); - if (index > _outerScopeLast) + if (index == _outerScopes.Count) return _innerScope; return _outerScopes[index]; } } } -} \ No newline at end of file +} + diff --git a/src/ScriptEngine/Machine/MachineInstance.cs b/src/ScriptEngine/Machine/MachineInstance.cs index cea8f0c62..a62698cfe 100644 --- a/src/ScriptEngine/Machine/MachineInstance.cs +++ b/src/ScriptEngine/Machine/MachineInstance.cs @@ -44,7 +44,7 @@ public class MachineInstance private IBslProcess _process; private ITypeManager _typeManager; - private AttachedContext[] _globalContexts; + private IRuntimeEnvironment _runtimeEnvironment; // для отладчика. // актуален в момент останова машины @@ -70,30 +70,39 @@ public void Setup(IBslProcess process) _process = process; _codeStatCollector = process.Services.TryResolve(); _typeManager = process.Services.Resolve(); - _globalContexts = process.Services.Resolve().AttachedContexts.Select(x => new AttachedContext(x)) - .ToArray(); + _runtimeEnvironment = process.Services.Resolve(); } internal IBslProcess Process => _process; - public void UpdateGlobals() + public bool IsRunning => _callStack.Count != 0; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IReadOnlyList CreateRootFrameScopes(IAttachableContext thisScope) { - _globalContexts.ForEach(x => x.Attach()); + if (_runtimeEnvironment == null) + throw new InvalidOperationException("Runtime environment is not initialized"); + + var globals = _runtimeEnvironment.AttachedContexts; + return new JoinedScopes(globals, thisScope); } - - public bool IsRunning => _callStack.Count != 0; [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static IReadOnlyList CreateFrameScopes(IReadOnlyList outerScopes, AttachedContext thisScope) - => new RuntimeScopes(outerScopes, thisScope); + private static IReadOnlyList CreateFrameScopes(IReadOnlyList outerScopes, IAttachableContext thisScope) + { + if (outerScopes == null) + throw new ArgumentNullException(nameof(outerScopes)); + + return new JoinedScopes(outerScopes, thisScope); + } internal IValue ExecuteMethod(IRunnable sdo, MachineMethodInfo methodInfo, IValue[] arguments) { var module = sdo.Module as StackRuntimeModule; Debug.Assert(module != null); - var thisScope = new AttachedContext(sdo); - var scopes = CreateFrameScopes(_globalContexts, thisScope); + var thisScope = sdo; + var scopes = CreateRootFrameScopes(thisScope); var frame = new ExecutionFrame { @@ -220,7 +229,7 @@ public IValue Evaluate(string expression) { var code = CompileCached(expression, CompileExpressionModule); - var localScope = new AttachedContext(new EvalExecLocalScope(code), _currentFrame.Locals); + IAttachableContext localScope = new EvalExecLocalContext(_currentFrame.Locals); var frame = new ExecutionFrame { @@ -250,7 +259,7 @@ internal BslValue EvaluateInFrame(string expression, ExecutionFrame selectedFram MachineInstance runner = new MachineInstance { _process = this._process, - _globalContexts = this._globalContexts, + _runtimeEnvironment = this._runtimeEnvironment, _typeManager = this._typeManager, _debugInfo = CurrentScript }; @@ -261,7 +270,7 @@ internal BslValue EvaluateInFrame(string expression, ExecutionFrame selectedFram var code = runner.CompileExpressionModule(expression); - var localScope = new AttachedContext(new EvalExecLocalScope(code), selectedFrame.Locals); + IAttachableContext localScope = new EvalExecLocalContext(selectedFrame.Locals); frame = new ExecutionFrame { @@ -344,7 +353,7 @@ private void Reset() _currentFrame = null; _process = null; _typeManager = null; - _globalContexts = null; + _runtimeEnvironment = null; } private void PrepareCodeStatisticsData(StackRuntimeModule _module) @@ -661,8 +670,9 @@ private void InitCommands() private void PushVar(int arg) { var binding = _module.VariableRefs[arg]; - var scope = _currentFrame.Scopes[binding.ScopeNumber]; - _operationStack.Push(scope.Variables[binding.MemberNumber]); + var target = binding.Target ?? _currentFrame.ThisScope; + _operationStack.Push(target.GetVariable(binding.MemberNumber)); + NextInstruction(); } @@ -705,8 +715,10 @@ private void PushLoc(int arg) private void PushRef(int arg) { var binding = _module.VariableRefs[arg]; - var scope = _currentFrame.Scopes[binding.ScopeNumber]; - var reference = Variable.CreateContextPropertyReference(scope.Instance, binding.MemberNumber, "$stackvar"); + + var target = binding.Target ?? _currentFrame.ThisScope; + var reference = Variable.CreateContextPropertyReference(target, binding.MemberNumber, "$stackvar"); + _operationStack.Push(reference); NextInstruction(); } @@ -714,8 +726,9 @@ private void PushRef(int arg) private void LoadVar(int arg) { var binding = _module.VariableRefs[arg]; - var scope = _currentFrame.Scopes[binding.ScopeNumber]; - scope.Variables[binding.MemberNumber].Value = PopRawValue(); + var target = binding.Target ?? _currentFrame.ThisScope; + target.GetVariable(binding.MemberNumber).Value = PopRawValue(); + NextInstruction(); } @@ -899,17 +912,18 @@ private IValue[] PopArguments() private bool MethodCallImpl(int arg, bool asFunc) { var methodRef = _module.MethodRefs[arg]; - var scope = _currentFrame.Scopes[methodRef.ScopeNumber]; - var methodSignature = scope.Methods[methodRef.MemberNumber]; + + var boundInstance = methodRef.Target ?? _currentFrame.ThisScope; + var methodSignature = boundInstance.GetMethod(methodRef.MemberNumber); IValue[] argValues = PopArguments(); var definedParameters = methodSignature.GetBslParameters(); bool needsDiscarding; - if (scope == _currentFrame.ThisScope) // local call + if (ReferenceEquals(boundInstance, _currentFrame.ThisScope)) // local call { - var sdo = scope.Instance as ScriptDrivenObject; + var sdo = boundInstance as ScriptDrivenObject; System.Diagnostics.Debug.Assert(sdo != null); if (sdo.MethodDefinedInScript(methodRef.MemberNumber)) @@ -921,7 +935,7 @@ private bool MethodCallImpl(int arg, bool asFunc) var frame = new ExecutionFrame { Module = _module, - ThisScope = scope, + ThisScope = _currentFrame.ThisScope, Scopes = _currentFrame.Scopes }; SetExecutionFrame(frame, methodInfo, argValues); @@ -931,7 +945,7 @@ private bool MethodCallImpl(int arg, bool asFunc) else { needsDiscarding = _currentFrame.DiscardReturnValue; - CallContext(scope.Instance, methodRef.MemberNumber, definedParameters, argValues, asFunc); + CallContext(boundInstance, methodRef.MemberNumber, definedParameters, argValues, asFunc); } } else @@ -940,7 +954,7 @@ private bool MethodCallImpl(int arg, bool asFunc) // статус вызова текущего frames не должен изменяться. // needsDiscarding = _currentFrame.DiscardReturnValue; - CallContext(scope.Instance, methodRef.MemberNumber, definedParameters, argValues, asFunc); + CallContext(boundInstance, methodRef.MemberNumber, definedParameters, argValues, asFunc); } return needsDiscarding; @@ -1377,7 +1391,7 @@ private void Execute(int arg) return; } - var localScope = new AttachedContext(new EvalExecLocalScope(module), _currentFrame.Locals); + IAttachableContext localScope = new EvalExecLocalContext(_currentFrame.Locals); var scopes = CreateFrameScopes(_currentFrame.Scopes, localScope); var mi = (MachineMethodInfo)module.Methods[0]; @@ -1459,7 +1473,7 @@ private void PrepareHandlerOperationArgs(bool useExportMode, else { handlerMethod = PopRawBslValue().ToString(_process); - handlerTarget = _currentFrame.ThisScope.Instance; + handlerTarget = _currentFrame.ThisScope; eventName = PopRawBslValue().ToString(_process); eventSource = _operationStack.Pop().AsObject(); } @@ -2441,37 +2455,62 @@ private StackRuntimeModule CompileExecutionBatchModule(string execBatch) private SymbolTable ExtractCompilerContext() { var ctx = new SymbolTable(); - - var scopes = _currentFrame.Scopes; + var scopes = _currentFrame.Scopes ?? Array.Empty(); + + // Добавляем все контексты из scopes (глобальные + локальные из предыдущих кадров) foreach (var scope in scopes) { var symbolScope = new SymbolScope(); - foreach (var methodInfo in scope.Methods) + + // Добавляем методы + for (int i = 0; i < scope.MethodsCount; i++) { + var methodInfo = scope.GetMethod(i); symbolScope.DefineMethod(methodInfo.ToSymbol()); } - foreach (var variable in scope.Variables) + + // Добавляем переменные + // Используем VariablesCount для получения количества переменных + for (int i = 0; i < scope.VariablesCount; i++) { - if (variable.SystemType.Alias != null) + var variable = scope.GetVariable(i); + + // Получаем информацию о свойстве, если scope поддерживает это + string alias = null; + if (scope is IRuntimeContextInstance runtimeContext) { - symbolScope.DefineVariable(new AliasedVariableSymbol(variable.Name, variable.SystemType.Alias)); + try + { + var propInfo = runtimeContext.GetPropertyInfo(i); + alias = propInfo.Alias; + } + catch + { + // Если GetPropertyInfo не поддерживается, используем только имя переменной + } + } + + if (alias != null) + { + symbolScope.DefineVariable(new AliasedVariableSymbol(variable.Name, alias)); } else { symbolScope.DefineVariable(new LocalVariableSymbol(variable.Name)); } } - - ctx.PushScope(symbolScope, scope.Instance); + + ctx.PushScope(symbolScope, scope); } + // Локальные переменные текущего фрейма var locals = new SymbolScope(); foreach (var variable in _currentFrame.Locals) { locals.DefineVariable(new LocalVariableSymbol(variable.Name)); } - ctx.PushScope(locals, _currentFrame.ThisScope.Instance); + ctx.PushScope(locals, new EvalExecLocalContext(_currentFrame.Locals)); return ctx; } diff --git a/src/ScriptEngine/Machine/ModuleSymbolBinding.cs b/src/ScriptEngine/Machine/ModuleSymbolBinding.cs new file mode 100644 index 000000000..39ce5ccd6 --- /dev/null +++ b/src/ScriptEngine/Machine/ModuleSymbolBinding.cs @@ -0,0 +1,34 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using OneScript.Contexts; + +namespace ScriptEngine.Machine +{ + public struct ModuleSymbolBinding : IEquatable + { + public IAttachableContext Target { get; set; } + + public int MemberNumber { get; set; } + + public bool Equals(ModuleSymbolBinding other) + { + return ReferenceEquals(Target, other.Target) && MemberNumber == other.MemberNumber; + } + + public override bool Equals(object obj) + { + return obj is ModuleSymbolBinding other && Equals(other); + } + + public override int GetHashCode() + { + return HashCode.Combine(Target, MemberNumber); + } + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/PropertyBag.cs b/src/ScriptEngine/Machine/PropertyBag.cs index 0a3ad548e..f1b0f7793 100644 --- a/src/ScriptEngine/Machine/PropertyBag.cs +++ b/src/ScriptEngine/Machine/PropertyBag.cs @@ -83,7 +83,7 @@ public override int GetMethodsCount() #region IAttachableContext Members - public void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) + void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) { variables = new IVariable[this.Count]; var props = GetDynamicProperties().OrderBy(x => x.Value).Select(x=>x.Key).ToArray(); @@ -96,6 +96,15 @@ public void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) methods = Array.Empty(); } + + IVariable IAttachableContext.GetVariable(int index) => + Variable.CreateContextPropertyReference(this, index, GetPropertyName(index)); + + BslMethodInfo IAttachableContext.GetMethod(int index) => throw new ArgumentOutOfRangeException(); + + int IAttachableContext.VariablesCount => this.Count; + + int IAttachableContext.MethodsCount => 0; #endregion } diff --git a/src/ScriptEngine/Machine/StackModuleImage.cs b/src/ScriptEngine/Machine/StackModuleImage.cs deleted file mode 100644 index e21e73a98..000000000 --- a/src/ScriptEngine/Machine/StackModuleImage.cs +++ /dev/null @@ -1,82 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.Collections.Generic; -using OneScript.Compilation.Binding; -using OneScript.Contexts; -using OneScript.Execution; -using OneScript.Sources; -using OneScript.Values; - -namespace ScriptEngine.Machine -{ - public struct ModuleImageBinding : IEquatable - { - public IAttachableContext Target { get; set; } - - public int MemberNumber { get; set; } - - public bool Equals(ModuleImageBinding other) - { - return ReferenceEquals(Target, other.Target) && MemberNumber == other.MemberNumber; - } - - public override bool Equals(object obj) - { - return obj is ModuleImageBinding other && Equals(other); - } - - public override int GetHashCode() - { - return HashCode.Combine(Target, MemberNumber); - } - } - public class StackModuleImage - { - public StackModuleImage(Type ownerType) - { - ClassType = ownerType; - } - - public Type ClassType { get; } - - public int EntryMethodIndex { get; set; } = -1; - - public List Constants { get; } = new List(); - - internal IList VariableRefs { get; } = new List(); - - internal IList MethodRefs { get; } = new List(); - - public BslScriptMethodInfo ModuleBody - { - get - { - if (EntryMethodIndex == -1) - return null; - - return Methods[MethodRefs[EntryMethodIndex].MemberNumber]; - } - } - - public IList ModuleAttributes { get; } = new List(); - - public IList Fields { get; } = new List(); - - public IList Properties { get; } = new List(); - - public IList Methods { get; } = new List(); - - public IList Code { get; } = new List(512); - - public SourceCode Source { get; set; } - - public IDictionary Interfaces { get; } = new Dictionary(); - } -} - diff --git a/src/ScriptEngine/Machine/StackRuntimeModule.cs b/src/ScriptEngine/Machine/StackRuntimeModule.cs index 768478148..138184248 100644 --- a/src/ScriptEngine/Machine/StackRuntimeModule.cs +++ b/src/ScriptEngine/Machine/StackRuntimeModule.cs @@ -28,9 +28,9 @@ public StackRuntimeModule(Type ownerType) public List Constants { get; } = new List(); - internal IList VariableRefs { get; } = new List(); + internal IList VariableRefs { get; } = new List(); - internal IList MethodRefs { get; } = new List(); + internal IList MethodRefs { get; } = new List(); #region IExecutableModule members diff --git a/src/ScriptEngine/RuntimeEnvironment.cs b/src/ScriptEngine/RuntimeEnvironment.cs index e3648e9e6..0ab7f60ea 100644 --- a/src/ScriptEngine/RuntimeEnvironment.cs +++ b/src/ScriptEngine/RuntimeEnvironment.cs @@ -117,7 +117,7 @@ public IValue GetGlobalProperty(string propertyName) public SymbolTable GetSymbolTable() => _symbols; - public IReadOnlyCollection AttachedContexts => _contexts; + public IReadOnlyList AttachedContexts => _contexts; public IEnumerable GetLibraries() { diff --git a/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs b/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs index 016ef677a..ca65c5291 100644 --- a/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs +++ b/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs @@ -54,7 +54,7 @@ public void Variables_Are_Registered_In_Image() image.Fields.Should().HaveCount(2); } - private static StackModuleImage BuildModule(string code, IBslProcess process) + private static StackRuntimeModule BuildModule(string code, IBslProcess process) { var lexer = new DefaultLexer(); lexer.Iterator = SourceCodeBuilder.Create().FromString(code).Build().CreateIterator(); diff --git a/src/oscript/CgiBehavior.cs b/src/oscript/CgiBehavior.cs index 379f2650a..e1b9e5637 100644 --- a/src/oscript/CgiBehavior.cs +++ b/src/oscript/CgiBehavior.cs @@ -98,12 +98,27 @@ private int RunCGIMode(string scriptFile) return exitCode; } - public void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) + void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) { variables = Array.Empty(); methods = this.GetMethods().ToArray(); } + IVariable IAttachableContext.GetVariable(int index) + { + throw new IndexOutOfRangeException("No such variable at index: " + index); + } + + BslMethodInfo IAttachableContext.GetMethod(int index) + { + return GetMethodInfo(index); + } + + int IAttachableContext.VariablesCount => 0; + + int IAttachableContext.MethodsCount => _methods.Count; + + #region CGIHost [ContextMethod("ВывестиЗаголовок", "Header")] From 074c56ff816e79bed51c14a5693497d121ed072f Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 25 Nov 2025 12:03:37 +0300 Subject: [PATCH 173/191] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=D0=B1=D1=80=D0=B0=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=20BilingualString.HasName?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Localization/BilingualString.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/OneScript.Language/Localization/BilingualString.cs b/src/OneScript.Language/Localization/BilingualString.cs index baed18d03..66de11615 100644 --- a/src/OneScript.Language/Localization/BilingualString.cs +++ b/src/OneScript.Language/Localization/BilingualString.cs @@ -34,17 +34,26 @@ public static implicit operator string(BilingualString str) { return str.ToString(); } + + private readonly int _ruHash; + private readonly int _enHash; public BilingualString(string ru, string en) { Russian = ru; English = en; + + _enHash = en.GetHashCode(); + _ruHash = ru.GetHashCode(); } public BilingualString(string single) { Russian = single; English = string.Empty; + + _enHash = English.GetHashCode(); + _ruHash = Russian.GetHashCode(); } public string Russian { get; } @@ -58,6 +67,10 @@ public override string ToString() public bool HasName(string name, StringComparison comparison = StringComparison.CurrentCultureIgnoreCase) { + var nameHash = name.GetHashCode(); + if (nameHash != _ruHash && nameHash != _enHash) + return false; + return string.Equals(Russian, name, comparison) || string.Equals(English, name, comparison); } From 9e47acff80a57326f30fe2ba156ada92f9f3fa8f Mon Sep 17 00:00:00 2001 From: Andrey Ovsiankin Date: Fri, 28 Nov 2025 15:53:47 +0300 Subject: [PATCH 174/191] Fix eval scopes binding and tests --- .../Compilation/Binding/BindingExtensions.cs | 23 +++++++-- .../Binding/ScopeBindingDescriptor.cs | 51 +++++++++++++++++++ .../Compilation/Binding/SymbolTable.cs | 24 ++++----- .../Compilation/CompilerFrontendBase.cs | 5 +- .../Compiler/MethodCompiler.cs | 9 ++-- src/ScriptEngine/Compiler/ModuleDumpWriter.cs | 10 +++- .../Compiler/StackMachineCodeGenerator.cs | 44 +++++++++------- src/ScriptEngine/Machine/MachineInstance.cs | 34 +++++++++---- .../Machine/ModuleSymbolBinding.cs | 34 +++++++++++-- .../CodeGenerationTests.cs | 2 +- .../OneScript.Dynamic.Tests/CompileHelper.cs | 2 +- .../OneScript.Dynamic.Tests/NativeSdoTests.cs | 2 +- tests/eval.os | 18 +++++++ tests/testdata/evalDifferentThis.os | 10 ++++ 14 files changed, 210 insertions(+), 58 deletions(-) create mode 100644 src/OneScript.Core/Compilation/Binding/ScopeBindingDescriptor.cs create mode 100644 tests/testdata/evalDifferentThis.os diff --git a/src/OneScript.Core/Compilation/Binding/BindingExtensions.cs b/src/OneScript.Core/Compilation/Binding/BindingExtensions.cs index 02be956c3..8d062edd9 100644 --- a/src/OneScript.Core/Compilation/Binding/BindingExtensions.cs +++ b/src/OneScript.Core/Compilation/Binding/BindingExtensions.cs @@ -4,6 +4,7 @@ This Source Code Form is subject to the terms of the was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using System; using OneScript.Contexts; using OneScript.Runtime.Binding; using OneScript.Values; @@ -12,17 +13,31 @@ namespace OneScript.Compilation.Binding { public static class BindingExtensions { - public static SymbolScope PushObject(this SymbolTable table, BslObjectValue target) + /// + /// Добавляет в таблицу символов область видимости объекта, который может быть присоединён к рантайму. + /// + /// Таблица символов, в которую нужно добавить область. + /// Объект, чьи методы/свойства требуется отобразить в символы. + /// + /// Пользовательский дескриптор привязки. Если не указан, область считается статической и привязанной к самому объекту. + /// + /// Выбрасывается, если объект не реализует . + public static SymbolScope PushObject(this SymbolTable table, BslObjectValue target, + ScopeBindingDescriptor? descriptor = null) { + if (!(target is IAttachableContext attachable)) + throw new ArgumentException("Target must implement IAttachableContext", nameof(target)); + var scope = SymbolScope.FromObject(target); - table.PushScope(scope, (IAttachableContext)target); + table.PushScope(scope, descriptor ?? ScopeBindingDescriptor.Static(attachable)); return scope; } - public static SymbolScope PushContext(this SymbolTable table, IAttachableContext target) + public static SymbolScope PushContext(this SymbolTable table, IAttachableContext target, + ScopeBindingDescriptor? descriptor = null) { var scope = SymbolScope.FromContext(target); - table.PushScope(scope, target); + table.PushScope(scope, descriptor ?? ScopeBindingDescriptor.Static(target)); return scope; } diff --git a/src/OneScript.Core/Compilation/Binding/ScopeBindingDescriptor.cs b/src/OneScript.Core/Compilation/Binding/ScopeBindingDescriptor.cs new file mode 100644 index 000000000..c8127c84d --- /dev/null +++ b/src/OneScript.Core/Compilation/Binding/ScopeBindingDescriptor.cs @@ -0,0 +1,51 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using OneScript.Contexts; + +namespace OneScript.Compilation.Binding +{ + public enum ScopeBindingKind + { + Static, + ThisScope, + FrameScope + } + + public readonly struct ScopeBindingDescriptor + { + private ScopeBindingDescriptor(ScopeBindingKind kind, IAttachableContext target, int scopeIndex) + { + if (kind == ScopeBindingKind.FrameScope && scopeIndex < 0) + throw new ArgumentOutOfRangeException(nameof(scopeIndex)); + + Kind = kind; + Target = target; + ScopeIndex = scopeIndex; + } + + public ScopeBindingKind Kind { get; } + + public IAttachableContext Target { get; } + + /// + /// Индекс области видимости в списке ExecutionFrame.Scopes. Используется для ScopeBindingKind.FrameScope. + /// + public int ScopeIndex { get; } + + public static ScopeBindingDescriptor Static(IAttachableContext target) + => new ScopeBindingDescriptor(ScopeBindingKind.Static, target, -1); + + public static ScopeBindingDescriptor ThisScope() + => new ScopeBindingDescriptor(ScopeBindingKind.ThisScope, null, -1); + + public static ScopeBindingDescriptor FrameScope(int index) + => new ScopeBindingDescriptor(ScopeBindingKind.FrameScope, null, index); + } +} + diff --git a/src/OneScript.Core/Compilation/Binding/SymbolTable.cs b/src/OneScript.Core/Compilation/Binding/SymbolTable.cs index 8d91261cd..1ad7da53e 100644 --- a/src/OneScript.Core/Compilation/Binding/SymbolTable.cs +++ b/src/OneScript.Core/Compilation/Binding/SymbolTable.cs @@ -15,25 +15,25 @@ public class SymbolTable : IEnumerable { private class BindingRecord { - public SymbolScope scope; - public IAttachableContext target; + public SymbolScope Scope; + public ScopeBindingDescriptor Descriptor; } private readonly List _bindings = new List(); - public SymbolScope GetScope(int index) => _bindings[index].scope; + public SymbolScope GetScope(int index) => _bindings[index].Scope; - public IAttachableContext GetBinding(int scopeIndex) => _bindings[scopeIndex].target; + public ScopeBindingDescriptor GetBinding(int scopeIndex) => _bindings[scopeIndex].Descriptor; public int ScopeCount => _bindings.Count; - public int PushScope(SymbolScope scope, IAttachableContext target) + public int PushScope(SymbolScope scope, ScopeBindingDescriptor descriptor) { var idx = _bindings.Count; _bindings.Add(new BindingRecord { - scope = scope, - target = target + Scope = scope, + Descriptor = descriptor }); return idx; @@ -48,7 +48,7 @@ public bool FindVariable(string name, out SymbolBinding binding) { for (int i = _bindings.Count - 1; i >= 0; i--) { - var scope = _bindings[i].scope; + var scope = _bindings[i].Scope; var idx = scope.Variables.IndexOf(name); if (idx >= 0) { @@ -69,7 +69,7 @@ public bool TryFindMethodBinding(string name, out SymbolBinding binding) { for (int i = _bindings.Count - 1; i >= 0; i--) { - var scope = _bindings[i].scope; + var scope = _bindings[i].Scope; var idx = scope.Methods.IndexOf(name); if (idx >= 0) { @@ -100,7 +100,7 @@ public bool TryFindMethod(string name, out IMethodSymbol method) public SymbolBinding DefineMethod(IMethodSymbol symbol) { - var index = _bindings[ScopeCount - 1].scope.DefineMethod(symbol); + var index = _bindings[ScopeCount - 1].Scope.DefineMethod(symbol); return new SymbolBinding { ScopeNumber = ScopeCount - 1, @@ -110,7 +110,7 @@ public SymbolBinding DefineMethod(IMethodSymbol symbol) public SymbolBinding DefineVariable(IVariableSymbol symbol) { - var index = _bindings[ScopeCount - 1].scope.DefineVariable(symbol); + var index = _bindings[ScopeCount - 1].Scope.DefineVariable(symbol); return new SymbolBinding { ScopeNumber = ScopeCount - 1, @@ -131,7 +131,7 @@ public IMethodSymbol GetMethod(SymbolBinding binding) public IEnumerator GetEnumerator() { for (int i = 0; i < ScopeCount; i++) - yield return _bindings[i].scope; + yield return _bindings[i].Scope; } IEnumerator IEnumerable.GetEnumerator() diff --git a/src/OneScript.Core/Compilation/CompilerFrontendBase.cs b/src/OneScript.Core/Compilation/CompilerFrontendBase.cs index 145a3d657..a3272ebe0 100644 --- a/src/OneScript.Core/Compilation/CompilerFrontendBase.cs +++ b/src/OneScript.Core/Compilation/CompilerFrontendBase.cs @@ -98,12 +98,13 @@ private SymbolTable PrepareSymbols() { for (int i = 0; i < SharedSymbols.ScopeCount; i++) { - actualTable.PushScope(SharedSymbols.GetScope(i), SharedSymbols.GetBinding(i)); + var descriptor = SharedSymbols.GetBinding(i); + actualTable.PushScope(SharedSymbols.GetScope(i), descriptor); } } ModuleSymbols ??= new SymbolScope(); - actualTable.PushScope(ModuleSymbols, null); + actualTable.PushScope(ModuleSymbols, ScopeBindingDescriptor.ThisScope()); return actualTable; } diff --git a/src/OneScript.Native/Compiler/MethodCompiler.cs b/src/OneScript.Native/Compiler/MethodCompiler.cs index 149629455..776d1e322 100644 --- a/src/OneScript.Native/Compiler/MethodCompiler.cs +++ b/src/OneScript.Native/Compiler/MethodCompiler.cs @@ -99,7 +99,7 @@ private void CompileFragment(BslSyntaxNode node, Action visitor) { MethodReturn = Expression.Label(typeof(BslValue)) }); - Symbols.PushScope(new SymbolScope(), null); + Symbols.PushScope(new SymbolScope(), ScopeBindingDescriptor.Static(null)); FillParameterVariables(); try @@ -245,7 +245,8 @@ protected override void VisitVariableRead(TerminalNode node) } else if (symbol is IPropertySymbol prop) { - var expression = ReadGlobalProperty(Symbols.GetBinding(binding.ScopeNumber), prop); + var descriptor = Symbols.GetBinding(binding.ScopeNumber); + var expression = ReadGlobalProperty((IRuntimeContextInstance)descriptor.Target, prop); _statementBuildParts.Push(expression); } else if (symbol is IFieldSymbol && _method.IsInstance) @@ -279,13 +280,13 @@ private Expression ReadGlobalProperty(IRuntimeContextInstance target, IPropertyS private object GetPropertyBinding(SymbolBinding binding, IVariableSymbol symbol) { - return Symbols.GetBinding(binding.ScopeNumber) ?? + return Symbols.GetBinding(binding.ScopeNumber).Target ?? throw new InvalidOperationException($"Property {symbol.Name} is not bound to a value"); } private object GetMethodBinding(SymbolBinding binding, IMethodSymbol symbol) { - return Symbols.GetBinding(binding.ScopeNumber) ?? + return Symbols.GetBinding(binding.ScopeNumber).Target ?? throw new InvalidOperationException($"Method {symbol.Name} is not bound to a value"); } diff --git a/src/ScriptEngine/Compiler/ModuleDumpWriter.cs b/src/ScriptEngine/Compiler/ModuleDumpWriter.cs index 906df5e5d..ea402b1f2 100644 --- a/src/ScriptEngine/Compiler/ModuleDumpWriter.cs +++ b/src/ScriptEngine/Compiler/ModuleDumpWriter.cs @@ -154,8 +154,14 @@ private void WriteSymbolMap(TextWriter output, IList map) for (int i = 0; i < map.Count; i++) { var item = map[i]; - var typeName = item.Target?.GetType().Name ?? "null"; - output.Write(string.Format("{0,-3}:({1},{2})\n", i, typeName, item.MemberNumber)); + var targetInfo = item.Kind switch + { + ScopeBindingKind.Static => item.Target?.GetType().Name ?? "null", + ScopeBindingKind.ThisScope => "this", + ScopeBindingKind.FrameScope => $"frame[{item.ScopeIndex}]", + _ => "unknown" + }; + output.Write(string.Format("{0,-3}:({1},{2},{3})\n", i, item.Kind, targetInfo, item.MemberNumber)); } } diff --git a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs index 1ec5c8571..207578b55 100644 --- a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs +++ b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs @@ -177,11 +177,13 @@ protected override void VisitModuleVariable(VariableDefinitionNode varNode) var field = fieldBuilder.Build(); _module.Fields.Add(field); var binding = _ctx.DefineVariable(field.ToSymbol()); - var target = _ctx.GetBinding(binding.ScopeNumber); + var descriptor = _ctx.GetBinding(binding.ScopeNumber); var imageBinding = new ModuleSymbolBinding { - Target = target, - MemberNumber = binding.MemberNumber + Target = descriptor.Target, + MemberNumber = binding.MemberNumber, + Kind = descriptor.Kind, + ScopeIndex = descriptor.ScopeIndex }; _module.VariableRefs.Add(imageBinding); } @@ -193,7 +195,7 @@ protected override void VisitModuleBody(BslSyntaxNode child) var entry = _module.Code.Count; var localCtx = new SymbolScope(); - _ctx.PushScope(localCtx, null); + _ctx.PushScope(localCtx, ScopeBindingDescriptor.Static(null)); try { @@ -220,11 +222,13 @@ protected override void VisitModuleBody(BslSyntaxNode child) methodInfo.SetRuntimeParameters(entry, GetVariableNames(localCtx)); var entryRefNumber = _module.MethodRefs.Count; - var target = _ctx.GetBinding(topIdx); + var descriptor = _ctx.GetBinding(topIdx); var bodyBinding = new ModuleSymbolBinding { - Target = target, - MemberNumber = _module.Methods.Count + Target = descriptor.Target, + MemberNumber = _module.Methods.Count, + Kind = descriptor.Kind, + ScopeIndex = descriptor.ScopeIndex }; _module.Methods.Add(methodInfo); @@ -286,7 +290,7 @@ protected override void VisitMethod(MethodNode methodNode) methodCtx.DefineVariable(new LocalVariableSymbol(paramNode.Name)); } - _ctx.PushScope(methodCtx, null); + _ctx.PushScope(methodCtx, ScopeBindingDescriptor.Static(null)); var entryPoint = _module.Code.Count; try { @@ -310,11 +314,13 @@ protected override void VisitMethod(MethodNode methodNode) AddError(LocalizedErrors.DuplicateMethodDefinition(signature.MethodName), signature.Location); binding = default; } - var target = _ctx.GetBinding(binding.ScopeNumber); + var descriptor = _ctx.GetBinding(binding.ScopeNumber); var imageBinding = new ModuleSymbolBinding { - Target = target, - MemberNumber = binding.MemberNumber + Target = descriptor.Target, + MemberNumber = binding.MemberNumber, + Kind = descriptor.Kind, + ScopeIndex = descriptor.ScopeIndex }; _module.MethodRefs.Add(imageBinding); _module.Methods.Add(methodInfo); @@ -1277,11 +1283,13 @@ private int GetConstNumber(in ConstDefinition cDef) private int GetMethodRefNumber(in SymbolBinding methodBinding) { - var target = _ctx.GetBinding(methodBinding.ScopeNumber); + var descriptor = _ctx.GetBinding(methodBinding.ScopeNumber); var imageBinding = new ModuleSymbolBinding { - Target = target, - MemberNumber = methodBinding.MemberNumber + Target = descriptor.Target, + MemberNumber = methodBinding.MemberNumber, + Kind = descriptor.Kind, + ScopeIndex = descriptor.ScopeIndex }; var idx = _module.MethodRefs.IndexOf(imageBinding); @@ -1295,11 +1303,13 @@ private int GetMethodRefNumber(in SymbolBinding methodBinding) private int GetVariableRefNumber(in SymbolBinding binding) { - var target = _ctx.GetBinding(binding.ScopeNumber); + var descriptor = _ctx.GetBinding(binding.ScopeNumber); var imageBinding = new ModuleSymbolBinding { - Target = target, - MemberNumber = binding.MemberNumber + Target = descriptor.Target, + MemberNumber = binding.MemberNumber, + Kind = descriptor.Kind, + ScopeIndex = descriptor.ScopeIndex }; var idx = _module.VariableRefs.IndexOf(imageBinding); diff --git a/src/ScriptEngine/Machine/MachineInstance.cs b/src/ScriptEngine/Machine/MachineInstance.cs index a62698cfe..775a1aa7a 100644 --- a/src/ScriptEngine/Machine/MachineInstance.cs +++ b/src/ScriptEngine/Machine/MachineInstance.cs @@ -670,7 +670,7 @@ private void InitCommands() private void PushVar(int arg) { var binding = _module.VariableRefs[arg]; - var target = binding.Target ?? _currentFrame.ThisScope; + var target = ResolveBindingTarget(binding); _operationStack.Push(target.GetVariable(binding.MemberNumber)); NextInstruction(); @@ -716,7 +716,7 @@ private void PushRef(int arg) { var binding = _module.VariableRefs[arg]; - var target = binding.Target ?? _currentFrame.ThisScope; + var target = ResolveBindingTarget(binding); var reference = Variable.CreateContextPropertyReference(target, binding.MemberNumber, "$stackvar"); _operationStack.Push(reference); @@ -726,7 +726,7 @@ private void PushRef(int arg) private void LoadVar(int arg) { var binding = _module.VariableRefs[arg]; - var target = binding.Target ?? _currentFrame.ThisScope; + var target = ResolveBindingTarget(binding); target.GetVariable(binding.MemberNumber).Value = PopRawValue(); NextInstruction(); @@ -913,7 +913,7 @@ private bool MethodCallImpl(int arg, bool asFunc) { var methodRef = _module.MethodRefs[arg]; - var boundInstance = methodRef.Target ?? _currentFrame.ThisScope; + var boundInstance = ResolveBindingTarget(methodRef); var methodSignature = boundInstance.GetMethod(methodRef.MemberNumber); IValue[] argValues = PopArguments(); @@ -2456,10 +2456,14 @@ private SymbolTable ExtractCompilerContext() { var ctx = new SymbolTable(); var scopes = _currentFrame.Scopes ?? Array.Empty(); + var scopeCount = scopes.Count; + var thisScope = _currentFrame.ThisScope; // Добавляем все контексты из scopes (глобальные + локальные из предыдущих кадров) - foreach (var scope in scopes) + for (int index = 0; index < scopeCount; index++) { + var scope = scopes[index]; + var symbolScope = new SymbolScope(); // Добавляем методы @@ -2470,12 +2474,10 @@ private SymbolTable ExtractCompilerContext() } // Добавляем переменные - // Используем VariablesCount для получения количества переменных for (int i = 0; i < scope.VariablesCount; i++) { var variable = scope.GetVariable(i); - // Получаем информацию о свойстве, если scope поддерживает это string alias = null; if (scope is IRuntimeContextInstance runtimeContext) { @@ -2486,7 +2488,6 @@ private SymbolTable ExtractCompilerContext() } catch { - // Если GetPropertyInfo не поддерживается, используем только имя переменной } } @@ -2499,8 +2500,8 @@ private SymbolTable ExtractCompilerContext() symbolScope.DefineVariable(new LocalVariableSymbol(variable.Name)); } } - - ctx.PushScope(symbolScope, scope); + + ctx.PushScope(symbolScope, CreateScopeDescriptor(scope, thisScope, index)); } // Локальные переменные текущего фрейма @@ -2510,10 +2511,21 @@ private SymbolTable ExtractCompilerContext() locals.DefineVariable(new LocalVariableSymbol(variable.Name)); } - ctx.PushScope(locals, new EvalExecLocalContext(_currentFrame.Locals)); + ctx.PushScope(locals, ScopeBindingDescriptor.ThisScope()); return ctx; } + private ScopeBindingDescriptor CreateScopeDescriptor(IAttachableContext scope, IAttachableContext thisScope, int index) + { + return ScopeBindingDescriptor.FrameScope(index); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private IAttachableContext ResolveBindingTarget(ModuleSymbolBinding binding) + { + return binding.ResolveTarget(_currentFrame); + } + private void NextInstruction() { _currentFrame.InstructionPointer++; diff --git a/src/ScriptEngine/Machine/ModuleSymbolBinding.cs b/src/ScriptEngine/Machine/ModuleSymbolBinding.cs index 39ce5ccd6..cecb8e329 100644 --- a/src/ScriptEngine/Machine/ModuleSymbolBinding.cs +++ b/src/ScriptEngine/Machine/ModuleSymbolBinding.cs @@ -7,18 +7,46 @@ This Source Code Form is subject to the terms of the using System; using OneScript.Contexts; +using OneScript.Compilation.Binding; namespace ScriptEngine.Machine { public struct ModuleSymbolBinding : IEquatable { public IAttachableContext Target { get; set; } - + public int MemberNumber { get; set; } + public ScopeBindingKind Kind { get; set; } + + public int ScopeIndex { get; set; } + + internal IAttachableContext ResolveTarget(ExecutionFrame frame) + { + return Kind switch + { + ScopeBindingKind.FrameScope => ResolveFrameScope(frame), + ScopeBindingKind.ThisScope => frame.ThisScope, + _ => Target + }; + } + + private IAttachableContext ResolveFrameScope(ExecutionFrame frame) + { + if (frame?.Scopes == null) + throw new InvalidOperationException("Frame scopes are not available"); + if (ScopeIndex < 0 || ScopeIndex >= frame.Scopes.Count) + throw new InvalidOperationException($"Invalid scope index {ScopeIndex}"); + + return frame.Scopes[ScopeIndex]; + } + public bool Equals(ModuleSymbolBinding other) { - return ReferenceEquals(Target, other.Target) && MemberNumber == other.MemberNumber; + return ReferenceEquals(Target, other.Target) + && MemberNumber == other.MemberNumber + && Kind == other.Kind + && ScopeIndex == other.ScopeIndex; } public override bool Equals(object obj) @@ -28,7 +56,7 @@ public override bool Equals(object obj) public override int GetHashCode() { - return HashCode.Combine(Target, MemberNumber); + return HashCode.Combine(Target, MemberNumber, Kind, ScopeIndex); } } } \ No newline at end of file diff --git a/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs b/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs index ca65c5291..f8a9b997b 100644 --- a/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs +++ b/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs @@ -67,7 +67,7 @@ private static StackRuntimeModule BuildModule(string code, IBslProcess process) var node = parser.ParseStatefulModule() as ModuleNode; var ctx = new SymbolTable(); - ctx.PushScope(new SymbolScope(), null); + ctx.PushScope(new SymbolScope(), ScopeBindingDescriptor.Static(null)); var compiler = new StackMachineCodeGenerator(errSink); return compiler.CreateModule(node, lexer.Iterator.Source, ctx, process); } diff --git a/src/Tests/OneScript.Dynamic.Tests/CompileHelper.cs b/src/Tests/OneScript.Dynamic.Tests/CompileHelper.cs index da71c77e2..3edd8ebbc 100644 --- a/src/Tests/OneScript.Dynamic.Tests/CompileHelper.cs +++ b/src/Tests/OneScript.Dynamic.Tests/CompileHelper.cs @@ -90,7 +90,7 @@ private DefaultBslParser GetBslParser(string code) public DynamicModule Compile(SymbolTable scopes, IBslProcess process) { if (scopes.ScopeCount == 0) - scopes.PushScope(new SymbolScope(), null); + scopes.PushScope(new SymbolScope(), ScopeBindingDescriptor.Static(null)); var compiler = new ModuleCompiler(_errors, _services, new DependencyResolverMock()); return compiler.Compile(_codeIndexer, _module, scopes, process); } diff --git a/src/Tests/OneScript.Dynamic.Tests/NativeSdoTests.cs b/src/Tests/OneScript.Dynamic.Tests/NativeSdoTests.cs index e535b6822..78e2b5565 100644 --- a/src/Tests/OneScript.Dynamic.Tests/NativeSdoTests.cs +++ b/src/Tests/OneScript.Dynamic.Tests/NativeSdoTests.cs @@ -476,7 +476,7 @@ private DynamicModule CreateModule(string code, IServiceContainer services, Symb var symbolProvider = services.Resolve(); var moduleScope = new SymbolScope(); symbolProvider.Get().FillSymbols(moduleScope); - symbols.PushScope(moduleScope, null); + symbols.PushScope(moduleScope, ScopeBindingDescriptor.Static(null)); var helper = new CompileHelper(services); helper.ParseModule(code); diff --git a/tests/eval.os b/tests/eval.os index 9fc1e87d3..7170064a6 100644 --- a/tests/eval.os +++ b/tests/eval.os @@ -15,6 +15,7 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьОператорВыполнитьСВыбросомИсключения"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоВОператореВыполнитьЗапрещенВозврат"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСвойствоЭтотОбъект_issue712"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьEvalНаРазныхЭкземплярахThis"); ВсеТесты.Добавить("ТестДолжен_ПроверитьКешКомпиляцииВРазныхФреймах"); ВсеТесты.Добавить("ТестДолжен_ПроверитьРекурсивныйВызовВычислить"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСложныеВложенныеВызовыВычислить"); @@ -151,6 +152,23 @@ КонецПроцедуры +Процедура ТестДолжен_ПроверитьEvalНаРазныхЭкземплярахThis() Экспорт + + ПутьСценарий = ОбъединитьПути(ТекущийСценарий().Каталог, "testdata", "evalDifferentThis.os"); + Первый = ЗагрузитьСценарий(ПутьСценарий); + Второй = ЗагрузитьСценарий(ПутьСценарий); + + Первый.УстановитьЗначение("Первый"); + Второй.УстановитьЗначение("Второй"); + + Рез1 = Первый.ПолучитьЧерезВычислить(); + Рез2 = Второй.ПолучитьЧерезВычислить(); + + юТест.ПроверитьРавенство("Первый", Рез1); + юТест.ПроверитьРавенство("Второй", Рез2); + +КонецПроцедуры + Функция ТестМетод1(П1) ЛокальнаяПеременная = 1; diff --git a/tests/testdata/evalDifferentThis.os b/tests/testdata/evalDifferentThis.os new file mode 100644 index 000000000..0478536ff --- /dev/null +++ b/tests/testdata/evalDifferentThis.os @@ -0,0 +1,10 @@ +Перем Значение Экспорт; + +Процедура УстановитьЗначение(НовоеЗначение) Экспорт + Значение = НовоеЗначение; +КонецПроцедуры + +Функция ПолучитьЧерезВычислить() Экспорт + Возврат Вычислить("Значение"); +КонецФункции + From f3f0f328447d177e4b6c0490b3423fca37da02b0 Mon Sep 17 00:00:00 2001 From: Andrey Ovsiankin Date: Fri, 28 Nov 2025 17:41:08 +0300 Subject: [PATCH 175/191] =?UTF-8?q?=D0=9A=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=BA=D1=83=D1=80=D1=81=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=20=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=D0=BB?= =?UTF-8?q?=D0=BA=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursor/rules/runbsltests.mdc | 34 +++++++++++++++++++++------ tests/run-bsl-tests.cmd | 40 ++++++++++++++++++++++++++++++++ tests/run-bsl-tests.sh | 29 +++++++++++++++++++++++ tests/start-all.cmd | 43 ----------------------------------- tests/start-all.sh | 15 ------------ tests/start.cmd | 36 ----------------------------- tests/start.sh | 17 -------------- 7 files changed, 96 insertions(+), 118 deletions(-) create mode 100644 tests/run-bsl-tests.cmd create mode 100644 tests/run-bsl-tests.sh delete mode 100644 tests/start-all.cmd delete mode 100755 tests/start-all.sh delete mode 100644 tests/start.cmd delete mode 100755 tests/start.sh diff --git a/.cursor/rules/runbsltests.mdc b/.cursor/rules/runbsltests.mdc index 9580ef871..37287eab7 100644 --- a/.cursor/rules/runbsltests.mdc +++ b/.cursor/rules/runbsltests.mdc @@ -3,12 +3,32 @@ description: When you need to run main tests alwaysApply: false --- -Когда тебе потребуется запустить приемочные тесты всего проекта, убедиться что ничего не сломано, тебе потребуется запустить bsl тесты. Запускаются они так: +Когда тебе потребуется запустить приемочные тесты всего проекта, убедиться что ничего не сломано, тебе потребуется запустить bsl тесты. Для этого используются готовые скрипты: -1. Собери консольное приложение oscript.exe или убедись, что оно уже собрано с последними изменениями -2. Установи переменную окружения OSCRIPT_CONFIG=lib.system=C:\Users\ovsia\AppData\Local\ovm\current\lib -3. Перейди в каталог tests, который в корне репозитория -4. Запусти <собранный oscript.exe> testrunner.os -runAll . +1. **ОБЯЗАТЕЛЬНО** собери консольное приложение oscript из исходников с последними изменениями: + + ``` + dotnet build src/oscript/oscript.csproj + ``` + + После сборки движок будет находиться здесь: + - Windows: `src\oscript\bin\Debug\net8.0\oscript.exe` + - Linux/macOS: `src/oscript/bin/Debug/net8.0/oscript` + + **КРИТИЧЕСКИ ВАЖНО**: Тесты должны запускаться только на свежесобранном oscript, а не на версии из системы! Это гарантирует, что тесты валидируют актуальный код после внесённых изменений. -Для запуска одного теста используй <собранный oscript.exe> testrunner.os -run <имя файла теста.os> -Всегда используй для запуска тестов новую консоль, не переиспользуй консоль от предыдущих запусков. \ No newline at end of file +2. Запусти нужный скрипт, **ЯВНО** передав путь к свежесобранному движку: + - Windows: `tests\run-bsl-tests.cmd src\oscript\bin\Debug\net8.0\oscript.exe` + - Linux/macOS: `tests/run-bsl-tests.sh src/oscript/bin/Debug/net8.0/oscript` + + **ВАЖНО**: Не полагайся на автоматический поиск oscript в PATH — всегда указывай путь к свежесобранному бинарнику первым параметром! + + Оба скрипта автоматически: + - Устанавливают путь к библиотекам OVM через переменную `OVM_LIB_PATH` (по умолчанию `%USERPROFILE%\AppData\Local\ovm\current\lib` для Windows и `$HOME/.local/share/ovm/current/lib` для Linux/macOS) + - Настраивают `OSCRIPT_CONFIG=lib.system=`, если эта переменная не была задана заранее + - Переходят в каталог `tests` и выполняют `testrunner.os -runAll .` + +3. Для запуска одного теста также используй свежесобранный oscript.exe: `<путь\к\собранному\oscript.exe> testrunner.os -run <имя файла теста.os>`. +4. Всегда используй для запуска тестов новую консоль, не переиспользуй консоль от предыдущих запусков. +5. Если ошибка запуска тестов связана с Component.dll или NativeApi (эти dll упоминаются в ошибках тестов), то такие тесты следует игнорировать и смотреть только на другие ошибки тестов. +6. Ошибки теста http.os и "Тест_ДолженПроверитьЧтоПеремещениеФайлаРаботаетПоHTTP" следует игнорировать. \ No newline at end of file diff --git a/tests/run-bsl-tests.cmd b/tests/run-bsl-tests.cmd new file mode 100644 index 000000000..6f15f2a3f --- /dev/null +++ b/tests/run-bsl-tests.cmd @@ -0,0 +1,40 @@ +@echo off +setlocal + +rem Remove trailing backslash from %~dp0 +set "SCRIPT_DIR=%~dp0" +if "%SCRIPT_DIR:~-1%"=="\" set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%" +set OVM_LIB_PATH=%USERPROFILE%\AppData\Local\ovm\current\lib + +set OSCRIPT_CONFIG=lib.system=%OVM_LIB_PATH% + +set OSCRIPT_BIN=%~f1 +if defined OSCRIPT_BIN goto validate_bin + +if defined OSCRIPT_EXE ( + set OSCRIPT_BIN=%OSCRIPT_EXE% + goto validate_bin +) + +for /f "usebackq delims=" %%i in (`where oscript.exe 2^>nul`) do ( + set "OSCRIPT_BIN=%%i" + goto validate_bin +) + +echo [ERROR] Failed to determine path to oscript.exe. >&2 +echo Pass the path as the first parameter or set OSCRIPT_EXE variable. >&2 +exit /b 1 + +:validate_bin +if not exist "%OSCRIPT_BIN%" ( + echo [ERROR] File "%OSCRIPT_BIN%" not found. >&2 + exit /b 1 +) + +pushd "%SCRIPT_DIR%" >nul +"%OSCRIPT_BIN%" testrunner.os -runAll . +set EXIT_CODE=%ERRORLEVEL% +popd >nul + +exit /b %EXIT_CODE% + diff --git a/tests/run-bsl-tests.sh b/tests/run-bsl-tests.sh new file mode 100644 index 000000000..111b14b89 --- /dev/null +++ b/tests/run-bsl-tests.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +OVM_LIB_PATH="${HOME}/.local/share/ovm/current/lib" + +if [[ -z "${OSCRIPT_CONFIG:-}" ]]; then + export OSCRIPT_CONFIG="lib.system=${OVM_LIB_PATH}" +fi + +OSCRIPT_BIN="${1:-${OSCRIPT_EXE:-}}" +if [[ -z "${OSCRIPT_BIN}" ]]; then + OSCRIPT_BIN="$(command -v oscript 2>/dev/null || true)" +fi + +if [[ -z "${OSCRIPT_BIN}" ]]; then + echo "[ERROR] Failed to determine path to oscript." >&2 + echo "Pass it as the first parameter or set OSCRIPT_EXE variable." >&2 + exit 1 +fi + +if [[ ! -x "${OSCRIPT_BIN}" ]]; then + echo "[ERROR] File '${OSCRIPT_BIN}' does not exist or is not executable." >&2 + exit 1 +fi + +cd "${SCRIPT_DIR}" +"${OSCRIPT_BIN}" testrunner.os -runAll . + diff --git a/tests/start-all.cmd b/tests/start-all.cmd deleted file mode 100644 index 9ca8e4667..000000000 --- a/tests/start-all.cmd +++ /dev/null @@ -1,43 +0,0 @@ -@echo off - -chcp 866 > nul - -setlocal -set pathdir=%~dp0 - -rem echo ᠬ %CD% -rem echo ਯ ஢ %pathdir% - -for /f "tokens=*" %%i in ('where oscript') do set OSCRIPT=%%i -if NOT "%OSCRIPT%"=="" GOTO run - -set OS_EXE=\OneScript\bin\oscript.exe -set OSCRIPT=%ProgramFiles(x86)%%OS_EXE% -if NOT EXIST "%OSCRIPT%" set OSCRIPT=%ProgramFiles%%OS_EXE% -if NOT EXIST "%OSCRIPT%" set OSCRIPT=%ProgramW6432%%OS_EXE% - -:run -@echo on -"%OSCRIPT%" "%pathdir%testrunner.os" -runall %1 %2 %3 %4 %5 -@echo off - -rem echo %ERRORLEVEL% -if %ERRORLEVEL%==2 GOTO pending_exit -if NOT %ERRORLEVEL%==0 GOTO bad_exit - -:success_exit - -exit /B 0 - -:pending_exit - -exit /B 2 - -:bad_exit -if "-1"=="%success%" GOTO success_exit -echo . -echo ᪮쪮 ⮢ 㯠 -echo 㤠. ᭠ - -if ".%1"=="." pause -exit /B 1 \ No newline at end of file diff --git a/tests/start-all.sh b/tests/start-all.sh deleted file mode 100755 index efb317bb5..000000000 --- a/tests/start-all.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -../src/oscript/bin/Debug/oscript.exe testrunner.os -runall $@ - -if [ $? = 0 ]; then - # success - exit -fi - -if [ $? = -1 ]; then - # strange success - exit -fi - -exit 1 - diff --git a/tests/start.cmd b/tests/start.cmd deleted file mode 100644 index 20c5bf96b..000000000 --- a/tests/start.cmd +++ /dev/null @@ -1,36 +0,0 @@ -@echo off - -setlocal -set pathdir=%~dp0 - -rem echo ᠬ %CD% -rem echo ਯ ஢ %pathdir% - -for /f "tokens=*" %%i in ('where oscript') do set OSCRIPT=%%i -if NOT "%OSCRIPT%"=="" GOTO run - -set OS_EXE=\OneScript\bin\oscript.exe -set OSCRIPT=%ProgramFiles(x86)%%OS_EXE% -if NOT EXIST "%OSCRIPT%" set OSCRIPT=%ProgramFiles%%OS_EXE% -if NOT EXIST "%OSCRIPT%" set OSCRIPT=%ProgramW6432%%OS_EXE% - -:run -echo on -"%OSCRIPT%" "%pathdir%testrunner.os" -run %1 %2 %3 %4 %5 -@echo off - -rem echo %ERRORLEVEL% -if NOT %ERRORLEVEL%==0 GOTO bad_exit - -:success_exit -rem echo ᯥ譮 -rem pause - -exit /B 0 - -:bad_exit -if %ERRORLEVEL%==-1 GOTO success_exit -echo Tests failed - -pause -exit /B 1 \ No newline at end of file diff --git a/tests/start.sh b/tests/start.sh deleted file mode 100755 index 4f5f049bd..000000000 --- a/tests/start.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -../src/oscript/bin/Debug/oscript.exe testrunner.os -run $@ - -if [ $? = 0 ]; then - # success - exit -fi - -if [ $? = -1 ]; then - # strange success - exit -fi - -echo Tests failed - -exit 1 - From fcab78f9a338036b860287b7f1a76f4a9c5f701c Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Fri, 28 Nov 2025 22:05:44 +0300 Subject: [PATCH 176/191] =?UTF-8?q?Revert=20"=D0=9E=D0=BF=D1=82=D0=B8?= =?UTF-8?q?=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D1=89=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=20BilingualString?= =?UTF-8?q?.HasName"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 074c56ff816e79bed51c14a5693497d121ed072f. --- .../Localization/BilingualString.cs | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/OneScript.Language/Localization/BilingualString.cs b/src/OneScript.Language/Localization/BilingualString.cs index 66de11615..baed18d03 100644 --- a/src/OneScript.Language/Localization/BilingualString.cs +++ b/src/OneScript.Language/Localization/BilingualString.cs @@ -34,26 +34,17 @@ public static implicit operator string(BilingualString str) { return str.ToString(); } - - private readonly int _ruHash; - private readonly int _enHash; public BilingualString(string ru, string en) { Russian = ru; English = en; - - _enHash = en.GetHashCode(); - _ruHash = ru.GetHashCode(); } public BilingualString(string single) { Russian = single; English = string.Empty; - - _enHash = English.GetHashCode(); - _ruHash = Russian.GetHashCode(); } public string Russian { get; } @@ -67,10 +58,6 @@ public override string ToString() public bool HasName(string name, StringComparison comparison = StringComparison.CurrentCultureIgnoreCase) { - var nameHash = name.GetHashCode(); - if (nameHash != _ruHash && nameHash != _enHash) - return false; - return string.Equals(Russian, name, comparison) || string.Equals(English, name, comparison); } From 8f711019bf78063878ac4aa92d73d26c39b61259 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 30 Nov 2025 15:33:24 +0300 Subject: [PATCH 177/191] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D1=80=D0=B8=D0=B2=D1=8F=D0=B7=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BA=20=D0=BA=D0=BE=D0=BD=D0=BA=D1=80=D0=B5=D1=82=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20win=20sdk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/native-api/AddInNative.vcxproj | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/native-api/AddInNative.vcxproj b/tests/native-api/AddInNative.vcxproj index f3f303062..bb47f817d 100644 --- a/tests/native-api/AddInNative.vcxproj +++ b/tests/native-api/AddInNative.vcxproj @@ -26,7 +26,6 @@ {55890DF2-D13E-4C89-A01D-79CAD6726246} testCPP Win32Proj - 10.0.18362.0 From b7ca71245422ccd481317a08ce6389cd61dbd363 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Sun, 30 Nov 2025 17:21:46 +0300 Subject: [PATCH 178/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D1=83=D1=8E=20ThisScope=20=D0=BF=D1=80=D0=B8=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D0=B8,=20?= =?UTF-8?q?=D1=87=D1=82=D0=BE=20=D0=B1=D0=BE=D0=BB=D0=B5=D0=B5=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE=20=D1=81=D0=B5?= =?UTF-8?q?=D0=BC=D0=B0=D0=BD=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Native/Compiler/MethodCompiler.cs | 2 +- src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/OneScript.Native/Compiler/MethodCompiler.cs b/src/OneScript.Native/Compiler/MethodCompiler.cs index 776d1e322..3237a29f7 100644 --- a/src/OneScript.Native/Compiler/MethodCompiler.cs +++ b/src/OneScript.Native/Compiler/MethodCompiler.cs @@ -99,7 +99,7 @@ private void CompileFragment(BslSyntaxNode node, Action visitor) { MethodReturn = Expression.Label(typeof(BslValue)) }); - Symbols.PushScope(new SymbolScope(), ScopeBindingDescriptor.Static(null)); + Symbols.PushScope(new SymbolScope(), ScopeBindingDescriptor.ThisScope()); FillParameterVariables(); try diff --git a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs index 207578b55..49013f578 100644 --- a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs +++ b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs @@ -195,7 +195,7 @@ protected override void VisitModuleBody(BslSyntaxNode child) var entry = _module.Code.Count; var localCtx = new SymbolScope(); - _ctx.PushScope(localCtx, ScopeBindingDescriptor.Static(null)); + _ctx.PushScope(localCtx, ScopeBindingDescriptor.ThisScope()); try { @@ -290,7 +290,7 @@ protected override void VisitMethod(MethodNode methodNode) methodCtx.DefineVariable(new LocalVariableSymbol(paramNode.Name)); } - _ctx.PushScope(methodCtx, ScopeBindingDescriptor.Static(null)); + _ctx.PushScope(methodCtx, ScopeBindingDescriptor.ThisScope()); var entryPoint = _module.Code.Count; try { From 458a5291685d0bce2e4d0191e360941768be7cc7 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 1 Dec 2025 12:27:16 +0300 Subject: [PATCH 179/191] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D0=BE=20=D0=BA=D1=83=D1=80=D1=81=D0=BE=D1=80=D0=B0=20=D0=BE=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20=D1=8F=D0=B7=D1=8B=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursor/rules/langversion.mdc | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .cursor/rules/langversion.mdc diff --git a/.cursor/rules/langversion.mdc b/.cursor/rules/langversion.mdc new file mode 100644 index 000000000..d91672a00 --- /dev/null +++ b/.cursor/rules/langversion.mdc @@ -0,0 +1,5 @@ +--- +alwaysApply: true +--- + +Проект использует .net 8.0 и LangVersion 8, поэтому при генерации кода не используй языковые фичи C#, которые отсутствуют в C# 8. From 9ef7b18f83c1da8e3f868d14de057aef91f0033b Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 1 Dec 2025 12:27:46 +0300 Subject: [PATCH 180/191] =?UTF-8?q?fixes=20#1540=20=D0=9F=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D1=83=D0=BF=D1=80=D0=B5=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BE=20=D0=BD=D0=B5=D1=8F=D0=B2=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B8=D0=BC=D0=BF=D0=BE=D1=80=D1=82=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Compilation/Binding/IPackageSymbol.cs | 17 + .../ICompileTimeDependencyResolver.cs | 7 +- src/OneScript.Core/Compilation/PackageInfo.cs | 31 ++ .../Contexts/IRuntimeEnvironment.cs | 11 +- src/OneScript.Core/Sources/FileCodeSource.cs | 1 + .../Sources/StringCodeSource.cs | 2 + src/OneScript.Language/Sources/ICodeSource.cs | 2 +- src/OneScript.Language/Sources/SourceCode.cs | 11 +- .../Sources/SourceCodeBuilder.cs | 15 +- .../FileSystemDependencyResolver.cs | 60 ++-- .../LibraryLoader.cs | 107 +++--- src/ScriptEngine/Compiler/CompilerErrors.cs | 4 + src/ScriptEngine/Compiler/CompilerFrontend.cs | 22 +- .../Compiler/DefaultCompilerBackend.cs | 5 +- src/ScriptEngine/Compiler/EvalCompiler.cs | 2 +- .../Compiler/IDirectiveResolver.cs | 2 +- .../Compiler/StackMachineCodeGenerator.cs | 44 ++- src/ScriptEngine/ExplicitImportsBehavior.cs | 17 + .../Libraries/ExternalLibraryDef.cs | 73 ---- .../Libraries/ExternalLibraryInfo.cs | 39 +++ src/ScriptEngine/Libraries/ILibraryManager.cs | 14 +- src/ScriptEngine/Libraries/LibraryManager.cs | 13 +- src/ScriptEngine/Libraries/UserAddedScript.cs | 22 ++ src/ScriptEngine/NullDependencyResolver.cs | 7 +- src/ScriptEngine/OneScriptCoreOptions.cs | 34 +- src/ScriptEngine/RuntimeEnvironment.cs | 75 ++++- src/ScriptEngine/ScriptSourceFactory.cs | 12 + src/ScriptEngine/SystemLogger.cs | 5 + src/TestApp/EditedFileSource.cs | 2 +- .../CodeGenerationTests.cs | 3 +- .../ExplicitImportsTest.cs | 316 ++++++++++++++++++ .../ObsoleteMembersTest.cs | 9 +- .../SymbolsRegistrationTests.cs | 3 +- .../OneScript.Dynamic.Tests/CompileHelper.cs | 3 +- .../SourceCodeHelper.cs | 1 + 35 files changed, 774 insertions(+), 217 deletions(-) create mode 100644 src/OneScript.Core/Compilation/Binding/IPackageSymbol.cs create mode 100644 src/OneScript.Core/Compilation/PackageInfo.cs create mode 100644 src/ScriptEngine/ExplicitImportsBehavior.cs delete mode 100644 src/ScriptEngine/Libraries/ExternalLibraryDef.cs create mode 100644 src/ScriptEngine/Libraries/ExternalLibraryInfo.cs create mode 100644 src/ScriptEngine/Libraries/UserAddedScript.cs create mode 100644 src/Tests/OneScript.Core.Tests/ExplicitImportsTest.cs diff --git a/src/OneScript.Core/Compilation/Binding/IPackageSymbol.cs b/src/OneScript.Core/Compilation/Binding/IPackageSymbol.cs new file mode 100644 index 000000000..cbc6bdd19 --- /dev/null +++ b/src/OneScript.Core/Compilation/Binding/IPackageSymbol.cs @@ -0,0 +1,17 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +namespace OneScript.Compilation.Binding +{ + /// + /// Символ, который импортирован из внешнего пакета + /// + public interface IPackageSymbol + { + PackageInfo GetPackageInfo(); + } +} diff --git a/src/OneScript.Core/Compilation/ICompileTimeDependencyResolver.cs b/src/OneScript.Core/Compilation/ICompileTimeDependencyResolver.cs index 47d61ede8..292eb4754 100644 --- a/src/OneScript.Core/Compilation/ICompileTimeDependencyResolver.cs +++ b/src/OneScript.Core/Compilation/ICompileTimeDependencyResolver.cs @@ -5,6 +5,8 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +#nullable enable + using OneScript.Execution; using OneScript.Sources; @@ -18,6 +20,7 @@ public interface ICompileTimeDependencyResolver /// Модуль в котором объявлен импорт /// имя библиотеки /// - void Resolve(SourceCode module, string libraryName, IBslProcess process); + /// Информация о загруженном пакете или null + PackageInfo? Resolve(SourceCode module, string libraryName, IBslProcess process); } -} \ No newline at end of file +} diff --git a/src/OneScript.Core/Compilation/PackageInfo.cs b/src/OneScript.Core/Compilation/PackageInfo.cs new file mode 100644 index 000000000..24e95fa52 --- /dev/null +++ b/src/OneScript.Core/Compilation/PackageInfo.cs @@ -0,0 +1,31 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +namespace OneScript.Compilation +{ + /// + /// Информация о внешнем пакете (библиотеке). + /// + public sealed class PackageInfo + { + public PackageInfo(string id, string shortName) + { + Id = id; + ShortName = shortName; + } + + /// + /// Уникальный идентификатор пакета (обычно путь к каталогу) + /// + public string Id { get; } + + /// + /// Короткое имя для отображения в сообщениях + /// + public string ShortName { get; } + } +} diff --git a/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs b/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs index 40c5436d4..33fd05208 100644 --- a/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs +++ b/src/OneScript.Core/Contexts/IRuntimeEnvironment.cs @@ -6,6 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System.Collections.Generic; +using OneScript.Compilation; using OneScript.Compilation.Binding; using ScriptEngine.Machine; @@ -40,6 +41,14 @@ public interface IRuntimeEnvironment /// Флаг доступности свойства только для чтения void InjectGlobalProperty(IValue value, string identifier, bool readOnly); + /// + /// Инжект глобального свойства + /// + /// Значение свойства + /// Идентификатор + /// Пакет, предоставивший это свойство + void InjectGlobalProperty(IValue value, string identifier, PackageInfo ownerPackage); + /// /// Инжект глобального свойства с помощью описания свойства. /// @@ -71,4 +80,4 @@ public interface IRuntimeEnvironment /// IReadOnlyList AttachedContexts { get; } } -} \ No newline at end of file +} diff --git a/src/OneScript.Core/Sources/FileCodeSource.cs b/src/OneScript.Core/Sources/FileCodeSource.cs index 02a6a6ec6..64abaa918 100644 --- a/src/OneScript.Core/Sources/FileCodeSource.cs +++ b/src/OneScript.Core/Sources/FileCodeSource.cs @@ -9,6 +9,7 @@ This Source Code Form is subject to the terms of the using System.Text; using OneScript.Commons; using System; +using OneScript.Language.Sources; namespace OneScript.Sources { diff --git a/src/OneScript.Core/Sources/StringCodeSource.cs b/src/OneScript.Core/Sources/StringCodeSource.cs index 90a471fca..c274a5464 100644 --- a/src/OneScript.Core/Sources/StringCodeSource.cs +++ b/src/OneScript.Core/Sources/StringCodeSource.cs @@ -5,6 +5,8 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using OneScript.Language.Sources; + namespace OneScript.Sources { public class StringCodeSource : ICodeSource diff --git a/src/OneScript.Language/Sources/ICodeSource.cs b/src/OneScript.Language/Sources/ICodeSource.cs index 85daedf08..27db60fad 100644 --- a/src/OneScript.Language/Sources/ICodeSource.cs +++ b/src/OneScript.Language/Sources/ICodeSource.cs @@ -5,7 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -namespace OneScript.Sources +namespace OneScript.Language.Sources { public interface ICodeSource { diff --git a/src/OneScript.Language/Sources/SourceCode.cs b/src/OneScript.Language/Sources/SourceCode.cs index 76ab858aa..48c10007f 100644 --- a/src/OneScript.Language/Sources/SourceCode.cs +++ b/src/OneScript.Language/Sources/SourceCode.cs @@ -6,6 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using OneScript.Language.LexicalAnalysis; +using OneScript.Language.Sources; // ReSharper disable once CheckNamespace namespace OneScript.Sources @@ -17,10 +18,11 @@ public class SourceCode : ISourceCodeIndexer private string _code = null; - internal SourceCode(string sourceName, ICodeSource source) + internal SourceCode(string sourceName, ICodeSource source, string ownerPackageId = null) { _source = source; Name = sourceName; + OwnerPackageId = ownerPackageId; } public SourceCodeIterator CreateIterator() @@ -34,6 +36,11 @@ public SourceCodeIterator CreateIterator() public string Location => _source.Location; public string Name { get; } + + /// + /// Идентификатор пакета-владельца. null если модуль не принадлежит библиотеке. + /// + public string OwnerPackageId { get; } public string GetSourceCode() { @@ -49,4 +56,4 @@ public string GetCodeLine(int lineNumber) public override string ToString() => Name ?? Location; } -} \ No newline at end of file +} diff --git a/src/OneScript.Language/Sources/SourceCodeBuilder.cs b/src/OneScript.Language/Sources/SourceCodeBuilder.cs index 547d1aa42..fa307c2d1 100644 --- a/src/OneScript.Language/Sources/SourceCodeBuilder.cs +++ b/src/OneScript.Language/Sources/SourceCodeBuilder.cs @@ -6,6 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; +using OneScript.Language.Sources; // ReSharper disable once CheckNamespace namespace OneScript.Sources @@ -14,6 +15,7 @@ public class SourceCodeBuilder { private ICodeSource _source; private string _moduleName; + private string _ownerPackageId; private SourceCodeBuilder() { @@ -30,6 +32,15 @@ public SourceCodeBuilder WithName(string name) _moduleName = name; return this; } + + /// + /// Устанавливает идентификатор пакета-владельца для исходного кода. + /// + public SourceCodeBuilder WithOwnerPackage(string packageId) + { + _ownerPackageId = packageId; + return this; + } public SourceCode Build() { @@ -39,9 +50,9 @@ public SourceCode Build() if (_moduleName == default) _moduleName = _source.Location; - return new SourceCode(_moduleName, _source); + return new SourceCode(_moduleName, _source, _ownerPackageId); } public static SourceCodeBuilder Create() => new SourceCodeBuilder(); } -} \ No newline at end of file +} diff --git a/src/ScriptEngine.HostedScript/FileSystemDependencyResolver.cs b/src/ScriptEngine.HostedScript/FileSystemDependencyResolver.cs index b52d69b7a..abf504ca8 100644 --- a/src/ScriptEngine.HostedScript/FileSystemDependencyResolver.cs +++ b/src/ScriptEngine.HostedScript/FileSystemDependencyResolver.cs @@ -33,6 +33,7 @@ private class Library public string id; public ProcessingState state; public LibraryLoader customLoader; + public PackageInfo loadingResult; } private enum ProcessingState @@ -77,20 +78,21 @@ public void Initialize(ScriptingEngine engine) Engine = engine; } - public void Resolve(SourceCode module, string libraryName, IBslProcess process) + public PackageInfo Resolve(SourceCode module, string libraryName, IBslProcess process) { bool quoted = PrepareQuoted(ref libraryName); - bool loaded; - if (quoted) - loaded = LoadByRelativePath(module, libraryName, process); - else - loaded = LoadByName(libraryName, process); - if(!loaded) - throw new CompilerException(String.Format("Библиотека не найдена: '{0}'", libraryName)); + var lib = quoted ? + LoadByRelativePath(module, libraryName, process) : + LoadByName(libraryName, process); + + if (lib == null) + throw new CompilerException($"Библиотека не найдена: '{libraryName}'"); + + return lib; } - private bool LoadByName(string libraryName, IBslProcess process) + private PackageInfo LoadByName(string libraryName, IBslProcess process) { foreach (var path in SearchDirectories) { @@ -98,18 +100,16 @@ private bool LoadByName(string libraryName, IBslProcess process) continue; var libraryPath = Path.Combine(path, libraryName); - if (LoadByPath(libraryPath, process)) - return true; + var loadAttempt = LoadByPath(libraryPath, process); + if (loadAttempt != null) + return loadAttempt; } var rootPath = Path.Combine(LibraryRoot, libraryName); - if (LoadByPath(rootPath, process)) - return true; - - return false; + return LoadByPath(rootPath, process); } - private bool LoadByRelativePath(SourceCode module, string libraryPath, IBslProcess process) + private PackageInfo LoadByRelativePath(SourceCode module, string libraryPath, IBslProcess process) { string realPath; @@ -197,17 +197,14 @@ private bool PrepareQuoted(ref string value) return quoted; } - private bool LoadByPath(string libraryPath, IBslProcess process) + private PackageInfo LoadByPath(string libraryPath, IBslProcess process) { - if (Directory.Exists(libraryPath)) - { - return LoadLibraryInternal(libraryPath, process); - } - - return false; + return Directory.Exists(libraryPath) ? + LoadLibraryInternal(libraryPath, process) : + null; } - private bool LoadLibraryInternal(string libraryPath, IBslProcess process) + private PackageInfo LoadLibraryInternal(string libraryPath, IBslProcess process) { var id = GetLibraryId(libraryPath); var existedLib = _libs.FirstOrDefault(x => x.id == id); @@ -222,22 +219,23 @@ private bool LoadLibraryInternal(string libraryPath, IBslProcess process) $"Error loading library {id}. Circular dependencies found.\n") + libStack); } - return true; + return existedLib.loadingResult; } var newLib = new Library() { id = id, state = ProcessingState.Discovered }; - bool hasFiles; int newLibIndex = _libs.Count; var customLoaderFile = Path.Combine(libraryPath, PREDEFINED_LOADER_FILE); if (File.Exists(customLoaderFile)) newLib.customLoader = LibraryLoader.Create(Engine, customLoaderFile, process); + PackageInfo package; try { _libs.Add(newLib); - hasFiles = ProcessLibrary(newLib, process); + package = ProcessLibrary(newLib, process); newLib.state = ProcessingState.Processed; + newLib.loadingResult = package; } catch (Exception) { @@ -245,10 +243,10 @@ private bool LoadLibraryInternal(string libraryPath, IBslProcess process) throw; } - return hasFiles; + return package; } - private bool ProcessLibrary(Library lib, IBslProcess process) + private PackageInfo ProcessLibrary(Library lib, IBslProcess process) { LibraryLoader loader; if (lib.customLoader != null) @@ -256,7 +254,7 @@ private bool ProcessLibrary(Library lib, IBslProcess process) else loader = GetDefaultLoader(process); - return loader.ProcessLibrary(lib.id, process) != default; + return loader.ProcessLibrary(lib.id, process); } private static string ListToStringStack(IEnumerable libs, string stopToken) @@ -285,4 +283,4 @@ private static bool PathHasInvalidChars(string path) return (!string.IsNullOrEmpty(path) && path.IndexOfAny(Path.GetInvalidPathChars()) >= 0); } } -} \ No newline at end of file +} diff --git a/src/ScriptEngine.HostedScript/LibraryLoader.cs b/src/ScriptEngine.HostedScript/LibraryLoader.cs index 2402830dc..adc76a06b 100644 --- a/src/ScriptEngine.HostedScript/LibraryLoader.cs +++ b/src/ScriptEngine.HostedScript/LibraryLoader.cs @@ -12,9 +12,11 @@ This Source Code Form is subject to the terms of the using System.IO; using System.Linq; using OneScript.Commons; +using OneScript.Compilation; using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; +using OneScript.Values; using ScriptEngine.Libraries; namespace ScriptEngine.HostedScript @@ -25,9 +27,8 @@ public class LibraryLoader : AutoScriptDrivenObject private readonly ILibraryManager _libManager; private readonly ScriptingEngine _engine; - readonly bool _customized; - - readonly List _delayLoadedScripts = new List(); + private readonly bool _customized; + private readonly Stack _librariesInProgress = new Stack(); private struct DelayLoadedScriptData { @@ -35,6 +36,17 @@ private struct DelayLoadedScriptData public string identifier; public bool asClass; } + + private class LibraryLoadingContext + { + public LibraryLoadingContext(ExternalLibraryInfo library) + { + this.Library = library; + } + + public readonly ExternalLibraryInfo Library; + public readonly List delayLoadedScripts = new List(); + } private LibraryLoader(IExecutableModule moduleHandle, IRuntimeEnvironment env, @@ -69,7 +81,6 @@ public static LibraryLoader Create(ScriptingEngine engine, string processingScri var module = CompileModule(compiler, code, typeof(LibraryLoader), process); return new LibraryLoader(module, engine.Environment, engine.LibraryManager, engine, process); - } public static LibraryLoader Create(ScriptingEngine engine, IBslProcess process) @@ -85,7 +96,7 @@ public void AddClass(string file, string className) if (!Utils.IsValidIdentifier(className)) throw RuntimeException.InvalidArgumentValue(); - _delayLoadedScripts.Add(new DelayLoadedScriptData() + _librariesInProgress.Peek().delayLoadedScripts.Add(new DelayLoadedScriptData() { path = file, identifier = className, @@ -99,7 +110,7 @@ public void AddModule(IBslProcess process, string file, string moduleName) if (!Utils.IsValidIdentifier(moduleName)) throw RuntimeException.InvalidArgumentValue(); - _delayLoadedScripts.Add(new DelayLoadedScriptData() + _librariesInProgress.Peek().delayLoadedScripts.Add(new DelayLoadedScriptData() { path = file, identifier = moduleName, @@ -112,7 +123,8 @@ public void AddModule(IBslProcess process, string file, string moduleName) Locale.NStr($"ru = 'Загружаю модуль ={moduleName}= в область видимости из файла {file}';"+ $"en = 'Load module ={moduleName}= in to context from file {file}'") ); - _env.InjectGlobalProperty(null, moduleName, true); + + _env.InjectGlobalProperty(BslUndefinedValue.Instance, moduleName, _librariesInProgress.Peek().Library.Package); } catch (InvalidOperationException e) { @@ -136,38 +148,44 @@ public void AddTemplate(string file, string name, TemplateKind kind = TemplateKi manager.RegisterTemplate(file, name, kind); } - public ExternalLibraryDef ProcessLibrary(string libraryPath, IBslProcess process) + public PackageInfo ProcessLibrary(string libraryPath, IBslProcess process) { - bool success; - _delayLoadedScripts.Clear(); - - if(!_customized) + var package = new PackageInfo(libraryPath, Path.GetFileName(libraryPath)); + var library = new ExternalLibraryInfo(package); + _librariesInProgress.Push(new LibraryLoadingContext(library)); + try { - TraceLoadLibrary( - Locale.NStr($"ru = 'Использую НЕ кастомизированный загрузчик пакетов по умолчанию для библиотеки {libraryPath}';"+ - $"en = 'Use NOT customized package loader for library {libraryPath}'") - ); + bool success; + if(!_customized) + { + TraceLoadLibrary( + Locale.NStr($"ru = 'Использую НЕ кастомизированный загрузчик пакетов по умолчанию для библиотеки {libraryPath}';"+ + $"en = 'Use NOT customized package loader for library {libraryPath}'") + ); - success = DefaultProcessing(libraryPath, process); - } - else - { - TraceLoadLibrary( - Locale.NStr($"ru = 'Использую КАСТОМИЗИРОВАННЫЙ загрузчик пакетов для библиотеки {libraryPath}';"+ - $"en = 'Use CUSTOMIZED package loader for library {libraryPath}'") - ); + success = DefaultProcessing(libraryPath, process); + } + else + { + TraceLoadLibrary( + Locale.NStr($"ru = 'Использую КАСТОМИЗИРОВАННЫЙ загрузчик пакетов для библиотеки {libraryPath}';"+ + $"en = 'Use CUSTOMIZED package loader for library {libraryPath}'") + ); - success = CustomizedProcessing(libraryPath, process); - } + success = CustomizedProcessing(libraryPath, process); + } - if (!success) - return default; - + if (!success) + return default; - var library = new ExternalLibraryDef(Path.GetFileName(libraryPath)); - CompileDelayedModules(library, process); - - return library; + CompileDelayedModules(library, process); + + return package; + } + finally + { + _librariesInProgress.Pop(); + } } private bool CustomizedProcessing(string libraryPath, IBslProcess process) @@ -221,9 +239,9 @@ private bool DefaultProcessing(string libraryPath, IBslProcess process) return hasFiles; } - private void CompileDelayedModules(ExternalLibraryDef library, IBslProcess process) + private void CompileDelayedModules(ExternalLibraryInfo library, IBslProcess process) { - foreach (var scriptFile in _delayLoadedScripts) + foreach (var scriptFile in _librariesInProgress.Peek().delayLoadedScripts) { if (scriptFile.asClass) { @@ -235,27 +253,26 @@ private void CompileDelayedModules(ExternalLibraryDef library, IBslProcess proce } } - library.Modules.ForEach(moduleFile => + foreach (var moduleFile in library.Modules) { - var module = CompileFile(moduleFile.FilePath, process); - moduleFile.Module = module; - }); + moduleFile.Module = CompileFile(moduleFile.FilePath, library.Package.Id, process); + } - library.Classes.ForEach(classFile => + foreach (var classFile in library.Classes) { - var module = CompileFile(classFile.FilePath, process); + var module = CompileFile(classFile.FilePath, library.Package.Id, process); _engine.AttachedScriptsFactory.RegisterTypeModule(classFile.Symbol, module); classFile.Module = module; - }); + } _libManager.InitExternalLibrary(_engine, library, process); } - private IExecutableModule CompileFile(string path, IBslProcess process) + private IExecutableModule CompileFile(string path, string ownerPackageId, IBslProcess process) { var compiler = _engine.GetCompilerService(); - var source = _engine.Loader.FromFile(path); + var source = _engine.Loader.FromFile(path, ownerPackageId); var module = _engine.AttachedScriptsFactory.CompileModuleFromSource(compiler, source, null, process); return module; @@ -263,7 +280,7 @@ private IExecutableModule CompileFile(string path, IBslProcess process) private static Lazy TraceEnabled = new Lazy(() => System.Environment.GetEnvironmentVariable("OS_LRE_TRACE") == "1"); - + public static void TraceLoadLibrary(string message) { if (TraceEnabled.Value) { diff --git a/src/ScriptEngine/Compiler/CompilerErrors.cs b/src/ScriptEngine/Compiler/CompilerErrors.cs index 1f6ea3e2d..9651e20ad 100644 --- a/src/ScriptEngine/Compiler/CompilerErrors.cs +++ b/src/ScriptEngine/Compiler/CompilerErrors.cs @@ -25,6 +25,10 @@ public static CodeError TooManyArgumentsPassed() => public static CodeError MissedArgument() => Create("Пропущен обязательный параметр", "Missed mandatory parameter"); + public static CodeError MissedImport(string symbol, string libName) => + Create($"Свойство {symbol} принадлежит пакету {libName}, который не импортирован в данном модуле", + $"Property {symbol} belongs to package {libName} which is not imported in this module"); + private static CodeError Create(string ru, string en, [CallerMemberName] string errorId = default) { return new CodeError diff --git a/src/ScriptEngine/Compiler/CompilerFrontend.cs b/src/ScriptEngine/Compiler/CompilerFrontend.cs index a21d5c925..8cd2b0489 100644 --- a/src/ScriptEngine/Compiler/CompilerFrontend.cs +++ b/src/ScriptEngine/Compiler/CompilerFrontend.cs @@ -14,6 +14,7 @@ This Source Code Form is subject to the terms of the using OneScript.Language.SyntaxAnalysis; using OneScript.Language.SyntaxAnalysis.AstNodes; using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine.Debugger; namespace ScriptEngine.Compiler { @@ -25,6 +26,7 @@ public class CompilerFrontend : CompilerFrontendBase { private readonly IDependencyResolver _dependencyResolver; private readonly PredefinedInterfaceResolver _interfaceResolver; + private readonly OneScriptCoreOptions _options; private readonly CompilerBackendSelector _backendSelector; public CompilerFrontend( @@ -32,10 +34,12 @@ public CompilerFrontend( IErrorSink errorSink, IServiceContainer services, IDependencyResolver dependencyResolver, - PredefinedInterfaceResolver interfaceResolver) : base(handlers, errorSink, services) + PredefinedInterfaceResolver interfaceResolver, + OneScriptCoreOptions options) : base(handlers, errorSink, services) { _dependencyResolver = dependencyResolver; _interfaceResolver = interfaceResolver; + _options = options; _backendSelector = services.Resolve(); @@ -45,7 +49,21 @@ public CompilerFrontend( private ICompilerBackend StackInitializer() { - var backend = new DefaultCompilerBackend(ErrorSink); + var actualBehavior = _options.ExplicitImports; + if (_options.ExplicitImports == ExplicitImportsBehavior.Development) + { + var dbg = Services.TryResolve(); + if (dbg == null || dbg.IsEnabled == false) + { + actualBehavior = ExplicitImportsBehavior.Disabled; + } + else + { + actualBehavior = ExplicitImportsBehavior.Enabled; + } + } + + var backend = new DefaultCompilerBackend(ErrorSink, actualBehavior); SetDefaultOptions(backend); backend.DependencyResolver = _dependencyResolver; diff --git a/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs b/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs index 7470af728..b56db0805 100644 --- a/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs +++ b/src/ScriptEngine/Compiler/DefaultCompilerBackend.cs @@ -10,7 +10,6 @@ This Source Code Form is subject to the terms of the using OneScript.Execution; using OneScript.Language; using OneScript.Language.SyntaxAnalysis.AstNodes; -using ScriptEngine.Machine; namespace ScriptEngine.Compiler { @@ -18,9 +17,9 @@ public class DefaultCompilerBackend : ICompilerBackend { private readonly StackMachineCodeGenerator _codeGen; - public DefaultCompilerBackend(IErrorSink errorSink) + public DefaultCompilerBackend(IErrorSink errorSink, ExplicitImportsBehavior importsOption) { - _codeGen = new StackMachineCodeGenerator(errorSink); + _codeGen = new StackMachineCodeGenerator(errorSink, importsOption); } public IDependencyResolver DependencyResolver { get; set; } diff --git a/src/ScriptEngine/Compiler/EvalCompiler.cs b/src/ScriptEngine/Compiler/EvalCompiler.cs index 75dbdb2d0..7f30f1202 100644 --- a/src/ScriptEngine/Compiler/EvalCompiler.cs +++ b/src/ScriptEngine/Compiler/EvalCompiler.cs @@ -26,7 +26,7 @@ public EvalCompiler( IErrorSink errorSink, IServiceContainer services) : base(new PreprocessorHandlers(), errorSink, services) { - _backend = new DefaultCompilerBackend(errorSink); + _backend = new DefaultCompilerBackend(errorSink, ExplicitImportsBehavior.Disabled); } protected override IExecutableModule CompileInternal(SymbolTable symbols, ModuleNode parsedModule, Type classType, IBslProcess process) diff --git a/src/ScriptEngine/Compiler/IDirectiveResolver.cs b/src/ScriptEngine/Compiler/IDirectiveResolver.cs index e4d25617e..380a9edcb 100644 --- a/src/ScriptEngine/Compiler/IDirectiveResolver.cs +++ b/src/ScriptEngine/Compiler/IDirectiveResolver.cs @@ -6,7 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; -using OneScript.Sources; +using OneScript.Language.Sources; namespace ScriptEngine.Compiler { diff --git a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs index 207578b55..18b2dcbdf 100644 --- a/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs +++ b/src/ScriptEngine/Compiler/StackMachineCodeGenerator.cs @@ -32,10 +32,12 @@ namespace ScriptEngine.Compiler public partial class StackMachineCodeGenerator : BslSyntaxWalker { private readonly IErrorSink _errorSink; + private readonly ExplicitImportsBehavior _importsOption; private readonly StackRuntimeModule _module; private SourceCode _sourceCode; private SymbolTable _ctx; private List _constMap = new List(); + private HashSet _localImports = new HashSet(); private readonly List _forwardedMethods = new List(); private readonly Stack _nestedLoops = new Stack(); @@ -44,9 +46,10 @@ public partial class StackMachineCodeGenerator : BslSyntaxWalker private HashSet _reportedOldProperties = new HashSet(); - public StackMachineCodeGenerator(IErrorSink errorSink) + public StackMachineCodeGenerator(IErrorSink errorSink, ExplicitImportsBehavior importsOption) { _errorSink = errorSink; + _importsOption = importsOption; _module = new StackRuntimeModule(typeof(IRuntimeContextInstance)); } @@ -102,10 +105,11 @@ private void HandleImportClause(AnnotationNode node) try { - DependencyResolver.Resolve(_sourceCode, libName, _compilerProcess); - // TODO: решить проблему с импортами - // if(_ctx is ModuleCompilerContext moduleContext) - // moduleContext.Update(); + var resolvedLib = DependencyResolver.Resolve(_sourceCode, libName, _compilerProcess); + if (resolvedLib != null && _importsOption != ExplicitImportsBehavior.Disabled) + { + _localImports.Add(resolvedLib.Id); + } } catch (DependencyResolveException e) { @@ -756,6 +760,11 @@ private int PushVariable(TerminalNode node) if (symbol is IPropertySymbol propSymbol) { + if (_importsOption != ExplicitImportsBehavior.Disabled && symbol is IPackageSymbol pkgSymbol) + { + CheckExplicitImport(node, pkgSymbol, symbol); + } + if (propSymbol.Property is ISupportsDeprecation { IsDeprecated: true } && !_reportedOldProperties.Contains(propSymbol.Property)) { @@ -775,6 +784,31 @@ private int PushVariable(TerminalNode node) } } + private void CheckExplicitImport(TerminalNode node, IPackageSymbol pkgSymbol, IVariableSymbol symbol) + { + var packageInfo = pkgSymbol.GetPackageInfo(); + var id = packageInfo.Id; + + // Если модуль принадлежит той же библиотеке - не требуем явный импорт + if (_sourceCode.OwnerPackageId != null && id == _sourceCode.OwnerPackageId) + return; + + if (!_localImports.Contains(id)) + { + var error = CompilerErrors.MissedImport(symbol.Name, packageInfo.ShortName); + error.Position = MakeCodePosition(node.Location); + switch (_importsOption) + { + case ExplicitImportsBehavior.Enabled: + AddError(error); + break; + case ExplicitImportsBehavior.Warn: + SystemLogger.Write(error.ToString()); + break; + } + } + } + private int PushSimpleVariable(SymbolBinding binding) { if (binding.ScopeNumber == _ctx.ScopeCount - 1) diff --git a/src/ScriptEngine/ExplicitImportsBehavior.cs b/src/ScriptEngine/ExplicitImportsBehavior.cs new file mode 100644 index 000000000..12c10fc85 --- /dev/null +++ b/src/ScriptEngine/ExplicitImportsBehavior.cs @@ -0,0 +1,17 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +namespace ScriptEngine +{ + public enum ExplicitImportsBehavior + { + Enabled, + Warn, + Development, + Disabled + } +} \ No newline at end of file diff --git a/src/ScriptEngine/Libraries/ExternalLibraryDef.cs b/src/ScriptEngine/Libraries/ExternalLibraryDef.cs deleted file mode 100644 index a962aa49a..000000000 --- a/src/ScriptEngine/Libraries/ExternalLibraryDef.cs +++ /dev/null @@ -1,73 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.Collections.Generic; -using OneScript.Execution; -using ScriptEngine.Machine; - -namespace ScriptEngine.Libraries -{ - public class ExternalLibraryDef - { - public ExternalLibraryDef(string name) - { - LibraryName = name; - } - - public string LibraryName { get; } - - public IList Classes { get; } = new List(); - public IList Modules { get; } = new List(); - - public UserAddedScript AddClass(string identifier, string filePath, IExecutableModule module = null) - { - var item = new UserAddedScript - { - Type = UserAddedScriptType.Class, - Module = module, - Symbol = identifier, - FilePath = filePath - }; - - Classes.Add(item); - - return item; - } - - public UserAddedScript AddModule(string identifier, string filePath, IExecutableModule module = null) - { - var item = new UserAddedScript - { - Type = UserAddedScriptType.Module, - Module = module, - Symbol = identifier, - FilePath = filePath - }; - - Modules.Add(item); - - return item; - } - } - - public class UserAddedScript - { - public UserAddedScriptType Type; - public string Symbol; - public string FilePath; - - public IExecutableModule Module; - } - - [Serializable] - public enum UserAddedScriptType - { - Module, - Class - } -} \ No newline at end of file diff --git a/src/ScriptEngine/Libraries/ExternalLibraryInfo.cs b/src/ScriptEngine/Libraries/ExternalLibraryInfo.cs new file mode 100644 index 000000000..199c229d2 --- /dev/null +++ b/src/ScriptEngine/Libraries/ExternalLibraryInfo.cs @@ -0,0 +1,39 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System.Collections.Generic; +using OneScript.Compilation; + +namespace ScriptEngine.Libraries +{ + /// + /// Информация о внешней библиотеке и её компонентах. + /// + public class ExternalLibraryInfo + { + public ExternalLibraryInfo(PackageInfo package) + { + Package = package; + } + + public PackageInfo Package { get; } + + public List Modules { get; } = new List(); + public List Classes { get; } = new List(); + + public void AddModule(string symbol, string filePath) + { + Modules.Add(new UserAddedScript { Symbol = symbol, FilePath = filePath }); + } + + public void AddClass(string symbol, string filePath) + { + Classes.Add(new UserAddedScript { Symbol = symbol, FilePath = filePath }); + } + } +} + diff --git a/src/ScriptEngine/Libraries/ILibraryManager.cs b/src/ScriptEngine/Libraries/ILibraryManager.cs index da1ae1112..50134257c 100644 --- a/src/ScriptEngine/Libraries/ILibraryManager.cs +++ b/src/ScriptEngine/Libraries/ILibraryManager.cs @@ -1,21 +1,19 @@ /*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System.Collections.Generic; using OneScript.Execution; namespace ScriptEngine.Libraries { /// - /// Временный класс для откусывания ответственностей от RuntimeEnvironment + /// Менеджер загрузки внешних библиотек /// public interface ILibraryManager { - IEnumerable GetLibraries(); - void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryDef library, IBslProcess process); + void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryInfo library, IBslProcess process); } -} \ No newline at end of file +} diff --git a/src/ScriptEngine/Libraries/LibraryManager.cs b/src/ScriptEngine/Libraries/LibraryManager.cs index c020077f1..0a11d13fc 100644 --- a/src/ScriptEngine/Libraries/LibraryManager.cs +++ b/src/ScriptEngine/Libraries/LibraryManager.cs @@ -8,18 +8,15 @@ This Source Code Form is subject to the terms of the using OneScript.Commons; using OneScript.Contexts; using ScriptEngine.Machine.Contexts; -using System.Collections.Generic; using OneScript.Execution; namespace ScriptEngine.Libraries { /// - /// Временная имплементация временного интерфейса ILibraryManager - /// Нужна для откусывания ответственностей от RuntimeEnvironment + /// Менеджер загрузки внешних библиотек /// internal class LibraryManager : ILibraryManager { - private readonly List _externalLibs = new List(); private readonly IRuntimeContextInstance _contextOfGlobalSymbols; public LibraryManager(IRuntimeContextInstance contextOfGlobalSymbols) @@ -27,12 +24,7 @@ public LibraryManager(IRuntimeContextInstance contextOfGlobalSymbols) _contextOfGlobalSymbols = contextOfGlobalSymbols; } - public IEnumerable GetLibraries() - { - return _externalLibs.ToArray(); - } - - public void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryDef library, IBslProcess process) + public void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryInfo library, IBslProcess process) { var loadedObjects = new ScriptDrivenObject[library.Modules.Count]; int i = 0; @@ -45,7 +37,6 @@ public void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryDef libr loadedObjects[i++] = instance; } - _externalLibs.Add(library); loadedObjects.ForEach(sdo => runtime.InitializeSDO(sdo, process)); } } diff --git a/src/ScriptEngine/Libraries/UserAddedScript.cs b/src/ScriptEngine/Libraries/UserAddedScript.cs new file mode 100644 index 000000000..22c9b74f5 --- /dev/null +++ b/src/ScriptEngine/Libraries/UserAddedScript.cs @@ -0,0 +1,22 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using OneScript.Execution; + +namespace ScriptEngine.Libraries +{ + /// + /// Информация о добавленном пользовательском скрипте. + /// Используется для сериализации в ApplicationDump. + /// + public class UserAddedScript + { + public string Symbol; + public string FilePath; + public IExecutableModule Module; + } +} diff --git a/src/ScriptEngine/NullDependencyResolver.cs b/src/ScriptEngine/NullDependencyResolver.cs index 454ccf430..763690c88 100644 --- a/src/ScriptEngine/NullDependencyResolver.cs +++ b/src/ScriptEngine/NullDependencyResolver.cs @@ -5,6 +5,8 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +#nullable enable +using OneScript.Compilation; using OneScript.Execution; using OneScript.Sources; @@ -13,12 +15,13 @@ namespace ScriptEngine // ReSharper disable once ClassNeverInstantiated.Global internal class NullDependencyResolver : IDependencyResolver { - public void Resolve(SourceCode module, string libraryName, IBslProcess process) + public PackageInfo? Resolve(SourceCode module, string libraryName, IBslProcess process) { + return null; } public void Initialize(ScriptingEngine engine) { } } -} \ No newline at end of file +} diff --git a/src/ScriptEngine/OneScriptCoreOptions.cs b/src/ScriptEngine/OneScriptCoreOptions.cs index 222ef74a2..7d90b0793 100644 --- a/src/ScriptEngine/OneScriptCoreOptions.cs +++ b/src/ScriptEngine/OneScriptCoreOptions.cs @@ -20,6 +20,7 @@ public class OneScriptCoreOptions private const string SYSTEM_LANGUAGE_KEY = "SystemLanguage"; private const string PREPROCESSOR_DEFINITIONS_KEY = "preprocessor.define"; private const string DEFAULT_RUNTIME_KEY = "runtime.default"; + private const string EXPLICIT_IMPORT = "lang.explicitImports"; public OneScriptCoreOptions(KeyValueConfig config) { @@ -27,6 +28,7 @@ public OneScriptCoreOptions(KeyValueConfig config) FileReaderEncoding = SetupEncoding(config[FILE_READER_ENCODING]); PreprocessorDefinitions = SetupDefinitions(config[PREPROCESSOR_DEFINITIONS_KEY]); UseNativeAsDefaultRuntime = SetupDefaultRuntime(config[DEFAULT_RUNTIME_KEY]); + ExplicitImports = SetupExplicitImports(config[EXPLICIT_IMPORT]); } public string SystemLanguage { get; } @@ -35,7 +37,9 @@ public OneScriptCoreOptions(KeyValueConfig config) public bool UseNativeAsDefaultRuntime { get; } - public IEnumerable PreprocessorDefinitions { get; set; } + public IEnumerable PreprocessorDefinitions { get; } + + public ExplicitImportsBehavior ExplicitImports { get; } private static IEnumerable SetupDefinitions(string s) { @@ -46,16 +50,34 @@ private static Encoding SetupEncoding(string openerEncoding) { if (string.IsNullOrWhiteSpace(openerEncoding)) return Encoding.UTF8; - - if (StringComparer.InvariantCultureIgnoreCase.Compare(openerEncoding, "default") == 0) - return FileOpener.SystemSpecificEncoding(); - else - return Encoding.GetEncoding(openerEncoding); + + return StringComparer.InvariantCultureIgnoreCase.Compare(openerEncoding, "default") == 0 ? + FileOpener.SystemSpecificEncoding() : + Encoding.GetEncoding(openerEncoding); } private static bool SetupDefaultRuntime(string runtimeId) { return runtimeId == NativeRuntimeAnnotationHandler.NativeDirectiveName; } + + private static ExplicitImportsBehavior SetupExplicitImports(string keyValue) + { + switch (keyValue) + { + case "on": + return ExplicitImportsBehavior.Enabled; + case "off": + return ExplicitImportsBehavior.Disabled; + case "warn": + return ExplicitImportsBehavior.Warn; + case "dev": + case null: + return ExplicitImportsBehavior.Development; + default: + SystemLogger.Write($"Unknown value for {EXPLICIT_IMPORT}: {keyValue}"); + return ExplicitImportsBehavior.Warn; + } + } } } \ No newline at end of file diff --git a/src/ScriptEngine/RuntimeEnvironment.cs b/src/ScriptEngine/RuntimeEnvironment.cs index 0ab7f60ea..3cf537f08 100644 --- a/src/ScriptEngine/RuntimeEnvironment.cs +++ b/src/ScriptEngine/RuntimeEnvironment.cs @@ -7,9 +7,11 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; using OneScript.Commons; +using OneScript.Compilation; using OneScript.Compilation.Binding; using OneScript.Contexts; using OneScript.Execution; +using OneScript.Values; using ScriptEngine.Libraries; using ScriptEngine.Machine; using SymbolScope = OneScript.Compilation.Binding.SymbolScope; @@ -53,6 +55,27 @@ public void InjectObject(IAttachableContext context) public void InjectGlobalProperty(IValue value, string identifier, string alias, bool readOnly) { + InjectPropertyInternal(value, identifier, alias, readOnly, null); + } + + public void InjectGlobalProperty(IValue value, string identifier, bool readOnly) + { + InjectGlobalProperty(value, identifier, default, readOnly); + } + + public void InjectGlobalProperty(IValue value, string identifier, PackageInfo ownerPackage) + { + InjectPropertyInternal(value, identifier, default, true, ownerPackage); + } + + private void InjectPropertyInternal( + IValue value, + string identifier, + string alias, + bool readOnly, + PackageInfo ownerPackage) + { + ArgumentNullException.ThrowIfNull(value); if(!Utils.IsValidIdentifier(identifier)) { throw new ArgumentException("Invalid identifier", nameof(identifier)); @@ -65,18 +88,26 @@ public void InjectGlobalProperty(IValue value, string identifier, string alias, CreateGlobalScopeIfNeeded(); var num = _injectedProperties.Insert(value, identifier, true, !readOnly); - var symbol = new WrappedPropertySymbol(_injectedProperties.GetPropertyInfo(num)) + var bslPropertyInfo = _injectedProperties.GetPropertyInfo(num); + IVariableSymbol registeredSymbol; + if (ownerPackage == null) { - Name = identifier, - Alias = alias - }; + registeredSymbol = new WrappedPropertySymbol(bslPropertyInfo) + { + Name = identifier, + Alias = alias + }; + } + else + { + registeredSymbol = new WrappedLibraryPropertySymbol(bslPropertyInfo, ownerPackage) + { + Name = identifier, + Alias = alias + }; + } - _scopeOfGlobalProperties.DefineVariable(symbol); - } - - public void InjectGlobalProperty(IValue value, string identifier, bool readOnly) - { - InjectGlobalProperty(value, identifier, default, readOnly); + _scopeOfGlobalProperties.DefineVariable(registeredSymbol); } public void InjectGlobalProperty(IValue value, BslPropertyInfo definition) @@ -119,12 +150,7 @@ public IValue GetGlobalProperty(string propertyName) public IReadOnlyList AttachedContexts => _contexts; - public IEnumerable GetLibraries() - { - return _libraryManager.GetLibraries(); - } - - public void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryDef library, IBslProcess process) + public void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryInfo library, IBslProcess process) { _libraryManager.InitExternalLibrary(runtime, library, process); } @@ -141,5 +167,22 @@ public WrappedPropertySymbol(BslPropertyInfo propInfo) public Type Type => Property.PropertyType; public BslPropertyInfo Property { get; } } + + private class WrappedLibraryPropertySymbol : IPropertySymbol, IPackageSymbol + { + public WrappedLibraryPropertySymbol(BslPropertyInfo propInfo, PackageInfo ownerPackage) + { + Property = propInfo; + Package = ownerPackage; + } + + public string Name { get; set; } + public string Alias { get; set; } + public Type Type => Property.PropertyType; + public BslPropertyInfo Property { get; } + private PackageInfo Package { get; } + + public PackageInfo GetPackageInfo() => Package; + } } } diff --git a/src/ScriptEngine/ScriptSourceFactory.cs b/src/ScriptEngine/ScriptSourceFactory.cs index b1e57fa06..572bd7d20 100644 --- a/src/ScriptEngine/ScriptSourceFactory.cs +++ b/src/ScriptEngine/ScriptSourceFactory.cs @@ -31,6 +31,18 @@ public SourceCode FromFile(string path) .FromFile(path, ReaderEncoding) .Build(); } + + /// + /// Создаёт SourceCode из файла с указанием пакета-владельца. + /// + public SourceCode FromFile(string path, string ownerPackageId) + { + return SourceCodeBuilder + .Create() + .FromFile(path, ReaderEncoding) + .WithOwnerPackage(ownerPackageId) + .Build(); + } public Encoding ReaderEncoding { get; set; } } diff --git a/src/ScriptEngine/SystemLogger.cs b/src/ScriptEngine/SystemLogger.cs index a943033c6..2e0eff04a 100644 --- a/src/ScriptEngine/SystemLogger.cs +++ b/src/ScriptEngine/SystemLogger.cs @@ -24,6 +24,11 @@ public static void SetWriter(ISystemLogWriter writer) _writer = writer; } + public static void Reset() + { + _writer = new NullWriter(); + } + public static void Write(string text) { _writer.Write(text); diff --git a/src/TestApp/EditedFileSource.cs b/src/TestApp/EditedFileSource.cs index fbf1ca2e8..57a6cb74f 100644 --- a/src/TestApp/EditedFileSource.cs +++ b/src/TestApp/EditedFileSource.cs @@ -6,7 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System.IO; -using OneScript.Sources; +using OneScript.Language.Sources; namespace TestApp { diff --git a/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs b/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs index f8a9b997b..db8ec91c2 100644 --- a/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs +++ b/src/Tests/OneScript.Core.Tests/CodeGenerationTests.cs @@ -14,6 +14,7 @@ This Source Code Form is subject to the terms of the using OneScript.Language.SyntaxAnalysis; using OneScript.Language.SyntaxAnalysis.AstNodes; using OneScript.Sources; +using ScriptEngine; using ScriptEngine.Compiler; using ScriptEngine.Machine; using Xunit; @@ -68,7 +69,7 @@ private static StackRuntimeModule BuildModule(string code, IBslProcess process) var ctx = new SymbolTable(); ctx.PushScope(new SymbolScope(), ScopeBindingDescriptor.Static(null)); - var compiler = new StackMachineCodeGenerator(errSink); + var compiler = new StackMachineCodeGenerator(errSink, ExplicitImportsBehavior.Disabled); return compiler.CreateModule(node, lexer.Iterator.Source, ctx, process); } } diff --git a/src/Tests/OneScript.Core.Tests/ExplicitImportsTest.cs b/src/Tests/OneScript.Core.Tests/ExplicitImportsTest.cs new file mode 100644 index 000000000..3e1dab359 --- /dev/null +++ b/src/Tests/OneScript.Core.Tests/ExplicitImportsTest.cs @@ -0,0 +1,316 @@ +/*---------------------------------------------------------- +This Source Code Form is subject to the terms of the +Mozilla Public License, v.2.0. If a copy of the MPL +was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. +----------------------------------------------------------*/ + +using System; +using System.Collections.Generic; +using FluentAssertions; +using Moq; +using OneScript.Compilation; +using OneScript.Contexts; +using OneScript.Exceptions; +using OneScript.Execution; +using OneScript.Language.Sources; +using OneScript.Sources; +using OneScript.Values; +using ScriptEngine; +using ScriptEngine.Hosting; +using ScriptEngine.Machine; +using ScriptEngine.Machine.Debugger; +using Xunit; + +namespace OneScript.Core.Tests +{ + [Collection("SystemLogger")] + public class ExplicitImportsTest : IDisposable + { + private readonly List _messages; + private readonly ISystemLogWriter _logWriter; + + // Названия для тестовых скриптов + private const string LibraryModuleName = "СкриптБиблиотеки"; + private const string LibraryPackageId = "testlib"; + private const string LibraryShortName = "TestLib"; + + public ExplicitImportsTest() + { + var mock = new Mock(); + mock.Setup(x => x.Write(It.IsAny())) + .Callback(str => _messages.Add(str)); + + _messages = new List(); + _logWriter = mock.Object; + SystemLogger.SetWriter(_logWriter); + } + + public void Dispose() + { + // Очищаем логгер после каждого теста + SystemLogger.Reset(); + } + + [Fact] + public void ExplicitImports_Disabled_NoWarnings() + { + var code = CompileClientScript(ExplicitImportsBehavior.Disabled, out var shouldCompile); + + shouldCompile.Should().BeTrue(); + _messages.Should().BeEmpty("в режиме Disabled не должно быть предупреждений"); + } + + [Fact] + public void ExplicitImports_Enabled_CompilationError() + { + Action act = () => CompileClientScript(ExplicitImportsBehavior.Enabled, out _); + + act.Should().Throw() + .WithMessage("*" + LibraryModuleName + " принадлежит пакету " + LibraryShortName + "*", "должна быть ошибка о неявном импорте"); + + _messages.Should().BeEmpty("в режиме Enabled выбрасывается исключение, а не пишется в лог"); + } + + [Fact] + public void ExplicitImports_Warn_HasWarning() + { + var code = CompileClientScript(ExplicitImportsBehavior.Warn, out var shouldCompile); + + shouldCompile.Should().BeTrue(); + _messages.Should().HaveCount(1, "должно быть одно предупреждение") + .And.Contain(x => + x.Contains(LibraryModuleName, StringComparison.InvariantCultureIgnoreCase) && + x.Contains(LibraryShortName, StringComparison.InvariantCultureIgnoreCase), + "предупреждение должно содержать имя библиотеки и символа"); + } + + [Fact] + public void ExplicitImports_Development_WithDebugger_CompilationError() + { + var debuggerMock = new Mock(); + debuggerMock.Setup(x => x.IsEnabled).Returns(true); + + Action act = () => CompileClientScript( + ExplicitImportsBehavior.Development, + out _, + debuggerMock.Object); + + act.Should().Throw() + .WithMessage("*" + LibraryModuleName + " принадлежит пакету " + LibraryShortName + "*", + "в режиме Development с включенным отладчиком должна быть ошибка"); + } + + [Fact] + public void ExplicitImports_Development_WithoutDebugger_NoWarnings() + { + var debuggerMock = new Mock(); + debuggerMock.Setup(x => x.IsEnabled).Returns(false); + + var code = CompileClientScript( + ExplicitImportsBehavior.Development, + out var shouldCompile, + debuggerMock.Object); + + shouldCompile.Should().BeTrue(); + _messages.Should().BeEmpty("в режиме Development без отладчика не должно быть предупреждений"); + } + + [Fact] + public void ExplicitImports_Development_NoDebuggerRegistered_NoWarnings() + { + var code = CompileClientScript( + ExplicitImportsBehavior.Development, + out var shouldCompile); + + shouldCompile.Should().BeTrue(); + _messages.Should().BeEmpty("в режиме Development без зарегистрированного отладчика не должно быть предупреждений"); + } + + [Fact] + public void ExplicitImports_WithUseDirective_NoWarnings() + { + // Скрипт с явным импортом через директиву #Использовать + var codeWithImport = $"#Использовать {LibraryShortName}\n" + + $"А = {LibraryModuleName}.Метод();"; + + var instance = CompileUserScript( + codeWithImport, + ExplicitImportsBehavior.Enabled, + out var shouldCompile); + + shouldCompile.Should().BeTrue(); + _messages.Should().BeEmpty("при явном импорте через #Использовать не должно быть предупреждений"); + } + + [Fact] + public void ExplicitImports_SamePackage_NoWarnings() + { + // Библиотека использует себя - не должно быть предупреждений + var libraryCode = $"Функция Метод() Экспорт\n" + + $" А = {LibraryModuleName};\n" + + $" Возврат А;\n" + + $"КонецФункции"; + + var instance = CompileLibraryScript( + libraryCode, + ExplicitImportsBehavior.Enabled, + out var shouldCompile); + + shouldCompile.Should().BeTrue(); + _messages.Should().BeEmpty("модули из той же библиотеки не требуют явного импорта"); + } + + private IRuntimeContextInstance CompileClientScript( + ExplicitImportsBehavior behavior, + out bool success, + IDebugger debugger = null) + { + // Код клиентского скрипта, который использует библиотеку неявно + var clientCode = $"А = {LibraryModuleName}.Метод();"; + + var instance = CompileUserScript(clientCode, behavior, out success, debugger); + return instance; + } + + private IRuntimeContextInstance CompileLibraryScript( + string code, + ExplicitImportsBehavior behavior, + out bool success, + IDebugger debugger = null) + { + var instance = CompileUserScript( + code, + behavior, + out success, + debugger, + ownerPackageId: LibraryPackageId); + + return instance; + } + + private IRuntimeContextInstance CompileUserScript( + string code, + ExplicitImportsBehavior behavior, + out bool success, + IDebugger debugger = null, + string ownerPackageId = null) + { + success = true; + + try + { + var configValue = behavior switch + { + ExplicitImportsBehavior.Enabled => "on", + ExplicitImportsBehavior.Disabled => "off", + ExplicitImportsBehavior.Warn => "warn", + ExplicitImportsBehavior.Development => "dev", + _ => throw new ArgumentException(nameof(behavior)) + }; + + var builder = DefaultEngineBuilder + .Create() + .SetupConfiguration(p => + { + p.Add(() => new Dictionary + { + { "lang.explicitImports", configValue } + }); + }) + .SetDefaultOptions(); + + // Регистрируем отладчик если передан + if (debugger != null) + { + builder.WithDebugger(debugger); + } + + // Регистрируем мок резолвера зависимостей + builder.SetupServices(services => + { + services.UseImports(_ => new TestDependencyResolver()); + }); + + var engine = builder.Build(); + + // Регистрируем библиотеку как глобальное свойство + RegisterLibrary(engine); + + var compiler = engine.GetCompilerService(); + var source = ownerPackageId != null + ? SourceCodeBuilder.Create().FromString(code).WithOwnerPackage(ownerPackageId).Build() + : engine.Loader.FromString(code); + + engine.Initialize(); + + var module = engine.AttachedScriptsFactory.CompileModuleFromSource( + compiler, + source, + null, + engine.NewProcess()); + + var instance = engine.NewObject(module, engine.NewProcess(), null); + return instance; + } + catch (CompilerException) + { + success = false; + throw; + } + } + + private void RegisterLibrary(ScriptingEngine engine) + { + // Создаем простой модуль библиотеки + var libraryCode = "Функция Метод() Экспорт\n" + + " Возврат 42;\n" + + "КонецФункции"; + + var compiler = engine.GetCompilerService(); + var source = SourceCodeBuilder.Create() + .FromString(libraryCode) + .WithOwnerPackage(LibraryPackageId) + .Build(); + engine.Initialize(); + + var libraryModule = engine.AttachedScriptsFactory.CompileModuleFromSource( + compiler, + source, + null, + engine.NewProcess()); + + var libraryInstance = engine.CreateUninitializedSDO(libraryModule); + + // Регистрируем библиотеку как глобальное свойство с PackageInfo + var packageInfo = new PackageInfo(LibraryPackageId, LibraryShortName); + engine.Environment.InjectGlobalProperty(libraryInstance, LibraryModuleName, packageInfo); + + // Инициализируем библиотеку + engine.InitializeSDO(libraryInstance, engine.NewProcess()); + } + + /// + /// Мок резолвера зависимостей для поддержки директивы #Использовать + /// + private class TestDependencyResolver : IDependencyResolver + { + public void Initialize(ScriptingEngine engine) + { + // Ничего не делаем + } + + public PackageInfo Resolve(SourceCode module, string libraryName, IBslProcess process) + { + // Возвращаем PackageInfo для нашей тестовой библиотеки + if (libraryName == LibraryShortName) + { + return new PackageInfo(LibraryPackageId, LibraryShortName); + } + + return null; + } + } + } +} + diff --git a/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs b/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs index d5c5e2ec7..f0ef06648 100644 --- a/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs +++ b/src/Tests/OneScript.Core.Tests/ObsoleteMembersTest.cs @@ -20,7 +20,8 @@ This Source Code Form is subject to the terms of the namespace OneScript.Core.Tests { - public class ObsoleteMembersTest + [Collection("SystemLogger")] + public class ObsoleteMembersTest : IDisposable { private readonly List _messages; public ObsoleteMembersTest() @@ -36,6 +37,12 @@ public ObsoleteMembersTest() private ISystemLogWriter LogWriter { get; set; } + public void Dispose() + { + // Очищаем логгер после каждого теста + SystemLogger.Reset(); + } + [Fact] public void TestLoggingOfObsoletePropAccess() { diff --git a/src/Tests/OneScript.Core.Tests/SymbolsRegistrationTests.cs b/src/Tests/OneScript.Core.Tests/SymbolsRegistrationTests.cs index c38cfb734..15e84434c 100644 --- a/src/Tests/OneScript.Core.Tests/SymbolsRegistrationTests.cs +++ b/src/Tests/OneScript.Core.Tests/SymbolsRegistrationTests.cs @@ -5,6 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using OneScript.Values; using ScriptEngine; using ScriptEngine.Hosting; using ScriptEngine.Machine; @@ -21,7 +22,7 @@ public void GlobalProperty_In_Shared_PropertyBag_IsSettable() var env = new RuntimeEnvironment(); var prop = new TestContextClass(); - env.InjectGlobalProperty(null, "TestClass", false); + env.InjectGlobalProperty(BslUndefinedValue.Instance, "TestClass", false); env.SetGlobalProperty("TestClass", prop); var storedProp = env.GetGlobalProperty("TestClass"); diff --git a/src/Tests/OneScript.Dynamic.Tests/CompileHelper.cs b/src/Tests/OneScript.Dynamic.Tests/CompileHelper.cs index 3edd8ebbc..d6affacbe 100644 --- a/src/Tests/OneScript.Dynamic.Tests/CompileHelper.cs +++ b/src/Tests/OneScript.Dynamic.Tests/CompileHelper.cs @@ -97,8 +97,9 @@ public DynamicModule Compile(SymbolTable scopes, IBslProcess process) private class DependencyResolverMock : ICompileTimeDependencyResolver { - public void Resolve(SourceCode module, string libraryName, IBslProcess process) + public PackageInfo Resolve(SourceCode module, string libraryName, IBslProcess process) { + return null; } } } diff --git a/src/Tests/OneScript.Language.Tests/SourceCodeHelper.cs b/src/Tests/OneScript.Language.Tests/SourceCodeHelper.cs index 20ea754a1..36f10b99a 100644 --- a/src/Tests/OneScript.Language.Tests/SourceCodeHelper.cs +++ b/src/Tests/OneScript.Language.Tests/SourceCodeHelper.cs @@ -5,6 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ +using OneScript.Language.Sources; using OneScript.Sources; namespace OneScript.Language.Tests From 30e278b9b5669727ef585d28f5047633426d892a Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 1 Dec 2025 12:29:49 +0300 Subject: [PATCH 181/191] =?UTF-8?q?xmldoc=20=D0=B4=D0=BB=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D1=87=D0=B8=D1=81=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D0=B0=20=D0=BD=D0=B5?= =?UTF-8?q?=D1=8F=D0=B2=D0=BD=D1=8B=D1=85=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ScriptEngine/ExplicitImportsBehavior.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/ScriptEngine/ExplicitImportsBehavior.cs b/src/ScriptEngine/ExplicitImportsBehavior.cs index 12c10fc85..5811a6750 100644 --- a/src/ScriptEngine/ExplicitImportsBehavior.cs +++ b/src/ScriptEngine/ExplicitImportsBehavior.cs @@ -7,11 +7,30 @@ This Source Code Form is subject to the terms of the namespace ScriptEngine { + /// + /// Определяет поведение компилятора при использовании библиотек без явного импорта через директиву #Использовать. + /// public enum ExplicitImportsBehavior { + /// + /// Обращение к символу из внешнего пакета без явного импорта вызывает ошибку компиляции. + /// Enabled, + + /// + /// Обращение к символу из внешнего пакета без явного импорта записывает предупреждение в лог, но компиляция продолжается. + /// Warn, + + /// + /// В режиме разработки (при наличии включенного отладчика) обращение к символу без явного импорта вызывает ошибку компиляции. + /// Без отладчика ошибки не происходит. + /// Development, + + /// + /// Проверка явных импортов отключена. Все библиотеки доступны без использования директивы #Использовать (режим совместимости). + /// Disabled } } \ No newline at end of file From e8f22b826f27d177cdf9210d3e05117fe7943e21 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 1 Dec 2025 12:35:05 +0300 Subject: [PATCH 182/191] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BD=D1=84=D0=B8=D0=B3-=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ScriptEngine.HostedScript/oscript.cfg | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ScriptEngine.HostedScript/oscript.cfg b/src/ScriptEngine.HostedScript/oscript.cfg index b4616b1a9..1ddb2504f 100644 --- a/src/ScriptEngine.HostedScript/oscript.cfg +++ b/src/ScriptEngine.HostedScript/oscript.cfg @@ -3,6 +3,14 @@ # Корневой каталог системных библиотек lib.system = ../lib +# Режим проверки явных импортов библиотек через директиву #Использовать +# Возможные значения: +# on - ошибка компиляции при использовании библиотеки без явного импорта +# off - проверка отключена +# warn - предупреждение в лог при использовании библиотеки без явного импорта, компиляция будет успешной +# dev - ошибка компиляции только при включенном отладчике, иначе аналогично режиму off +#lang.explicitImports=dev + #Дополнительные каталоги поиска библиотек #lib.additional = C:\somedir;C:somedir2; From 376a3f1e387303e981f224a4c583d9b88ea77b1a Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 1 Dec 2025 18:17:10 +0300 Subject: [PATCH 183/191] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D0=BE=D0=B5=20=D0=B2?= =?UTF-8?q?=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/release-notes.md | 42 ++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/install/release-notes.md b/install/release-notes.md index da03c57c8..2c8fc735c 100644 --- a/install/release-notes.md +++ b/install/release-notes.md @@ -1,13 +1,35 @@ -# Новое в версии 2.0.0-rc.8 +# Версия 2.0.0-rc.9 -* Заменена библиотека DotNetZip на форк ProDotNetZip из-за незакрытой уязвимости CVE-2024-48510 -* Существенно ускорена компиляция большого числа модулей. Запуск тяжелых приложений с множеством классов стал намного быстрее. -* Доработан отладчик и сервер отладки, введен новый протокол обмена данными для отказа от BinaryFormatter в рамках перехода на net8 -* Изменен формат конфигурации для включения лога отладки. См. каталог установки расширения и файл `VSCode.DebugAdapter.exe.config` -* Изменен вывод компилятора в случае ошибки. Изменена отметка отметка позиции ошибки в строке. Более точное позиционирование ошибки +## Новые возможности -# Исправление ошибок +- [#1540](https://github.com/EvilBeaver/OneScript/issues/1540) - Добавлено предупреждение о неявных импортах при компиляции для контроля явного объявления зависимостей +- [#1585](https://github.com/EvilBeaver/OneScript/issues/1585) - Добавлен параметр `ИгнорироватьТипДокумента` при чтении XML +- [#1586](https://github.com/EvilBeaver/OneScript/issues/1586) - Добавлена поддержка пропуска пробельных символов после служебных элементов XML +- [#392](https://github.com/EvilBeaver/OneScript/issues/392) - Метод `ЗаписатьТекущий()` для XML теперь корректно копирует декларацию XML и тип документа +- [#1545](https://github.com/EvilBeaver/OneScript/issues/1545) - Разрешено использование комментариев после аннотаций модуля и в строках с директивой `Использовать` +- [#1593](https://github.com/EvilBeaver/OneScript/issues/1593) - Полностью переработан сервер отладки, возможно переподключение к серверу после завершения сессии отладки. +- Улучшена производительность компиляции большого числа модулей -* Разрешены комментарии после аннотаций модуля -* Разрешено использование комментариев в строке с директивой Использовать -* Слово Ждать вне асинхронного метода не должно иметь специального значения +## Исправления ошибок + +- [#1573](https://github.com/EvilBeaver/OneScript/issues/1573) - Исправлена работа метода `НайтиСтроки()` для таблицы значений по индексированной колонке с указанным типом +- [#1582](https://github.com/EvilBeaver/OneScript/issues/1582),[#1577](https://github.com/EvilBeaver/OneScript/issues/1577) - Исправлена сортировка чисел и типов в таблице значений +- [#1556](https://github.com/EvilBeaver/OneScript/issues/1556), [#1611](https://github.com/EvilBeaver/OneScript/issues/1611) - Исправлен учет перехода на летнее время в функции `УниверсальноеВремя()`, добавлена поддержка временных зон восточно-европейского времени +- [#1567](https://github.com/EvilBeaver/OneScript/issues/1567) - Исправлено некорректное отображение параметров метода в отладчике +- [#1552](https://github.com/EvilBeaver/OneScript/issues/1552) - Исправлена обработка слова `Ждать` вне асинхронного метода +- [#1603](https://github.com/EvilBeaver/OneScript/issues/1603) - Исправлена работа функции `СтрЗаменить()` +- [#1602](https://github.com/EvilBeaver/OneScript/issues/1602) - Исправлено преобразование элемента списка значений в строку +- [#1542](https://github.com/EvilBeaver/OneScript/issues/1542) - Улучшено позиционирование ошибок в исходном коде +- ряд других ошибок + +## Устаревание + +- [#1544](https://github.com/EvilBeaver/OneScript/issues/1544) - Английский вариант перечисления `StreamPosition` объявлен устаревшим в пользу `PositionInStream` + +## Технические изменения + +- Выполнен переход на .NET 8. + +## Благодарности + +Большое спасибо @Mr-Rm, @dmpas, @asosnoviy, @nixel2007, @Bayselonarrend за участие в этом релизе! From 0d6efd2bd68b421ffe0a043d00ed09129a8cfa36 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 1 Dec 2025 19:12:16 +0300 Subject: [PATCH 184/191] =?UTF-8?q?=D0=9D=D0=B5=D0=BA=D0=BE=D1=80=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BD=D1=8B=D0=B9=20merge,=20=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BD=D0=B5=D0=BD=D1=83?= =?UTF-8?q?=D0=B6=D0=BD=D1=8B=D0=B9=20=D1=84=D0=B0=D0=B9=D0=BB.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Internal/DelayedConnectionChannel.cs | 85 ------------------- 1 file changed, 85 deletions(-) delete mode 100644 src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs diff --git a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs b/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs deleted file mode 100644 index 8905c594e..000000000 --- a/src/OneScript.DebugServices/Internal/DelayedConnectionChannel.cs +++ /dev/null @@ -1,85 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System; -using System.IO; -using System.Net.Sockets; -using System.Text; -using OneScript.DebugProtocol; -using OneScript.DebugProtocol.Abstractions; -using OneScript.DebugProtocol.TcpServer; - -namespace OneScript.DebugServices.Internal -{ - internal class DelayedConnectionChannel : ICommunicationChannel - { - private TcpListener _listener; - private ICommunicationChannel _connectedChannel; - - // NB! должен быть согласован с перечислением TransportProtocols в адаптере - private const short JSON_FORMAT_MARKER = 2; - // NB! должен быть согласован с файлом ProtocolVersions в адаптере - private const short SUPPORTED_FORMAT_VERSION = 3; - - private bool _reconciled; - - public DelayedConnectionChannel(TcpListener listener) - { - _listener = listener; - } - - public void Dispose() - { - _listener?.Stop(); - _listener = null; - _connectedChannel?.Dispose(); - } - - public void Write(object data) - { - if(_connectedChannel == null) - throw new InvalidOperationException("No client connected"); - - _connectedChannel.Write(data); - } - - public T Read() - { - ReconcileFormat(); - return _connectedChannel.Read(); - } - - public object Read() - { - ReconcileFormat(); - return _connectedChannel.Read(); - } - - private void ReconcileFormat() - { - if (_reconciled) - return; - - _listener.Start(); - var tcpClient = _listener.AcceptTcpClient(); - _listener.Stop(); - _listener = null; - - var tcpStream = tcpClient.GetStream(); - - if (FormatReconcileUtils.CheckReconcileRequest(tcpStream)) - { - // Да, это наш фейковый заголовок - FormatReconcileUtils.WriteReconcileResponse(tcpStream, JSON_FORMAT_MARKER, SUPPORTED_FORMAT_VERSION); - } - _reconciled = true; - _connectedChannel = new JsonDtoChannel(tcpClient); - } - - public bool Connected => _connectedChannel?.Connected ?? false; - } -} \ No newline at end of file From ee2df24f22afdceff20cbd0ac00e08bf409ee92e Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Mon, 1 Dec 2025 23:32:50 +0400 Subject: [PATCH 185/191] =?UTF-8?q?=D0=BA=20PR=20#1584:=20=D1=81=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BA=20=D1=80=D0=B0=D0=B7=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B0=D0=BB=D1=84=D0=B0=D0=B2=D0=B8=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/BslStringValue.cs | 2 +- tests/valuetable.os | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/OneScript.Core/Values/BslStringValue.cs b/src/OneScript.Core/Values/BslStringValue.cs index ab2d11078..fccdec229 100644 --- a/src/OneScript.Core/Values/BslStringValue.cs +++ b/src/OneScript.Core/Values/BslStringValue.cs @@ -53,7 +53,7 @@ public override int CompareTo(BslValue other) return 0; if (other is BslStringValue s) - return String.Compare(_value, s._value, StringComparison.CurrentCulture); + return String.Compare(_value, s._value, StringComparison.InvariantCulture); return base.CompareTo(other); } diff --git a/tests/valuetable.os b/tests/valuetable.os index fed94d134..d02bb4653 100644 --- a/tests/valuetable.os +++ b/tests/valuetable.os @@ -47,6 +47,7 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Булевых"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Дат"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_Строк"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировку_СтрокРазныхАлфавитов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуНеупорядочиваемыхТипов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСортировкуРазныхТипов"); @@ -932,3 +933,21 @@ КонецПроцедуры +Процедура ТестДолжен_ПроверитьСортировку_СтрокРазныхАлфавитов() Экспорт + ТЗ = Новый ТаблицаЗначений(); + ТЗ.Колонки.Добавить("Тест"); + + ТЗ.Добавить().Тест = "Е"; // cyrillic + ТЗ.Добавить().Тест = "E"; // latin + ТЗ.Добавить().Тест = "Ε"; // greek + ТЗ.Добавить().Тест = "∃"; // math + ТЗ.Добавить().Тест = "E"; // full-width + + ТЗ.Сортировать("Тест"); + + юТест.ПроверитьРавенство(КодСимвола(ТЗ[0].Тест,1), 8707, "math"); + юТест.ПроверитьРавенство(КодСимвола(ТЗ[1].Тест,1), 69, "latin"); + юТест.ПроверитьРавенство(КодСимвола(ТЗ[2].Тест,1), 65317, "full-width"); + юТест.ПроверитьРавенство(КодСимвола(ТЗ[3].Тест,1), 917, "greek"); + юТест.ПроверитьРавенство(КодСимвола(ТЗ[4].Тест,1), 1045, "cyrillic"); +КонецПроцедуры From ba907e2b29ebe2e0f35ca23dde3af8f81095ad4f Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 2 Dec 2025 11:16:54 +0300 Subject: [PATCH 186/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BE=20=D0=B4=D0=B2=D0=BE=D0=B9=D0=BD?= =?UTF-8?q?=D0=BE=D0=BC=20dispose=20=D0=BA=D0=B0=D0=BD=D0=B0=D0=BB=D0=B0?= =?UTF-8?q?=20=D1=81=D0=B5=D0=B0=D0=BD=D1=81=D0=B0=20=D0=BE=D1=82=D0=BB?= =?UTF-8?q?=D0=B0=D0=B4=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/DefaultMessageServer.cs | 18 +++++++++++++++++- .../Internal/DebugSession.cs | 8 +++----- .../OneScriptDebuggerClient.cs | 1 - 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs index 7d12405fb..ad86b4636 100644 --- a/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs +++ b/src/OneScript.DebugProtocol/TcpServer/DefaultMessageServer.cs @@ -13,14 +13,16 @@ namespace OneScript.DebugProtocol.TcpServer { /// /// Читает сообщения из канала и вызывает обработчики сообщений. - /// Не управляет жизненным циклом канала и оставляет его доступным при остановке сервера. + /// Управляет жизненным циклом канала и освобождает его ресурсы при завершении работы сервера. /// /// public class DefaultMessageServer : ICommunicationServer { private readonly IMessageChannel _protocolChannel; + private readonly object _disposeLock = new object(); private Thread _messageThread; private volatile bool _serverStopped; + private bool _channelDisposed; public DefaultMessageServer(IMessageChannel protocolChannel) { @@ -113,6 +115,8 @@ private void RunCommandsLoop() OnError?.Invoke(this, eventData); } } + + DisposeChannel(); }); _messageThread.IsBackground = true; @@ -124,6 +128,18 @@ private void RunCommandsLoop() _messageThread.Start(); } + private void DisposeChannel() + { + lock (_disposeLock) + { + if (_channelDisposed) + return; + + _channelDisposed = true; + _protocolChannel.Dispose(); + } + } + public void Stop() { if (_serverStopped) diff --git a/src/OneScript.DebugServices/Internal/DebugSession.cs b/src/OneScript.DebugServices/Internal/DebugSession.cs index f3778b106..53e093397 100644 --- a/src/OneScript.DebugServices/Internal/DebugSession.cs +++ b/src/OneScript.DebugServices/Internal/DebugSession.cs @@ -23,7 +23,6 @@ internal class DebugSession : IDebugSession private readonly DispatchingService _messageServer; private readonly ManualResetEventSlim _startEvent = new ManualResetEventSlim(); - private readonly IMessageChannel _channel; public bool IsActive { get; private set; } @@ -33,8 +32,8 @@ public DebugSession(IDebuggerClient connectedClient, bool attachMode) // т.к. IDE не пришлет команду Execute и мы сразу считаем себя готовой сессией. _isStarted = attachMode; - _channel = new JsonDtoChannel(connectedClient); - var ipcServer = new DefaultMessageServer(_channel) + var channel = new JsonDtoChannel(connectedClient); + var ipcServer = new DefaultMessageServer(channel) { ServerThreadName = "debug-server" }; @@ -43,7 +42,7 @@ public DebugSession(IDebuggerClient connectedClient, bool attachMode) BreakpointManager = new DefaultBreakpointManager(); _threadManager = new ThreadManager(); - _callbackChannel = new TcpEventCallbackChannel(_channel); + _callbackChannel = new TcpEventCallbackChannel(channel); var commandsHandler = new DebuggerServiceImpl(this, new DefaultVariableVisualizer()); @@ -83,7 +82,6 @@ public void Dispose() _threadManager.ThreadStopped -= ThreadManagerOnThreadStopped; _threadManager.Dispose(); _messageServer.Stop(); - _channel.Dispose(); IsActive = false; OnClose?.Invoke(this); diff --git a/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs b/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs index c68343e25..769048d0d 100644 --- a/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs +++ b/src/VSCode.DebugAdapter/OneScriptDebuggerClient.cs @@ -42,7 +42,6 @@ public void Start() public void Stop() { _processor.Stop(); - _commandsChannel.Dispose(); } private void RunEventsListener(IMessageChannel channelToListen) From 0c77bdd198679514044788a2523f9c5274d6dbac Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 2 Dec 2025 11:18:14 +0300 Subject: [PATCH 187/191] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BE=20=D1=85=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BA=D0=B5=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=B2=20=D0=BA=D0=BE=D0=BF=D0=B8=D0=BB=D0=BE=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/copilot-setup-steps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 666f63c5d..a53c8d0ab 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/setup-dotnet@v5 with: - dotnet-version: '6.0.x' + dotnet-version: '8.0.x' - name: Установка OneScript uses: otymko/setup-onescript@v1.5 From 0301fed43c23355177138ca610ff9202d65f3a11 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 2 Dec 2025 11:20:33 +0300 Subject: [PATCH 188/191] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=20?= =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2=D1=88=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20OnAttach=20=D0=B8=20=D0=BC?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D0=BE=D0=B2=D0=BE=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BD=D0=B5=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D0=BC=D1=8B=D0=B5=20?= =?UTF-8?q?using?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Compilation/Binding/SymbolTable.cs | 1 - src/OneScript.Core/Contexts/ContextMethodInfo.cs | 1 - .../Contexts/ContextPropertyInfo.cs | 1 - .../Contexts/IAttachableContext.cs | 5 ----- .../Exceptions/ComparisonException.cs | 1 - src/OneScript.Core/Values/BslObjectValue.cs | 3 --- src/OneScript.Core/Values/EnumerationValue.cs | 1 - .../Internal/BinaryFormatWriter.cs | 1 - .../TcpServer/JsonDtoChannel.cs | 1 - .../TcpServer/JsonDtoConverter.cs | 1 - src/OneScript.DebugServices/DefaultDebugger.cs | 1 - .../LexicalAnalysis/ExpressionBasedLexer.cs | 1 - .../Compiler/ExpressionHelpers.cs | 2 -- .../Compiler/NativeCompilerException.cs | 1 - .../Compiler/NativeRuntimeAnnotationHandler.cs | 4 ---- .../Runtime/DynamicOperations.cs | 1 - .../Binary/BinaryDataContext.cs | 1 - .../Binary/FileBackingStream.cs | 1 - .../Binary/FileStreamContext.cs | 2 -- .../Binary/FileStreamsManager.cs | 1 - .../Collections/Indexes/CollectionIndex.cs | 5 ----- .../Collections/KeyAndValueImpl.cs | 2 -- .../Collections/MapImpl.cs | 2 -- .../Collections/MapWrapper.cs | 1 - .../Collections/ValueTable/CollectionIndexes.cs | 2 -- .../Collections/ValueTable/ValueTableColumn.cs | 2 -- .../Collections/ValueTable/ValueTableRow.cs | 2 -- .../Collections/ValueTree/ValueTreeColumn.cs | 2 -- .../Collections/ValueTree/ValueTreeRow.cs | 2 -- .../DriveInfo/DriveTypeEnum.cs | 1 - src/OneScript.StandardLibrary/FileContext.cs | 1 - src/OneScript.StandardLibrary/GuidWrapper.cs | 1 - .../Http/HttpRequestBodyBinary.cs | 3 --- .../Http/InternetProxyContext.cs | 1 - src/OneScript.StandardLibrary/Json/JSONReader.cs | 1 - .../Json/JSONWriterSettings.cs | 2 -- src/OneScript.StandardLibrary/Net/TCPClient.cs | 1 - .../Processes/ProcessOutputWrapper.cs | 1 - .../StringOperations.cs | 1 - .../Text/ConsoleColorEnum.cs | 1 - .../Text/ConsoleProvider.cs | 2 -- .../Text/TextEncodingEnum.cs | 1 - .../TypeDescriptions/BinaryDataQualifiers.cs | 1 - .../TypeDescriptions/BooleanTypeAdjuster.cs | 1 - .../TypeDescriptions/DateQualifiers.cs | 1 - .../TypeDescriptions/IValueAdjuster.cs | 1 - .../TypeDescriptions/NumberQualifiers.cs | 1 - .../TypeDescriptions/StringQualifiers.cs | 1 - .../TypeDescriptions/TypeDescription.cs | 3 --- .../XMLSchema/Collections/XMLSchemaSet.cs | 1 - .../XMLSchema/Collections/XSComponentList.cs | 1 - .../XMLSchema/Objects/XSMaxInclusiveFacet.cs | 1 - .../Xml/XmlValidationTypeEnum.cs | 2 -- .../Xml/XmlWriterSettingsImpl.cs | 1 - .../EngineBuilderExtensions.cs | 1 - .../FormCollectionWrapper.cs | 1 - .../FormFileCollectionWrapper.cs | 1 - .../HeaderDictionaryWrapper.cs | 2 -- .../IEnumerableExtensions.cs | 4 ---- .../RequestCookieCollectionWrapper.cs | 1 - .../ResponseCookiesWrapper.cs | 1 - .../WebSockets/WebSocketsManagerWrapper.cs | 2 -- src/OneScriptDocumenter/Cli/JsonGenerator.cs | 1 - src/OneScriptDocumenter/Cli/MainIndexWriter.cs | 1 - src/OneScriptDocumenter/Cli/MarkdownWriter.cs | 1 - .../Cli/VitepressSidebarGenerator.cs | 2 -- src/OneScriptDocumenter/Model/MethodModel.cs | 1 - .../Primary/DocumentableLibraryLoadContext.cs | 1 - .../Primary/PrimaryBslDocument.cs | 1 - src/OneScriptDocumenter/Program.cs | 4 ---- .../Secondary/MarkdownReferenceResolver.cs | 4 ---- .../Secondary/MarkupProvider.cs | 1 - .../HostedScriptEngine.cs | 1 - .../SystemGlobalContext.cs | 16 +--------------- .../Hosting/EngineBuilderExtensions.cs | 1 - .../Machine/ComReflectionNameToIdMapper.cs | 2 -- .../Machine/Contexts/AttachedScriptsFactory.cs | 1 - .../Machine/Contexts/EnumerationContext.cs | 2 +- .../Machine/Contexts/ExceptionInfoContext.cs | 2 -- .../Machine/Contexts/GlobalContextBase.cs | 12 ------------ .../Machine/Contexts/ScriptDrivenObject.cs | 11 ----------- .../Contexts/ScriptedEnumeratorWrapper.cs | 1 - src/ScriptEngine/Machine/DefaultTypeManager.cs | 1 - src/ScriptEngine/Machine/EvalExecLocalContext.cs | 7 ------- src/ScriptEngine/Machine/MachineStopReason.cs | 2 -- .../Machine/ParametrizedRuntimeException.cs | 1 - src/ScriptEngine/Machine/PropertyBag.cs | 16 ---------------- .../Machine/StackRuntimeAdoptionExtensions.cs | 2 -- src/ScriptEngine/Machine/StackRuntimeModule.cs | 1 - src/ScriptEngine/Machine/ValueFactory.cs | 1 - src/ScriptEngine/RuntimeEnvironment.cs | 1 - src/ScriptEngine/ScriptingEngine.cs | 2 -- .../OneScript.Core.Tests/ExplicitImportsTest.cs | 4 ---- .../OneScript.Core.Tests/NativeCompilerTest.cs | 2 -- .../OneScript.Core.Tests/ValueReferenceTests.cs | 1 - .../JsonChannelTest.cs | 3 --- .../OneScript.Dynamic.Tests/NativeSdoTests.cs | 2 +- src/VSCode.DebugAdapter/ConsoleProcess.cs | 1 - src/VSCode.DebugAdapter/DebugSession.cs | 1 - src/VSCode.DebugAdapter/Program.cs | 3 --- src/VSCode.DebugAdapter/ServerProcess.cs | 1 - src/oscript/CgiBehavior.cs | 8 -------- src/oscript/DebugBehavior.cs | 1 - src/oscript/ExecuteScriptBehavior.cs | 1 - 104 files changed, 3 insertions(+), 221 deletions(-) diff --git a/src/OneScript.Core/Compilation/Binding/SymbolTable.cs b/src/OneScript.Core/Compilation/Binding/SymbolTable.cs index 1ad7da53e..855879886 100644 --- a/src/OneScript.Core/Compilation/Binding/SymbolTable.cs +++ b/src/OneScript.Core/Compilation/Binding/SymbolTable.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System.Collections; using System.Collections.Generic; -using OneScript.Contexts; namespace OneScript.Compilation.Binding { diff --git a/src/OneScript.Core/Contexts/ContextMethodInfo.cs b/src/OneScript.Core/Contexts/ContextMethodInfo.cs index ced625fa2..c656f2fd0 100644 --- a/src/OneScript.Core/Contexts/ContextMethodInfo.cs +++ b/src/OneScript.Core/Contexts/ContextMethodInfo.cs @@ -9,7 +9,6 @@ This Source Code Form is subject to the terms of the using System.Globalization; using System.Linq; using System.Reflection; -using System.Threading; using OneScript.Commons; using OneScript.Execution; diff --git a/src/OneScript.Core/Contexts/ContextPropertyInfo.cs b/src/OneScript.Core/Contexts/ContextPropertyInfo.cs index 15b6edb9d..72ce6d4d4 100644 --- a/src/OneScript.Core/Contexts/ContextPropertyInfo.cs +++ b/src/OneScript.Core/Contexts/ContextPropertyInfo.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.Globalization; -using System.Linq; using System.Reflection; using OneScript.Commons; diff --git a/src/OneScript.Core/Contexts/IAttachableContext.cs b/src/OneScript.Core/Contexts/IAttachableContext.cs index aab710074..86ce3e70e 100644 --- a/src/OneScript.Core/Contexts/IAttachableContext.cs +++ b/src/OneScript.Core/Contexts/IAttachableContext.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using OneScript.Execution; namespace OneScript.Contexts @@ -16,10 +15,6 @@ namespace OneScript.Contexts /// public interface IAttachableContext : IRuntimeContextInstance { - [Obsolete] - void OnAttach(out IVariable[] variables, - out BslMethodInfo[] methods); - IVariable GetVariable(int index); BslMethodInfo GetMethod(int index); diff --git a/src/OneScript.Core/Exceptions/ComparisonException.cs b/src/OneScript.Core/Exceptions/ComparisonException.cs index 482abfd4c..ad47c325e 100644 --- a/src/OneScript.Core/Exceptions/ComparisonException.cs +++ b/src/OneScript.Core/Exceptions/ComparisonException.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using OneScript.Localization; namespace OneScript.Exceptions diff --git a/src/OneScript.Core/Values/BslObjectValue.cs b/src/OneScript.Core/Values/BslObjectValue.cs index 610b28be8..e94171f09 100644 --- a/src/OneScript.Core/Values/BslObjectValue.cs +++ b/src/OneScript.Core/Values/BslObjectValue.cs @@ -5,9 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using OneScript.Exceptions; -using OneScript.Localization; - namespace OneScript.Values { public abstract class BslObjectValue : BslValue diff --git a/src/OneScript.Core/Values/EnumerationValue.cs b/src/OneScript.Core/Values/EnumerationValue.cs index 36ee872fa..5a3f324e0 100644 --- a/src/OneScript.Core/Values/EnumerationValue.cs +++ b/src/OneScript.Core/Values/EnumerationValue.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using OneScript.Commons; -using OneScript.Exceptions; using OneScript.Localization; using OneScript.Types; using System; diff --git a/src/OneScript.DebugProtocol/Internal/BinaryFormatWriter.cs b/src/OneScript.DebugProtocol/Internal/BinaryFormatWriter.cs index 1539526e4..3159210da 100644 --- a/src/OneScript.DebugProtocol/Internal/BinaryFormatWriter.cs +++ b/src/OneScript.DebugProtocol/Internal/BinaryFormatWriter.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.IO; -using System.Linq; using System.Reflection; using System.Text; diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index 67f6d9692..31c41c92f 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.IO; -using System.Net.Sockets; using System.Text; using Newtonsoft.Json; using OneScript.DebugProtocol.Abstractions; diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs index 91762997c..7a6aa34de 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoConverter.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; -using System.Diagnostics; using System.Runtime.CompilerServices; using Newtonsoft.Json; namespace OneScript.DebugProtocol.TcpServer diff --git a/src/OneScript.DebugServices/DefaultDebugger.cs b/src/OneScript.DebugServices/DefaultDebugger.cs index b01c1c4e6..4a39fc72a 100644 --- a/src/OneScript.DebugServices/DefaultDebugger.cs +++ b/src/OneScript.DebugServices/DefaultDebugger.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System.Diagnostics; using OneScript.DebugProtocol.Abstractions; using OneScript.DebugProtocol.TcpServer; using OneScript.DebugServices.Internal; diff --git a/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs b/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs index 1a904feda..002744b9e 100644 --- a/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs +++ b/src/OneScript.Language/LexicalAnalysis/ExpressionBasedLexer.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using OneScript.Language.SyntaxAnalysis; namespace OneScript.Language.LexicalAnalysis diff --git a/src/OneScript.Native/Compiler/ExpressionHelpers.cs b/src/OneScript.Native/Compiler/ExpressionHelpers.cs index 5e9afcae9..8ed0f479e 100644 --- a/src/OneScript.Native/Compiler/ExpressionHelpers.cs +++ b/src/OneScript.Native/Compiler/ExpressionHelpers.cs @@ -12,10 +12,8 @@ This Source Code Form is subject to the terms of the using System.Linq.Expressions; using System.Reflection; using System.Runtime.CompilerServices; -using System.Runtime.ExceptionServices; using Microsoft.CSharp.RuntimeBinder; using OneScript.Contexts; -using OneScript.Exceptions; using OneScript.Language.LexicalAnalysis; using OneScript.Localization; using OneScript.Native.Runtime; diff --git a/src/OneScript.Native/Compiler/NativeCompilerException.cs b/src/OneScript.Native/Compiler/NativeCompilerException.cs index 534fce904..a5c28e103 100644 --- a/src/OneScript.Native/Compiler/NativeCompilerException.cs +++ b/src/OneScript.Native/Compiler/NativeCompilerException.cs @@ -8,7 +8,6 @@ This Source Code Form is subject to the terms of the using System; using System.Linq.Expressions; using OneScript.Compilation; -using OneScript.Exceptions; using OneScript.Language; using OneScript.Localization; diff --git a/src/OneScript.Native/Compiler/NativeRuntimeAnnotationHandler.cs b/src/OneScript.Native/Compiler/NativeRuntimeAnnotationHandler.cs index 8cdf4ad8c..763c36147 100644 --- a/src/OneScript.Native/Compiler/NativeRuntimeAnnotationHandler.cs +++ b/src/OneScript.Native/Compiler/NativeRuntimeAnnotationHandler.cs @@ -5,13 +5,9 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Collections.Generic; using OneScript.Language; -using OneScript.Language.LexicalAnalysis; using OneScript.Language.SyntaxAnalysis; -using OneScript.Language.SyntaxAnalysis.AstNodes; -using OneScript.Localization; namespace OneScript.Native.Compiler { diff --git a/src/OneScript.Native/Runtime/DynamicOperations.cs b/src/OneScript.Native/Runtime/DynamicOperations.cs index f4b2ca8fb..4cfc523a0 100644 --- a/src/OneScript.Native/Runtime/DynamicOperations.cs +++ b/src/OneScript.Native/Runtime/DynamicOperations.cs @@ -12,7 +12,6 @@ This Source Code Form is subject to the terms of the using OneScript.DependencyInjection; using OneScript.Exceptions; using OneScript.Execution; -using OneScript.Language; using OneScript.Localization; using OneScript.Types; using OneScript.Values; diff --git a/src/OneScript.StandardLibrary/Binary/BinaryDataContext.cs b/src/OneScript.StandardLibrary/Binary/BinaryDataContext.cs index 3b68dcd3d..e56d15ed3 100644 --- a/src/OneScript.StandardLibrary/Binary/BinaryDataContext.cs +++ b/src/OneScript.StandardLibrary/Binary/BinaryDataContext.cs @@ -11,7 +11,6 @@ This Source Code Form is subject to the terms of the using System.Text; using OneScript.Contexts; using OneScript.Exceptions; -using OneScript.Execution; using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; diff --git a/src/OneScript.StandardLibrary/Binary/FileBackingStream.cs b/src/OneScript.StandardLibrary/Binary/FileBackingStream.cs index 87b3718e2..7a0502643 100644 --- a/src/OneScript.StandardLibrary/Binary/FileBackingStream.cs +++ b/src/OneScript.StandardLibrary/Binary/FileBackingStream.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.IO; -using ScriptEngine; namespace OneScript.StandardLibrary.Binary { diff --git a/src/OneScript.StandardLibrary/Binary/FileStreamContext.cs b/src/OneScript.StandardLibrary/Binary/FileStreamContext.cs index 4d5e34713..6386898a6 100644 --- a/src/OneScript.StandardLibrary/Binary/FileStreamContext.cs +++ b/src/OneScript.StandardLibrary/Binary/FileStreamContext.cs @@ -8,9 +8,7 @@ This Source Code Form is subject to the terms of the using System; using System.IO; using OneScript.Contexts; -using OneScript.Exceptions; using OneScript.Types; -using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Binary/FileStreamsManager.cs b/src/OneScript.StandardLibrary/Binary/FileStreamsManager.cs index a474c17b0..ca2729029 100644 --- a/src/OneScript.StandardLibrary/Binary/FileStreamsManager.cs +++ b/src/OneScript.StandardLibrary/Binary/FileStreamsManager.cs @@ -9,7 +9,6 @@ This Source Code Form is subject to the terms of the using System.IO; using OneScript.Contexts; using OneScript.Exceptions; -using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Collections/Indexes/CollectionIndex.cs b/src/OneScript.StandardLibrary/Collections/Indexes/CollectionIndex.cs index 4abd8101e..7e6d7d977 100644 --- a/src/OneScript.StandardLibrary/Collections/Indexes/CollectionIndex.cs +++ b/src/OneScript.StandardLibrary/Collections/Indexes/CollectionIndex.cs @@ -5,18 +5,13 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using OneScript.Commons; using OneScript.Contexts; using OneScript.Exceptions; -using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.Indexes { diff --git a/src/OneScript.StandardLibrary/Collections/KeyAndValueImpl.cs b/src/OneScript.StandardLibrary/Collections/KeyAndValueImpl.cs index 3f9e0a3a7..c3390eaad 100644 --- a/src/OneScript.StandardLibrary/Collections/KeyAndValueImpl.cs +++ b/src/OneScript.StandardLibrary/Collections/KeyAndValueImpl.cs @@ -7,11 +7,9 @@ This Source Code Form is subject to the terms of the using System.Diagnostics; using OneScript.Contexts; -using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections { diff --git a/src/OneScript.StandardLibrary/Collections/MapImpl.cs b/src/OneScript.StandardLibrary/Collections/MapImpl.cs index ea8ef9ada..0166a9f1e 100644 --- a/src/OneScript.StandardLibrary/Collections/MapImpl.cs +++ b/src/OneScript.StandardLibrary/Collections/MapImpl.cs @@ -7,8 +7,6 @@ This Source Code Form is subject to the terms of the using System.Collections.Generic; using OneScript.Contexts; -using OneScript.Exceptions; -using OneScript.Types; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Collections/MapWrapper.cs b/src/OneScript.StandardLibrary/Collections/MapWrapper.cs index 944f091ca..814007714 100644 --- a/src/OneScript.StandardLibrary/Collections/MapWrapper.cs +++ b/src/OneScript.StandardLibrary/Collections/MapWrapper.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Collections.Generic; using System.Linq; using OneScript.Contexts; diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/CollectionIndexes.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/CollectionIndexes.cs index 51913d45b..371126d77 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/CollectionIndexes.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/CollectionIndexes.cs @@ -5,14 +5,12 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Collections.Generic; using System.Linq; using OneScript.Contexts; using OneScript.Exceptions; using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.StandardLibrary.Collections.Indexes; -using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumn.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumn.cs index 516a9e13b..a7b5956aa 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumn.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableColumn.cs @@ -9,9 +9,7 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.StandardLibrary.TypeDescriptions; -using OneScript.Types; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.ValueTable { diff --git a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableRow.cs b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableRow.cs index f12f67a68..fdc10f6ed 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableRow.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTable/ValueTableRow.cs @@ -8,10 +8,8 @@ This Source Code Form is subject to the terms of the using System.Collections.Generic; using OneScript.Contexts; using OneScript.Execution; -using OneScript.Types; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.ValueTable { diff --git a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumn.cs b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumn.cs index 494d423f3..201f5187b 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumn.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeColumn.cs @@ -8,9 +8,7 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.StandardLibrary.Collections.Exceptions; using OneScript.StandardLibrary.TypeDescriptions; -using OneScript.Types; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.ValueTree { diff --git a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRow.cs b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRow.cs index 9963b6e1b..0d8eccd6a 100644 --- a/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRow.cs +++ b/src/OneScript.StandardLibrary/Collections/ValueTree/ValueTreeRow.cs @@ -9,11 +9,9 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; -using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using ScriptEngine.Types; namespace OneScript.StandardLibrary.Collections.ValueTree { diff --git a/src/OneScript.StandardLibrary/DriveInfo/DriveTypeEnum.cs b/src/OneScript.StandardLibrary/DriveInfo/DriveTypeEnum.cs index 44d5a73e3..f8320c1e7 100644 --- a/src/OneScript.StandardLibrary/DriveInfo/DriveTypeEnum.cs +++ b/src/OneScript.StandardLibrary/DriveInfo/DriveTypeEnum.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts.Enums; using OneScript.Types; -using OneScript.Values; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.DriveInfo diff --git a/src/OneScript.StandardLibrary/FileContext.cs b/src/OneScript.StandardLibrary/FileContext.cs index 8c1a435ed..739a5da8a 100644 --- a/src/OneScript.StandardLibrary/FileContext.cs +++ b/src/OneScript.StandardLibrary/FileContext.cs @@ -8,7 +8,6 @@ This Source Code Form is subject to the terms of the using System; using System.IO; using OneScript.Contexts; -using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary diff --git a/src/OneScript.StandardLibrary/GuidWrapper.cs b/src/OneScript.StandardLibrary/GuidWrapper.cs index b892e5021..346e53c0d 100644 --- a/src/OneScript.StandardLibrary/GuidWrapper.cs +++ b/src/OneScript.StandardLibrary/GuidWrapper.cs @@ -12,7 +12,6 @@ This Source Code Form is subject to the terms of the using OneScript.Exceptions; using OneScript.Types; using OneScript.Values; -using ScriptEngine.Machine; using ScriptEngine.Types; namespace OneScript.StandardLibrary diff --git a/src/OneScript.StandardLibrary/Http/HttpRequestBodyBinary.cs b/src/OneScript.StandardLibrary/Http/HttpRequestBodyBinary.cs index 4f0775050..0057e2b79 100644 --- a/src/OneScript.StandardLibrary/Http/HttpRequestBodyBinary.cs +++ b/src/OneScript.StandardLibrary/Http/HttpRequestBodyBinary.cs @@ -5,15 +5,12 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Collections.Generic; using System.IO; -using System.Linq; using System.Text; using OneScript.StandardLibrary.Binary; using OneScript.StandardLibrary.Text; using OneScript.Types; -using OneScript.Values; using ScriptEngine.Machine; namespace OneScript.StandardLibrary.Http diff --git a/src/OneScript.StandardLibrary/Http/InternetProxyContext.cs b/src/OneScript.StandardLibrary/Http/InternetProxyContext.cs index 9eb8532b3..5e3d71207 100644 --- a/src/OneScript.StandardLibrary/Http/InternetProxyContext.cs +++ b/src/OneScript.StandardLibrary/Http/InternetProxyContext.cs @@ -11,7 +11,6 @@ This Source Code Form is subject to the terms of the using System.Net; using OneScript.Contexts; using OneScript.Exceptions; -using OneScript.Execution; using OneScript.StandardLibrary.Collections; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Json/JSONReader.cs b/src/OneScript.StandardLibrary/Json/JSONReader.cs index ceb97f317..444907ee2 100644 --- a/src/OneScript.StandardLibrary/Json/JSONReader.cs +++ b/src/OneScript.StandardLibrary/Json/JSONReader.cs @@ -12,7 +12,6 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.Exceptions; using OneScript.StandardLibrary.Text; -using ScriptEngine; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Json/JSONWriterSettings.cs b/src/OneScript.StandardLibrary/Json/JSONWriterSettings.cs index a517b247d..ba7825f2d 100644 --- a/src/OneScript.StandardLibrary/Json/JSONWriterSettings.cs +++ b/src/OneScript.StandardLibrary/Json/JSONWriterSettings.cs @@ -6,8 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using OneScript.Contexts; -using OneScript.Values; -using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.Json diff --git a/src/OneScript.StandardLibrary/Net/TCPClient.cs b/src/OneScript.StandardLibrary/Net/TCPClient.cs index 772678eb8..c979b64a5 100644 --- a/src/OneScript.StandardLibrary/Net/TCPClient.cs +++ b/src/OneScript.StandardLibrary/Net/TCPClient.cs @@ -11,7 +11,6 @@ This Source Code Form is subject to the terms of the using System.Text; using OneScript.Contexts; using OneScript.StandardLibrary.Binary; -using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.Net diff --git a/src/OneScript.StandardLibrary/Processes/ProcessOutputWrapper.cs b/src/OneScript.StandardLibrary/Processes/ProcessOutputWrapper.cs index db67e18be..afcd9800a 100644 --- a/src/OneScript.StandardLibrary/Processes/ProcessOutputWrapper.cs +++ b/src/OneScript.StandardLibrary/Processes/ProcessOutputWrapper.cs @@ -8,7 +8,6 @@ This Source Code Form is subject to the terms of the using System; using System.IO; using System.Text; -using System.Threading; using sys = System.Diagnostics; namespace OneScript.StandardLibrary.Processes diff --git a/src/OneScript.StandardLibrary/StringOperations.cs b/src/OneScript.StandardLibrary/StringOperations.cs index 60d8329fb..e8ad41f5e 100644 --- a/src/OneScript.StandardLibrary/StringOperations.cs +++ b/src/OneScript.StandardLibrary/StringOperations.cs @@ -13,7 +13,6 @@ This Source Code Form is subject to the terms of the using OneScript.Exceptions; using OneScript.Execution; using OneScript.StandardLibrary.Collections; -using OneScript.Types; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Text/ConsoleColorEnum.cs b/src/OneScript.StandardLibrary/Text/ConsoleColorEnum.cs index dc0cf548d..5a6101f00 100644 --- a/src/OneScript.StandardLibrary/Text/ConsoleColorEnum.cs +++ b/src/OneScript.StandardLibrary/Text/ConsoleColorEnum.cs @@ -8,7 +8,6 @@ This Source Code Form is subject to the terms of the using System; using OneScript.Contexts.Enums; using OneScript.Types; -using OneScript.Values; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.Text diff --git a/src/OneScript.StandardLibrary/Text/ConsoleProvider.cs b/src/OneScript.StandardLibrary/Text/ConsoleProvider.cs index aed3adadf..7dd8ec664 100644 --- a/src/OneScript.StandardLibrary/Text/ConsoleProvider.cs +++ b/src/OneScript.StandardLibrary/Text/ConsoleProvider.cs @@ -7,8 +7,6 @@ This Source Code Form is subject to the terms of the using System; using OneScript.Contexts; -using OneScript.DependencyInjection; -using OneScript.Types; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs b/src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs index f2c2c524b..aa3839130 100644 --- a/src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs +++ b/src/OneScript.StandardLibrary/Text/TextEncodingEnum.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Diagnostics; using System.Text; using OneScript.Contexts.Enums; diff --git a/src/OneScript.StandardLibrary/TypeDescriptions/BinaryDataQualifiers.cs b/src/OneScript.StandardLibrary/TypeDescriptions/BinaryDataQualifiers.cs index 20fee466d..a426972f2 100644 --- a/src/OneScript.StandardLibrary/TypeDescriptions/BinaryDataQualifiers.cs +++ b/src/OneScript.StandardLibrary/TypeDescriptions/BinaryDataQualifiers.cs @@ -8,7 +8,6 @@ This Source Code Form is subject to the terms of the using System; using OneScript.Contexts; using OneScript.Values; -using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.TypeDescriptions diff --git a/src/OneScript.StandardLibrary/TypeDescriptions/BooleanTypeAdjuster.cs b/src/OneScript.StandardLibrary/TypeDescriptions/BooleanTypeAdjuster.cs index b5d11d68f..4ca274a7c 100644 --- a/src/OneScript.StandardLibrary/TypeDescriptions/BooleanTypeAdjuster.cs +++ b/src/OneScript.StandardLibrary/TypeDescriptions/BooleanTypeAdjuster.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using OneScript.Exceptions; -using OneScript.Execution; using OneScript.Types; using ScriptEngine.Machine; diff --git a/src/OneScript.StandardLibrary/TypeDescriptions/DateQualifiers.cs b/src/OneScript.StandardLibrary/TypeDescriptions/DateQualifiers.cs index 83f3a68df..822915034 100644 --- a/src/OneScript.StandardLibrary/TypeDescriptions/DateQualifiers.cs +++ b/src/OneScript.StandardLibrary/TypeDescriptions/DateQualifiers.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using OneScript.Contexts; -using OneScript.Execution; using OneScript.Types; using OneScript.Values; using ScriptEngine.Machine; diff --git a/src/OneScript.StandardLibrary/TypeDescriptions/IValueAdjuster.cs b/src/OneScript.StandardLibrary/TypeDescriptions/IValueAdjuster.cs index a9dc1866e..488eb69df 100644 --- a/src/OneScript.StandardLibrary/TypeDescriptions/IValueAdjuster.cs +++ b/src/OneScript.StandardLibrary/TypeDescriptions/IValueAdjuster.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using OneScript.Execution; using ScriptEngine.Machine; namespace OneScript.StandardLibrary.TypeDescriptions diff --git a/src/OneScript.StandardLibrary/TypeDescriptions/NumberQualifiers.cs b/src/OneScript.StandardLibrary/TypeDescriptions/NumberQualifiers.cs index 10f457b43..1d0dacaa1 100644 --- a/src/OneScript.StandardLibrary/TypeDescriptions/NumberQualifiers.cs +++ b/src/OneScript.StandardLibrary/TypeDescriptions/NumberQualifiers.cs @@ -9,7 +9,6 @@ This Source Code Form is subject to the terms of the using OneScript.Commons; using OneScript.Contexts; using OneScript.Exceptions; -using OneScript.Execution; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/TypeDescriptions/StringQualifiers.cs b/src/OneScript.StandardLibrary/TypeDescriptions/StringQualifiers.cs index 32fa4ccde..d7775172a 100644 --- a/src/OneScript.StandardLibrary/TypeDescriptions/StringQualifiers.cs +++ b/src/OneScript.StandardLibrary/TypeDescriptions/StringQualifiers.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using OneScript.Contexts; -using OneScript.Execution; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/TypeDescriptions/TypeDescription.cs b/src/OneScript.StandardLibrary/TypeDescriptions/TypeDescription.cs index 172cac221..154e5ee34 100644 --- a/src/OneScript.StandardLibrary/TypeDescriptions/TypeDescription.cs +++ b/src/OneScript.StandardLibrary/TypeDescriptions/TypeDescription.cs @@ -5,12 +5,9 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Collections.Generic; -using System.Linq; using OneScript.Contexts; using OneScript.Exceptions; -using OneScript.Execution; using OneScript.StandardLibrary.Collections; using OneScript.Types; using OneScript.Values; diff --git a/src/OneScript.StandardLibrary/XMLSchema/Collections/XMLSchemaSet.cs b/src/OneScript.StandardLibrary/XMLSchema/Collections/XMLSchemaSet.cs index f458c8347..6849d999f 100644 --- a/src/OneScript.StandardLibrary/XMLSchema/Collections/XMLSchemaSet.cs +++ b/src/OneScript.StandardLibrary/XMLSchema/Collections/XMLSchemaSet.cs @@ -12,7 +12,6 @@ This Source Code Form is subject to the terms of the using OneScript.Exceptions; using OneScript.Values; using ScriptEngine; -using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.XMLSchema.Collections diff --git a/src/OneScript.StandardLibrary/XMLSchema/Collections/XSComponentList.cs b/src/OneScript.StandardLibrary/XMLSchema/Collections/XSComponentList.cs index 0bdf447f4..7ea606648 100644 --- a/src/OneScript.StandardLibrary/XMLSchema/Collections/XSComponentList.cs +++ b/src/OneScript.StandardLibrary/XMLSchema/Collections/XSComponentList.cs @@ -11,7 +11,6 @@ This Source Code Form is subject to the terms of the using OneScript.Exceptions; using OneScript.StandardLibrary.XMLSchema.Interfaces; using OneScript.Values; -using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.XMLSchema.Collections diff --git a/src/OneScript.StandardLibrary/XMLSchema/Objects/XSMaxInclusiveFacet.cs b/src/OneScript.StandardLibrary/XMLSchema/Objects/XSMaxInclusiveFacet.cs index a20c209c0..7cc1324af 100644 --- a/src/OneScript.StandardLibrary/XMLSchema/Objects/XSMaxInclusiveFacet.cs +++ b/src/OneScript.StandardLibrary/XMLSchema/Objects/XSMaxInclusiveFacet.cs @@ -9,7 +9,6 @@ This Source Code Form is subject to the terms of the using System.Diagnostics.Contracts; using System.Xml.Schema; using OneScript.Contexts; -using OneScript.Exceptions; using OneScript.StandardLibrary.XMLSchema.Collections; using OneScript.StandardLibrary.XMLSchema.Enumerations; using OneScript.StandardLibrary.XMLSchema.Interfaces; diff --git a/src/OneScript.StandardLibrary/Xml/XmlValidationTypeEnum.cs b/src/OneScript.StandardLibrary/Xml/XmlValidationTypeEnum.cs index bbe072343..9ddb0fbb9 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlValidationTypeEnum.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlValidationTypeEnum.cs @@ -5,10 +5,8 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System.Collections.Generic; using System.Xml; using OneScript.Contexts.Enums; -using OneScript.StandardLibrary.XMLSchema.Enumerations; using OneScript.Types; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.StandardLibrary/Xml/XmlWriterSettingsImpl.cs b/src/OneScript.StandardLibrary/Xml/XmlWriterSettingsImpl.cs index d9ee16243..d03a76627 100644 --- a/src/OneScript.StandardLibrary/Xml/XmlWriterSettingsImpl.cs +++ b/src/OneScript.StandardLibrary/Xml/XmlWriterSettingsImpl.cs @@ -8,7 +8,6 @@ This Source Code Form is subject to the terms of the using System.Xml; using OneScript.Contexts; using OneScript.StandardLibrary.Text; -using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.Xml diff --git a/src/OneScript.Web.Server/EngineBuilderExtensions.cs b/src/OneScript.Web.Server/EngineBuilderExtensions.cs index adcec2c77..7c9515bb1 100644 --- a/src/OneScript.Web.Server/EngineBuilderExtensions.cs +++ b/src/OneScript.Web.Server/EngineBuilderExtensions.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using OneScript.StandardLibrary.Collections; using ScriptEngine.Hosting; using ScriptEngine.Machine; diff --git a/src/OneScript.Web.Server/FormCollectionWrapper.cs b/src/OneScript.Web.Server/FormCollectionWrapper.cs index 36535b4e5..f33515468 100644 --- a/src/OneScript.Web.Server/FormCollectionWrapper.cs +++ b/src/OneScript.Web.Server/FormCollectionWrapper.cs @@ -10,7 +10,6 @@ This Source Code Form is subject to the terms of the using ScriptEngine.Machine.Contexts; using OneScript.StandardLibrary.Collections; using System.Collections.Generic; -using OneScript.StandardLibrary.Binary; using Microsoft.Extensions.Primitives; using OneScript.Exceptions; using OneScript.Types; diff --git a/src/OneScript.Web.Server/FormFileCollectionWrapper.cs b/src/OneScript.Web.Server/FormFileCollectionWrapper.cs index 9be6411e7..160d23240 100644 --- a/src/OneScript.Web.Server/FormFileCollectionWrapper.cs +++ b/src/OneScript.Web.Server/FormFileCollectionWrapper.cs @@ -11,7 +11,6 @@ This Source Code Form is subject to the terms of the using System.Collections.Generic; using OneScript.Exceptions; using OneScript.Values; -using OneScript.StandardLibrary.Collections; using OneScript.Types; namespace OneScript.Web.Server diff --git a/src/OneScript.Web.Server/HeaderDictionaryWrapper.cs b/src/OneScript.Web.Server/HeaderDictionaryWrapper.cs index 566ad5d1c..95599f31a 100644 --- a/src/OneScript.Web.Server/HeaderDictionaryWrapper.cs +++ b/src/OneScript.Web.Server/HeaderDictionaryWrapper.cs @@ -6,8 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using Microsoft.AspNetCore.Http; using OneScript.Contexts; -using OneScript.Web.Server; -using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; using System.Collections.Generic; diff --git a/src/OneScript.Web.Server/IEnumerableExtensions.cs b/src/OneScript.Web.Server/IEnumerableExtensions.cs index 3b2cdd3fa..88c689ae6 100644 --- a/src/OneScript.Web.Server/IEnumerableExtensions.cs +++ b/src/OneScript.Web.Server/IEnumerableExtensions.cs @@ -7,11 +7,7 @@ This Source Code Form is subject to the terms of the using Microsoft.Extensions.Primitives; using OneScript.StandardLibrary.Collections; using OneScript.Values; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace OneScript.Web.Server { diff --git a/src/OneScript.Web.Server/RequestCookieCollectionWrapper.cs b/src/OneScript.Web.Server/RequestCookieCollectionWrapper.cs index 425102f7d..36fa6e86f 100644 --- a/src/OneScript.Web.Server/RequestCookieCollectionWrapper.cs +++ b/src/OneScript.Web.Server/RequestCookieCollectionWrapper.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using Microsoft.AspNetCore.Http; using OneScript.Contexts; -using OneScript.Web.Server; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; diff --git a/src/OneScript.Web.Server/ResponseCookiesWrapper.cs b/src/OneScript.Web.Server/ResponseCookiesWrapper.cs index 3233c46fa..dc5d661e7 100644 --- a/src/OneScript.Web.Server/ResponseCookiesWrapper.cs +++ b/src/OneScript.Web.Server/ResponseCookiesWrapper.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using Microsoft.AspNetCore.Http; using OneScript.Contexts; -using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.Web.Server diff --git a/src/OneScript.Web.Server/WebSockets/WebSocketsManagerWrapper.cs b/src/OneScript.Web.Server/WebSockets/WebSocketsManagerWrapper.cs index fc2e1cad0..674c30d18 100644 --- a/src/OneScript.Web.Server/WebSockets/WebSocketsManagerWrapper.cs +++ b/src/OneScript.Web.Server/WebSockets/WebSocketsManagerWrapper.cs @@ -5,13 +5,11 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; using OneScript.Contexts; using OneScript.StandardLibrary.Collections; using OneScript.Values; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; -using System; using System.Linq; using System.Net.WebSockets; diff --git a/src/OneScriptDocumenter/Cli/JsonGenerator.cs b/src/OneScriptDocumenter/Cli/JsonGenerator.cs index 53b6cd829..c5e3e6fee 100644 --- a/src/OneScriptDocumenter/Cli/JsonGenerator.cs +++ b/src/OneScriptDocumenter/Cli/JsonGenerator.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System.Collections.Generic; using System.IO; using System.Text.Encodings.Web; using System.Text.Json; diff --git a/src/OneScriptDocumenter/Cli/MainIndexWriter.cs b/src/OneScriptDocumenter/Cli/MainIndexWriter.cs index dad1450a9..4f6eb8d29 100644 --- a/src/OneScriptDocumenter/Cli/MainIndexWriter.cs +++ b/src/OneScriptDocumenter/Cli/MainIndexWriter.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.IO; using OneScriptDocumenter.Model; using OneScriptDocumenter.Secondary; diff --git a/src/OneScriptDocumenter/Cli/MarkdownWriter.cs b/src/OneScriptDocumenter/Cli/MarkdownWriter.cs index 036ec349d..a0b6f4d7b 100644 --- a/src/OneScriptDocumenter/Cli/MarkdownWriter.cs +++ b/src/OneScriptDocumenter/Cli/MarkdownWriter.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.IO; -using System.Threading.Tasks; namespace OneScriptDocumenter.Cli { diff --git a/src/OneScriptDocumenter/Cli/VitepressSidebarGenerator.cs b/src/OneScriptDocumenter/Cli/VitepressSidebarGenerator.cs index 214f7a1f8..01e6d2919 100644 --- a/src/OneScriptDocumenter/Cli/VitepressSidebarGenerator.cs +++ b/src/OneScriptDocumenter/Cli/VitepressSidebarGenerator.cs @@ -5,11 +5,9 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System.Collections.Generic; using System.IO; using System.Text.Encodings.Web; using System.Text.Json; -using System.Text.Json.Serialization; using System.Text.Unicode; using OneScriptDocumenter.Model; using OneScriptDocumenter.Secondary; diff --git a/src/OneScriptDocumenter/Model/MethodModel.cs b/src/OneScriptDocumenter/Model/MethodModel.cs index c28d29aab..6a8f93587 100644 --- a/src/OneScriptDocumenter/Model/MethodModel.cs +++ b/src/OneScriptDocumenter/Model/MethodModel.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; using System.Collections.Generic; using System.Text.Json.Serialization; using OneScript.Localization; diff --git a/src/OneScriptDocumenter/Primary/DocumentableLibraryLoadContext.cs b/src/OneScriptDocumenter/Primary/DocumentableLibraryLoadContext.cs index d18bfaef2..2b758c722 100644 --- a/src/OneScriptDocumenter/Primary/DocumentableLibraryLoadContext.cs +++ b/src/OneScriptDocumenter/Primary/DocumentableLibraryLoadContext.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; -using System.IO; using System.Linq; using System.Reflection; using System.Runtime.Loader; diff --git a/src/OneScriptDocumenter/Primary/PrimaryBslDocument.cs b/src/OneScriptDocumenter/Primary/PrimaryBslDocument.cs index 58d822291..5835b6e86 100644 --- a/src/OneScriptDocumenter/Primary/PrimaryBslDocument.cs +++ b/src/OneScriptDocumenter/Primary/PrimaryBslDocument.cs @@ -10,7 +10,6 @@ This Source Code Form is subject to the terms of the using System.Collections.Generic; using System.Reflection; using System.Xml.Linq; -using OneScript.Localization; namespace OneScriptDocumenter.Primary { diff --git a/src/OneScriptDocumenter/Program.cs b/src/OneScriptDocumenter/Program.cs index 661f2f7f2..794ba4e41 100644 --- a/src/OneScriptDocumenter/Program.cs +++ b/src/OneScriptDocumenter/Program.cs @@ -6,11 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; -using System.IO; using System.Linq; -using System.Text.Encodings.Web; -using System.Text.Json; -using System.Text.Unicode; using CommandLine; using OneScriptDocumenter.Cli; using OneScriptDocumenter.Model; diff --git a/src/OneScriptDocumenter/Secondary/MarkdownReferenceResolver.cs b/src/OneScriptDocumenter/Secondary/MarkdownReferenceResolver.cs index 18a34b648..5caf18513 100644 --- a/src/OneScriptDocumenter/Secondary/MarkdownReferenceResolver.cs +++ b/src/OneScriptDocumenter/Secondary/MarkdownReferenceResolver.cs @@ -5,10 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; -using System.Linq; -using System.Reflection; -using OneScript.Contexts; using OneScriptDocumenter.Primary; namespace OneScriptDocumenter.Secondary diff --git a/src/OneScriptDocumenter/Secondary/MarkupProvider.cs b/src/OneScriptDocumenter/Secondary/MarkupProvider.cs index ec4a1f790..2f4f255a6 100644 --- a/src/OneScriptDocumenter/Secondary/MarkupProvider.cs +++ b/src/OneScriptDocumenter/Secondary/MarkupProvider.cs @@ -10,7 +10,6 @@ This Source Code Form is subject to the terms of the using System.Reflection; using OneScript.Contexts; using OneScript.Contexts.Enums; -using OneScript.Localization; namespace OneScriptDocumenter.Secondary { diff --git a/src/ScriptEngine.HostedScript/HostedScriptEngine.cs b/src/ScriptEngine.HostedScript/HostedScriptEngine.cs index 6a26da3d6..6ed02ed64 100644 --- a/src/ScriptEngine.HostedScript/HostedScriptEngine.cs +++ b/src/ScriptEngine.HostedScript/HostedScriptEngine.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using OneScript.Sources; -using ScriptEngine.HostedScript.Library; using ScriptEngine.Machine; using OneScript.Commons; using OneScript.Compilation; diff --git a/src/ScriptEngine.HostedScript/SystemGlobalContext.cs b/src/ScriptEngine.HostedScript/SystemGlobalContext.cs index 59f776f88..192c53cf5 100644 --- a/src/ScriptEngine.HostedScript/SystemGlobalContext.cs +++ b/src/ScriptEngine.HostedScript/SystemGlobalContext.cs @@ -176,21 +176,7 @@ public string ProgramDirectory() #region IAttachableContext Members - void IAttachableContext.OnAttach(out IVariable[] variables, - out BslMethodInfo[] methods) - { - if (_state == null) - InitContextVariables(); - - variables = _state; - methods = new BslMethodInfo[_methods.Count]; - for (int i = 0; i < _methods.Count; i++) - { - methods[i] = _methods.GetRuntimeMethod(i); - } - } - - int IAttachableContext.VariablesCount => _properties.Count; +int IAttachableContext.VariablesCount => _properties.Count; int IAttachableContext.MethodsCount => _methods.Count; diff --git a/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs b/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs index 4f1b9a74d..47a03759d 100644 --- a/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs +++ b/src/ScriptEngine/Hosting/EngineBuilderExtensions.cs @@ -16,7 +16,6 @@ This Source Code Form is subject to the terms of the using OneScript.Language.SyntaxAnalysis; using OneScript.Types; using ScriptEngine.Machine; -using ScriptEngine.Machine.Contexts; using ScriptEngine.Machine.Debugger; using ScriptEngine.Machine.Interfaces; diff --git a/src/ScriptEngine/Machine/ComReflectionNameToIdMapper.cs b/src/ScriptEngine/Machine/ComReflectionNameToIdMapper.cs index 8db869186..b7865000f 100644 --- a/src/ScriptEngine/Machine/ComReflectionNameToIdMapper.cs +++ b/src/ScriptEngine/Machine/ComReflectionNameToIdMapper.cs @@ -9,9 +9,7 @@ This Source Code Form is subject to the terms of the using System.Linq; using System.Reflection; using OneScript.Commons; -using OneScript.Contexts; using OneScript.Exceptions; -using ScriptEngine.Machine.Contexts; namespace ScriptEngine.Machine { diff --git a/src/ScriptEngine/Machine/Contexts/AttachedScriptsFactory.cs b/src/ScriptEngine/Machine/Contexts/AttachedScriptsFactory.cs index 225f4212a..82f7db917 100755 --- a/src/ScriptEngine/Machine/Contexts/AttachedScriptsFactory.cs +++ b/src/ScriptEngine/Machine/Contexts/AttachedScriptsFactory.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; using System.Collections.Generic; -using System.Linq; using System.Text; using OneScript.Sources; using System.Security.Cryptography; diff --git a/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs b/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs index b49405765..b5708f5b8 100644 --- a/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs +++ b/src/ScriptEngine/Machine/Contexts/EnumerationContext.cs @@ -4,7 +4,7 @@ This Source Code Form is subject to the terms of the was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; + using System.Collections; using System.Collections.Generic; using OneScript.Commons; diff --git a/src/ScriptEngine/Machine/Contexts/ExceptionInfoContext.cs b/src/ScriptEngine/Machine/Contexts/ExceptionInfoContext.cs index 565c6568d..5dbc8c407 100644 --- a/src/ScriptEngine/Machine/Contexts/ExceptionInfoContext.cs +++ b/src/ScriptEngine/Machine/Contexts/ExceptionInfoContext.cs @@ -12,8 +12,6 @@ This Source Code Form is subject to the terms of the using OneScript.Exceptions; using OneScript.Language; using OneScript.Localization; -using OneScript.Types; -using ScriptEngine.Types; namespace ScriptEngine.Machine.Contexts { diff --git a/src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs b/src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs index 9ba09651d..06ae83579 100644 --- a/src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs +++ b/src/ScriptEngine/Machine/Contexts/GlobalContextBase.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; -using System.Linq; using OneScript.Contexts; using OneScript.Execution; using OneScript.Values; @@ -126,17 +125,6 @@ public void CallAsFunction(int methodNumber, IValue[] arguments, out IValue retV #region IAttachableContext members - void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) - { - variables = new IVariable[GetPropCount()]; - for (int i = 0; i < variables.Length; i++) - { - variables[i] = Variable.CreateContextPropertyReference(this, i, GetPropName(i)); - } - - methods = this.GetMethods().ToArray(); - } - IVariable IAttachableContext.GetVariable(int index) { return Variable.CreateContextPropertyReference(this, index, GetPropName(index)); diff --git a/src/ScriptEngine/Machine/Contexts/ScriptDrivenObject.cs b/src/ScriptEngine/Machine/Contexts/ScriptDrivenObject.cs index c08fb15b0..49d473c3a 100644 --- a/src/ScriptEngine/Machine/Contexts/ScriptDrivenObject.cs +++ b/src/ScriptEngine/Machine/Contexts/ScriptDrivenObject.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; @@ -222,16 +221,6 @@ protected virtual IValue CallOwnFunction(int index, IValue[] arguments, IBslProc #region IAttachableContext Members - void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) - { - variables = _state; - methods = new BslMethodInfo[GetMethodsCount()]; - for (int i = 0; i < methods.Length; i++) - { - methods[i] = GetMethodInfo(i); - } - } - IVariable IAttachableContext.GetVariable(int index) { return _state[index]; diff --git a/src/ScriptEngine/Machine/Contexts/ScriptedEnumeratorWrapper.cs b/src/ScriptEngine/Machine/Contexts/ScriptedEnumeratorWrapper.cs index 31bb276e2..4589b532f 100644 --- a/src/ScriptEngine/Machine/Contexts/ScriptedEnumeratorWrapper.cs +++ b/src/ScriptEngine/Machine/Contexts/ScriptedEnumeratorWrapper.cs @@ -8,7 +8,6 @@ This Source Code Form is subject to the terms of the using System; using System.Collections; using System.Collections.Generic; -using System.Linq; using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; diff --git a/src/ScriptEngine/Machine/DefaultTypeManager.cs b/src/ScriptEngine/Machine/DefaultTypeManager.cs index 0f4c9892e..db89f2ba5 100644 --- a/src/ScriptEngine/Machine/DefaultTypeManager.cs +++ b/src/ScriptEngine/Machine/DefaultTypeManager.cs @@ -9,7 +9,6 @@ This Source Code Form is subject to the terms of the using System.Collections.Generic; using System.Linq; using System.Reflection; -using OneScript.Commons; using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Types; diff --git a/src/ScriptEngine/Machine/EvalExecLocalContext.cs b/src/ScriptEngine/Machine/EvalExecLocalContext.cs index ff7a1fbc6..68a35ee7f 100644 --- a/src/ScriptEngine/Machine/EvalExecLocalContext.cs +++ b/src/ScriptEngine/Machine/EvalExecLocalContext.cs @@ -6,9 +6,7 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using System; -using OneScript.Compilation.Binding; using OneScript.Contexts; -using OneScript.Execution; using ScriptEngine.Machine.Contexts; namespace ScriptEngine.Machine @@ -22,11 +20,6 @@ public EvalExecLocalContext(IVariable[] locals) _locals = locals; } - public void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) - { - throw new NotImplementedException(); - } - public IVariable GetVariable(int index) => _locals[index]; public BslMethodInfo GetMethod(int index) diff --git a/src/ScriptEngine/Machine/MachineStopReason.cs b/src/ScriptEngine/Machine/MachineStopReason.cs index 69adc712f..99284dbef 100644 --- a/src/ScriptEngine/Machine/MachineStopReason.cs +++ b/src/ScriptEngine/Machine/MachineStopReason.cs @@ -5,8 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System.Threading; - namespace ScriptEngine.Machine { public enum MachineStopReason diff --git a/src/ScriptEngine/Machine/ParametrizedRuntimeException.cs b/src/ScriptEngine/Machine/ParametrizedRuntimeException.cs index 097681de6..df038d0fb 100644 --- a/src/ScriptEngine/Machine/ParametrizedRuntimeException.cs +++ b/src/ScriptEngine/Machine/ParametrizedRuntimeException.cs @@ -6,7 +6,6 @@ This Source Code Form is subject to the terms of the ----------------------------------------------------------*/ using OneScript.Exceptions; -using ScriptEngine.Machine.Contexts; namespace ScriptEngine.Machine { diff --git a/src/ScriptEngine/Machine/PropertyBag.cs b/src/ScriptEngine/Machine/PropertyBag.cs index f1b0f7793..0cf2bbb4f 100644 --- a/src/ScriptEngine/Machine/PropertyBag.cs +++ b/src/ScriptEngine/Machine/PropertyBag.cs @@ -7,8 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; using OneScript.Contexts; using ScriptEngine.Machine.Contexts; @@ -83,20 +81,6 @@ public override int GetMethodsCount() #region IAttachableContext Members - void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) - { - variables = new IVariable[this.Count]; - var props = GetDynamicProperties().OrderBy(x => x.Value).Select(x=>x.Key).ToArray(); - Debug.Assert(props.Length == variables.Length); - - for (var i = 0; i < variables.Length; i++) - { - variables[i] = Variable.CreateContextPropertyReference(this, i, props[i]); - } - - methods = Array.Empty(); - } - IVariable IAttachableContext.GetVariable(int index) => Variable.CreateContextPropertyReference(this, index, GetPropertyName(index)); diff --git a/src/ScriptEngine/Machine/StackRuntimeAdoptionExtensions.cs b/src/ScriptEngine/Machine/StackRuntimeAdoptionExtensions.cs index 3afa430e7..d061c75e0 100644 --- a/src/ScriptEngine/Machine/StackRuntimeAdoptionExtensions.cs +++ b/src/ScriptEngine/Machine/StackRuntimeAdoptionExtensions.cs @@ -5,12 +5,10 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System.Collections.Generic; using System.Linq; using System.Reflection; using OneScript.Contexts; using OneScript.Values; -using ScriptEngine.Machine.Contexts; namespace ScriptEngine.Machine { diff --git a/src/ScriptEngine/Machine/StackRuntimeModule.cs b/src/ScriptEngine/Machine/StackRuntimeModule.cs index 138184248..6f570b49d 100644 --- a/src/ScriptEngine/Machine/StackRuntimeModule.cs +++ b/src/ScriptEngine/Machine/StackRuntimeModule.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; -using OneScript.Compilation.Binding; using OneScript.Contexts; using OneScript.Execution; using OneScript.Sources; diff --git a/src/ScriptEngine/Machine/ValueFactory.cs b/src/ScriptEngine/Machine/ValueFactory.cs index 8ae0eb0f0..52101d3ec 100644 --- a/src/ScriptEngine/Machine/ValueFactory.cs +++ b/src/ScriptEngine/Machine/ValueFactory.cs @@ -9,7 +9,6 @@ This Source Code Form is subject to the terms of the using OneScript.Contexts; using OneScript.Exceptions; using OneScript.Execution; -using OneScript.Types; using OneScript.Values; namespace ScriptEngine.Machine diff --git a/src/ScriptEngine/RuntimeEnvironment.cs b/src/ScriptEngine/RuntimeEnvironment.cs index 3cf537f08..bb450db38 100644 --- a/src/ScriptEngine/RuntimeEnvironment.cs +++ b/src/ScriptEngine/RuntimeEnvironment.cs @@ -11,7 +11,6 @@ This Source Code Form is subject to the terms of the using OneScript.Compilation.Binding; using OneScript.Contexts; using OneScript.Execution; -using OneScript.Values; using ScriptEngine.Libraries; using ScriptEngine.Machine; using SymbolScope = OneScript.Compilation.Binding.SymbolScope; diff --git a/src/ScriptEngine/ScriptingEngine.cs b/src/ScriptEngine/ScriptingEngine.cs index 30c9c153f..5b8340900 100644 --- a/src/ScriptEngine/ScriptingEngine.cs +++ b/src/ScriptEngine/ScriptingEngine.cs @@ -5,8 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; -using System.Linq; -using System.Threading.Tasks; using OneScript.Compilation; using OneScript.Contexts; using OneScript.DependencyInjection; diff --git a/src/Tests/OneScript.Core.Tests/ExplicitImportsTest.cs b/src/Tests/OneScript.Core.Tests/ExplicitImportsTest.cs index 3e1dab359..040ff768f 100644 --- a/src/Tests/OneScript.Core.Tests/ExplicitImportsTest.cs +++ b/src/Tests/OneScript.Core.Tests/ExplicitImportsTest.cs @@ -11,14 +11,10 @@ This Source Code Form is subject to the terms of the using Moq; using OneScript.Compilation; using OneScript.Contexts; -using OneScript.Exceptions; using OneScript.Execution; -using OneScript.Language.Sources; using OneScript.Sources; -using OneScript.Values; using ScriptEngine; using ScriptEngine.Hosting; -using ScriptEngine.Machine; using ScriptEngine.Machine.Debugger; using Xunit; diff --git a/src/Tests/OneScript.Core.Tests/NativeCompilerTest.cs b/src/Tests/OneScript.Core.Tests/NativeCompilerTest.cs index e880c7c1d..11ade2183 100644 --- a/src/Tests/OneScript.Core.Tests/NativeCompilerTest.cs +++ b/src/Tests/OneScript.Core.Tests/NativeCompilerTest.cs @@ -15,7 +15,6 @@ This Source Code Form is subject to the terms of the using OneScript.DependencyInjection; using OneScript.Exceptions; using OneScript.Execution; -using OneScript.Native.Runtime; using OneScript.StandardLibrary; using OneScript.StandardLibrary.Collections; using OneScript.StandardLibrary.Collections.ValueList; @@ -27,7 +26,6 @@ This Source Code Form is subject to the terms of the using OneScript.Values; using ScriptEngine.Hosting; using ScriptEngine.Machine; -using ScriptEngine.Machine.Contexts; using ScriptEngine.Types; using Xunit; diff --git a/src/Tests/OneScript.Core.Tests/ValueReferenceTests.cs b/src/Tests/OneScript.Core.Tests/ValueReferenceTests.cs index 56cbfe894..3ab118dc0 100644 --- a/src/Tests/OneScript.Core.Tests/ValueReferenceTests.cs +++ b/src/Tests/OneScript.Core.Tests/ValueReferenceTests.cs @@ -7,7 +7,6 @@ This Source Code Form is subject to the terms of the using OneScript.Values; using Xunit; using FluentAssertions; -using ScriptEngine.Machine; namespace OneScript.Core.Tests { diff --git a/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs b/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs index 709c1d744..e68fa074e 100644 --- a/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs +++ b/src/Tests/OneScript.DebugProtocol.Test/JsonChannelTest.cs @@ -5,10 +5,7 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System.IO; -using System.Net.Sockets; -using System.Text; using FluentAssertions; -using Newtonsoft.Json; using OneScript.DebugProtocol.TcpServer; using OneScript.Exceptions; using Xunit; diff --git a/src/Tests/OneScript.Dynamic.Tests/NativeSdoTests.cs b/src/Tests/OneScript.Dynamic.Tests/NativeSdoTests.cs index 78e2b5565..531d7fd3b 100644 --- a/src/Tests/OneScript.Dynamic.Tests/NativeSdoTests.cs +++ b/src/Tests/OneScript.Dynamic.Tests/NativeSdoTests.cs @@ -4,7 +4,7 @@ This Source Code Form is subject to the terms of the was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ -using System; + using FluentAssertions; using Moq; using OneScript.Compilation; diff --git a/src/VSCode.DebugAdapter/ConsoleProcess.cs b/src/VSCode.DebugAdapter/ConsoleProcess.cs index b2690ad6f..a1a740278 100644 --- a/src/VSCode.DebugAdapter/ConsoleProcess.cs +++ b/src/VSCode.DebugAdapter/ConsoleProcess.cs @@ -10,7 +10,6 @@ This Source Code Form is subject to the terms of the using System.IO; using Newtonsoft.Json.Linq; using Serilog; -using VSCode.DebugAdapter.Transport; namespace VSCode.DebugAdapter { diff --git a/src/VSCode.DebugAdapter/DebugSession.cs b/src/VSCode.DebugAdapter/DebugSession.cs index 85fd8faf9..ff119d2d1 100644 --- a/src/VSCode.DebugAdapter/DebugSession.cs +++ b/src/VSCode.DebugAdapter/DebugSession.cs @@ -6,7 +6,6 @@ using System.Collections.Generic; using System.Linq; using System.IO; -using Serilog; using VSCode.DebugAdapter; namespace VSCodeDebug diff --git a/src/VSCode.DebugAdapter/Program.cs b/src/VSCode.DebugAdapter/Program.cs index 5e05e4c6c..da026d34d 100644 --- a/src/VSCode.DebugAdapter/Program.cs +++ b/src/VSCode.DebugAdapter/Program.cs @@ -8,11 +8,8 @@ This Source Code Form is subject to the terms of the using System.Configuration; using System.IO; using System.Linq; -using System.Net; using System.Net.Sockets; using Serilog; -using Serilog.Core; -using Serilog.Events; namespace VSCode.DebugAdapter { diff --git a/src/VSCode.DebugAdapter/ServerProcess.cs b/src/VSCode.DebugAdapter/ServerProcess.cs index 4f524ce58..844fea9d6 100644 --- a/src/VSCode.DebugAdapter/ServerProcess.cs +++ b/src/VSCode.DebugAdapter/ServerProcess.cs @@ -9,7 +9,6 @@ This Source Code Form is subject to the terms of the using System.Diagnostics; using System.IO; using Newtonsoft.Json.Linq; -using VSCode.DebugAdapter.Transport; namespace VSCode.DebugAdapter { diff --git a/src/oscript/CgiBehavior.cs b/src/oscript/CgiBehavior.cs index e1b9e5637..911782454 100644 --- a/src/oscript/CgiBehavior.cs +++ b/src/oscript/CgiBehavior.cs @@ -8,10 +8,8 @@ This Source Code Form is subject to the terms of the using System; using System.Collections.Generic; using System.IO; -using System.Linq; using System.Text; using OneScript.Contexts; -using OneScript.DebugServices; using OneScript.Exceptions; using OneScript.Execution; using OneScript.StandardLibrary; @@ -98,12 +96,6 @@ private int RunCGIMode(string scriptFile) return exitCode; } - void IAttachableContext.OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) - { - variables = Array.Empty(); - methods = this.GetMethods().ToArray(); - } - IVariable IAttachableContext.GetVariable(int index) { throw new IndexOutOfRangeException("No such variable at index: " + index); diff --git a/src/oscript/DebugBehavior.cs b/src/oscript/DebugBehavior.cs index 2c4027bbd..740c7cd46 100644 --- a/src/oscript/DebugBehavior.cs +++ b/src/oscript/DebugBehavior.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; -using OneScript.DebugProtocol; using OneScript.DebugServices; namespace oscript diff --git a/src/oscript/ExecuteScriptBehavior.cs b/src/oscript/ExecuteScriptBehavior.cs index 4ba1589fa..49cbc29c4 100644 --- a/src/oscript/ExecuteScriptBehavior.cs +++ b/src/oscript/ExecuteScriptBehavior.cs @@ -5,7 +5,6 @@ This Source Code Form is subject to the terms of the at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; -using OneScript.DebugServices; using OneScript.StandardLibrary; using ScriptEngine; using ScriptEngine.HostedScript; From 804a21460dd8fb47d7bfbc7cc8380fbaab00e028 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 2 Dec 2025 11:25:24 +0300 Subject: [PATCH 189/191] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=20=D0=BE=D1=82=D1=81?= =?UTF-8?q?=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B5=20Equals(object)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Values/BslDateValue.cs | 10 +++++++++- src/OneScript.Core/Values/BslStringValue.cs | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/OneScript.Core/Values/BslDateValue.cs b/src/OneScript.Core/Values/BslDateValue.cs index 6023afce0..91ac459a0 100644 --- a/src/OneScript.Core/Values/BslDateValue.cs +++ b/src/OneScript.Core/Values/BslDateValue.cs @@ -43,7 +43,15 @@ public override bool Equals(BslValue other) } public override int GetHashCode() => _value.GetHashCode(); - + + public override bool Equals(object obj) + { + if (obj is BslValue bsl) + return Equals(bsl); + + return false; + } + public override TypeDescriptor SystemType => BasicTypes.Date; #region Conversions diff --git a/src/OneScript.Core/Values/BslStringValue.cs b/src/OneScript.Core/Values/BslStringValue.cs index fccdec229..6dbbd86e0 100644 --- a/src/OneScript.Core/Values/BslStringValue.cs +++ b/src/OneScript.Core/Values/BslStringValue.cs @@ -46,6 +46,14 @@ public override bool Equals(BslValue other) } public override int GetHashCode() => _value.GetHashCode(); + + public override bool Equals(object obj) + { + if (obj is BslValue bsl) + return Equals(bsl); + + return false; + } public override int CompareTo(BslValue other) { From 3c5f0c7ca70a150cab5b512db3fedd0bb187d42a Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 2 Dec 2025 11:29:57 +0300 Subject: [PATCH 190/191] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BE=D1=82=20=D0=A1=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TcpServer/JsonDtoChannel.cs | 2 +- .../TcpServer/StreamUtils.cs | 2 +- src/ScriptEngine/Libraries/UserAddedScript.cs | 7 ++++--- .../Machine/Contexts/EnumPropertyHolder.cs | 18 ------------------ .../Machine/Debugger/DisabledDebugSession.cs | 2 +- src/ScriptEngine/Machine/MachineInstance.cs | 8 ++------ 6 files changed, 9 insertions(+), 30 deletions(-) delete mode 100644 src/ScriptEngine/Machine/Contexts/EnumPropertyHolder.cs diff --git a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs index 31c41c92f..2b0b98d73 100644 --- a/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs +++ b/src/OneScript.DebugProtocol/TcpServer/JsonDtoChannel.cs @@ -13,7 +13,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugProtocol.TcpServer { - public class JsonDtoChannel : IMessageChannel + public sealed class JsonDtoChannel : IMessageChannel { private readonly IDebuggerClient _client; private readonly Stream _dataStream; diff --git a/src/OneScript.DebugProtocol/TcpServer/StreamUtils.cs b/src/OneScript.DebugProtocol/TcpServer/StreamUtils.cs index ef42f09b2..e2dc7b088 100644 --- a/src/OneScript.DebugProtocol/TcpServer/StreamUtils.cs +++ b/src/OneScript.DebugProtocol/TcpServer/StreamUtils.cs @@ -9,7 +9,7 @@ This Source Code Form is subject to the terms of the namespace OneScript.DebugProtocol.TcpServer { - public class StreamUtils + public static class StreamUtils { public static void ReadStream(Stream stream, byte[] buffer, int length) { diff --git a/src/ScriptEngine/Libraries/UserAddedScript.cs b/src/ScriptEngine/Libraries/UserAddedScript.cs index 22c9b74f5..60748566f 100644 --- a/src/ScriptEngine/Libraries/UserAddedScript.cs +++ b/src/ScriptEngine/Libraries/UserAddedScript.cs @@ -15,8 +15,9 @@ namespace ScriptEngine.Libraries /// public class UserAddedScript { - public string Symbol; - public string FilePath; - public IExecutableModule Module; + public string Symbol { get; set; } + public string FilePath { get; set; } + public string FileName { get; set; } + public IExecutableModule Module { get; set; } } } diff --git a/src/ScriptEngine/Machine/Contexts/EnumPropertyHolder.cs b/src/ScriptEngine/Machine/Contexts/EnumPropertyHolder.cs deleted file mode 100644 index 6ba1d49f5..000000000 --- a/src/ScriptEngine/Machine/Contexts/EnumPropertyHolder.cs +++ /dev/null @@ -1,18 +0,0 @@ -/*---------------------------------------------------------- -This Source Code Form is subject to the terms of the -Mozilla Public License, v.2.0. If a copy of the MPL -was not distributed with this file, You can obtain one -at http://mozilla.org/MPL/2.0/. -----------------------------------------------------------*/ - -using System.Collections.Generic; -using OneScript.Contexts; - -namespace ScriptEngine.Machine.Contexts -{ - public class EnumPropertyHolder /*: IAttachableContext*/ - { - private readonly List _values = new List(); - private readonly List _definitions = new List(); - } -} \ No newline at end of file diff --git a/src/ScriptEngine/Machine/Debugger/DisabledDebugSession.cs b/src/ScriptEngine/Machine/Debugger/DisabledDebugSession.cs index fb840dee7..89370e8dc 100644 --- a/src/ScriptEngine/Machine/Debugger/DisabledDebugSession.cs +++ b/src/ScriptEngine/Machine/Debugger/DisabledDebugSession.cs @@ -7,7 +7,7 @@ This Source Code Form is subject to the terms of the namespace ScriptEngine.Machine.Debugger { - public class DisabledDebugSession : IDebugSession + public sealed class DisabledDebugSession : IDebugSession { public IBreakpointManager BreakpointManager { get; } = new NoOpBreakpointManager(); public IThreadEventsListener ThreadManager { get; } = new NoOpThreadEventsListener(); diff --git a/src/ScriptEngine/Machine/MachineInstance.cs b/src/ScriptEngine/Machine/MachineInstance.cs index 775a1aa7a..e9273669d 100644 --- a/src/ScriptEngine/Machine/MachineInstance.cs +++ b/src/ScriptEngine/Machine/MachineInstance.cs @@ -2488,6 +2488,7 @@ private SymbolTable ExtractCompilerContext() } catch { + // Алиас остается пустым } } @@ -2501,7 +2502,7 @@ private SymbolTable ExtractCompilerContext() } } - ctx.PushScope(symbolScope, CreateScopeDescriptor(scope, thisScope, index)); + ctx.PushScope(symbolScope, ScopeBindingDescriptor.FrameScope(index)); } // Локальные переменные текущего фрейма @@ -2515,11 +2516,6 @@ private SymbolTable ExtractCompilerContext() return ctx; } - private ScopeBindingDescriptor CreateScopeDescriptor(IAttachableContext scope, IAttachableContext thisScope, int index) - { - return ScopeBindingDescriptor.FrameScope(index); - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] private IAttachableContext ResolveBindingTarget(ModuleSymbolBinding binding) { From 4fd8cdf2208586c30f1c12cda7d06751bfdba6a8 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Tue, 2 Dec 2025 13:32:49 +0300 Subject: [PATCH 191/191] =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8E=20=D0=BF=D0=BE=20pathsMapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/release-notes.md | 1 + src/VSCode.DebugAdapter/README.md | 53 ++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/install/release-notes.md b/install/release-notes.md index 2c8fc735c..1da6673b3 100644 --- a/install/release-notes.md +++ b/install/release-notes.md @@ -9,6 +9,7 @@ - [#1545](https://github.com/EvilBeaver/OneScript/issues/1545) - Разрешено использование комментариев после аннотаций модуля и в строках с директивой `Использовать` - [#1593](https://github.com/EvilBeaver/OneScript/issues/1593) - Полностью переработан сервер отладки, возможно переподключение к серверу после завершения сессии отладки. - Улучшена производительность компиляции большого числа модулей +- Добавлена возможность выполнять attach отладчика внутрь контейнера с 1Script. Предусмотрен маппинг локальных путей и путей внутри контейнера. ## Исправления ошибок diff --git a/src/VSCode.DebugAdapter/README.md b/src/VSCode.DebugAdapter/README.md index 0c3805040..fc4030e3a 100644 --- a/src/VSCode.DebugAdapter/README.md +++ b/src/VSCode.DebugAdapter/README.md @@ -16,6 +16,19 @@ При возникновении вопросов напишите обращение на https://github.com/EvilBeaver/OneScript/issues. Мы обязательно вам поможем. +## Маппинг путей для удаленной отладки + +При отладке приложений 1Script, работающих в Docker-контейнерах, WSL или на удаленных машинах, возникает проблема несовпадения путей к исходным файлам. Локальная IDE устанавливает точки останова (breakpoints) по локальным путям (например, `D:\projects\myapp\main.os`), но удаленный runtime видит другие пути (например, `/app/main.os` в контейнере). Без маппинга точки останова не будут срабатывать. + +Для решения этой проблемы используется параметр **pathsMapping**, который автоматически преобразует пути между локальной и удаленной файловой системой: + +* При отправке точек останова в отладчик локальные пути преобразуются в удаленные +* При получении информации о стеке вызовов удаленные пути преобразуются обратно в локальные + +Параметр **pathsMapping** доступен только в режиме "attach" и содержит два обязательных поля: +* **localPath** - путь к каталогу проекта на локальной машине +* **remotePath** - путь к каталогу проекта на удаленной машине (или в контейнере) + ## Примеры конфигураций запуска ### Запуск 1Script, файл my-program.os с передачей аргументов командной строки и установкой переменных окружения @@ -58,4 +71,42 @@ "request": "attach", "debugPort": 5051 } -``` \ No newline at end of file +``` + +### Подключение к процессу 1Script в Docker-контейнере с маппингом путей + +При отладке приложения, запущенного в Docker-контейнере, необходимо сопоставить локальные пути с путями внутри контейнера. Например, если локальный проект находится в `D:\myproject`, а внутри контейнера примонтирован в `/app`: + +```json +{ + "name": "Attach к Docker-контейнеру", + "type": "oscript", + "request": "attach", + "debugPort": 2801, + "pathsMapping": { + "localPath": "D:/myproject", + "remotePath": "/app" + } +} +``` + +**Примечание:** В localPath используйте прямые слэши (/) даже в Windows для корректной работы маппинга. + +### Удаленная отладка с маппингом путей (Linux/WSL) + +Для отладки приложения на удаленной Linux-машине или в WSL: + +```json +{ + "name": "Удаленная отладка на Linux", + "type": "oscript", + "request": "attach", + "debugPort": 2801, + "pathsMapping": { + "localPath": "C:/Users/developer/projects/myapp", + "remotePath": "/home/developer/myapp" + } +} +``` + +Отладчик автоматически преобразует пути при установке точек останова и отображении стека вызовов, что позволяет корректно работать с исходным кодом независимо от различий в файловых системах. \ No newline at end of file
  • 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�Wl)d*|VlAO! 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

    - - Go to W3Schools! - -

  • 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�Wl)d*|VlAO! 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