diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt index 33e47697ba9..78d1416cd91 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt @@ -969,7 +969,7 @@ private class ConstantExpressionEvaluatorVisitor( } private fun hasLongSuffix(text: String) = text.endsWith('l') || text.endsWith('L') -private fun hasUnsignedSuffix(text: String) = text.endsWith('u') +private fun hasUnsignedSuffix(text: String) = text.endsWith('u') || text.endsWith('U') private fun parseNumericLiteral(text: String, type: IElementType): Any? { val canonicalText = LiteralFormatUtil.removeUnderscores(text) diff --git a/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex b/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex index 13b6d13a86f..b73d101df32 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex +++ b/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex @@ -96,7 +96,7 @@ DECIMAL_INTEGER_LITERAL=(0|([1-9]({DIGIT_OR_UNDERSCORE})*))({LONG_SUFFIX}|{UNSIG HEX_INTEGER_LITERAL=0[Xx]({HEX_DIGIT_OR_UNDERSCORE})*({LONG_SUFFIX}|{UNSIGNED_SUFFIX})? BIN_INTEGER_LITERAL=0[Bb]({DIGIT_OR_UNDERSCORE})*({LONG_SUFFIX}|{UNSIGNED_SUFFIX})? LONG_SUFFIX=[Ll] -UNSIGNED_SUFFIX=[u] +UNSIGNED_SUFFIX=[Uu] //FLOAT_LITERAL=(({FLOATING_POINT_LITERAL1})[Ff])|(({FLOATING_POINT_LITERAL2})[Ff])|(({FLOATING_POINT_LITERAL3})[Ff])|(({FLOATING_POINT_LITERAL4})[Ff]) //DOUBLE_LITERAL=(({FLOATING_POINT_LITERAL1})[Dd]?)|(({FLOATING_POINT_LITERAL2})[Dd]?)|(({FLOATING_POINT_LITERAL3})[Dd]?)|(({FLOATING_POINT_LITERAL4})[Dd]) diff --git a/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java b/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java index c2196394def..de8bc4c9b67 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java +++ b/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java @@ -122,51 +122,51 @@ class _JetLexer implements FlexLexer { /* The ZZ_CMAP_A table has 3136 entries */ static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\4\1\10\1\40\1\41\1\40\22\0\1\4\1\14\1\30\1\13\1\11\1\72\1\70\1\26"+ - "\1\76\1\77\1\37\1\65\1\101\1\25\1\22\1\12\1\15\11\1\1\73\1\100\1\66\1\63\1"+ - "\67\1\64\1\102\1\3\1\17\2\3\1\24\1\23\5\5\1\20\13\5\1\16\2\5\1\74\1\27\1\75"+ - "\1\0\1\2\1\7\1\45\1\56\1\52\1\62\1\44\1\51\1\55\1\33\1\34\1\57\1\54\1\46\1"+ - "\5\1\47\1\53\1\43\1\5\1\50\1\35\1\32\1\21\1\61\1\60\1\16\1\42\1\5\1\31\1\71"+ - "\1\36\7\0\1\40\24\0\1\5\12\0\1\5\4\0\1\5\5\0\27\5\1\0\12\5\4\0\14\5\16\0\5"+ - "\5\7\0\1\5\1\0\1\5\1\0\5\5\1\0\2\5\2\0\4\5\1\0\1\5\6\0\1\5\1\0\3\5\1\0\1\5"+ - "\1\0\4\5\1\0\23\5\1\0\13\5\10\0\6\5\1\0\26\5\2\0\1\5\6\0\10\5\10\0\13\5\5"+ - "\0\3\5\15\0\12\6\4\0\6\5\1\0\1\5\17\0\2\5\7\0\2\5\12\6\3\5\2\0\2\5\1\0\16"+ - "\5\15\0\11\5\13\0\1\5\16\0\12\6\6\5\4\0\2\5\4\0\1\5\5\0\6\5\4\0\1\5\11\0\1"+ - "\5\3\0\1\5\7\0\11\5\7\0\5\5\1\0\10\5\6\0\26\5\3\0\1\5\2\0\1\5\7\0\12\5\4\0"+ - "\12\6\1\5\4\0\10\5\2\0\2\5\2\0\26\5\1\0\7\5\1\0\1\5\3\0\4\5\3\0\1\5\20\0\1"+ - "\5\15\0\2\5\1\0\1\5\5\0\6\5\4\0\2\5\1\0\2\5\1\0\2\5\1\0\2\5\17\0\4\5\1\0\1"+ - "\5\7\0\12\6\2\0\3\5\20\0\11\5\1\0\2\5\1\0\2\5\1\0\5\5\3\0\1\5\2\0\1\5\30\0"+ - "\1\5\13\0\10\5\2\0\1\5\3\0\1\5\1\0\6\5\3\0\3\5\1\0\4\5\3\0\2\5\1\0\1\5\1\0"+ - "\2\5\3\0\2\5\3\0\3\5\3\0\14\5\13\0\10\5\1\0\2\5\10\0\3\5\5\0\1\5\4\0\10\5"+ - "\1\0\6\5\1\0\5\5\3\0\1\5\3\0\2\5\15\0\13\5\2\0\1\5\6\0\3\5\10\0\1\5\12\0\6"+ - "\5\5\0\22\5\3\0\10\5\1\0\11\5\1\0\1\5\2\0\7\5\11\0\1\5\1\0\2\5\14\0\12\6\7"+ - "\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5\2\0\1\5\6\0\4\5\1\0\7\5\1\0\3\5\1\0\1\5\1\0"+ - "\1\5\2\0\2\5\1\0\4\5\1\0\2\5\11\0\1\5\2\0\5\5\1\0\1\5\11\0\12\6\2\0\14\5\1"+ - "\0\24\5\13\0\5\5\22\0\7\5\4\0\4\5\3\0\1\5\3\0\2\5\7\0\3\5\4\0\15\5\14\0\1"+ - "\5\1\0\6\5\1\0\1\5\5\0\1\5\2\0\13\5\1\0\15\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4"+ - "\5\2\0\1\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0\16\5\2\0\6\5\2\0\15\5\2\0\1"+ - "\5\1\0\10\5\7\0\15\5\1\0\6\5\23\0\1\5\4\0\1\5\3\0\5\5\2\0\22\5\1\0\1\5\5\0"+ - "\17\5\1\0\16\5\2\0\5\5\13\0\14\5\13\0\1\5\15\0\7\5\7\0\16\5\15\0\2\5\12\6"+ - "\3\0\3\5\11\0\4\5\1\0\4\5\3\0\2\5\11\0\10\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\6"+ - "\5\1\0\7\5\1\0\1\5\3\0\3\5\1\0\7\5\3\0\4\5\2\0\6\5\14\0\2\40\7\0\1\5\15\0"+ - "\1\5\2\0\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0\5\5\6\0\1\5\1\0\1\5\1\0\1\5\1\0"+ - "\4\5\1\0\13\5\2\0\4\5\5\0\5\5\4\0\1\5\4\0\2\5\13\0\5\5\6\0\4\5\3\0\2\5\14"+ - "\0\10\5\7\0\10\5\1\0\7\5\6\0\2\5\12\0\5\5\5\0\2\5\3\0\7\5\6\0\3\5\12\6\2\5"+ - "\13\0\11\5\2\0\27\5\2\0\7\5\1\0\3\5\1\0\4\5\1\0\4\5\2\0\6\5\3\0\1\5\1\0\1"+ - "\5\2\0\5\5\1\0\12\5\12\6\5\5\1\0\3\5\1\0\10\5\4\0\7\5\3\0\1\5\3\0\2\5\1\0"+ - "\1\5\3\0\2\5\2\0\5\5\2\0\1\5\1\0\1\5\30\0\3\5\3\0\6\5\2\0\6\5\2\0\6\5\11\0"+ - "\7\5\4\0\5\5\3\0\5\5\5\0\1\5\1\0\10\5\1\0\5\5\1\0\1\5\1\0\2\5\1\0\2\5\1\0"+ - "\12\5\6\0\12\5\2\0\6\5\2\0\6\5\2\0\6\5\2\0\3\5\3\0\14\5\1\0\16\5\1\0\2\5\1"+ - "\0\2\5\1\0\10\5\6\0\4\5\4\0\16\5\2\0\1\5\1\0\14\5\1\0\2\5\3\0\1\5\2\0\4\5"+ - "\1\0\2\5\12\0\10\5\6\0\6\5\1\0\3\5\1\0\12\5\3\0\1\5\12\0\4\5\13\0\12\6\1\5"+ - "\1\0\1\5\3\0\7\5\1\0\1\5\1\0\4\5\1\0\17\5\1\0\2\5\14\0\3\5\7\0\4\5\11\0\2"+ - "\5\1\0\1\5\20\0\4\5\10\0\1\5\13\0\10\5\5\0\3\5\2\0\1\5\2\0\2\5\2\0\4\5\1\0"+ - "\14\5\1\0\1\5\1\0\7\5\1\0\21\5\1\0\4\5\2\0\10\5\1\0\7\5\1\0\14\5\1\0\4\5\1"+ - "\0\5\5\1\0\1\5\3\0\14\5\2\0\13\5\1\0\10\5\2\0\22\6\1\0\2\5\1\0\1\5\2\0\1\5"+ - "\1\0\12\5\1\0\4\5\1\0\1\5\1\0\1\5\6\0\1\5\4\0\1\5\1\0\1\5\1\0\1\5\1\0\3\5"+ - "\1\0\2\5\1\0\1\5\2\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\2\5\1\0\1\5\2"+ - "\0\4\5\1\0\7\5\1\0\4\5\1\0\4\5\1\0\1\5\1\0\12\5\1\0\5\5\1\0\3\5\1\0\5\5\1"+ - "\0\5\5"); + "\11\0\1\4\1\10\1\40\1\41\1\40\22\0\1\4\1\14\1\30\1\13\1\11\1\72\1\70\1\25"+ + "\1\76\1\77\1\37\1\65\1\101\1\24\1\21\1\12\1\15\11\1\1\73\1\100\1\66\1\63\1"+ + "\67\1\64\1\102\1\3\1\17\2\3\1\23\1\22\5\5\1\20\10\5\1\20\2\5\1\16\2\5\1\74"+ + "\1\26\1\75\1\0\1\2\1\7\1\45\1\56\1\52\1\62\1\44\1\51\1\55\1\33\1\34\1\57\1"+ + "\54\1\46\1\5\1\47\1\53\1\43\1\5\1\50\1\35\1\32\1\27\1\61\1\60\1\16\1\42\1"+ + "\5\1\31\1\71\1\36\7\0\1\40\24\0\1\5\12\0\1\5\4\0\1\5\5\0\27\5\1\0\12\5\4\0"+ + "\14\5\16\0\5\5\7\0\1\5\1\0\1\5\1\0\5\5\1\0\2\5\2\0\4\5\1\0\1\5\6\0\1\5\1\0"+ + "\3\5\1\0\1\5\1\0\4\5\1\0\23\5\1\0\13\5\10\0\6\5\1\0\26\5\2\0\1\5\6\0\10\5"+ + "\10\0\13\5\5\0\3\5\15\0\12\6\4\0\6\5\1\0\1\5\17\0\2\5\7\0\2\5\12\6\3\5\2\0"+ + "\2\5\1\0\16\5\15\0\11\5\13\0\1\5\16\0\12\6\6\5\4\0\2\5\4\0\1\5\5\0\6\5\4\0"+ + "\1\5\11\0\1\5\3\0\1\5\7\0\11\5\7\0\5\5\1\0\10\5\6\0\26\5\3\0\1\5\2\0\1\5\7"+ + "\0\12\5\4\0\12\6\1\5\4\0\10\5\2\0\2\5\2\0\26\5\1\0\7\5\1\0\1\5\3\0\4\5\3\0"+ + "\1\5\20\0\1\5\15\0\2\5\1\0\1\5\5\0\6\5\4\0\2\5\1\0\2\5\1\0\2\5\1\0\2\5\17"+ + "\0\4\5\1\0\1\5\7\0\12\6\2\0\3\5\20\0\11\5\1\0\2\5\1\0\2\5\1\0\5\5\3\0\1\5"+ + "\2\0\1\5\30\0\1\5\13\0\10\5\2\0\1\5\3\0\1\5\1\0\6\5\3\0\3\5\1\0\4\5\3\0\2"+ + "\5\1\0\1\5\1\0\2\5\3\0\2\5\3\0\3\5\3\0\14\5\13\0\10\5\1\0\2\5\10\0\3\5\5\0"+ + "\1\5\4\0\10\5\1\0\6\5\1\0\5\5\3\0\1\5\3\0\2\5\15\0\13\5\2\0\1\5\6\0\3\5\10"+ + "\0\1\5\12\0\6\5\5\0\22\5\3\0\10\5\1\0\11\5\1\0\1\5\2\0\7\5\11\0\1\5\1\0\2"+ + "\5\14\0\12\6\7\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5\2\0\1\5\6\0\4\5\1\0\7\5\1\0\3"+ + "\5\1\0\1\5\1\0\1\5\2\0\2\5\1\0\4\5\1\0\2\5\11\0\1\5\2\0\5\5\1\0\1\5\11\0\12"+ + "\6\2\0\14\5\1\0\24\5\13\0\5\5\22\0\7\5\4\0\4\5\3\0\1\5\3\0\2\5\7\0\3\5\4\0"+ + "\15\5\14\0\1\5\1\0\6\5\1\0\1\5\5\0\1\5\2\0\13\5\1\0\15\5\1\0\4\5\2\0\7\5\1"+ + "\0\1\5\1\0\4\5\2\0\1\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0\16\5\2\0\6\5\2"+ + "\0\15\5\2\0\1\5\1\0\10\5\7\0\15\5\1\0\6\5\23\0\1\5\4\0\1\5\3\0\5\5\2\0\22"+ + "\5\1\0\1\5\5\0\17\5\1\0\16\5\2\0\5\5\13\0\14\5\13\0\1\5\15\0\7\5\7\0\16\5"+ + "\15\0\2\5\12\6\3\0\3\5\11\0\4\5\1\0\4\5\3\0\2\5\11\0\10\5\1\0\1\5\1\0\1\5"+ + "\1\0\1\5\1\0\6\5\1\0\7\5\1\0\1\5\3\0\3\5\1\0\7\5\3\0\4\5\2\0\6\5\14\0\2\40"+ + "\7\0\1\5\15\0\1\5\2\0\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0\5\5\6\0\1\5\1\0\1\5"+ + "\1\0\1\5\1\0\4\5\1\0\13\5\2\0\4\5\5\0\5\5\4\0\1\5\4\0\2\5\13\0\5\5\6\0\4\5"+ + "\3\0\2\5\14\0\10\5\7\0\10\5\1\0\7\5\6\0\2\5\12\0\5\5\5\0\2\5\3\0\7\5\6\0\3"+ + "\5\12\6\2\5\13\0\11\5\2\0\27\5\2\0\7\5\1\0\3\5\1\0\4\5\1\0\4\5\2\0\6\5\3\0"+ + "\1\5\1\0\1\5\2\0\5\5\1\0\12\5\12\6\5\5\1\0\3\5\1\0\10\5\4\0\7\5\3\0\1\5\3"+ + "\0\2\5\1\0\1\5\3\0\2\5\2\0\5\5\2\0\1\5\1\0\1\5\30\0\3\5\3\0\6\5\2\0\6\5\2"+ + "\0\6\5\11\0\7\5\4\0\5\5\3\0\5\5\5\0\1\5\1\0\10\5\1\0\5\5\1\0\1\5\1\0\2\5\1"+ + "\0\2\5\1\0\12\5\6\0\12\5\2\0\6\5\2\0\6\5\2\0\6\5\2\0\3\5\3\0\14\5\1\0\16\5"+ + "\1\0\2\5\1\0\2\5\1\0\10\5\6\0\4\5\4\0\16\5\2\0\1\5\1\0\14\5\1\0\2\5\3\0\1"+ + "\5\2\0\4\5\1\0\2\5\12\0\10\5\6\0\6\5\1\0\3\5\1\0\12\5\3\0\1\5\12\0\4\5\13"+ + "\0\12\6\1\5\1\0\1\5\3\0\7\5\1\0\1\5\1\0\4\5\1\0\17\5\1\0\2\5\14\0\3\5\7\0"+ + "\4\5\11\0\2\5\1\0\1\5\20\0\4\5\10\0\1\5\13\0\10\5\5\0\3\5\2\0\1\5\2\0\2\5"+ + "\2\0\4\5\1\0\14\5\1\0\1\5\1\0\7\5\1\0\21\5\1\0\4\5\2\0\10\5\1\0\7\5\1\0\14"+ + "\5\1\0\4\5\1\0\5\5\1\0\1\5\3\0\14\5\2\0\13\5\1\0\10\5\2\0\22\6\1\0\2\5\1\0"+ + "\1\5\2\0\1\5\1\0\12\5\1\0\4\5\1\0\1\5\1\0\1\5\6\0\1\5\4\0\1\5\1\0\1\5\1\0"+ + "\1\5\1\0\3\5\1\0\2\5\1\0\1\5\2\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\2"+ + "\5\1\0\1\5\2\0\4\5\1\0\7\5\1\0\4\5\1\0\4\5\1\0\1\5\1\0\12\5\1\0\5\5\1\0\3"+ + "\5\1\0\5\5\1\0\5\5"); /** * Translates DFA states to action switch labels. @@ -276,222 +276,246 @@ class _JetLexer implements FlexLexer { private static final String ZZ_TRANS_PACKED_0 = "\1\7\1\10\2\11\1\12\1\11\1\7\1\13\1\12"+ - "\1\14\1\15\1\16\1\17\1\20\4\11\1\21\2\11"+ - "\1\22\1\23\1\7\1\24\1\25\1\26\1\11\1\27"+ - "\1\30\1\31\1\32\1\0\1\12\1\11\1\33\1\34"+ + "\1\14\1\15\1\16\1\17\1\20\3\11\1\21\2\11"+ + "\1\22\1\23\1\7\1\11\1\24\1\25\1\26\1\11"+ + "\1\27\1\30\1\31\1\32\1\0\1\12\1\11\1\33"+ + "\1\34\1\35\1\11\1\36\1\37\1\40\1\41\1\42"+ + "\2\11\1\43\1\11\1\44\1\45\1\46\1\47\1\50"+ + "\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60"+ + "\1\61\1\62\1\63\1\64\1\65\1\66\10\67\1\70"+ + "\1\71\14\67\1\72\1\67\1\73\62\67\1\74\1\71"+ + "\14\67\1\74\1\67\1\75\52\67\2\7\2\76\1\7"+ + "\1\76\1\7\1\77\1\0\5\7\3\76\1\7\2\76"+ + "\3\7\1\76\2\7\1\100\3\76\2\7\2\0\21\76"+ + "\20\7\12\101\1\102\24\101\1\103\1\0\42\101\1\7"+ + "\1\10\2\11\1\12\1\11\1\7\1\13\1\12\1\14"+ + "\1\15\1\16\1\17\1\20\3\11\1\21\2\11\1\22"+ + "\1\23\1\7\1\11\1\24\1\104\1\26\1\11\1\27"+ + "\1\30\1\105\1\32\1\0\1\12\1\11\1\33\1\34"+ "\1\35\1\11\1\36\1\37\1\40\1\41\1\42\2\11"+ "\1\43\1\11\1\44\1\45\1\46\1\47\1\50\1\51"+ "\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61"+ - "\1\62\1\63\1\64\1\65\1\66\10\67\1\70\1\71"+ - "\15\67\1\72\1\73\62\67\1\74\1\71\15\67\1\74"+ - "\1\75\52\67\2\7\2\76\1\7\1\76\1\7\1\77"+ - "\1\0\5\7\4\76\1\7\2\76\5\7\1\100\3\76"+ - "\2\7\2\0\21\76\20\7\12\101\1\102\24\101\1\103"+ - "\1\0\42\101\1\7\1\10\2\11\1\12\1\11\1\7"+ - "\1\13\1\12\1\14\1\15\1\16\1\17\1\20\4\11"+ - "\1\21\2\11\1\22\1\23\1\7\1\24\1\104\1\26"+ - "\1\11\1\27\1\30\1\105\1\32\1\0\1\12\1\11"+ - "\1\33\1\34\1\35\1\11\1\36\1\37\1\40\1\41"+ - "\1\42\2\11\1\43\1\11\1\44\1\45\1\46\1\47"+ - "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+ - "\1\60\1\61\1\62\1\63\1\64\1\65\1\66\104\0"+ - "\2\10\12\0\1\10\2\0\2\106\1\107\1\110\1\111"+ - "\17\0\1\111\1\0\1\106\2\0\1\110\32\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ - "\4\0\21\11\24\0\1\12\3\0\1\12\30\0\1\12"+ - "\41\0\7\112\2\0\72\112\2\0\2\113\1\0\1\113"+ - "\1\0\1\114\6\0\4\113\1\0\2\113\5\0\4\113"+ - "\4\0\21\113\32\0\1\115\24\0\1\116\23\0\1\117"+ - "\33\0\1\120\122\0\1\121\26\0\1\122\20\0\2\123"+ - "\12\0\1\123\1\124\1\125\2\106\1\107\1\110\1\111"+ - "\17\0\1\111\1\0\1\106\2\0\1\110\4\0\1\125"+ - "\25\0\1\126\13\0\1\126\4\0\1\127\105\0\1\130"+ - "\35\0\1\131\3\0\1\132\13\0\10\23\1\0\15\23"+ - "\1\133\1\134\53\23\30\0\1\135\53\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\1\11\1\136"+ + "\1\62\1\63\1\64\1\65\1\66\104\0\2\10\12\0"+ + "\1\10\2\0\1\106\1\107\1\110\1\111\3\0\1\106"+ + "\14\0\1\111\1\0\1\106\2\0\1\110\32\0\3\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\4\0\21\11\24\0\1\12\3\0\1\12"+ + "\30\0\1\12\41\0\7\112\2\0\72\112\2\0\2\113"+ + "\1\0\1\113\1\0\1\114\6\0\3\113\1\0\2\113"+ + "\3\0\1\113\2\0\4\113\4\0\21\113\32\0\1\115"+ + "\24\0\1\116\23\0\1\117\33\0\1\120\122\0\1\121"+ + "\26\0\1\122\20\0\2\123\12\0\1\123\1\124\1\125"+ + "\1\106\1\107\1\110\1\111\3\0\1\106\14\0\1\111"+ + "\1\0\1\106\2\0\1\110\4\0\1\125\25\0\1\126"+ + "\13\0\1\126\3\0\1\127\105\0\1\130\36\0\1\131"+ + "\3\0\1\132\13\0\10\23\1\0\14\23\1\133\1\134"+ + "\54\23\30\0\1\135\53\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\1\11\1\136"+ "\2\11\4\0\1\137\5\11\1\140\12\11\21\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\3\11"+ - "\1\141\4\0\5\11\1\142\1\11\1\143\11\11\21\0"+ - "\3\11\1\0\2\11\6\0\4\11\1\144\1\0\2\11"+ - "\5\0\4\11\4\0\21\11\103\0\1\145\20\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ - "\4\0\3\11\1\146\15\11\21\0\3\11\1\0\2\11"+ - "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\4\11"+ - "\1\147\14\11\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\3\11\1\150\4\0\21\11\21\0"+ - "\3\11\1\0\2\11\6\0\4\11\1\151\1\0\2\11"+ - "\5\0\4\11\4\0\21\11\21\0\3\11\1\0\2\11"+ - "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\2\11"+ - "\1\152\16\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\153\1\0\2\11\5\0\4\11\4\0\3\11\1\154"+ - "\5\11\1\155\7\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\4\11\4\0\4\11\1\156"+ - "\4\11\1\157\7\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\4\11\4\0\14\11\1\160"+ - "\4\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ - "\2\11\5\0\4\11\4\0\6\11\1\161\12\11\21\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ - "\1\11\1\162\2\11\4\0\21\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ - "\3\11\1\163\15\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\4\11\4\0\11\11\1\164"+ - "\7\11\103\0\1\165\3\0\1\166\76\0\1\167\1\0"+ - "\1\170\100\0\1\171\102\0\1\172\107\0\1\173\103\0"+ - "\1\174\74\0\1\175\112\0\1\176\107\0\1\177\2\0"+ - "\10\67\2\0\15\67\2\0\52\67\2\0\2\200\1\0"+ - "\1\200\1\0\1\201\6\0\4\200\1\0\2\200\4\0"+ - "\1\202\4\200\4\0\21\200\20\0\10\203\1\0\10\203"+ - "\1\204\61\203\30\0\1\205\53\0\3\76\1\0\2\76"+ - "\6\0\5\76\1\0\2\76\5\0\4\76\4\0\21\76"+ - "\20\0\7\206\2\0\72\206\1\0\3\76\1\0\2\76"+ - "\6\0\5\76\1\0\2\76\5\0\1\76\1\207\2\76"+ - "\4\0\21\76\57\0\1\210\55\0\1\211\112\0\1\212"+ - "\61\0\1\126\13\0\1\126\4\0\1\213\61\0\2\214"+ - "\12\0\1\214\5\0\1\110\1\0\1\214\23\0\1\110"+ - "\13\0\1\214\15\0\7\112\1\215\1\0\72\112\1\0"+ - "\3\113\1\0\2\113\6\0\5\113\1\0\2\113\5\0"+ - "\4\113\4\0\21\113\20\0\7\216\2\0\72\216\10\115"+ - "\1\0\72\115\37\0\1\217\43\0\10\120\1\0\72\120"+ - "\35\0\1\220\11\0\1\221\116\0\1\222\20\0\2\123"+ - "\12\0\1\123\4\0\1\223\1\110\1\111\17\0\1\111"+ - "\4\0\1\110\32\0\3\124\11\0\1\124\1\0\1\124"+ - "\2\106\1\212\2\124\17\0\2\124\1\106\2\0\2\124"+ - "\3\0\1\124\3\0\1\124\21\0\2\125\12\0\1\125"+ - "\2\0\2\106\1\212\23\0\1\106\35\0\2\126\12\0"+ - "\1\126\5\0\1\110\1\111\17\0\1\111\4\0\1\110"+ - "\53\0\1\224\60\0\10\23\1\0\72\23\30\0\1\225"+ - "\53\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\2\11\1\226\1\11\4\0\6\11\1\227\12\11"+ - "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\4\11\4\0\1\11\1\230\17\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\231\1\0\2\11\5\0"+ - "\4\11\4\0\1\232\20\11\21\0\3\11\1\0\2\11"+ - "\6\0\5\11\1\0\2\11\5\0\1\233\3\11\4\0"+ - "\21\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ - "\2\11\5\0\4\11\4\0\1\11\1\234\17\11\21\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ - "\4\11\4\0\10\11\1\235\10\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\3\11\1\236"+ - "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\4\11\4\0\21\11\1\0\1\237"+ - "\17\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\4\11\4\0\4\11\1\240\14\11\21\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\1\241"+ - "\3\11\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\4\11\4\0\5\11\1\242"+ - "\13\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ - "\2\11\5\0\4\11\4\0\4\11\1\243\14\11\21\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\3\11\1\141\4\0\5\11\1\142\1\11\1\143"+ + "\11\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\144\2\0\4\11\4\0\21\11\103\0"+ + "\1\145\20\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\4\0\3\11\1\146"+ + "\15\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\4\0\4\11\1\147"+ + "\14\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\3\11\1\150\4\0\21\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\151\2\0\4\11\4\0\21\11\21\0\3\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\4\0\2\11\1\152\16\11\21\0\3\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\153"+ + "\2\0\4\11\4\0\3\11\1\154\5\11\1\155\7\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\4\11\1\156\4\11"+ + "\1\157\7\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\14\11"+ + "\1\160\4\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\6\11"+ + "\1\161\12\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\1\11\1\162\2\11"+ + "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\3\11"+ + "\1\163\15\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\11\11"+ + "\1\164\7\11\103\0\1\165\3\0\1\166\76\0\1\167"+ + "\1\0\1\170\100\0\1\171\102\0\1\172\107\0\1\173"+ + "\103\0\1\174\74\0\1\175\112\0\1\176\107\0\1\177"+ + "\2\0\10\67\2\0\14\67\1\0\1\67\1\0\52\67"+ + "\2\0\2\200\1\0\1\200\1\0\1\201\6\0\3\200"+ + "\1\0\2\200\3\0\1\200\1\0\1\202\4\200\4\0"+ + "\21\200\20\0\10\203\1\0\16\203\1\204\53\203\30\0"+ + "\1\205\53\0\3\76\1\0\2\76\6\0\4\76\1\0"+ + "\2\76\3\0\1\76\2\0\4\76\4\0\21\76\20\0"+ + "\7\206\2\0\72\206\1\0\3\76\1\0\2\76\6\0"+ + "\4\76\1\0\2\76\3\0\1\76\2\0\1\76\1\207"+ + "\2\76\4\0\21\76\57\0\1\210\55\0\1\211\111\0"+ + "\1\212\62\0\1\126\13\0\1\126\3\0\1\213\62\0"+ + "\2\214\12\0\1\214\4\0\1\110\1\0\1\214\24\0"+ + "\1\110\13\0\1\214\15\0\7\112\1\215\1\0\72\112"+ + "\1\0\3\113\1\0\2\113\6\0\4\113\1\0\2\113"+ + "\3\0\1\113\2\0\4\113\4\0\21\113\20\0\7\216"+ + "\2\0\72\216\10\115\1\0\72\115\37\0\1\217\43\0"+ + "\10\120\1\0\72\120\35\0\1\220\11\0\1\221\116\0"+ + "\1\222\20\0\2\123\12\0\1\123\3\0\1\223\1\110"+ + "\1\111\20\0\1\111\4\0\1\110\32\0\3\124\11\0"+ + "\1\124\1\0\1\124\1\106\1\212\2\124\3\0\1\106"+ + "\14\0\2\124\1\106\2\0\2\124\3\0\1\124\3\0"+ + "\1\124\21\0\2\125\12\0\1\125\2\0\1\106\1\212"+ + "\5\0\1\106\16\0\1\106\35\0\2\126\12\0\1\126"+ + "\4\0\1\110\1\111\20\0\1\111\4\0\1\110\52\0"+ + "\1\224\61\0\10\23\1\0\72\23\30\0\1\225\53\0"+ + "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\2\11\1\226\1\11\4\0\6\11\1\227"+ + "\12\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\4\0\1\11\1\230"+ + "\17\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\231\2\0\4\11\4\0\1\232\20\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\1\233\3\11\4\0\21\11\21\0"+ + "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\4\0\1\11\1\234\17\11\21\0"+ + "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\4\0\10\11\1\235\10\11\21\0"+ + "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\3\11\1\236\4\0\21\11\21\0\3\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\4\0\21\11\1\0\1\237\17\0\3\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\4\0\4\11\1\240\14\11\21\0\3\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\1\241\3\11\4\0\21\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\4\0\5\11\1\242\13\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\4\0\4\11\1\243\14\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ "\4\11\4\0\6\11\1\244\12\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ - "\3\11\1\245\15\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\4\11\4\0\5\11\1\246"+ - "\13\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ - "\2\11\5\0\4\11\4\0\15\11\1\247\3\11\21\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\4\0\3\11\1\245\15\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\4\0\5\11\1\246\13\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\4\0\15\11\1\247\3\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ "\4\11\4\0\2\11\1\250\16\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\2\11\1\251"+ - "\1\11\4\0\2\11\1\252\16\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ - "\4\11\1\253\1\11\1\254\12\11\103\0\1\255\20\0"+ - "\3\200\1\0\2\200\6\0\5\200\1\0\2\200\5\0"+ - "\4\200\4\0\21\200\20\0\7\256\2\0\72\256\1\0"+ - "\1\257\1\0\1\257\11\0\1\257\1\0\1\257\3\0"+ - "\2\257\17\0\2\257\3\0\2\257\3\0\1\257\3\0"+ - "\1\257\50\0\1\260\52\0\7\206\1\261\1\0\72\206"+ - "\1\0\3\76\1\0\2\76\6\0\5\76\1\0\2\76"+ - "\5\0\2\76\1\262\1\76\4\0\21\76\42\0\1\213"+ - "\61\0\2\214\12\0\1\214\5\0\1\110\25\0\1\110"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\2\11\1\251\1\11\4\0\2\11\1\252\16\11\21\0"+ + "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\4\0\4\11\1\253\1\11\1\254"+ + "\12\11\103\0\1\255\20\0\3\200\1\0\2\200\6\0"+ + "\4\200\1\0\2\200\3\0\1\200\2\0\4\200\4\0"+ + "\21\200\20\0\7\256\2\0\72\256\1\0\1\257\1\0"+ + "\1\257\11\0\1\257\1\0\1\257\2\0\2\257\20\0"+ + "\2\257\3\0\2\257\3\0\1\257\3\0\1\257\50\0"+ + "\1\260\52\0\7\206\1\261\1\0\72\206\1\0\3\76"+ + "\1\0\2\76\6\0\4\76\1\0\2\76\3\0\1\76"+ + "\2\0\2\76\1\262\1\76\4\0\21\76\41\0\1\213"+ + "\62\0\2\214\12\0\1\214\4\0\1\110\26\0\1\110"+ "\31\0\7\216\1\263\1\0\72\216\12\0\1\264\71\0"+ - "\3\265\1\0\2\265\6\0\5\265\1\0\2\265\5\0"+ - "\4\265\4\0\21\265\21\0\1\126\13\0\1\126\66\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ - "\3\11\1\266\4\0\21\11\21\0\3\11\1\0\2\11"+ - "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\11\11"+ - "\1\267\7\11\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\4\11\4\0\2\11\1\270\16\11"+ - "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\4\11\4\0\2\11\1\271\16\11\21\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ - "\4\0\2\11\1\272\16\11\21\0\3\11\1\0\2\11"+ - "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\2\11"+ - "\1\273\16\11\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\4\11\4\0\12\11\1\274\6\11"+ - "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\4\11\4\0\2\11\1\275\16\11\21\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ - "\4\0\4\11\1\276\14\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\277\1\0\2\11\5\0\4\11\4\0"+ - "\21\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ - "\2\11\5\0\3\11\1\300\4\0\21\11\21\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\3\11"+ - "\1\301\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\1\302\3\11\4\0\21\11"+ - "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\4\11\4\0\2\11\1\303\16\11\21\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ - "\4\0\3\11\1\304\15\11\21\0\3\11\1\0\2\11"+ - "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\4\11"+ - "\1\305\14\11\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\4\11\4\0\5\11\1\306\13\11"+ - "\20\0\7\256\1\307\1\0\72\256\1\0\1\310\1\0"+ - "\1\310\11\0\1\310\1\0\1\310\3\0\2\310\17\0"+ - "\2\310\3\0\2\310\3\0\1\310\3\0\1\310\21\0"+ - "\3\76\1\0\2\76\6\0\5\76\1\0\2\76\5\0"+ - "\3\76\1\311\4\0\21\76\21\0\3\11\1\0\2\11"+ - "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\16\11"+ - "\1\312\2\11\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\4\11\4\0\3\11\1\313\5\11"+ - "\1\314\7\11\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\4\11\4\0\6\11\1\315\12\11"+ - "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\4\11\4\0\6\11\1\316\12\11\21\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ - "\4\0\3\11\1\317\15\11\21\0\3\11\1\0\2\11"+ - "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\6\11"+ - "\1\320\12\11\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\4\11\4\0\2\11\1\321\16\11"+ - "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\3\11\1\322\4\0\21\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\2\11\1\323"+ - "\1\11\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\4\11\4\0\10\11\1\324"+ - "\10\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ - "\2\11\5\0\4\11\4\0\12\11\1\325\6\11\21\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ - "\4\11\4\0\2\11\1\326\16\11\21\0\1\327\1\0"+ - "\1\327\11\0\1\327\1\0\1\327\3\0\2\327\17\0"+ - "\2\327\3\0\2\327\3\0\1\327\3\0\1\327\21\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ - "\4\11\4\0\4\11\1\330\14\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ - "\7\11\1\331\11\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\4\11\4\0\7\11\1\332"+ - "\11\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ - "\2\11\5\0\4\11\4\0\13\11\1\333\5\11\21\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ - "\4\11\4\0\5\11\1\334\13\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ - "\5\11\1\335\13\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\1\336\3\11\4\0\21\11"+ - "\21\0\1\203\1\0\1\203\11\0\1\203\1\0\1\203"+ - "\3\0\2\203\17\0\2\203\3\0\2\203\3\0\1\203"+ - "\3\0\1\203\21\0\3\11\1\0\2\11\6\0\5\11"+ - "\1\0\2\11\5\0\2\11\1\337\1\11\4\0\21\11"+ - "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\4\11\4\0\3\11\1\340\15\11\21\0\3\11"+ - "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ - "\4\0\2\11\1\341\16\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\342\1\0\2\11\5\0\4\11\4\0"+ - "\21\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ - "\2\11\5\0\4\11\4\0\3\11\1\343\15\11\21\0"+ - "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ - "\4\11\4\0\10\11\1\344\10\11\21\0\3\11\1\0"+ - "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ + "\3\265\1\0\2\265\6\0\4\265\1\0\2\265\3\0"+ + "\1\265\2\0\4\265\4\0\21\265\21\0\1\126\13\0"+ + "\1\126\66\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\3\11\1\266\4\0\21\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\11\11\1\267\7\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\2\11\1\270\16\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\2\11\1\271\16\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\2\11\1\272\16\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\2\11\1\273\16\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\12\11\1\274\6\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\2\11\1\275\16\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\4\0\4\11\1\276\14\11"+ + "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\277\2\0\4\11\4\0\21\11\21\0\3\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\3\11\1\300\4\0\21\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\3\11\1\301\4\0\21\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\1\302"+ + "\3\11\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\2\11\1\303\16\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\3\11\1\304\15\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\4\11\1\305\14\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\5\11\1\306\13\11\20\0\7\256\1\307\1\0\72\256"+ + "\1\0\1\310\1\0\1\310\11\0\1\310\1\0\1\310"+ + "\2\0\2\310\20\0\2\310\3\0\2\310\3\0\1\310"+ + "\3\0\1\310\21\0\3\76\1\0\2\76\6\0\4\76"+ + "\1\0\2\76\3\0\1\76\2\0\3\76\1\311\4\0"+ + "\21\76\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\4\0\16\11\1\312"+ + "\2\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\4\0\3\11\1\313"+ + "\5\11\1\314\7\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\6\11\1\315\12\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\6\11\1\316\12\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\3\11\1\317\15\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\6\11\1\320\12\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\2\11\1\321\16\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\3\11\1\322"+ + "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\2\11\1\323\1\11"+ + "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\10\11"+ + "\1\324\10\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\12\11"+ + "\1\325\6\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\2\11"+ + "\1\326\16\11\21\0\1\327\1\0\1\327\11\0\1\327"+ + "\1\0\1\327\2\0\2\327\20\0\2\327\3\0\2\327"+ + "\3\0\1\327\3\0\1\327\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ + "\4\0\4\11\1\330\14\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ + "\4\0\7\11\1\331\11\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ + "\4\0\7\11\1\332\11\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ + "\4\0\13\11\1\333\5\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ + "\4\0\5\11\1\334\13\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ + "\4\0\5\11\1\335\13\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\1\336"+ + "\3\11\4\0\21\11\21\0\1\203\1\0\1\203\11\0"+ + "\1\203\1\0\1\203\2\0\2\203\20\0\2\203\3\0"+ + "\2\203\3\0\1\203\3\0\1\203\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\2\11\1\337\1\11\4\0\21\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\4\0\3\11\1\340\15\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\4\0\2\11\1\341\16\11\21\0\3\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\342\2\0"+ + "\4\11\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\3\11\1\343\15\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\10\11\1\344\10\11\21\0\3\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ "\2\11\1\345\16\11\21\0\3\11\1\0\2\11\6\0"+ - "\5\11\1\0\2\11\5\0\3\11\1\346\4\0\21\11"+ - "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ - "\5\0\4\11\4\0\2\11\1\347\16\11\20\0"; + "\4\11\1\0\2\11\3\0\1\11\2\0\3\11\1\346"+ + "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\2\11"+ + "\1\347\16\11\20\0"; private static int [] zzUnpackTrans() { int [] result = new int[10318]; diff --git a/compiler/testData/diagnostics/testsWithUnsignedTypes/unsignedLiteralsInsideConstVals.kt b/compiler/testData/diagnostics/testsWithUnsignedTypes/unsignedLiteralsInsideConstVals.kt index 7f58c80cfab..b7f3305ffc6 100644 --- a/compiler/testData/diagnostics/testsWithUnsignedTypes/unsignedLiteralsInsideConstVals.kt +++ b/compiler/testData/diagnostics/testsWithUnsignedTypes/unsignedLiteralsInsideConstVals.kt @@ -6,3 +6,6 @@ const val u1: UByte = 2u const val u2: UShort = 3u const val u3: UInt = 3u const val u4: ULong = 4u + +const val u5 = 1U +const val u6: UByte = 0xFFU diff --git a/compiler/testData/diagnostics/testsWithUnsignedTypes/unsignedLiteralsInsideConstVals.txt b/compiler/testData/diagnostics/testsWithUnsignedTypes/unsignedLiteralsInsideConstVals.txt index 5d9c84da6b5..30bd0e31874 100644 --- a/compiler/testData/diagnostics/testsWithUnsignedTypes/unsignedLiteralsInsideConstVals.txt +++ b/compiler/testData/diagnostics/testsWithUnsignedTypes/unsignedLiteralsInsideConstVals.txt @@ -5,3 +5,5 @@ public const val u1: kotlin.UByte = 2.toUByte() public const val u2: kotlin.UShort = 3.toUShort() public const val u3: kotlin.UInt = 3.toUInt() public const val u4: kotlin.ULong = 4.toULong() +public const val u5: kotlin.UInt = 1.toUInt() +public const val u6: kotlin.UByte = -1.toUByte() diff --git a/compiler/testData/psi/UnsignedLiteral.kt b/compiler/testData/psi/UnsignedLiteral.kt index 693602af5c2..438767d2ac4 100644 --- a/compiler/testData/psi/UnsignedLiteral.kt +++ b/compiler/testData/psi/UnsignedLiteral.kt @@ -9,5 +9,13 @@ val array = array( 1e1u, 1.0e1u, 2_2.0fu, - 6.022_137e+2_3fu + 6.022_137e+2_3fu, + 1U, + 0xFU, + 1uU, + 1Uu, + 1Lu, + 1LU, + 1uL, + 1UL ) \ No newline at end of file diff --git a/compiler/testData/psi/UnsignedLiteral.txt b/compiler/testData/psi/UnsignedLiteral.txt index 6b5d55a4b07..0cdd129ba76 100644 --- a/compiler/testData/psi/UnsignedLiteral.txt +++ b/compiler/testData/psi/UnsignedLiteral.txt @@ -105,5 +105,75 @@ KtFile: UnsignedLiteral.kt PsiElement(IDENTIFIER)('u') PsiErrorElement:Expecting an element + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1U') + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xFU') + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1u') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('U') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1U') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('u') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('u') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1L') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('U') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1u') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('L') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1U') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('L') + PsiErrorElement:Expecting an element + PsiWhiteSpace('\n') PsiElement(RPAR)(')') \ No newline at end of file