Question:
<!-- Do you have a question? Please ask it on --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.23.0-insiders x64 commit OS Version: Windows 8.1 x64 After update to latest version window is empty (only main menu bar is visible). Renderer process consumes 16-20% CPU but nothing is changing. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
can you run "" from the command line and see if any output is printed?
The output is here:
adding for the (maybe unrelated) spdylog stacktrace that shows up. can you share a screenshot how VSCode looks after it started like this?
!
does it make any difference if you run with "" from the command line?
That literal looks weird. It looks like the user has a problem in one of his variables, possibly . Whats the value of your HOMEPATH variable?
Visually nothing is changed. In console also nothing. is not presented. Username is , but profile folder named as .
does it make any difference if you run "" from the command line?
Yes. Window is opening like normal new profile. My profile is broken. Nice. ! UPD: Erased my old profile. Nothing. Same situation. So, trouble is Cyrillic symbols in path to profile folder.
to verify that can you use the argument with a folder that has the Cyrillic characters and see if you get the same results?
Yes. Launch with Cyrillic characters in path give same result.
it would be easier for me to reproduce if you could post the exact Cyrillic letters that you are using in here as text so that I can copy it.
Here it is: .
I can reproduce and the reason the workbench is not coming up is due to spdylog crashing very early. To reproduce run ""
Just to confirm, you could reproduce by using cyrilic in a path provided to ?
I can. Command: Result:
yes
I can confirm I have an identical problem. My username contains the character 'ø', which now makes the insiders build fail to start. Changing the to a path which does not contain that character fixes the issue. However, the Windows context menu action does not work, as the argument is only provided on the shortcut. The stable release (1.22.2) works as expected. EDIT: I fixed the context menu issue manually in the registry, so everything is back to normal for now :)
I pushed a workaround for now to not crash so badly when we fail to instantiate the spdylog writer. Turns out we already had code in place to protect from failing loads thanks to Alex, but the output channel was failing very early on. fyi maybe you want to quickly check my changes via The real fix probably needs to go into spdylog, pushing to May since this was already happening in stable.
This will break Output channels when not writing into file. When user switches between output channels, they will become empty as there is no way to retrieve content now
I was falling back to old way of writing into channels if fails. I removed this fallback this milestone . You can get that back. But I would really want to remove this fallback because for further enhancements to output channel which depends on spdlog.
this is not a real fix, I would expect some regressions. Previously VS Code would not start at all without my workaround. Do you think the current behaviour with my fix is worse than before? I think its clear that we will work on a fix for May.
IMO The better workaround would be to bring back my fallback . I was doing the same as you except that I fallback to old way of writing into Output channels. This will not have any regressions as it was there in last milestone. When we fix it in May, we can remove the workaround.
Sorry, I am confused. May I know if this issue is due to Loading of spdlog library OR spdlog fails to create a file
I see the workaround is if spldlog fails to create logger/file. So I think it is better to use my fallback.
Pushed the previous workaround I was using. As said, this will not break output channels if there is an issue creating spdlog logger.
I don't see issues running dev with a user-data-dir containing a non-ascii character (eg ) any more. I do not understand if this is because of your workaround or if the new spdlog version actually fixed the issue. Moving it to you in order to check if the issue is fixed already, since I don't understand how to repro.
I too do not see any issues after removing the workaround I before for the crash. Hence removed the workaround. To verify: Open VS Code using an user directory that has non-ascii character (eg ø) Verify that VS Code starts normally and the output channels are properly written Verify that there is no crash
Reopening this as the crash from spdlog is not fixed.
I still see following error in the console with our log files Edit: This is seen in the console even with the workaround. Workaround just mitigates it by falling back to old output channels. Logs will not work though.
Updated node-spdlog library to support in file names. Thanks to for hinting it. With this crash no longer occurs with non ascii or special characters (tested with all reported characters). Added a smoke test to launch VS Code with special characters in user data dir.

version "1.0.0" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" <del> spdlog@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/spdlog/-/spdlog-0.7.1.tgz#960b8cdced12e8c482d1df9fa65220789f276979" </del> <ins> spdlog@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/spdlog/-/spdlog-0.7.2.tgz#9298753d7694b9ee9bbfd7e01ea1e4c6ace1e64d" </ins> dependencies: bindings "^1.3.0" mkdirp "^0.5.1"


Question:
I did this on accident, but it took a little effort to figure out how I did it. Drag file from Finder onto Explorer Get scrollbar in Explorer to be visible, like by dragging near the top/bottom of the Explorer The entire explorer becomes highlighted when you hold the file over the scrollbar Drop file onto the scrollbar The entire explorer stays highlighted. It stays highlighted through interacting with the explorer and even switching to another viewlet. Only can be reversed by dragging another file onto the explorer. !
Actually a much easier way to repro is to two-finger scroll while dragging the file to get the scrollbar to appear.
i'm able to reproduce it. will try to fix it
couldn't find where to start. help is appreciated
I gave it a go in this PR:

return candidate; } <del> if (element === document.body) { </del> <ins> if (element === this.scrollableElement.getDomNode() || element === document.body) { </ins> return null; } } while (element = element.parentElement);


Question:
Have file named in explorer Copy/paste it Window hangs This is from We shouldn't attempt this when the number is = Number.MAXSAFEINTEGER. It loops forever here: This bug will happen whenever incrementFileName fails to modify the file name.
I guess only interesting thing about this what we should do in this case as we need to create some new file name? Add without changing the original number?
that sounds reasonable

import { Schemas } from 'vs/base/common/network'; import { IDialogService, IConfirmationResult, IConfirmation, getConfirmMessage } from 'vs/platform/dialogs/common/dialogs'; import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; <ins> import { Constants } from 'vs/editor/common/core/uint'; </ins> export interface IEditableData { action: IAction;


Question:
Have file named in explorer Copy/paste it Window hangs This is from We shouldn't attempt this when the number is = Number.MAXSAFEINTEGER. It loops forever here: This bug will happen whenever incrementFileName fails to modify the file name.
I guess only interesting thing about this what we should do in this case as we need to create some new file name? Add without changing the original number?
that sounds reasonable

export function incrementFileName(name: string, isFolder: boolean): string { const separators = '[.-_]'; <ins> const maxNumber = Constants.MAX_SAFE_SMALL_INTEGER; </ins> // file.1.txt=>file.2.txt let suffixFileRegex = RegExp('(.*' + separators + ')(d+)(..*)$'); if (!isFolder && name.match(suffixFileRegex)) { return name.replace(suffixFileRegex, (match, g1?, g2?, g3?) => { <del> return g1 + strings.pad(parseInt(g2) + 1, g2.length) + g3; </del> <ins> let number = parseInt(g2); return number < maxNumber ? g1 + strings.pad(number + 1, g2.length) + g3 : strings.format('{0}{1}.1{2}', g1, g2, g3); </ins> }); }


Question:
Have file named in explorer Copy/paste it Window hangs This is from We shouldn't attempt this when the number is = Number.MAXSAFEINTEGER. It loops forever here: This bug will happen whenever incrementFileName fails to modify the file name.
I guess only interesting thing about this what we should do in this case as we need to create some new file name? Add without changing the original number?
that sounds reasonable

let prefixFileRegex = RegExp('(d+)(' + separators + '.*)(..*)$'); if (!isFolder && name.match(prefixFileRegex)) { return name.replace(prefixFileRegex, (match, g1?, g2?, g3?) => { <del> return strings.pad(parseInt(g1) + 1, g1.length) + g2 + g3; </del> <ins> let number = parseInt(g1); return number < maxNumber ? strings.pad(number + 1, g1.length) + g2 + g3 : strings.format('{0}{1}.1{2}', g1, g2, g3); </ins> }); }


Question:
Have file named in explorer Copy/paste it Window hangs This is from We shouldn't attempt this when the number is = Number.MAXSAFEINTEGER. It loops forever here: This bug will happen whenever incrementFileName fails to modify the file name.
I guess only interesting thing about this what we should do in this case as we need to create some new file name? Add without changing the original number?
that sounds reasonable

// folder.1=>folder.2 if (isFolder && name.match(/(d+)$/)) { <del> return name.replace(/(d+)$/, (match: string, ...groups: any[]) => { return strings.pad(parseInt(groups[0]) + 1, groups[0].length); }); </del> <ins> return name.replace(/(d+)$/, (match: string, ...groups: any[]) => { let number = parseInt(groups[0]); return number < maxNumber ? strings.pad(number + 1, groups[0].length) : strings.format('{0}.1', groups[0]); }); </ins> } // 1.folder=>2.folder if (isFolder && name.match(/^(d+)/)) { <del> return name.replace(/^(d+)/, (match: string, ...groups: any[]) => { return strings.pad(parseInt(groups[0]) + 1, groups[0].length); }); </del> <ins> return name.replace(/^(d+)(.*)$/, (match: string, ...groups: any[]) => { let number = parseInt(groups[0]); return number < maxNumber ? strings.pad(number + 1, groups[0].length) + groups[1] : strings.format('{0}{1}.1', groups[0], groups[1]); }); </ins> } // file/folder=>file.1/folder.1


Question:
Have file named in explorer Copy/paste it Window hangs This is from We shouldn't attempt this when the number is = Number.MAXSAFEINTEGER. It loops forever here: This bug will happen whenever incrementFileName fails to modify the file name.
I guess only interesting thing about this what we should do in this case as we need to create some new file name? Add without changing the original number?
that sounds reasonable

assert.strictEqual(result, 'test_2'); }); <ins> test('Increment file name with suffix version, too big number', function () { const name = 'test.9007199254740992.js'; const result = incrementFileName(name, false); assert.strictEqual(result, 'test.9007199254740992.1.js'); }); test('Increment folder name with suffix version, too big number', function () { const name = 'test.9007199254740992'; const result = incrementFileName(name, true); assert.strictEqual(result, 'test.9007199254740992.1'); }); </ins> test('Increment file name with prefix version', function () { const name = '1.test.js'; const result = incrementFileName(name, false);


Question:
Have file named in explorer Copy/paste it Window hangs This is from We shouldn't attempt this when the number is = Number.MAXSAFEINTEGER. It loops forever here: This bug will happen whenever incrementFileName fails to modify the file name.
I guess only interesting thing about this what we should do in this case as we need to create some new file name? Add without changing the original number?
that sounds reasonable

assert.strictEqual(result, '2_test.js'); }); <del> test('Increment folder name with suffix version', function () { </del> <ins> test('Increment file name with prefix version, too big number', function () { const name = '9007199254740992.test.js'; const result = incrementFileName(name, false); assert.strictEqual(result, '9007199254740992.test.1.js'); }); test('Increment folder name with prefix version', function () { </ins> const name = '1.test'; const result = incrementFileName(name, true); assert.strictEqual(result, '2.test'); }); <del> test('Increment folder name with suffix version, trailing zeros', function () { </del> <ins> test('Increment folder name with prefix version, too big number', function () { const name = '9007199254740992.test'; const result = incrementFileName(name, true); assert.strictEqual(result, '9007199254740992.test.1'); }); test('Increment folder name with prefix version, trailing zeros', function () { </ins> const name = '001.test'; const result = incrementFileName(name, true); assert.strictEqual(result, '002.test'); }); <del> test('Increment folder name with suffix version  with `-` as separator', function () { </del> <ins> test('Increment folder name with prefix version  with `-` as separator', function () { </ins> const name = '1-test'; const result = incrementFileName(name, true); assert.strictEqual(result, '2-test');


Question:
Issue Type: <bBug</bJSON syntax highlighting fails on the following array (item 1, "response"): { "request": [24], "response": [152, 26, 0, 0, 227, 147, 4, 0, 0, 0, 0, 0, 64, 233, 245, 229, 2, 43, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 233, 245, 229, 2, 43, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 3, 0, 1, 0, 100, 0, 12, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 70, 32, 32, 32, 32, 82, 67, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 221, 41, 12, 1, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 49, 32, 32, 32, 82, 67, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 52, 41, 12, 1, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 50, 32, 32, 32, 82, 67, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 40, 12, 1, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 51, 32, 32, 32, 82, 67, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 69, 32, 12, 1, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 52, 32, 32, 32, 82, 67, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 231, 70, 12, 1, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 53, 32, 32, 32, 82, 67, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 1, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 54, 32, 32, 32, 82, 67, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 1, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 55, 32, 32, 32, 82, 67, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 70, 85, 50, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 70, 85, 84, 85, 82, 69, 83, 44, 32, 68, 69, 67, 61, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 65, 0, 12, 2, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 83, 48, 49, 32, 32, 32, 83, 70, 32, 84, 83, 32, 76, 69, 86, 69, 76, 32, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 70, 32, 32, 32, 32, 51, 45, 89, 32, 69, 88, 67, 72, 65, 78, 71, 69, 32, 70, 85, 78, 68, 32, 78, 79, 84, 69, 83, 32, 70, 85, 84, 85, 82, 69, 83, 32, 1, 1, 1, 2, 1, 0, 0, 28, 12, 3, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 49, 32, 32, 32, 69, 70, 51, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 50, 32, 32, 32, 69, 70, 51, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 51, 32, 32, 32, 69, 70, 51, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 70, 32, 32, 32, 32, 67, 79, 77, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 8, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 48, 49, 32, 32, 32, 67, 79, 77, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 8, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 48, 50, 32, 32, 32, 67, 79, 77, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 174, 70, 12, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 70, 32, 32, 32, 32, 77, 72, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 16, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 67, 32, 32, 32, 32, 77, 72, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 157, 32, 12, 16, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 80, 32, 32, 32, 32, 77, 72, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 16, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 49, 32, 32, 32, 77, 72, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 171, 0, 12, 16, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 50, 32, 32, 32, 77, 72, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 51, 32, 32, 32, 77, 72, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 52, 32, 32, 32, 77, 72, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 16, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 53, 32, 32, 32, 77, 72, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 54, 32, 32, 32, 77, 72, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 55, 32, 32, 32, 77, 72, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 16, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 77, 72, 73, 32, 77, 72, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 20, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 67, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 20, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 80, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 20, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 49, 32, 32, 32, 32, 83, 79, 77, 32, 83, 89, 78, 84, 72, 69, 84, 73, 67, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 20, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 83, 79, 77, 32, 83, 79, 77, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 73, 66, 70, 32, 32, 32, 32, 72, 73, 66, 79, 82, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 24, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 52, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 53, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 54, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 55, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 56, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 24, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 57, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 57, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 48, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 52, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 53, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 54, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 179, 71, 12, 24, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 55, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 56, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 57, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 57, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 48, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 71, 7, 12, 24, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 23, 71, 12, 24, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 70, 32, 32, 32, 32, 68, 74, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 81, 6, 12, 27, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 49, 32, 32, 32, 68, 74, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 50, 32, 32, 32, 68, 74, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 27, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 51, 32, 32, 32, 68, 74, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 52, 32, 32, 32, 68, 74, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 34, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 70, 32, 32, 32, 32, 72, 83, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 34, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 67, 32, 32, 32, 32, 72, 83, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 0, 0, 12, 34, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 80, 32, 32, 32, 32, 72, 83, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 34, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 73, 83, 84, 68, 32, 32, 32, 32, 73, 78, 68, 69, 88, 32, 83, 84, 82, 65, 68, 68, 76, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 222, 142, 12, 34, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 73, 83, 84, 71, 32, 32, 32, 32, 73, 78, 68, 69, 88, 32, 83, 84, 82, 65, 78, 71, 76, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 49, 32, 32, 32, 72, 83, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 83, 80, 12, 34, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 50, 32, 32, 32, 72, 83, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 51, 32, 32, 32, 72, 83, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 84, 12, 34, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 52, 32, 32, 32, 72, 83, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 34, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 53, 32, 32, 32, 72, 83, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 179, 71, 12, 34, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 54, 32, 32, 32, 72, 83, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 55, 32, 32, 32, 72, 83, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 49, 32, 12, 34, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 72, 83, 73, 32, 72, 83, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 35, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 83, 67, 32, 32, 32, 32, 88, 72, 83, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 35, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 83, 80, 32, 32, 32, 32, 88, 72, 83, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 72, 72, 83, 32, 32, 32, 32, 88, 72, 72, 32, 83, 80, 79, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 2, 2, 2, 0, 0, 0, 0, 12, 37, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 72, 67, 32, 32, 32, 32, 88, 72, 72, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 37, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 72, 80, 32, 32, 32, 32, 88, 72, 72, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 70, 32, 32, 32, 32, 72, 72, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 38, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 67, 32, 32, 32, 32, 72, 72, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 0, 0, 12, 38, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 80, 32, 32, 32, 32, 72, 72, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 82, 82, 12, 38, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 49, 32, 32, 32, 72, 72, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 69, 69, 12, 38, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 50, 32, 32, 32, 72, 72, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 51, 32, 32, 32, 72, 72, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 38, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 52, 32, 32, 32, 72, 72, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 53, 32, 32, 32, 72, 72, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 78, 73, 12, 38, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 54, 32, 32, 32, 72, 72, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 55, 32, 32, 32, 72, 72, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 78, 12, 38, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 72, 72, 73, 32, 72, 72, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 51, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 70, 32, 32, 32, 32, 86, 79, 76, 32, 70, 85, 84, 85, 82, 69, 83, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 32, 32, 12, 51, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 48, 49, 32, 32, 32, 86, 79, 76, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 51, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 48, 50, 32, 32, 32, 86, 79, 76, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 175, 70, 12, 60, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 70, 32, 32, 32, 32, 70, 88, 67, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 60, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 49, 32, 32, 32, 70, 88, 67, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 71, 6, 12, 60, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 50, 32, 32, 32, 70, 88, 67, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 51, 32, 32, 32, 70, 88, 67, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 60, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 52, 32, 32, 32, 70, 88, 67, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 53, 32, 32, 32, 70, 88, 67, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 54, 32, 32, 32, 70, 88, 67, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0] } VS Code version: Code 1.23.1 (, 2018-05-10T16:04:33.747Z) OS version: Linux x64 3.13.0-40-generic <details<summarySystem Info</summary </details<details<summaryExtensions (16)</summaryExtensionVersion ------ vscode-markdownlint0.18.0 xml2.2.0 vscode-docker0.0.27 gitignore0.5.0 githistory0.4.1 python2018.4.0 cpptools0.17.4 title0.1.0 vscode-icons7.23.0 bash-debug0.2.0 annotator0.11.0 code-spell-checker1.6.10 mako0.2.0 cmake0.0.17 gitblame2.4.2 vscode-todo-highlight0.5.12 (1 theme extensions excluded) </details<!-- generated by issue reporter --
For performance reasons, we skip tokenization for lines that are longer than 20k. It would be good if the user can see a message when that happens.
I would like to take this one if you guys think this is a but I would need some guidance. I already this: but I'm getting this error , so, I'm not sure how to import correctly into this file in order to use the method. cc:
This code runs on the renderer side, while is only for the extension host process. We have to wait for to add his thoughts. There's something similar when we open very large file. Check out the for that.
is API available only to vscode extensions and should not be used in the UI code. The UI code should use and inject itself with it. A possible fix would be to prompt (as suggested above), but prompt only once. It would be very annoying to prompt 20 times if there are 20 lines over 20.000 chars.
PR tackles this.
To verify, open a file with a very large line. A message should be shown, explaining why the large line is not tokenized.
I tried on the production app (May 2018 (version 1.24)) and I didn't get the notification, I guess it hasn't been deployed there yet, right? Where should I verify?
We would want that someone else than the author of the change would verify that the issue is fixed. So, there's nothing for you to do here, since you are the author. Someone from the vscode team will pick up this issue and verify it. (The change will make it to the stable channel in the following couple of weeks. For now it is available in the insiders channel at )
Verified !
How about using field for this kind of information? Lines that long only occure on minified files or base64 data images which doesn't actually need any syntax highlighting so this notification is completely useless in my opinion. How to get rid of it?

import { nullTokenize2 } from 'vs/editor/common/modes/nullMode'; import { generateTokensCSSForColorMap } from 'vs/editor/common/modes/supports/tokenization'; import { Color } from 'vs/base/common/color'; <ins> import { INotificationService } from 'vs/platform/notification/common/notification'; </ins> import URI from 'vs/base/common/uri'; export class TMScopeRegistry {


Question:
Issue Type: <bBug</bJSON syntax highlighting fails on the following array (item 1, "response"): { "request": [24], "response": [152, 26, 0, 0, 227, 147, 4, 0, 0, 0, 0, 0, 64, 233, 245, 229, 2, 43, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 233, 245, 229, 2, 43, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 3, 0, 1, 0, 100, 0, 12, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 70, 32, 32, 32, 32, 82, 67, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 221, 41, 12, 1, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 49, 32, 32, 32, 82, 67, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 52, 41, 12, 1, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 50, 32, 32, 32, 82, 67, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 40, 12, 1, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 51, 32, 32, 32, 82, 67, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 69, 32, 12, 1, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 52, 32, 32, 32, 82, 67, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 231, 70, 12, 1, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 53, 32, 32, 32, 82, 67, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 1, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 54, 32, 32, 32, 82, 67, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 1, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 55, 32, 32, 32, 82, 67, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 70, 85, 50, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 70, 85, 84, 85, 82, 69, 83, 44, 32, 68, 69, 67, 61, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 65, 0, 12, 2, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 83, 48, 49, 32, 32, 32, 83, 70, 32, 84, 83, 32, 76, 69, 86, 69, 76, 32, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 70, 32, 32, 32, 32, 51, 45, 89, 32, 69, 88, 67, 72, 65, 78, 71, 69, 32, 70, 85, 78, 68, 32, 78, 79, 84, 69, 83, 32, 70, 85, 84, 85, 82, 69, 83, 32, 1, 1, 1, 2, 1, 0, 0, 28, 12, 3, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 49, 32, 32, 32, 69, 70, 51, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 50, 32, 32, 32, 69, 70, 51, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 51, 32, 32, 32, 69, 70, 51, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 70, 32, 32, 32, 32, 67, 79, 77, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 8, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 48, 49, 32, 32, 32, 67, 79, 77, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 8, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 48, 50, 32, 32, 32, 67, 79, 77, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 174, 70, 12, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 70, 32, 32, 32, 32, 77, 72, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 16, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 67, 32, 32, 32, 32, 77, 72, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 157, 32, 12, 16, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 80, 32, 32, 32, 32, 77, 72, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 16, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 49, 32, 32, 32, 77, 72, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 171, 0, 12, 16, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 50, 32, 32, 32, 77, 72, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 51, 32, 32, 32, 77, 72, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 52, 32, 32, 32, 77, 72, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 16, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 53, 32, 32, 32, 77, 72, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 54, 32, 32, 32, 77, 72, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 55, 32, 32, 32, 77, 72, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 16, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 77, 72, 73, 32, 77, 72, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 20, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 67, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 20, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 80, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 20, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 49, 32, 32, 32, 32, 83, 79, 77, 32, 83, 89, 78, 84, 72, 69, 84, 73, 67, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 20, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 83, 79, 77, 32, 83, 79, 77, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 73, 66, 70, 32, 32, 32, 32, 72, 73, 66, 79, 82, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 24, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 52, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 53, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 54, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 55, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 56, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 24, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 57, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 57, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 48, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 52, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 53, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 54, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 179, 71, 12, 24, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 55, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 56, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 57, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 57, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 48, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 71, 7, 12, 24, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 23, 71, 12, 24, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 70, 32, 32, 32, 32, 68, 74, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 81, 6, 12, 27, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 49, 32, 32, 32, 68, 74, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 50, 32, 32, 32, 68, 74, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 27, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 51, 32, 32, 32, 68, 74, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 52, 32, 32, 32, 68, 74, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 34, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 70, 32, 32, 32, 32, 72, 83, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 34, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 67, 32, 32, 32, 32, 72, 83, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 0, 0, 12, 34, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 80, 32, 32, 32, 32, 72, 83, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 34, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 73, 83, 84, 68, 32, 32, 32, 32, 73, 78, 68, 69, 88, 32, 83, 84, 82, 65, 68, 68, 76, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 222, 142, 12, 34, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 73, 83, 84, 71, 32, 32, 32, 32, 73, 78, 68, 69, 88, 32, 83, 84, 82, 65, 78, 71, 76, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 49, 32, 32, 32, 72, 83, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 83, 80, 12, 34, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 50, 32, 32, 32, 72, 83, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 51, 32, 32, 32, 72, 83, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 84, 12, 34, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 52, 32, 32, 32, 72, 83, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 34, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 53, 32, 32, 32, 72, 83, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 179, 71, 12, 34, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 54, 32, 32, 32, 72, 83, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 55, 32, 32, 32, 72, 83, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 49, 32, 12, 34, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 72, 83, 73, 32, 72, 83, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 35, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 83, 67, 32, 32, 32, 32, 88, 72, 83, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 35, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 83, 80, 32, 32, 32, 32, 88, 72, 83, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 72, 72, 83, 32, 32, 32, 32, 88, 72, 72, 32, 83, 80, 79, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 2, 2, 2, 0, 0, 0, 0, 12, 37, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 72, 67, 32, 32, 32, 32, 88, 72, 72, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 37, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 72, 80, 32, 32, 32, 32, 88, 72, 72, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 70, 32, 32, 32, 32, 72, 72, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 38, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 67, 32, 32, 32, 32, 72, 72, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 0, 0, 12, 38, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 80, 32, 32, 32, 32, 72, 72, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 82, 82, 12, 38, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 49, 32, 32, 32, 72, 72, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 69, 69, 12, 38, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 50, 32, 32, 32, 72, 72, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 51, 32, 32, 32, 72, 72, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 38, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 52, 32, 32, 32, 72, 72, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 53, 32, 32, 32, 72, 72, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 78, 73, 12, 38, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 54, 32, 32, 32, 72, 72, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 55, 32, 32, 32, 72, 72, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 78, 12, 38, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 72, 72, 73, 32, 72, 72, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 51, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 70, 32, 32, 32, 32, 86, 79, 76, 32, 70, 85, 84, 85, 82, 69, 83, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 32, 32, 12, 51, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 48, 49, 32, 32, 32, 86, 79, 76, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 51, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 48, 50, 32, 32, 32, 86, 79, 76, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 175, 70, 12, 60, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 70, 32, 32, 32, 32, 70, 88, 67, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 60, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 49, 32, 32, 32, 70, 88, 67, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 71, 6, 12, 60, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 50, 32, 32, 32, 70, 88, 67, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 51, 32, 32, 32, 70, 88, 67, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 60, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 52, 32, 32, 32, 70, 88, 67, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 53, 32, 32, 32, 70, 88, 67, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 54, 32, 32, 32, 70, 88, 67, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0] } VS Code version: Code 1.23.1 (, 2018-05-10T16:04:33.747Z) OS version: Linux x64 3.13.0-40-generic <details<summarySystem Info</summary </details<details<summaryExtensions (16)</summaryExtensionVersion ------ vscode-markdownlint0.18.0 xml2.2.0 vscode-docker0.0.27 gitignore0.5.0 githistory0.4.1 python2018.4.0 cpptools0.17.4 title0.1.0 vscode-icons7.23.0 bash-debug0.2.0 annotator0.11.0 code-spell-checker1.6.10 mako0.2.0 cmake0.0.17 gitblame2.4.2 vscode-todo-highlight0.5.12 (1 theme extensions excluded) </details<!-- generated by issue reporter --
For performance reasons, we skip tokenization for lines that are longer than 20k. It would be good if the user can see a message when that happens.
I would like to take this one if you guys think this is a but I would need some guidance. I already this: but I'm getting this error , so, I'm not sure how to import correctly into this file in order to use the method. cc:
This code runs on the renderer side, while is only for the extension host process. We have to wait for to add his thoughts. There's something similar when we open very large file. Check out the for that.
is API available only to vscode extensions and should not be used in the UI code. The UI code should use and inject itself with it. A possible fix would be to prompt (as suggested above), but prompt only once. It would be very annoying to prompt 20 times if there are 20 lines over 20.000 chars.
PR tackles this.
To verify, open a file with a very large line. A message should be shown, explaining why the large line is not tokenized.
I tried on the production app (May 2018 (version 1.24)) and I didn't get the notification, I guess it hasn't been deployed there yet, right? Where should I verify?
We would want that someone else than the author of the change would verify that the issue is fixed. So, there's nothing for you to do here, since you are the author. Someone from the vscode team will pick up this issue and verify it. (The change will make it to the stable channel in the following couple of weeks. For now it is available in the insiders channel at )
Verified !
How about using field for this kind of information? Lines that long only occure on minified files or base64 data images which doesn't actually need any syntax highlighting so this notification is completely useless in my opinion. How to get rid of it?

private _scopeRegistry: TMScopeRegistry; private _injections: { [scopeName: string]: string[]; }; private _injectedEmbeddedLanguages: { [scopeName: string]: IEmbeddedLanguagesMap[]; }; <ins> private _notificationService: INotificationService; </ins> private _languageToScope: Map<string, string>; private _styleElement: HTMLStyleElement;


Question:
Issue Type: <bBug</bJSON syntax highlighting fails on the following array (item 1, "response"): { "request": [24], "response": [152, 26, 0, 0, 227, 147, 4, 0, 0, 0, 0, 0, 64, 233, 245, 229, 2, 43, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 233, 245, 229, 2, 43, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 3, 0, 1, 0, 100, 0, 12, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 70, 32, 32, 32, 32, 82, 67, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 221, 41, 12, 1, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 49, 32, 32, 32, 82, 67, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 52, 41, 12, 1, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 50, 32, 32, 32, 82, 67, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 40, 12, 1, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 51, 32, 32, 32, 82, 67, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 69, 32, 12, 1, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 52, 32, 32, 32, 82, 67, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 231, 70, 12, 1, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 53, 32, 32, 32, 82, 67, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 1, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 54, 32, 32, 32, 82, 67, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 1, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 55, 32, 32, 32, 82, 67, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 70, 85, 50, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 70, 85, 84, 85, 82, 69, 83, 44, 32, 68, 69, 67, 61, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 65, 0, 12, 2, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 83, 48, 49, 32, 32, 32, 83, 70, 32, 84, 83, 32, 76, 69, 86, 69, 76, 32, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 70, 32, 32, 32, 32, 51, 45, 89, 32, 69, 88, 67, 72, 65, 78, 71, 69, 32, 70, 85, 78, 68, 32, 78, 79, 84, 69, 83, 32, 70, 85, 84, 85, 82, 69, 83, 32, 1, 1, 1, 2, 1, 0, 0, 28, 12, 3, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 49, 32, 32, 32, 69, 70, 51, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 50, 32, 32, 32, 69, 70, 51, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 51, 32, 32, 32, 69, 70, 51, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 70, 32, 32, 32, 32, 67, 79, 77, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 8, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 48, 49, 32, 32, 32, 67, 79, 77, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 8, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 48, 50, 32, 32, 32, 67, 79, 77, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 174, 70, 12, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 70, 32, 32, 32, 32, 77, 72, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 16, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 67, 32, 32, 32, 32, 77, 72, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 157, 32, 12, 16, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 80, 32, 32, 32, 32, 77, 72, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 16, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 49, 32, 32, 32, 77, 72, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 171, 0, 12, 16, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 50, 32, 32, 32, 77, 72, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 51, 32, 32, 32, 77, 72, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 52, 32, 32, 32, 77, 72, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 16, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 53, 32, 32, 32, 77, 72, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 54, 32, 32, 32, 77, 72, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 55, 32, 32, 32, 77, 72, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 16, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 77, 72, 73, 32, 77, 72, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 20, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 67, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 20, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 80, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 20, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 49, 32, 32, 32, 32, 83, 79, 77, 32, 83, 89, 78, 84, 72, 69, 84, 73, 67, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 20, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 83, 79, 77, 32, 83, 79, 77, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 73, 66, 70, 32, 32, 32, 32, 72, 73, 66, 79, 82, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 24, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 52, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 53, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 54, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 55, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 56, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 24, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 57, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 57, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 48, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 52, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 53, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 54, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 179, 71, 12, 24, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 55, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 56, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 57, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 57, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 48, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 71, 7, 12, 24, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 23, 71, 12, 24, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 70, 32, 32, 32, 32, 68, 74, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 81, 6, 12, 27, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 49, 32, 32, 32, 68, 74, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 50, 32, 32, 32, 68, 74, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 27, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 51, 32, 32, 32, 68, 74, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 52, 32, 32, 32, 68, 74, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 34, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 70, 32, 32, 32, 32, 72, 83, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 34, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 67, 32, 32, 32, 32, 72, 83, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 0, 0, 12, 34, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 80, 32, 32, 32, 32, 72, 83, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 34, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 73, 83, 84, 68, 32, 32, 32, 32, 73, 78, 68, 69, 88, 32, 83, 84, 82, 65, 68, 68, 76, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 222, 142, 12, 34, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 73, 83, 84, 71, 32, 32, 32, 32, 73, 78, 68, 69, 88, 32, 83, 84, 82, 65, 78, 71, 76, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 49, 32, 32, 32, 72, 83, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 83, 80, 12, 34, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 50, 32, 32, 32, 72, 83, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 51, 32, 32, 32, 72, 83, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 84, 12, 34, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 52, 32, 32, 32, 72, 83, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 34, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 53, 32, 32, 32, 72, 83, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 179, 71, 12, 34, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 54, 32, 32, 32, 72, 83, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 55, 32, 32, 32, 72, 83, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 49, 32, 12, 34, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 72, 83, 73, 32, 72, 83, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 35, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 83, 67, 32, 32, 32, 32, 88, 72, 83, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 35, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 83, 80, 32, 32, 32, 32, 88, 72, 83, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 72, 72, 83, 32, 32, 32, 32, 88, 72, 72, 32, 83, 80, 79, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 2, 2, 2, 0, 0, 0, 0, 12, 37, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 72, 67, 32, 32, 32, 32, 88, 72, 72, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 37, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 72, 80, 32, 32, 32, 32, 88, 72, 72, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 70, 32, 32, 32, 32, 72, 72, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 38, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 67, 32, 32, 32, 32, 72, 72, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 0, 0, 12, 38, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 80, 32, 32, 32, 32, 72, 72, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 82, 82, 12, 38, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 49, 32, 32, 32, 72, 72, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 69, 69, 12, 38, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 50, 32, 32, 32, 72, 72, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 51, 32, 32, 32, 72, 72, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 38, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 52, 32, 32, 32, 72, 72, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 53, 32, 32, 32, 72, 72, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 78, 73, 12, 38, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 54, 32, 32, 32, 72, 72, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 55, 32, 32, 32, 72, 72, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 78, 12, 38, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 72, 72, 73, 32, 72, 72, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 51, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 70, 32, 32, 32, 32, 86, 79, 76, 32, 70, 85, 84, 85, 82, 69, 83, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 32, 32, 12, 51, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 48, 49, 32, 32, 32, 86, 79, 76, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 51, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 48, 50, 32, 32, 32, 86, 79, 76, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 175, 70, 12, 60, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 70, 32, 32, 32, 32, 70, 88, 67, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 60, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 49, 32, 32, 32, 70, 88, 67, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 71, 6, 12, 60, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 50, 32, 32, 32, 70, 88, 67, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 51, 32, 32, 32, 70, 88, 67, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 60, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 52, 32, 32, 32, 70, 88, 67, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 53, 32, 32, 32, 70, 88, 67, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 54, 32, 32, 32, 70, 88, 67, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0] } VS Code version: Code 1.23.1 (, 2018-05-10T16:04:33.747Z) OS version: Linux x64 3.13.0-40-generic <details<summarySystem Info</summary </details<details<summaryExtensions (16)</summaryExtensionVersion ------ vscode-markdownlint0.18.0 xml2.2.0 vscode-docker0.0.27 gitignore0.5.0 githistory0.4.1 python2018.4.0 cpptools0.17.4 title0.1.0 vscode-icons7.23.0 bash-debug0.2.0 annotator0.11.0 code-spell-checker1.6.10 mako0.2.0 cmake0.0.17 gitblame2.4.2 vscode-todo-highlight0.5.12 (1 theme extensions excluded) </details<!-- generated by issue reporter --
For performance reasons, we skip tokenization for lines that are longer than 20k. It would be good if the user can see a message when that happens.
I would like to take this one if you guys think this is a but I would need some guidance. I already this: but I'm getting this error , so, I'm not sure how to import correctly into this file in order to use the method. cc:
This code runs on the renderer side, while is only for the extension host process. We have to wait for to add his thoughts. There's something similar when we open very large file. Check out the for that.
is API available only to vscode extensions and should not be used in the UI code. The UI code should use and inject itself with it. A possible fix would be to prompt (as suggested above), but prompt only once. It would be very annoying to prompt 20 times if there are 20 lines over 20.000 chars.
PR tackles this.
To verify, open a file with a very large line. A message should be shown, explaining why the large line is not tokenized.
I tried on the production app (May 2018 (version 1.24)) and I didn't get the notification, I guess it hasn't been deployed there yet, right? Where should I verify?
We would want that someone else than the author of the change would verify that the issue is fixed. So, there's nothing for you to do here, since you are the author. Someone from the vscode team will pick up this issue and verify it. (The change will make it to the stable channel in the following couple of weeks. For now it is available in the insiders channel at )
Verified !
How about using field for this kind of information? Lines that long only occure on minified files or base64 data images which doesn't actually need any syntax highlighting so this notification is completely useless in my opinion. How to get rid of it?

constructor( @IModeService modeService: IModeService, <del> @IWorkbenchThemeService themeService: IWorkbenchThemeService </del> <ins> @IWorkbenchThemeService themeService: IWorkbenchThemeService, @INotificationService notificationService: INotificationService </ins> ) { this._styleElement = dom.createStyleSheet(); this._styleElement.className = 'vscode-tokens-styles';